Thread (1 message) 1 message, 1 author, 2013-12-28

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 busy
It 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 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help