Messages in this thread |  | | Date | Mon, 17 Dec 2001 14:45:49 -0800 | Subject | Re: [BUG()] IrDA in 2.4.16 + preempt | From | Jean Tourrilhes <> |
| |
On Mon, Dec 17, 2001 at 10:28:45AM +0100, Martin Diehl wrote: > > [Jean added to CC] > > On Fri, 14 Dec 2001, Pawel Kot wrote: > > > I found an annoying problem with irda on 2.4.16. > > When I remove irlan module I get sementation fault: > > root@blurp:~# rmmod irlan > > Dec 14 02:27:35 blurp kernel: kernel BUG at slab.c:1200! > > Dec 14 02:27:35 blurp kernel: invalid operand: 0000 > > Dec 14 02:27:35 blurp kernel: CPU: 0 > > Dec 14 02:27:35 blurp kernel: EIP: 0010:[kmem_extra_free_checks+81/140] Not tainted > [...] > > Dec 14 02:27:35 blurp kernel: Process rmmod (pid: 110, stackpage=cc045000) > [..] > > Dec 14 02:27:35 blurp kernel: Call Trace:
Where is this comming from ? Was it sent to the IrDA mailing list ?
> [kfree+450/576] > [netdev_finish_unregister+145/152] > [unregister_netdevice+451/632] > [unregister_netdev+16/40] > > Seems some inconsistency in the way how the irlan netdev is handled: > having NETIF_F_DYNALLOC set for a netdev which is not allocated as an > independent object doesn't seem to be a good idea to me ;-) > > The patch below simply removes NETIF_F_DYNALLOC just before calling > unregister_netdev() und should fix the issue. It's untested however, > since I'm unable to reproduce the Oops on UP without preempt (but it > should be there as well, due to ipfrag_time for example). At least it > compiles and doesn't do any harm to me.
Why don't you just fix irlan_eth_init() ? The NETIF_F_DYNALLOC is only used in the unregister_netdevice() functions (check your kernel), so it's cleaner to never set the flag in the first place.
Also : I suspect the Dag added this flag as a workaround for some refcount problem, because with it the code does one more unref that without. So, I suspect the refcount is broken. By the way, this flag doesn't change the behaviour as far as waiting for people that hold some refcount on the device.
> IMHO, retiring dynalloc is just some sort of band-aid because I do > believe, using it would be a good idea - but would need some more > changes for irlan.
No, that the right way. NETIF_F_DYNALLOC is only ever used for that. One the other hand, you might need to fix the refcount.
> Btw., I'm not sure about the status of irlan - I'm only using ppp over > ircomm or irnet.
Same for me.
> HTH > Martin
Have fun...
Jean - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |