mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
82de9a0cc3
While `pci_eisa_driver' still refer `pci_eisa_init', the .probe() function should not be called after init memory release, as pointed out by commit 74b9a297. The structure is still referenced in the drivers subsystem, and can be accesseed through sysfs, so the modpost warning is a false positive. Mark it as such. In the same time, the warning referenced in 005bdad7b80 did only mention `pci_eisa_driver', not `pci_eisa_pci_tbl', so remove its marking. Broken-by: Arnaud Lacombe <lacombar@gmail.com> (in 005bdad7b80) Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
67 lines
1.7 KiB
C
67 lines
1.7 KiB
C
/*
|
|
* Minimalist driver for a generic PCI-to-EISA bridge.
|
|
*
|
|
* (C) 2003 Marc Zyngier <maz@wild-wind.fr.eu.org>
|
|
*
|
|
* This code is released under the GPL version 2.
|
|
*
|
|
* Ivan Kokshaysky <ink@jurassic.park.msu.ru> :
|
|
* Generalisation from i82375 to PCI_CLASS_BRIDGE_EISA.
|
|
*/
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/device.h>
|
|
#include <linux/eisa.h>
|
|
#include <linux/pci.h>
|
|
#include <linux/module.h>
|
|
#include <linux/init.h>
|
|
|
|
/* There is only *one* pci_eisa device per machine, right ? */
|
|
static struct eisa_root_device pci_eisa_root;
|
|
|
|
static int __init pci_eisa_init(struct pci_dev *pdev,
|
|
const struct pci_device_id *ent)
|
|
{
|
|
int rc;
|
|
|
|
if ((rc = pci_enable_device (pdev))) {
|
|
printk (KERN_ERR "pci_eisa : Could not enable device %s\n",
|
|
pci_name(pdev));
|
|
return rc;
|
|
}
|
|
|
|
pci_eisa_root.dev = &pdev->dev;
|
|
pci_eisa_root.res = pdev->bus->resource[0];
|
|
pci_eisa_root.bus_base_addr = pdev->bus->resource[0]->start;
|
|
pci_eisa_root.slots = EISA_MAX_SLOTS;
|
|
pci_eisa_root.dma_mask = pdev->dma_mask;
|
|
dev_set_drvdata(pci_eisa_root.dev, &pci_eisa_root);
|
|
|
|
if (eisa_root_register (&pci_eisa_root)) {
|
|
printk (KERN_ERR "pci_eisa : Could not register EISA root\n");
|
|
return -1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static struct pci_device_id pci_eisa_pci_tbl[] = {
|
|
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
|
PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 },
|
|
{ 0, }
|
|
};
|
|
|
|
static struct pci_driver __refdata pci_eisa_driver = {
|
|
.name = "pci_eisa",
|
|
.id_table = pci_eisa_pci_tbl,
|
|
.probe = pci_eisa_init,
|
|
};
|
|
|
|
static int __init pci_eisa_init_module (void)
|
|
{
|
|
return pci_register_driver (&pci_eisa_driver);
|
|
}
|
|
|
|
device_initcall(pci_eisa_init_module);
|
|
MODULE_DEVICE_TABLE(pci, pci_eisa_pci_tbl);
|