Subject: Re: possible bug in net/tc35815.c in linux-2.6.19

From: Michal Piotrowski <[email-masked]>
Date: Sat, 24 Feb 2007 13:37:55 +0100

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-masked]>

--- 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);