--- 1eac626e710a38dddab8673b1cc5f751a1df7366 +++ 68e4cd7d321ac7715a5bf47420ce1bc0c4bc8639 @@ -284,8 +284,11 @@ enclosure_component_register(struct encl cdev->groups = enclosure_groups; err = device_register(cdev); - if (err) - ERR_PTR(err); + if (err) { + ecomp->number = -1; + put_device(cdev); + return ERR_PTR(err); + } return ecomp; }