[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v4 5/5] xen/pciback: Remove tons of dereferences



From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

A little cleanup. No functional difference.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 drivers/xen/xen-pciback/pci_stub.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/xen/xen-pciback/pci_stub.c 
b/drivers/xen/xen-pciback/pci_stub.c
index efcb73b..cf0b3c1 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -630,10 +630,12 @@ static pci_ers_result_t common_process(struct 
pcistub_device *psdev,
 {
        pci_ers_result_t res = result;
        struct xen_pcie_aer_op *aer_op;
+       struct xen_pcibk_device *pdev = psdev->pdev;
+       struct xen_pci_sharedinfo *sh_info = pdev->sh_info;
        int ret;
 
        /*with PV AER drivers*/
-       aer_op = &(psdev->pdev->sh_info->aer_op);
+       aer_op = &(sh_info->aer_op);
        aer_op->cmd = aer_cmd ;
        /*useful for error_detected callback*/
        aer_op->err = state;
@@ -654,36 +656,36 @@ static pci_ers_result_t common_process(struct 
pcistub_device *psdev,
        * this flag to judge whether we need to check pci-front give aer
        * service ack signal
        */
-       set_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
+       set_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags);
 
        /*It is possible that a pcifront conf_read_write ops request invokes
        * the callback which cause the spurious execution of wake_up.
        * Yet it is harmless and better than a spinlock here
        */
        set_bit(_XEN_PCIB_active,
-               (unsigned long *)&psdev->pdev->sh_info->flags);
+               (unsigned long *)&sh_info->flags);
        wmb();
-       notify_remote_via_irq(psdev->pdev->evtchn_irq);
+       notify_remote_via_irq(pdev->evtchn_irq);
 
        ret = wait_event_timeout(xen_pcibk_aer_wait_queue,
                                 !(test_bit(_XEN_PCIB_active, (unsigned long *)
-                                &psdev->pdev->sh_info->flags)), 300*HZ);
+                                &sh_info->flags)), 300*HZ);
 
        if (!ret) {
                if (test_bit(_XEN_PCIB_active,
-                       (unsigned long *)&psdev->pdev->sh_info->flags)) {
+                       (unsigned long *)&sh_info->flags)) {
                        dev_err(&psdev->dev->dev,
                                "pcifront aer process not responding!\n");
                        clear_bit(_XEN_PCIB_active,
-                         (unsigned long *)&psdev->pdev->sh_info->flags);
+                         (unsigned long *)&sh_info->flags);
                        aer_op->err = PCI_ERS_RESULT_NONE;
                        return res;
                }
        }
-       clear_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags);
+       clear_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags);
 
        if (test_bit(_XEN_PCIF_active,
-               (unsigned long *)&psdev->pdev->sh_info->flags)) {
+               (unsigned long *)&sh_info->flags)) {
                dev_dbg(&psdev->dev->dev,
                        "schedule pci_conf service in " DRV_NAME "\n");
                xen_pcibk_test_and_schedule_op(psdev->pdev);
-- 
1.7.7.6


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.