Kernelnewbies Digest, Vol 37, Issue 37
From: Frank Martinez <hidden>
Date: 2013-12-28 21:23:25
unsubscribe On Sat, Dec 28, 2013 at 12:00 PM, [off-list ref]wrote:
Send Kernelnewbies mailing list submissions to kernelnewbies at kernelnewbies.org To subscribe or unsubscribe via the World Wide Web, visit http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies or, via email, send a message with subject or body 'help' to kernelnewbies-request at kernelnewbies.org You can reach the person managing the list at kernelnewbies-owner at kernelnewbies.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Kernelnewbies digest..." Today's Topics: 1. Re: Can't cleanly unload driver (Valdis.Kletnieks at vt.edu) ---------------------------------------------------------------------- Message: 1 Date: Sat, 28 Dec 2013 00:13:08 -0500 From: Valdis.Kletnieks at vt.edu Subject: Re: Can't cleanly unload driver To: Eric Fowler <redacted> Cc: kernelnewbies at kernelnewbies.org Message-ID: [ref] Content-Type: text/plain; charset="us-ascii" On Fri, 27 Dec 2013 19:33:50 -0800, Eric Fowler said:quoted
I suspect I am doing something wrong in the code with register/unregister_chrdev(), but I have been over that code a million times. It looks fine. Now: insmod the device, OK rmmod the device, OK Check /proc/devices , device # is present insmod the device again, fails with ERROR: could not insert module ./foobar.ko: Device or resource busyIt does smell like an unregister issue. You may want to try adding printk() calls to print out the return code from register and unregister. I'm willing to bet that (a) the unegister is failing because somebody still has a reference on the device, and (b) the second register call fails because the device already exists, causing your module_init() to bail out. The fun is that you may not have taken a reference on the device directly yourself - you may have called some other get_foo() that ends up taking an implicit reference under the covers, causing issues when you fail to call put_foo() at the right place... -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 848 bytes Desc: not available Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131228/292e4d34/attachment-0001.bin ------------------------------ _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies End of Kernelnewbies Digest, Vol 37, Issue 37 *********************************************
-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131228/d7a09856/attachment.html