From: Lv Ruyi Date: Mon, 18 Apr 2022 10:57:55 +0000 (+0000) Subject: scsi: megaraid: Fix error check return value of register_chrdev() X-Git-Tag: v4.19.247~265 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=80c79a036a322d9c8122e471534177de18404412;p=thirdparty%2Fkernel%2Fstable.git scsi: megaraid: Fix error check return value of register_chrdev() [ Upstream commit c5acd61dbb32b6bda0f3a354108f2b8dcb788985 ] If major equals 0, register_chrdev() returns an error code when it fails. This function dynamically allocates a major and returns its number on success, so we should use "< 0" to check it instead of "!". Link: https://lore.kernel.org/r/20220418105755.2558828-1-lv.ruyi@zte.com.cn Reported-by: Zeal Robot Signed-off-by: Lv Ruyi Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index a84878fbf45d2..7352d46ebb093 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c @@ -4641,7 +4641,7 @@ static int __init megaraid_init(void) * major number allocation. */ major = register_chrdev(0, "megadev_legacy", &megadev_fops); - if (!major) { + if (major < 0) { printk(KERN_WARNING "megaraid: failed to register char device\n"); }