forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 ee930fffee469d076998274a2ca55e13dc1efb67
kernel/drivers/misc/cxl/guest.c
....@@ -1,10 +1,6 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Copyright 2015 IBM Corp.
3
- *
4
- * This program is free software; you can redistribute it and/or
5
- * modify it under the terms of the GNU General Public License
6
- * as published by the Free Software Foundation; either version
7
- * 2 of the License, or (at your option) any later version.
84 */
95
106 #include <linux/spinlock.h>
....@@ -963,10 +959,10 @@
963959 * if it returns an error!
964960 */
965961 if ((rc = cxl_register_afu(afu)))
966
- goto err_put1;
962
+ goto err_put_dev;
967963
968964 if ((rc = cxl_sysfs_afu_add(afu)))
969
- goto err_put1;
965
+ goto err_del_dev;
970966
971967 /*
972968 * pHyp doesn't expose the programming models supported by the
....@@ -982,7 +978,7 @@
982978 afu->modes_supported = CXL_MODE_DIRECTED;
983979
984980 if ((rc = cxl_afu_select_best_mode(afu)))
985
- goto err_put2;
981
+ goto err_remove_sysfs;
986982
987983 adapter->afu[afu->slice] = afu;
988984
....@@ -1002,10 +998,12 @@
1002998
1003999 return 0;
10041000
1005
-err_put2:
1001
+err_remove_sysfs:
10061002 cxl_sysfs_afu_remove(afu);
1007
-err_put1:
1008
- device_unregister(&afu->dev);
1003
+err_del_dev:
1004
+ device_del(&afu->dev);
1005
+err_put_dev:
1006
+ put_device(&afu->dev);
10091007 free = false;
10101008 guest_release_serr_irq(afu);
10111009 err2:
....@@ -1139,18 +1137,20 @@
11391137 * even if it returns an error!
11401138 */
11411139 if ((rc = cxl_register_adapter(adapter)))
1142
- goto err_put1;
1140
+ goto err_put_dev;
11431141
11441142 if ((rc = cxl_sysfs_adapter_add(adapter)))
1145
- goto err_put1;
1143
+ goto err_del_dev;
11461144
11471145 /* release the context lock as the adapter is configured */
11481146 cxl_adapter_context_unlock(adapter);
11491147
11501148 return adapter;
11511149
1152
-err_put1:
1153
- device_unregister(&adapter->dev);
1150
+err_del_dev:
1151
+ device_del(&adapter->dev);
1152
+err_put_dev:
1153
+ put_device(&adapter->dev);
11541154 free = false;
11551155 cxl_guest_remove_chardev(adapter);
11561156 err1: