mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
[SCSI] bnx2i: Removed the reference to the netdev->base_addr
The netdev->base_addr parameter has been deprecated in the L2 bnx2 driver. This is used by bnx2i for the BARn iomapping. This patch will directly reference the pci_resource_start instead of using the deprecated netdev->base_addr. This patch is actually a critical bug fix as the 1G bnx2 driver no longer supports the netdev->base_addr in the current kernel of the scsi tree. This means that Broadcom's 1G Linux iSCSI offload solution would not work at all without this patch. Signed-off-by: Eddie Wai <eddie.wai@broadcom.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
6ef1b512f4
commit
a771718065
@ -350,6 +350,7 @@ struct bnx2i_hba {
|
|||||||
struct pci_dev *pcidev;
|
struct pci_dev *pcidev;
|
||||||
struct net_device *netdev;
|
struct net_device *netdev;
|
||||||
void __iomem *regview;
|
void __iomem *regview;
|
||||||
|
resource_size_t reg_base;
|
||||||
|
|
||||||
u32 age;
|
u32 age;
|
||||||
unsigned long cnic_dev_type;
|
unsigned long cnic_dev_type;
|
||||||
|
@ -2724,7 +2724,6 @@ int bnx2i_map_ep_dbell_regs(struct bnx2i_endpoint *ep)
|
|||||||
goto arm_cq;
|
goto arm_cq;
|
||||||
}
|
}
|
||||||
|
|
||||||
reg_base = ep->hba->netdev->base_addr;
|
|
||||||
if ((test_bit(BNX2I_NX2_DEV_5709, &ep->hba->cnic_dev_type)) &&
|
if ((test_bit(BNX2I_NX2_DEV_5709, &ep->hba->cnic_dev_type)) &&
|
||||||
(ep->hba->mail_queue_access == BNX2I_MQ_BIN_MODE)) {
|
(ep->hba->mail_queue_access == BNX2I_MQ_BIN_MODE)) {
|
||||||
config2 = REG_RD(ep->hba, BNX2_MQ_CONFIG2);
|
config2 = REG_RD(ep->hba, BNX2_MQ_CONFIG2);
|
||||||
@ -2740,7 +2739,7 @@ int bnx2i_map_ep_dbell_regs(struct bnx2i_endpoint *ep)
|
|||||||
/* 5709 device in normal node and 5706/5708 devices */
|
/* 5709 device in normal node and 5706/5708 devices */
|
||||||
reg_off = CTX_OFFSET + (MB_KERNEL_CTX_SIZE * cid_num);
|
reg_off = CTX_OFFSET + (MB_KERNEL_CTX_SIZE * cid_num);
|
||||||
|
|
||||||
ep->qp.ctx_base = ioremap_nocache(reg_base + reg_off,
|
ep->qp.ctx_base = ioremap_nocache(ep->hba->reg_base + reg_off,
|
||||||
MB_KERNEL_CTX_SIZE);
|
MB_KERNEL_CTX_SIZE);
|
||||||
if (!ep->qp.ctx_base)
|
if (!ep->qp.ctx_base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -811,13 +811,13 @@ struct bnx2i_hba *bnx2i_alloc_hba(struct cnic_dev *cnic)
|
|||||||
bnx2i_identify_device(hba);
|
bnx2i_identify_device(hba);
|
||||||
bnx2i_setup_host_queue_size(hba, shost);
|
bnx2i_setup_host_queue_size(hba, shost);
|
||||||
|
|
||||||
|
hba->reg_base = pci_resource_start(hba->pcidev, 0);
|
||||||
if (test_bit(BNX2I_NX2_DEV_5709, &hba->cnic_dev_type)) {
|
if (test_bit(BNX2I_NX2_DEV_5709, &hba->cnic_dev_type)) {
|
||||||
hba->regview = ioremap_nocache(hba->netdev->base_addr,
|
hba->regview = pci_iomap(hba->pcidev, 0, BNX2_MQ_CONFIG2);
|
||||||
BNX2_MQ_CONFIG2);
|
|
||||||
if (!hba->regview)
|
if (!hba->regview)
|
||||||
goto ioreg_map_err;
|
goto ioreg_map_err;
|
||||||
} else if (test_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type)) {
|
} else if (test_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type)) {
|
||||||
hba->regview = ioremap_nocache(hba->netdev->base_addr, 4096);
|
hba->regview = pci_iomap(hba->pcidev, 0, 4096);
|
||||||
if (!hba->regview)
|
if (!hba->regview)
|
||||||
goto ioreg_map_err;
|
goto ioreg_map_err;
|
||||||
}
|
}
|
||||||
@ -884,7 +884,7 @@ cid_que_err:
|
|||||||
bnx2i_free_mp_bdt(hba);
|
bnx2i_free_mp_bdt(hba);
|
||||||
mp_bdt_mem_err:
|
mp_bdt_mem_err:
|
||||||
if (hba->regview) {
|
if (hba->regview) {
|
||||||
iounmap(hba->regview);
|
pci_iounmap(hba->pcidev, hba->regview);
|
||||||
hba->regview = NULL;
|
hba->regview = NULL;
|
||||||
}
|
}
|
||||||
ioreg_map_err:
|
ioreg_map_err:
|
||||||
@ -910,7 +910,7 @@ void bnx2i_free_hba(struct bnx2i_hba *hba)
|
|||||||
pci_dev_put(hba->pcidev);
|
pci_dev_put(hba->pcidev);
|
||||||
|
|
||||||
if (hba->regview) {
|
if (hba->regview) {
|
||||||
iounmap(hba->regview);
|
pci_iounmap(hba->pcidev, hba->regview);
|
||||||
hba->regview = NULL;
|
hba->regview = NULL;
|
||||||
}
|
}
|
||||||
bnx2i_free_mp_bdt(hba);
|
bnx2i_free_mp_bdt(hba);
|
||||||
|
Loading…
Reference in New Issue
Block a user