hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/misc/cxl/guest.c
....@@ -959,10 +959,10 @@
959959 * if it returns an error!
960960 */
961961 if ((rc = cxl_register_afu(afu)))
962
- goto err_put1;
962
+ goto err_put_dev;
963963
964964 if ((rc = cxl_sysfs_afu_add(afu)))
965
- goto err_put1;
965
+ goto err_del_dev;
966966
967967 /*
968968 * pHyp doesn't expose the programming models supported by the
....@@ -978,7 +978,7 @@
978978 afu->modes_supported = CXL_MODE_DIRECTED;
979979
980980 if ((rc = cxl_afu_select_best_mode(afu)))
981
- goto err_put2;
981
+ goto err_remove_sysfs;
982982
983983 adapter->afu[afu->slice] = afu;
984984
....@@ -998,10 +998,12 @@
998998
999999 return 0;
10001000
1001
-err_put2:
1001
+err_remove_sysfs:
10021002 cxl_sysfs_afu_remove(afu);
1003
-err_put1:
1004
- device_unregister(&afu->dev);
1003
+err_del_dev:
1004
+ device_del(&afu->dev);
1005
+err_put_dev:
1006
+ put_device(&afu->dev);
10051007 free = false;
10061008 guest_release_serr_irq(afu);
10071009 err2:
....@@ -1135,18 +1137,20 @@
11351137 * even if it returns an error!
11361138 */
11371139 if ((rc = cxl_register_adapter(adapter)))
1138
- goto err_put1;
1140
+ goto err_put_dev;
11391141
11401142 if ((rc = cxl_sysfs_adapter_add(adapter)))
1141
- goto err_put1;
1143
+ goto err_del_dev;
11421144
11431145 /* release the context lock as the adapter is configured */
11441146 cxl_adapter_context_unlock(adapter);
11451147
11461148 return adapter;
11471149
1148
-err_put1:
1149
- device_unregister(&adapter->dev);
1150
+err_del_dev:
1151
+ device_del(&adapter->dev);
1152
+err_put_dev:
1153
+ put_device(&adapter->dev);
11501154 free = false;
11511155 cxl_guest_remove_chardev(adapter);
11521156 err1: