I don't get it. If do_ioctl runs inside rtnl_lock, why do I have to run register_netdevice with rtnl_lock held ? if I run register_netdevice from do_ioctl, I get the "assertion failed..." and if I run register_netdev instead I get a "trying to schedule in interrupt..." panic. -----Original Message----- From: Jeff Garzik [mailto:jgarzik@mandrakesoft.com] Sent: Sunday, November 12, 2000 2:18 PM To: Hen, Shmulik Cc: 'LNML'; 'LKML'; netdev@oss.sgi.com Subject: Re: catch 22 - porting net driver from 2.2 to 2.4 "Hen, Shmulik" wrote: > > So how come I get the "RTNL: assertion failed at > devinet.c(775):inetdev_event" when I call register_netdevice without > rtnl_lock/unlock ? Uh. Don't do that. You MUST call register_netdevice with rtnl_lock held. > and what about rmmod causing the panic when I use unregister_netdev or never > completing the operation when I use unregister_netdevice ? > does module_exit run inside rtnl_lock too ? module_exit does not run inside rtnl_lock. Theoretically, if you call unregister_netdev from rmmon, it should grab rtnl_lock and then complete the operation for you. If that doesn't work for you, it sounds like you are not setting up, or cleaning up, something correctly. Basically... it sounds like there are still bugs in your driver that need working out :) Jeff -- Jeff Garzik | Building 1024 | Would you like a Twinkie? MandrakeSoft | - : send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org