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

Reply via email to