diff options
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/i7core_edac.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c index d64ac2ccc0bc..567ee18d9d3f 100644 --- a/drivers/edac/i7core_edac.c +++ b/drivers/edac/i7core_edac.c @@ -1300,12 +1300,13 @@ static unsigned i7core_pci_lastbus(void) * * Need to 'get' device 16 func 1 and func 2 */ -int i7core_get_onedevice(struct pci_dev **prev, const int devno, - const struct pci_id_descr *dev_descr, - const unsigned n_devs, - const unsigned last_bus) +static int i7core_get_onedevice(struct pci_dev **prev, + const struct pci_id_table *table, + const unsigned devno, + const unsigned last_bus) { struct i7core_dev *i7core_dev; + const struct pci_id_descr *dev_descr = &table->descr[devno]; struct pci_dev *pdev = NULL; u8 bus = 0; @@ -1357,14 +1358,14 @@ int i7core_get_onedevice(struct pci_dev **prev, const int devno, i7core_dev = kzalloc(sizeof(*i7core_dev), GFP_KERNEL); if (!i7core_dev) return -ENOMEM; - i7core_dev->pdev = kzalloc(sizeof(*i7core_dev->pdev) * n_devs, - GFP_KERNEL); + i7core_dev->pdev = kzalloc(sizeof(*i7core_dev->pdev) + * table->n_devs, GFP_KERNEL); if (!i7core_dev->pdev) { kfree(i7core_dev); return -ENOMEM; } i7core_dev->socket = socket; - i7core_dev->n_devs = n_devs; + i7core_dev->n_devs = table->n_devs; list_add_tail(&i7core_dev->list, &i7core_edac_list); } @@ -1416,18 +1417,14 @@ static int i7core_get_devices(const struct pci_id_table *table) { int i, rc, last_bus; struct pci_dev *pdev = NULL; - const struct pci_id_descr *dev_descr; last_bus = i7core_pci_lastbus(); while (table && table->descr) { - dev_descr = table->descr; for (i = 0; i < table->n_devs; i++) { pdev = NULL; do { - rc = i7core_get_onedevice(&pdev, i, - &dev_descr[i], - table->n_devs, + rc = i7core_get_onedevice(&pdev, table, i, last_bus); if (rc < 0) { if (i == 0) { |