summaryrefslogtreecommitdiff
path: root/drivers/char/misc.c
diff options
context:
space:
mode:
authorZijun Hu <zijun.hu@oss.qualcomm.com>2025-06-20 17:35:20 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-08-28 17:28:18 +0300
commita29868db6dcfb878a2a013793e907856c19bcf52 (patch)
tree9fab35dd923c8ac4ae0c405721f0d91a447793a5 /drivers/char/misc.c
parentf8818e29d268efc6b52d301cbb38405651a784cd (diff)
downloadlinux-a29868db6dcfb878a2a013793e907856c19bcf52.tar.xz
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>
Diffstat (limited to 'drivers/char/misc.c')
-rw-r--r--drivers/char/misc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/misc.c b/drivers/char/misc.c
index dda466f9181a..30178e20d962 100644
--- a/drivers/char/misc.c
+++ b/drivers/char/misc.c
@@ -314,8 +314,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;