diff options
| author | Zijun Hu <zijun.hu@oss.qualcomm.com> | 2025-06-20 22:35:20 +0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-08-20 18:41:01 +0200 |
| commit | aba0d3f8845c5b101469fbca87032c909ce42955 (patch) | |
| tree | c7fcab443dbb0c6e2329a01d148db148ca933d3a | |
| parent | e88695515ea9d7514f52e9439b49d6ab399bc26c (diff) | |
char: misc: Fix improper and inaccurate error code returned by misc_init()
[ Upstream commit 0ef1fe4bc38673db72e39b700b29c50dfcc5a415 ]
misc_init() returns -EIO for __register_chrdev() invocation failure, but:
- -EIO is for I/O error normally, but __register_chrdev() does not do I/O.
- -EIO can not cover various error codes returned by __register_chrdev().
Fix by returning error code of __register_chrdev().
Signed-off-by: Zijun Hu <zijun.hu@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250620-fix_mischar-v1-3-6c2716bbf1fa@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
| -rw-r--r-- | drivers/char/misc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/misc.c b/drivers/char/misc.c index d5accc10a110..5247d0ec0f4c 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c @@ -296,8 +296,8 @@ static int __init misc_init(void) if (err) goto fail_remove; - err = -EIO; - if (__register_chrdev(MISC_MAJOR, 0, MINORMASK + 1, "misc", &misc_fops)) + err = __register_chrdev(MISC_MAJOR, 0, MINORMASK + 1, "misc", &misc_fops); + if (err < 0) goto fail_printk; return 0; |
