there is a little memory leak in i2c-ali15x3.c .
You can reproduce the BUG as follows:
In a PC with no such device unloading i2c-ali15x3 cause an oops in release_region.
I've fixed by moving release_region() from i2c_ali15x3_exit() to ali15x3_remove().
static void __devexit ali15x3_remove(struct pci_dev *dev)
{
i2c_del_adapter(&ali15x3_adapter);
+ release_region(ali15x3_smba, ALI15X3_SMB_IOSIZE);
}
static struct pci_driver ali15x3_driver = {
static void __exit i2c_ali15x3_exit(void)
{
pci_unregister_driver(&ali15x3_driver);
- release_region(ali15x3_smba, ALI15X3_SMB_IOSIZE);
}
MODULE_AUTHOR ("Frodo Looijaard <frodol@dds.nl>, "