Thread (6 messages) 6 messages, 5 authors, 2007-02-27

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

From: Ralf Baechle <hidden>
Date: 2007-02-26 10:28:06
Also in: linux-mips

On Sat, Feb 24, 2007 at 05:04:01PM -0500, Jeff Garzik wrote:
quoted
quoted
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
I created my own patch for this (and one other bug), and checked it in.

Really, though, someone in MIPS-land should give this driver some loving 
care.  It is filled with bugs and 2.4-era anachronisms.
Took a look at it.  It's sort of a non-bug because the driver cannot be
compiled as module, so the module_exit function cannot possibly be
executed.  The board support code is calling into the driver which makes
it impossible to build this driver as a module, yet it's possible to
select building this driver as a module ...  Oh yeah, that root_tc35815_dev
stuff is also pretty ugly.

Atsushi?

  Ralf
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help