Trouble removing character device

Kai Meyer kai at gnukai.com
Thu Oct 20 11:41:41 EDT 2011


I do call unregister_chrdev_region. There are 5 functions in my original 
email that I call during the life of my module. Still no luck.

-Kai Meyer

On 10/19/2011 09:47 PM, rohan puri wrote:
>
>
> On Thu, Oct 20, 2011 at 2:25 AM, Kai Meyer <kai at gnukai.com 
> <mailto:kai at gnukai.com>> wrote:
>
>     Unfortunately I can't share the source code, it belongs to the
>     company I
>     work for.
>
>     All of cdev_init, cdev_del, and unregister_chrdev_region are void
>     functions, so they have no return value.
>
>     I check the return value of alloc_chrdev_region and cdev_add and check
>     for errors with BUG_ON (for now).
>
>     -Kai Meyer
>
>     On 10/19/2011 02:18 PM, Daniel Baluta wrote:
>     > On Wed, Oct 19, 2011 at 7:04 PM, Kai Meyer<kai at gnukai.com
>     <mailto:kai at gnukai.com>>  wrote:
>     >> I can't seem to get my character device to remove itself from the
>     >> /proc/devices list. I'm calling all of the following functions
>     like so:
>     >>
>     >> alloc_chrdev_region(&dev, 0, 5, "my_char");
>     >> cdev_init(&my_cdev,&my_ops);
>     >> cdev_add(&my_cdev, MKDEV(my_major, my_minor), 1);
>     >> cdev_del(&my_cdev);
>     >> unregister_chrdev_region(my_major, 5);
>     >>
>     >> It seems like I'm missing something, but I can't find it. I'm
>     >> referencing the Linux Device Drivers v3, chapter 3. In the
>     example code,
>     >> the scull_cleanup_module function calls cdev_dell and
>     >> unregister_chrdev_region, just like I do.
>     >>
>     >> To be clear, after I unload my module (after calling cdev_del and
>     >> unregister_chrdev_region), my "my_char" string still shows up in
>     >> /proc/devices.
>     > Did you check  return codes for all functions?
>     > Also, can you post a link to the code?
>     >
>     > thanks,
>     > Daniel.
>     >
>     > _______________________________________________
>     > Kernelnewbies mailing list
>     > Kernelnewbies at kernelnewbies.org
>     <mailto:Kernelnewbies at kernelnewbies.org>
>     > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>     _______________________________________________
>     Kernelnewbies mailing list
>     Kernelnewbies at kernelnewbies.org
>     <mailto:Kernelnewbies at kernelnewbies.org>
>     http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
> During cleanup i think you need to call function 
> unregister_chrdev_region().
>
> Regards,
> Rohan Puri
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111020/6df5dea6/attachment.html 


More information about the Kernelnewbies mailing list