hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/drivers/mcb/mcb-core.c
....@@ -1,12 +1,9 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * MEN Chameleon Bus.
34 *
45 * Copyright (C) 2013 MEN Mikroelektronik GmbH (www.men.de)
56 * Author: Johannes Thumshirn <johannes.thumshirn@men.de>
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; version 2 of the License.
107 */
118 #include <linux/kernel.h>
129 #include <linux/module.h>
....@@ -74,8 +71,10 @@
7471
7572 get_device(dev);
7673 ret = mdrv->probe(mdev, found_id);
77
- if (ret)
74
+ if (ret) {
7875 module_put(carrier_mod);
76
+ put_device(dev);
77
+ }
7978
8079 return ret;
8180 }
....@@ -194,7 +193,7 @@
194193
195194 return driver_register(&drv->driver);
196195 }
197
-EXPORT_SYMBOL_GPL(__mcb_register_driver);
196
+EXPORT_SYMBOL_NS_GPL(__mcb_register_driver, MCB);
198197
199198 /**
200199 * mcb_unregister_driver() - Unregister a @mcb_driver from the system
....@@ -206,7 +205,7 @@
206205 {
207206 driver_unregister(&drv->driver);
208207 }
209
-EXPORT_SYMBOL_GPL(mcb_unregister_driver);
208
+EXPORT_SYMBOL_NS_GPL(mcb_unregister_driver, MCB);
210209
211210 static void mcb_release_dev(struct device *dev)
212211 {
....@@ -252,7 +251,7 @@
252251
253252 return ret;
254253 }
255
-EXPORT_SYMBOL_GPL(mcb_device_register);
254
+EXPORT_SYMBOL_NS_GPL(mcb_device_register, MCB);
256255
257256 static void mcb_free_bus(struct device *dev)
258257 {
....@@ -304,7 +303,7 @@
304303 put_device(&bus->dev);
305304 return ERR_PTR(rc);
306305 }
307
-EXPORT_SYMBOL_GPL(mcb_alloc_bus);
306
+EXPORT_SYMBOL_NS_GPL(mcb_alloc_bus, MCB);
308307
309308 static int __mcb_devices_unregister(struct device *dev, void *data)
310309 {
....@@ -326,7 +325,7 @@
326325 {
327326 mcb_devices_unregister(bus);
328327 }
329
-EXPORT_SYMBOL_GPL(mcb_release_bus);
328
+EXPORT_SYMBOL_NS_GPL(mcb_release_bus, MCB);
330329
331330 /**
332331 * mcb_bus_put() - Increment refcnt
....@@ -341,7 +340,7 @@
341340
342341 return bus;
343342 }
344
-EXPORT_SYMBOL_GPL(mcb_bus_get);
343
+EXPORT_SYMBOL_NS_GPL(mcb_bus_get, MCB);
345344
346345 /**
347346 * mcb_bus_put() - Decrement refcnt
....@@ -354,7 +353,7 @@
354353 if (bus)
355354 put_device(&bus->dev);
356355 }
357
-EXPORT_SYMBOL_GPL(mcb_bus_put);
356
+EXPORT_SYMBOL_NS_GPL(mcb_bus_put, MCB);
358357
359358 /**
360359 * mcb_alloc_dev() - Allocate a device
....@@ -374,7 +373,7 @@
374373
375374 return dev;
376375 }
377
-EXPORT_SYMBOL_GPL(mcb_alloc_dev);
376
+EXPORT_SYMBOL_NS_GPL(mcb_alloc_dev, MCB);
378377
379378 /**
380379 * mcb_free_dev() - Free @mcb_device
....@@ -386,7 +385,7 @@
386385 {
387386 kfree(dev);
388387 }
389
-EXPORT_SYMBOL_GPL(mcb_free_dev);
388
+EXPORT_SYMBOL_NS_GPL(mcb_free_dev, MCB);
390389
391390 static int __mcb_bus_add_devices(struct device *dev, void *data)
392391 {
....@@ -415,7 +414,7 @@
415414 {
416415 bus_for_each_dev(&mcb_bus_type, NULL, NULL, __mcb_bus_add_devices);
417416 }
418
-EXPORT_SYMBOL_GPL(mcb_bus_add_devices);
417
+EXPORT_SYMBOL_NS_GPL(mcb_bus_add_devices, MCB);
419418
420419 /**
421420 * mcb_get_resource() - get a resource for a mcb device
....@@ -431,7 +430,7 @@
431430 else
432431 return NULL;
433432 }
434
-EXPORT_SYMBOL_GPL(mcb_get_resource);
433
+EXPORT_SYMBOL_NS_GPL(mcb_get_resource, MCB);
435434
436435 /**
437436 * mcb_request_mem() - Request memory
....@@ -457,7 +456,7 @@
457456
458457 return mem;
459458 }
460
-EXPORT_SYMBOL_GPL(mcb_request_mem);
459
+EXPORT_SYMBOL_NS_GPL(mcb_request_mem, MCB);
461460
462461 /**
463462 * mcb_release_mem() - Release memory requested by device
....@@ -472,7 +471,7 @@
472471 size = resource_size(mem);
473472 release_mem_region(mem->start, size);
474473 }
475
-EXPORT_SYMBOL_GPL(mcb_release_mem);
474
+EXPORT_SYMBOL_NS_GPL(mcb_release_mem, MCB);
476475
477476 static int __mcb_get_irq(struct mcb_device *dev)
478477 {
....@@ -498,7 +497,7 @@
498497
499498 return __mcb_get_irq(dev);
500499 }
501
-EXPORT_SYMBOL_GPL(mcb_get_irq);
500
+EXPORT_SYMBOL_NS_GPL(mcb_get_irq, MCB);
502501
503502 static int mcb_init(void)
504503 {