hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/scsi/fcoe/fcoe_sysfs.c
....@@ -830,14 +830,15 @@
830830
831831 dev_set_name(&ctlr->dev, "ctlr_%d", ctlr->id);
832832 error = device_register(&ctlr->dev);
833
- if (error)
834
- goto out_del_q2;
833
+ if (error) {
834
+ destroy_workqueue(ctlr->devloss_work_q);
835
+ destroy_workqueue(ctlr->work_q);
836
+ put_device(&ctlr->dev);
837
+ return NULL;
838
+ }
835839
836840 return ctlr;
837841
838
-out_del_q2:
839
- destroy_workqueue(ctlr->devloss_work_q);
840
- ctlr->devloss_work_q = NULL;
841842 out_del_q:
842843 destroy_workqueue(ctlr->work_q);
843844 ctlr->work_q = NULL;
....@@ -1036,16 +1037,16 @@
10361037 fcf->selected = new_fcf->selected;
10371038
10381039 error = device_register(&fcf->dev);
1039
- if (error)
1040
- goto out_del;
1040
+ if (error) {
1041
+ put_device(&fcf->dev);
1042
+ goto out;
1043
+ }
10411044
10421045 fcf->state = FCOE_FCF_STATE_CONNECTED;
10431046 list_add_tail(&fcf->peers, &ctlr->fcfs);
10441047
10451048 return fcf;
10461049
1047
-out_del:
1048
- kfree(fcf);
10491050 out:
10501051 return NULL;
10511052 }