]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
serial: port: Make ->iotype validation global in __uart_read_properties()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 24 Jan 2025 16:10:48 +0000 (18:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Feb 2025 13:44:44 +0000 (14:44 +0100)
In order to make code robust against potential changes in the future
move ->iotype validation outside of switch in __uart_read_properties().
If any code will be added in between that might leave the ->iotype value
unknown the validation catches this up.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20250124161530.398361-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/serial_port.c

index 85285c56fabff4e2da327d22310b5cc5bd2d97c0..2fc48cd63f6cff01081050fd841a6cfd82720bde 100644 (file)
@@ -229,14 +229,15 @@ static int __uart_read_properties(struct uart_port *port, bool use_defaults)
                        break;
                default:
                        port->iotype = UPIO_UNKNOWN;
-                       if (!use_defaults) {
-                               dev_err(dev, "Unsupported reg-io-width (%u)\n", value);
-                               return -EINVAL;
-                       }
                        break;
                }
        }
 
+       if (!use_defaults && port->iotype == UPIO_UNKNOWN) {
+               dev_err(dev, "Unsupported reg-io-width (%u)\n", value);
+               return -EINVAL;
+       }
+
        /* Read the address mapping base offset (default: no offset) */
        ret = device_property_read_u32(dev, "reg-offset", &value);
        if (ret)