if cdev_add() fails, do you need to "put" the cdev's kobject?
Robert P. J. Day
rpjday at crashcourse.ca
Tue May 3 17:46:05 EDT 2011
still perusing various drivers to use as examples in class, and i
ran across this snippet in the load routine of drivers/char/raw.c:
===== start excerpt =====
cdev_init(&raw_cdev, &raw_fops);
ret = cdev_add(&raw_cdev, dev, MAX_RAW_MINORS);
if (ret) {
kobject_put(&raw_cdev.kobj);
goto error_region;
}
===== end =====
of course it's wise to check the return code from cdev_add() to make
sure it worked, but is it really necessary to call kobject_put()
there? i don't recall other character drivers calling that if they
note that cdev_add() failed. it's probably harmless, but it can't be
necessary, can it? unless that driver is doing something unusual
somewhere else in its code.
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
More information about the Kernelnewbies
mailing list