diff mbox series

pinctrl: at91-pio4: drop useless check in atmel_conf_pin_config_dbg_show()

Message ID 4ab2f59f-45c1-76a2-94da-3331e8ec4e35@omp.ru
State New
Headers show
Series pinctrl: at91-pio4: drop useless check in atmel_conf_pin_config_dbg_show() | expand

Commit Message

Sergey Shtylyov Aug. 2, 2023, 8:47 p.m. UTC
In atmel_conf_pin_config_dbg_show(), checking atmel_pioctrl->pins[pin_id]
against being NULL doesn't make any sense as it gets derefenced first and
the driver's probe() method immediately returns -ENOMEM when devm_kzalloc()
returns NULL for any atmel_pioctrl->pins[] element anyway, thus failing to
register the device...

Found by Linux Verification Center (linuxtesting.org) with the Svace static
analysis tool.

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
The patch is against the 'devel' branch of Linus W.'s 'linux-pinctrl.git' repo.

 drivers/pinctrl/pinctrl-at91-pio4.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Linus Walleij Aug. 10, 2023, 8:10 a.m. UTC | #1
On Wed, Aug 2, 2023 at 10:47 PM Sergey Shtylyov <s.shtylyov@omp.ru> wrote:

> In atmel_conf_pin_config_dbg_show(), checking atmel_pioctrl->pins[pin_id]
> against being NULL doesn't make any sense as it gets derefenced first and
> the driver's probe() method immediately returns -ENOMEM when devm_kzalloc()
> returns NULL for any atmel_pioctrl->pins[] element anyway, thus failing to
> register the device...
>
> Found by Linux Verification Center (linuxtesting.org) with the Svace static
> analysis tool.
>
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

Patch applied!

Yours,
Linus Walleij
diff mbox series

Patch

Index: linux-pinctrl/drivers/pinctrl/pinctrl-at91-pio4.c
===================================================================
--- linux-pinctrl.orig/drivers/pinctrl/pinctrl-at91-pio4.c
+++ linux-pinctrl/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -939,10 +939,9 @@  static void atmel_conf_pin_config_dbg_sh
 	if (!atmel_pioctrl->pins[pin_id]->device)
 		return;
 
-	if (atmel_pioctrl->pins[pin_id])
-		seq_printf(s, " (%s, ioset %u) ",
-			   atmel_pioctrl->pins[pin_id]->device,
-			   atmel_pioctrl->pins[pin_id]->ioset);
+	seq_printf(s, " (%s, ioset %u) ",
+		   atmel_pioctrl->pins[pin_id]->device,
+		   atmel_pioctrl->pins[pin_id]->ioset);
 
 	conf = atmel_pin_config_read(pctldev, pin_id);
 	if (conf & ATMEL_PIO_PUEN_MASK)