.. | .. |
---|
959 | 959 | * if it returns an error! |
---|
960 | 960 | */ |
---|
961 | 961 | if ((rc = cxl_register_afu(afu))) |
---|
962 | | - goto err_put1; |
---|
| 962 | + goto err_put_dev; |
---|
963 | 963 | |
---|
964 | 964 | if ((rc = cxl_sysfs_afu_add(afu))) |
---|
965 | | - goto err_put1; |
---|
| 965 | + goto err_del_dev; |
---|
966 | 966 | |
---|
967 | 967 | /* |
---|
968 | 968 | * pHyp doesn't expose the programming models supported by the |
---|
.. | .. |
---|
978 | 978 | afu->modes_supported = CXL_MODE_DIRECTED; |
---|
979 | 979 | |
---|
980 | 980 | if ((rc = cxl_afu_select_best_mode(afu))) |
---|
981 | | - goto err_put2; |
---|
| 981 | + goto err_remove_sysfs; |
---|
982 | 982 | |
---|
983 | 983 | adapter->afu[afu->slice] = afu; |
---|
984 | 984 | |
---|
.. | .. |
---|
998 | 998 | |
---|
999 | 999 | return 0; |
---|
1000 | 1000 | |
---|
1001 | | -err_put2: |
---|
| 1001 | +err_remove_sysfs: |
---|
1002 | 1002 | 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); |
---|
1005 | 1007 | free = false; |
---|
1006 | 1008 | guest_release_serr_irq(afu); |
---|
1007 | 1009 | err2: |
---|
.. | .. |
---|
1135 | 1137 | * even if it returns an error! |
---|
1136 | 1138 | */ |
---|
1137 | 1139 | if ((rc = cxl_register_adapter(adapter))) |
---|
1138 | | - goto err_put1; |
---|
| 1140 | + goto err_put_dev; |
---|
1139 | 1141 | |
---|
1140 | 1142 | if ((rc = cxl_sysfs_adapter_add(adapter))) |
---|
1141 | | - goto err_put1; |
---|
| 1143 | + goto err_del_dev; |
---|
1142 | 1144 | |
---|
1143 | 1145 | /* release the context lock as the adapter is configured */ |
---|
1144 | 1146 | cxl_adapter_context_unlock(adapter); |
---|
1145 | 1147 | |
---|
1146 | 1148 | return adapter; |
---|
1147 | 1149 | |
---|
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); |
---|
1150 | 1154 | free = false; |
---|
1151 | 1155 | cxl_guest_remove_chardev(adapter); |
---|
1152 | 1156 | err1: |
---|