From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751476AbcAAIbC (ORCPT ); Fri, 1 Jan 2016 03:31:02 -0500 Received: from mail-pf0-f171.google.com ([209.85.192.171]:34953 "EHLO mail-pf0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751253AbcAAIbB (ORCPT ); Fri, 1 Jan 2016 03:31:01 -0500 From: Sudip Mukherjee To: Linus Walleij , Alexandre Courbot Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Sudip Mukherjee Subject: [PATCH] gpio: check first for invalid gpio Date: Fri, 1 Jan 2016 14:00:53 +0530 Message-Id: <1451637053-17283-1-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Even if an invalid gpio number is sent to gpio_to_desc() we try to find it in the list before checking if it is invalid. We can check it first so that it will save us from traversing the list incase of invalid gpio. Signed-off-by: Sudip Mukherjee --- drivers/gpio/gpiolib.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index ca66302..17a1cd5 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -70,6 +70,11 @@ struct gpio_desc *gpio_to_desc(unsigned gpio) struct gpio_chip *chip; unsigned long flags; + if (!gpio_is_valid(gpio)) { + WARN(1, "invalid GPIO %d\n", gpio); + return NULL; + } + spin_lock_irqsave(&gpio_lock, flags); list_for_each_entry(chip, &gpio_chips, list) { @@ -81,9 +86,6 @@ struct gpio_desc *gpio_to_desc(unsigned gpio) spin_unlock_irqrestore(&gpio_lock, flags); - if (!gpio_is_valid(gpio)) - WARN(1, "invalid GPIO %d\n", gpio); - return NULL; } EXPORT_SYMBOL_GPL(gpio_to_desc); -- 1.9.1