diff options
author | Kulikov Vasiliy <segooon@gmail.com> | 2010-08-03 01:43:18 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-08-04 19:18:03 -0400 |
commit | 889635fd6b269963f7e68b53c9f0f60c8008a77f (patch) | |
tree | cc8c3c459a82d71c1c15a056961b23f81e540e6e /drivers/net/via-velocity.c | |
parent | 7a0c2029d655e03499b1e2a3daeeab6a56d72b87 (diff) |
via-velocity: do not use PCI resources before pci_enable_device()
IRQ and resource[] may not have correct values until
after PCI hotplug setup occurs at pci_enable_device() time.
The semantic match that finds this problem is as follows:
// <smpl>
@@
identifier x;
identifier request ~= "pci_request.*|pci_resource.*";
@@
(
* x->irq
|
* x->resource
|
* request(x, ...)
)
...
*pci_enable_device(x)
// </smpl>
Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/via-velocity.c')
-rw-r--r-- | drivers/net/via-velocity.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c index 42dffd3e5795..fd69095ef6e3 100644 --- a/drivers/net/via-velocity.c +++ b/drivers/net/via-velocity.c | |||
@@ -2763,12 +2763,12 @@ static int __devinit velocity_found1(struct pci_dev *pdev, const struct pci_devi | |||
2763 | 2763 | ||
2764 | vptr->dev = dev; | 2764 | vptr->dev = dev; |
2765 | 2765 | ||
2766 | dev->irq = pdev->irq; | ||
2767 | |||
2768 | ret = pci_enable_device(pdev); | 2766 | ret = pci_enable_device(pdev); |
2769 | if (ret < 0) | 2767 | if (ret < 0) |
2770 | goto err_free_dev; | 2768 | goto err_free_dev; |
2771 | 2769 | ||
2770 | dev->irq = pdev->irq; | ||
2771 | |||
2772 | ret = velocity_get_pci_info(vptr, pdev); | 2772 | ret = velocity_get_pci_info(vptr, pdev); |
2773 | if (ret < 0) { | 2773 | if (ret < 0) { |
2774 | /* error message already printed */ | 2774 | /* error message already printed */ |