X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fbase%2Fclass.c;h=70be974509c3dd87ffda05c8900c3917815459b6;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=2693bb5455f4fe08666a48a3d2ba0a65bbd5999e;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/drivers/base/class.c b/drivers/base/class.c index 2693bb545..70be97450 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c @@ -349,14 +349,19 @@ void class_device_initialize(struct class_device *class_dev) int class_device_add(struct class_device *class_dev) { - struct class * parent; + struct class * parent = NULL; struct class_interface * class_intf; int error; class_dev = class_device_get(class_dev); - if (!class_dev || !strlen(class_dev->class_id)) + if (!class_dev) return -EINVAL; + if (!strlen(class_dev->class_id)) { + error = -EINVAL; + goto register_done; + } + parent = class_get(class_dev->class); pr_debug("CLASS: registering class device: ID = '%s'\n",