EDAC, mv64x60: Sanity check edac_op_state before registering
authorChris Packham <chris.packham@alliedtelesis.co.nz>
Wed, 7 Jun 2017 21:55:30 +0000 (09:55 +1200)
committerBorislav Petkov <bp@suse.de>
Fri, 9 Jun 2017 09:55:55 +0000 (11:55 +0200)
edac_op_state is a module parameter which affects the behaviour of
the driver probe which can potentially be invoked as soon as the
platform driver registration happens. Because of this we need to
ensure that we sanity check the module parameter before calling
platform_register_drivers().

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/20170607215530.8604-1-chris.packham@alliedtelesis.co.nz
Signed-off-by: Borislav Petkov <bp@suse.de>
drivers/edac/mv64x60_edac.c

index 77bfc3d882a884bc268954cdfd969525f555c41b..d3650df94fe8b2f74fdbeaa89e2ae596eb19e54d 100644 (file)
@@ -853,11 +853,6 @@ static struct platform_driver * const drivers[] = {
 
 static int __init mv64x60_edac_init(void)
 {
-       int ret;
-
-       ret = platform_register_drivers(drivers, ARRAY_SIZE(drivers));
-       if (ret)
-               return ret;
 
        printk(KERN_INFO "Marvell MV64x60 EDAC driver " MV64x60_REVISION "\n");
        printk(KERN_INFO "\t(C) 2006-2007 MontaVista Software\n");
@@ -872,7 +867,7 @@ static int __init mv64x60_edac_init(void)
                break;
        }
 
-       return 0;
+       return platform_register_drivers(drivers, ARRAY_SIZE(drivers));
 }
 module_init(mv64x60_edac_init);