isa: Remove unnecessary checks
authorVladislav Efanov <VEfanov@ispras.ru>
Wed, 17 May 2023 12:50:25 +0000 (15:50 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 May 2023 18:03:39 +0000 (19:03 +0100)
The isa_dev->dev.platform_data is initialized with incoming
parameter isa_driver. After it isa_dev->dev.platform_data is
checked for NULL, but incoming parameter isa_driver is not
NULL since it is dereferenced many times before this check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Vladislav Efanov <VEfanov@ispras.ru>
Acked-by: William Breathitt Gray <william.gray@linaro.org>
Link: https://lore.kernel.org/r/20230517125025.434005-1-VEfanov@ispras.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/isa.c

index 55e3ee2da98f81fbf2d1b7a232727821328523a8..675ad3139224623bae18d17c7729b4e4b9c2d14e 100644 (file)
@@ -149,11 +149,8 @@ int isa_register_driver(struct isa_driver *isa_driver, unsigned int ndev)
                        break;
                }
 
-               if (isa_dev->dev.platform_data) {
-                       isa_dev->next = isa_driver->devices;
-                       isa_driver->devices = &isa_dev->dev;
-               } else
-                       device_unregister(&isa_dev->dev);
+               isa_dev->next = isa_driver->devices;
+               isa_driver->devices = &isa_dev->dev;
        }
 
        if (!error && !isa_driver->devices)