diff options
| author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2014-12-03 16:40:30 -0500 |
|---|---|---|
| committer | David Vrabel <david.vrabel@citrix.com> | 2014-12-04 07:42:01 -0500 |
| commit | c1a04339e55d808d328d28e3526df31e80b55383 (patch) | |
| tree | 2bd3e307984eabd271f8112069aabe685740e2ee | |
| parent | 15390613b6554b554205d6d76cbbbb4a018a9ce4 (diff) | |
xen/pciback: Remove tons of dereferences
A little cleanup. No functional difference.
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
| -rw-r--r-- | 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 e5ff09d8a242..843a2baffc2b 100644 --- a/drivers/xen/xen-pciback/pci_stub.c +++ b/drivers/xen/xen-pciback/pci_stub.c | |||
| @@ -631,10 +631,12 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev, | |||
| 631 | { | 631 | { |
| 632 | pci_ers_result_t res = result; | 632 | pci_ers_result_t res = result; |
| 633 | struct xen_pcie_aer_op *aer_op; | 633 | struct xen_pcie_aer_op *aer_op; |
| 634 | struct xen_pcibk_device *pdev = psdev->pdev; | ||
| 635 | struct xen_pci_sharedinfo *sh_info = pdev->sh_info; | ||
| 634 | int ret; | 636 | int ret; |
| 635 | 637 | ||
| 636 | /*with PV AER drivers*/ | 638 | /*with PV AER drivers*/ |
| 637 | aer_op = &(psdev->pdev->sh_info->aer_op); | 639 | aer_op = &(sh_info->aer_op); |
| 638 | aer_op->cmd = aer_cmd ; | 640 | aer_op->cmd = aer_cmd ; |
| 639 | /*useful for error_detected callback*/ | 641 | /*useful for error_detected callback*/ |
| 640 | aer_op->err = state; | 642 | aer_op->err = state; |
| @@ -655,36 +657,36 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev, | |||
| 655 | * this flag to judge whether we need to check pci-front give aer | 657 | * this flag to judge whether we need to check pci-front give aer |
| 656 | * service ack signal | 658 | * service ack signal |
| 657 | */ | 659 | */ |
| 658 | set_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags); | 660 | set_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags); |
| 659 | 661 | ||
| 660 | /*It is possible that a pcifront conf_read_write ops request invokes | 662 | /*It is possible that a pcifront conf_read_write ops request invokes |
| 661 | * the callback which cause the spurious execution of wake_up. | 663 | * the callback which cause the spurious execution of wake_up. |
| 662 | * Yet it is harmless and better than a spinlock here | 664 | * Yet it is harmless and better than a spinlock here |
| 663 | */ | 665 | */ |
| 664 | set_bit(_XEN_PCIB_active, | 666 | set_bit(_XEN_PCIB_active, |
| 665 | (unsigned long *)&psdev->pdev->sh_info->flags); | 667 | (unsigned long *)&sh_info->flags); |
| 666 | wmb(); | 668 | wmb(); |
| 667 | notify_remote_via_irq(psdev->pdev->evtchn_irq); | 669 | notify_remote_via_irq(pdev->evtchn_irq); |
| 668 | 670 | ||
| 669 | ret = wait_event_timeout(xen_pcibk_aer_wait_queue, | 671 | ret = wait_event_timeout(xen_pcibk_aer_wait_queue, |
| 670 | !(test_bit(_XEN_PCIB_active, (unsigned long *) | 672 | !(test_bit(_XEN_PCIB_active, (unsigned long *) |
| 671 | &psdev->pdev->sh_info->flags)), 300*HZ); | 673 | &sh_info->flags)), 300*HZ); |
| 672 | 674 | ||
| 673 | if (!ret) { | 675 | if (!ret) { |
| 674 | if (test_bit(_XEN_PCIB_active, | 676 | if (test_bit(_XEN_PCIB_active, |
| 675 | (unsigned long *)&psdev->pdev->sh_info->flags)) { | 677 | (unsigned long *)&sh_info->flags)) { |
| 676 | dev_err(&psdev->dev->dev, | 678 | dev_err(&psdev->dev->dev, |
| 677 | "pcifront aer process not responding!\n"); | 679 | "pcifront aer process not responding!\n"); |
| 678 | clear_bit(_XEN_PCIB_active, | 680 | clear_bit(_XEN_PCIB_active, |
| 679 | (unsigned long *)&psdev->pdev->sh_info->flags); | 681 | (unsigned long *)&sh_info->flags); |
| 680 | aer_op->err = PCI_ERS_RESULT_NONE; | 682 | aer_op->err = PCI_ERS_RESULT_NONE; |
| 681 | return res; | 683 | return res; |
| 682 | } | 684 | } |
| 683 | } | 685 | } |
| 684 | clear_bit(_PCIB_op_pending, (unsigned long *)&psdev->pdev->flags); | 686 | clear_bit(_PCIB_op_pending, (unsigned long *)&pdev->flags); |
| 685 | 687 | ||
| 686 | if (test_bit(_XEN_PCIF_active, | 688 | if (test_bit(_XEN_PCIF_active, |
| 687 | (unsigned long *)&psdev->pdev->sh_info->flags)) { | 689 | (unsigned long *)&sh_info->flags)) { |
| 688 | dev_dbg(&psdev->dev->dev, | 690 | dev_dbg(&psdev->dev->dev, |
| 689 | "schedule pci_conf service in " DRV_NAME "\n"); | 691 | "schedule pci_conf service in " DRV_NAME "\n"); |
| 690 | xen_pcibk_test_and_schedule_op(psdev->pdev); | 692 | xen_pcibk_test_and_schedule_op(psdev->pdev); |
