> -----Original Message----- > From: Arce, Abraham > Sent: Thursday, May 06, 2010 6:18 AM > To: Tony Lindgren > Cc: G, Manjunath Kondaiah; linux-omap@vger.kernel.org; > spi-devel-gene...@lists.sourceforge.net > Subject: RE: [PATCH v1 2/3] OMAP4: Ethernet: KS8851 Board Support > > > > > > + > > > > > +static void omap_ethernet_init(void) > > > > > +{ > > > > > + gpio_request(ETHERNET_KS8851_POWER_ENABLE, "ethernet"); > > > > > + gpio_direction_output(ETHERNET_KS8851_POWER_ENABLE, 1); > > > > > + gpio_request(ETHERNET_KS8851_QUART, "quart"); > > > > > + gpio_direction_output(ETHERNET_KS8851_QUART, 1); > > > > > + gpio_request(ETHERNET_KS8851_IRQ, "ks8851"); > > > > > > > > Any reason for not checking return value of gpio_request()? > > > > > > > > > > Thought initially about them as dedicated lines for > ethernet avoiding > > > both reasons to check for a gpio's request: > > > > > > 1. invalid gpio > > > 2. already claimed gpio > > > > You still need to check for the result. > > > > Is the below approach ok? Using goto would make it better? > > int status; > > status = gpio_request(ETHERNET_KS8851_POWER_ENABLE, > "ethernet"); > if (status < 0)
You need to have warning message about this failure. > return status; > > gpio_request(ETHERNET_KS8851_QUART, "quart"); > if (status < 0) { -Ditto- > gpio_free(ETHERNET_KS8851_POWER_ENABLE); > return status; Return to where? This function seems to be void, change signature of this API. > } > > gpio_request(ETHERNET_KS8851_IRQ, "ks8851"); > if (status < 0) { Bug! Checking previous status. > gpio_free(ETHERNET_KS8851_POWER_ENABLE); > gpio_free(ETHERNET_KS8851_QUART); > return status; > } > > gpio_direction_output(ETHERNET_KS8851_POWER_ENABLE, 1); > gpio_direction_output(ETHERNET_KS8851_QUART, 1); > gpio_direction_input(ETHERNET_KS8851_IRQ); Goto will be better approach compared to above logic. if(gpio_request(x) goto err1; if(gpio_request(y) goto err2; if(gpio_request(z) goto err3; ... return 0; err3: free(x); err2: free(y); err1: free(z); return status; -Manjunath -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html