PCI: dwc: Clean up computing of msix_tbl
authorJiri Slaby <jslaby@suse.cz>
Mon, 20 Apr 2020 06:52:27 +0000 (08:52 +0200)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 5 May 2020 09:55:54 +0000 (10:55 +0100)
Commit 6f5e193bfb55 ("PCI: dwc: Fix dw_pcie_ep_raise_msix_irq() to get
correct MSI-X table address") overcomplicated the computation of the
msix_tbl address. Simplify it as it's simply the addr + offset. Provided
addr is (void *) already.

objdump -d shows no difference after this patch.

Link: https://lore.kernel.org/r/20200420065227.4920-1-jslaby@suse.cz
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/dwc/pcie-designware-ep.c

index 1cdcbd102ce86830a424bd790bd653717b3eb578..c815d36905b6bb8519900b30f29658ee945f37c4 100644 (file)
@@ -433,7 +433,6 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
        struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
        struct pci_epf_msix_tbl *msix_tbl;
        struct pci_epc *epc = ep->epc;
-       struct pci_epf_bar *epf_bar;
        u32 reg, msg_data, vec_ctrl;
        unsigned int aligned_offset;
        u32 tbl_offset;
@@ -446,10 +445,7 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
        bir = (tbl_offset & PCI_MSIX_TABLE_BIR);
        tbl_offset &= PCI_MSIX_TABLE_OFFSET;
 
-       epf_bar = ep->epf_bar[bir];
-       msix_tbl = epf_bar->addr;
-       msix_tbl = (struct pci_epf_msix_tbl *)((char *)msix_tbl + tbl_offset);
-
+       msix_tbl = ep->epf_bar[bir]->addr + tbl_offset;
        msg_addr = msix_tbl[(interrupt_num - 1)].msg_addr;
        msg_data = msix_tbl[(interrupt_num - 1)].msg_data;
        vec_ctrl = msix_tbl[(interrupt_num - 1)].vector_ctrl;