Hi Philip, Philip Guo napisaĆ(a): > Hi, > > I am a graduate student working on finding bugs in Linux drivers using > an automated research tool. I think I've found a possible bug in > net/tc35815.c, and I'd appreciate it if you could confirm/disconfirm it. > > Thanks, > Philip > > --- > net/tc35815.c > > tc35815_driver is never unregistered in tc35815_cleanup_module() > > static int __init tc35815_init_module(void) > { > return pci_register_driver(&tc35815_driver); > } > > static void __exit tc35815_cleanup_module(void) > { > struct net_device *next_dev; > > while (root_tc35815_dev) { > struct net_device *dev = root_tc35815_dev; > next_dev = ((struct tc35815_local *)dev->priv)->next_module; > iounmap((void *)(dev->base_addr)); > unregister_netdev(dev); > free_netdev(dev); > root_tc35815_dev = next_dev; > } > } > >
I think that you are right, but I don't know this code. Jeff, what do you think about this? Regards, Michal PS. Philip, please sign this patch. -- Michal K. K. Piotrowski LTG - Linux Testers Group (PL) (http://www.stardust.webpages.pl/ltg/) LTG - Linux Testers Group (EN) (http://www.stardust.webpages.pl/linux_testers_group_en/) Signed-off-by: Michal Piotrowski <[EMAIL PROTECTED]> --- linux-mm-clean/drivers/net/tc35815.c 2007-02-04 19:44:54.000000000 +0100 +++ linux-mm/drivers/net/tc35815.c 2007-02-24 13:07:34.000000000 +0100 @@ -1740,6 +1740,8 @@ static void __exit tc35815_cleanup_modul free_netdev(dev); root_tc35815_dev = next_dev; } + + pci_unregister_driver(&tc35815_driver); } module_init(tc35815_init_module); module_exit(tc35815_cleanup_module); - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html