Yang Yingliang
11fa7fefe3
chardev: fix error handling in cdev_device_add()
...
While doing fault injection test, I got the following report:
------------[ cut here ]------------
kobject: '(null)' (0000000039956980): is not initialized, yet kobject_put() is being called.
WARNING: CPU: 3 PID: 6306 at kobject_put+0x23d/0x4e0
CPU: 3 PID: 6306 Comm: 283 Tainted: G W 6.1.0-rc2-00005-g307c1086d7c9 #1253
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:kobject_put+0x23d/0x4e0
Call Trace:
<TASK>
cdev_device_add+0x15e/0x1b0
__iio_device_register+0x13b4/0x1af0 [industrialio]
__devm_iio_device_register+0x22/0x90 [industrialio]
max517_probe+0x3d8/0x6b4 [max517]
i2c_device_probe+0xa81/0xc00
When device_add() is injected fault and returns error, if dev->devt is not set,
cdev_add() is not called, cdev_del() is not needed. Fix this by checking dev->devt
in error path.
Fixes: 233ed09d7f ("chardev: add helper function to register char devs with a struct device")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Link: https://lore.kernel.org/r/20221202030237.520280-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2022-12-02 17:48:59 +01:00
..
2022-07-02 18:52:21 +09:00
2022-05-09 16:21:44 -04:00
2022-08-19 13:03:10 +02:00
2022-10-06 17:13:18 -07:00
2022-07-17 17:31:42 -07:00
2022-08-02 12:34:03 -04:00
2022-05-09 16:21:44 -04:00
2022-11-11 17:18:42 -08:00
2022-09-24 07:00:00 +02:00
2022-11-14 10:29:05 +01:00
2022-11-16 12:24:26 -06:00
2022-08-02 12:34:03 -04:00
2022-08-02 12:34:02 -04:00
2022-10-19 20:54:43 -07:00
2022-09-24 15:00:48 +02:00
2022-10-04 13:38:03 -07:00
2022-10-06 17:31:02 -07:00
2022-10-21 11:09:40 +02:00
2022-05-09 16:21:45 -04:00
2022-11-15 10:30:34 -08:00
2022-10-11 17:42:58 -06:00
2022-08-17 17:25:04 -04:00
2022-10-11 17:42:58 -06:00
2022-11-06 10:30:29 -08:00
2022-10-16 15:27:07 -07:00
2022-10-11 17:42:58 -06:00
2022-08-02 12:34:03 -04:00
2022-08-09 14:13:59 +01:00
2022-10-28 14:25:20 +02:00
2022-10-10 20:13:22 -07:00
2022-09-11 21:55:09 -07:00
2022-09-11 21:55:05 -07:00
2022-09-19 22:46:25 +02:00
2022-05-09 16:21:45 -04:00
2022-11-08 15:57:22 -08:00
2022-10-02 11:42:19 -07:00
2022-10-12 11:00:22 -07:00
2022-10-10 17:53:04 -07:00
2022-09-21 10:38:07 +02:00
2022-08-03 10:35:43 -07:00
2022-11-10 19:03:42 +01:00
2022-10-07 08:19:26 -07:00
2022-09-26 14:02:42 -04:00
2022-09-24 07:00:00 +02:00
2022-11-15 16:56:07 +00:00
2022-10-27 15:52:11 -04:00
2022-11-17 09:04:50 -08:00
2022-11-08 15:57:24 -08:00
2022-10-07 08:28:50 -07:00
2022-10-12 11:00:22 -07:00
2022-10-11 17:42:58 -06:00
2022-10-20 21:27:22 -07:00
2022-05-09 16:21:44 -04:00
2022-03-22 15:57:03 -07:00
2022-10-13 09:56:14 -07:00
2022-10-10 19:45:17 -07:00
2022-10-20 21:27:23 -07:00
2022-09-30 08:16:06 -07:00
2022-05-09 16:21:44 -04:00
2022-09-11 21:55:07 -07:00
2022-09-29 15:37:30 +02:00
2022-10-10 19:45:17 -07:00
2022-10-12 11:00:22 -07:00
2022-05-09 16:21:46 -04:00
2022-10-05 01:55:27 -05:00
2022-10-28 13:37:21 -07:00
2022-04-05 15:39:19 +02:00
2022-05-27 11:22:03 -07:00
2022-09-08 17:10:54 -04:00
2022-10-16 15:27:07 -07:00
2022-11-09 12:24:42 +01:00
2022-09-11 20:26:07 -07:00
2022-05-09 16:21:46 -04:00
2022-10-06 17:36:48 -07:00
2022-10-31 08:58:22 -07:00
2022-11-16 16:08:31 +09:00
2022-09-11 21:55:08 -07:00
2022-08-20 11:34:04 -04:00
2022-08-08 10:39:29 -07:00
2022-09-24 07:00:00 +02:00
2022-10-25 15:11:21 -07:00
2022-04-22 10:57:18 -07:00
2022-10-12 11:00:22 -07:00
2022-12-02 17:48:59 +01:00
2022-10-10 17:53:04 -07:00
2022-08-20 11:34:33 -04:00
2022-09-24 18:14:12 -07:00
2022-10-10 19:45:17 -07:00
2022-09-20 08:24:38 -06:00
2022-09-21 10:30:42 -06:00
2022-09-11 21:55:07 -07:00
2022-10-29 17:49:33 -07:00
2022-06-10 16:10:23 -04:00
2022-09-01 17:36:39 -04:00
2022-08-16 10:59:54 -04:00
2022-06-29 13:07:16 +02:00
2022-09-29 23:02:00 -04:00
2022-05-19 23:25:10 -04:00
2022-10-06 16:49:00 -07:00
2022-10-06 17:31:02 -07:00
2022-04-01 19:35:56 -07:00
2022-09-11 20:26:10 -07:00
2022-10-10 14:21:11 -07:00
2022-06-16 19:58:21 -07:00
2022-10-03 14:21:43 -07:00
2022-08-17 15:08:58 -04:00
2022-09-27 07:11:02 -07:00
2022-09-30 23:46:52 -04:00
2022-07-05 16:18:21 -04:00
2022-08-03 10:35:43 -07:00
2022-10-10 19:45:17 -07:00
2022-08-17 11:27:11 +02:00
2022-08-20 11:34:04 -04:00
2022-10-06 17:13:18 -07:00
2022-08-20 11:34:04 -04:00
2022-10-10 17:53:04 -07:00
2022-06-28 13:58:05 -04:00
2022-09-28 14:28:40 -04:00
2022-08-17 17:25:04 -04:00
2022-08-05 16:32:45 -07:00
2022-05-22 21:03:01 +01:00
2022-08-08 22:37:23 -04:00
2022-09-11 19:47:12 -05:00
2022-10-19 20:54:43 -07:00
2022-04-26 13:36:25 -07:00
2022-11-07 12:58:26 -08:00
2022-09-21 12:01:29 +02:00