Message ID | 3e95d8b5-8306-ae4c-487b-44c6dc1811d6@users.sourceforge.net |
---|---|
State | New |
Headers | show |
Series | pinctrl-mcp23s08: Fine-tuning for two function implementations | expand |
On Mon, Oct 30, 2017 at 4:47 PM, SF Markus Elfring <elfring@users.sourceforge.net> wrote: > + if (t) > + goto report_failure; > > for (t = 0, mask = BIT(0); t < chip->ngpio; t++, mask <<= 1) { > const char *label; > @@ -758,8 +753,13 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) > /* NOTE: ignoring the irq-related registers */ > seq_puts(s, "\n"); > } > -done: > +unlock: > mutex_unlock(&mcp->lock); > + return; > + > +report_failure: > + seq_puts(s, " I/O Error\n"); > + goto unlock; > } This is spaghetti coding. Not applied. https://en.wikipedia.org/wiki/Spaghetti_code Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index 919eb7268331..d1a7c627dbb9 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -723,25 +723,20 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) mutex_lock(&mcp->lock); t = __check_mcp23s08_reg_cache(mcp); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_IODIR, &iodir); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_GPIO, &gpio); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_GPPU, &gppu); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; for (t = 0, mask = BIT(0); t < chip->ngpio; t++, mask <<= 1) { const char *label; @@ -758,8 +753,13 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) /* NOTE: ignoring the irq-related registers */ seq_puts(s, "\n"); } -done: +unlock: mutex_unlock(&mcp->lock); + return; + +report_failure: + seq_puts(s, " I/O Error\n"); + goto unlock; } #else