From patchwork Wed Jul 8 04:15:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324939 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=MEkPpF7f; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mJN52wWz9sDX for ; Wed, 8 Jul 2020 14:18:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726145AbgGHES1 (ORCPT ); Wed, 8 Jul 2020 00:18:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHES1 (ORCPT ); Wed, 8 Jul 2020 00:18:27 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2889BC061755; Tue, 7 Jul 2020 21:18:27 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id q17so3209302pls.9; Tue, 07 Jul 2020 21:18:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TkWCj0Bdn5Lz2ZliGZazF4ed6JK/XE2t/LI6cgr1fFY=; b=MEkPpF7fP8ow/4SxSqdeboniEZXY8gru0Mi32V/kLhyvHMimZghW5r9XKsHpH3FVx/ fdf2t1wASilTmcG3nS7uJGMW5pYTF1Nx/MmCF8PWoraY2BcqmlTgTjc+2vRRH8P/z5XE OC8J2T6Ry4T8Vszj1squX7dwNaTwFhDK/bJerHKgXXHm+A4QivhbdyUMr5vuSUJMs7RD Iv9/ImhsTC/skNSeOfA5DTb7U2O0gcywrlKKiVs9VEqkYe79F+toKZjbaTQZZ6Bmc00f nk+zgjMBySPR3KSvXflx/0tTSwtZyD85lMWKxsrMt5FYpUyHvCvcp4h343HdxFYwzu/W XIgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TkWCj0Bdn5Lz2ZliGZazF4ed6JK/XE2t/LI6cgr1fFY=; b=ElYZ4B+HD+LopW0Dj2K+yQI05/Rizb/tZDYaUopDnxJWMWmLtppFhjyk0vHg/9CUbI K8JYMO7GwULPuU0J8rCfHgpg5Baa3Qv/UpeLljAiw1QmUK0/JJcefBG1nRWtHcRSFaAz DXM3sKyFmcAE1oApk/Up9Et5YsSwBLWZDLrabpnODyL+SxLzmChjiksWy15ufYHbP+mt /VoxQnY4Hnigk3xBNOQP6dHN+L0oYUTB8QCa/kV9qisOuCiulhv3Q9VQ1ER9WByI29Gk zJ//iyVqRz64WpLpsfdG6NSI920sBC5BPYhloegzTygQa0BnFIo8behQEIcZoBaNnQPs 05vA== X-Gm-Message-State: AOAM5321rjjaB1Qm+yHyoErRTDule7YPlV4hqbJ4NrR6TO/1x0bfV6lt dPfyR5zN9xM0IDKAMoTvUci9f4qE X-Google-Smtp-Source: ABdhPJyckYC4APqNVntRLxbpZKC8P10n/pGiY+fI2npn0n37cvYZQplDxuAa5RsToSAYbW6nE3w6Qg== X-Received: by 2002:a17:90a:ad02:: with SMTP id r2mr7892932pjq.74.1594181906206; Tue, 07 Jul 2020 21:18:26 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.18.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:18:25 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 01/17] gpiolib: move gpiolib-sysfs function declarations into their own header Date: Wed, 8 Jul 2020 12:15:44 +0800 Message-Id: <20200708041600.768775-2-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Move gpiolib-sysfs function declarations into their own header. These functions are in gpiolib-sysfs.c, and are only required by gpiolib.c, and so should be in a module header, not gpiolib.h. This brings gpiolib-sysfs into line with gpiolib-cdev, and is another step towards removing the sysfs inferface. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-sysfs.c | 1 + drivers/gpio/gpiolib-sysfs.h | 24 ++++++++++++++++++++++++ drivers/gpio/gpiolib.c | 1 + drivers/gpio/gpiolib.h | 18 ------------------ 4 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 drivers/gpio/gpiolib-sysfs.h diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c index 82371fe2ccc6..728f6c687182 100644 --- a/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c @@ -11,6 +11,7 @@ #include #include "gpiolib.h" +#include "gpiolib-sysfs.h" #define GPIO_IRQF_TRIGGER_FALLING BIT(0) #define GPIO_IRQF_TRIGGER_RISING BIT(1) diff --git a/drivers/gpio/gpiolib-sysfs.h b/drivers/gpio/gpiolib-sysfs.h new file mode 100644 index 000000000000..ddd0e503f8eb --- /dev/null +++ b/drivers/gpio/gpiolib-sysfs.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#ifndef GPIOLIB_SYSFS_H +#define GPIOLIB_SYSFS_H + +#ifdef CONFIG_GPIO_SYSFS + +int gpiochip_sysfs_register(struct gpio_device *gdev); +void gpiochip_sysfs_unregister(struct gpio_device *gdev); + +#else + +static inline int gpiochip_sysfs_register(struct gpio_device *gdev) +{ + return 0; +} + +static inline void gpiochip_sysfs_unregister(struct gpio_device *gdev) +{ +} + +#endif /* CONFIG_GPIO_SYSFS */ + +#endif /* GPIOLIB_SYSFS_H */ diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 291c088a5964..4d267c69482c 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -26,6 +26,7 @@ #include "gpiolib-of.h" #include "gpiolib-acpi.h" #include "gpiolib-cdev.h" +#include "gpiolib-sysfs.h" #define CREATE_TRACE_POINTS #include diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h index 9ed242316414..2dee4e1e12dc 100644 --- a/drivers/gpio/gpiolib.h +++ b/drivers/gpio/gpiolib.h @@ -175,22 +175,4 @@ static inline int gpio_chip_hwgpio(const struct gpio_desc *desc) #define chip_dbg(gc, fmt, ...) \ dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__) -#ifdef CONFIG_GPIO_SYSFS - -int gpiochip_sysfs_register(struct gpio_device *gdev); -void gpiochip_sysfs_unregister(struct gpio_device *gdev); - -#else - -static inline int gpiochip_sysfs_register(struct gpio_device *gdev) -{ - return 0; -} - -static inline void gpiochip_sysfs_unregister(struct gpio_device *gdev) -{ -} - -#endif /* CONFIG_GPIO_SYSFS */ - #endif /* GPIOLIB_H */ From patchwork Wed Jul 8 04:15:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324940 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=eN0r4mI4; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mJf1q9Sz9sDX for ; Wed, 8 Jul 2020 14:18:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726932AbgGHESl (ORCPT ); Wed, 8 Jul 2020 00:18:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHESk (ORCPT ); Wed, 8 Jul 2020 00:18:40 -0400 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD726C061755; Tue, 7 Jul 2020 21:18:40 -0700 (PDT) Received: by mail-pg1-x543.google.com with SMTP id d194so17666004pga.13; Tue, 07 Jul 2020 21:18:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/D5E3cS0RmePhKJO9DGn6sJY2opyEZuHh1r/5q4p1OE=; b=eN0r4mI442nvwpWb+yUcsVR+M38RzTgbWMX6KTKlASMvoyvYUzkUeFpRqqgH4zI2mm RwvWy0jOJDwv13MVZ73lHcgZLOq4cLCL+4q4hFdk1ol4uRTvTjcFpH/kMMw/ymdX4c2/ GeNMTsndCGhvmSX7vR7/GSj2CuD3uK6O/zqpWnYh24dQNmJUoOgJ5bOmNjR1S/cm4KUm 7lsB8LTVnzGmkOD85MEDwSEfMKAuCoLpx4xgwC+bgyeBy/RZO7iamlq3Ajb4eDSR3M1t nrHW+p7D9Q9oJTAXucL5bHcAdDBL2QXW6aW5sR8T6fGIJGCndM4INIhXY6jw+g7fXJF1 BImw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/D5E3cS0RmePhKJO9DGn6sJY2opyEZuHh1r/5q4p1OE=; b=J5gtN7jfDxWndNEX6aJHQAbqZHf/IKwoxTIqQ7PFMC2GptkaTerv8XKyLS8k5Yg8u3 VXolqK+2pMceXujY4i5x3trWIUtVEB4Iocd3qowFOMNCmK2L7C9PYgeEPv0Ny7l/ZHYn fDTPokQid33KKxGcIdUQ95cfDA2cS4FYghTtAJZISv6AkfM/2YJBv8jXUBq2NvOgKMJr bW3v96Rw0/bdDXb07OSc6M+JmAcvkCyQPZRnMVy+HnHZxUpEJ191bk2kQW83yTKy3CGg WUcJx23m+7pfWRfqodv4GtyLZz03SUe19NZiThOWCbVwi4tg/ET2cr5cDfQvwLcUAmCW tSrg== X-Gm-Message-State: AOAM5314WaONbVzcn/UX4N6qC09yltnJM8RD7lwBIONlXp9cAR1YFZ06 0DdnQlEg3DBHzK74DsdJUbyepYs2 X-Google-Smtp-Source: ABdhPJztRtdgQXlEYOMH2tZhj6L/YevkbKOq6Y+dmGQIUB2HEorSEWiMyjaH0QMq6Z7K1BtjPvWl6g== X-Received: by 2002:a63:371c:: with SMTP id e28mr47124671pga.114.1594181919877; Tue, 07 Jul 2020 21:18:39 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:18:39 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 02/17] gpiolib: cdev: sort includes Date: Wed, 8 Jul 2020 12:15:45 +0800 Message-Id: <20200708041600.768775-3-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Sort the includes of gpiolib-cdev.c to make it easier to identify if a module is included and to avoid duplication. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index b8b872724628..55a9b7b44304 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -1,24 +1,24 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include -#include -#include -#include -#include -#include +#include +#include #include #include +#include #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include +#include +#include #include +#include #include +#include #include #include "gpiolib.h" From patchwork Wed Jul 8 04:15:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324941 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=NtN9+VRB; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mJr4qWMz9sDX for ; Wed, 8 Jul 2020 14:18:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728517AbgGHESv (ORCPT ); Wed, 8 Jul 2020 00:18:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHESv (ORCPT ); Wed, 8 Jul 2020 00:18:51 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3921CC061755; Tue, 7 Jul 2020 21:18:51 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id 1so1687645pfn.9; Tue, 07 Jul 2020 21:18:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pJ1ZG/ZY1VkKHSFFPRUzKrl5XSJPkHZjLaEi7PJyJ2M=; b=NtN9+VRBDAWSCGGwCIwOQywsOsosAMNwpvy8//7p+Jmi4/znX/3fFHA9MiLMxb029f E/XOyArjSZzDQyNomp5Q/2RyeuR/+vrDuFIHG4Wji8cLATqsaJ4ej8G3gCKmMYb//C0X QMZYMR9nIS7lnIf3Cak7y0qy4AFacxIW4DBI883lsd1tuvqFSpWHtsqgzf5PwIKc68YX t8UGhYJLHCfOjMN3Zd7egNb14qPJCD+U3tETuOzzjvUOHlAgNiCoBwbAjz3Wz/dDWuuv T9KCn6MX4JAxzw3IsMVU5r7vUikzNE/kyAHbQrxsIEjwV2G0F2+hWWbcwdTUB4wIN0Ez U1gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pJ1ZG/ZY1VkKHSFFPRUzKrl5XSJPkHZjLaEi7PJyJ2M=; b=PICuTya2zWxDgD8Lq/WXhS9vLOf3VabRQ87LOeJvWa/7WdW2/rivQlQx7gqJzAkRmJ MKz1jjjVL8n8RULxHiDg4AulTvlQs+YCXIrbM4qce6cQSH63IDZLZoN1xEaHZckuCivu G0LzFSNg3khs5SrbHR/3vDBaHktH6KWc2ZrNqxGslL9YS4pdExFyGstLHHbDojndkZjI VgANFyqHLZQ+PN6QCQRVzc0xl3huRk1y9jK8iYolZYlUcNumwBVIGJsnRdATBqEwbXIt 0woD0MdHZLTyd1COrIT3HRp8eRk2eSwfnRfF4Ps/UeLZzzRbreXxUY1knijNr4UazKTq IuBA== X-Gm-Message-State: AOAM532NpNZD8fe+RlFE45whS1ReeY8+GFx0LF5rdvg2CNOajv7bpWt4 /Ibn8smii9ls8Lk3AHXy9hik7D7j X-Google-Smtp-Source: ABdhPJwhys9r4MgfR8ld5tIv5XYhhHIb63NdGbObUhqxaDKcSurE+uhj62mrKG9J/F37Ah6Pj5nn6A== X-Received: by 2002:a05:6a00:2c1:: with SMTP id b1mr40043215pft.159.1594181930270; Tue, 07 Jul 2020 21:18:50 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.18.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:18:48 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 03/17] gpiolib: cdev: minor indentation fixes Date: Wed, 8 Jul 2020 12:15:46 +0800 Message-Id: <20200708041600.768775-4-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Make indentation consistent with other use to improve readability. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 55a9b7b44304..889ed2dc9e58 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -98,7 +98,7 @@ static int linehandle_validate_flags(u32 flags) /* Only one bias flag can be set. */ if (((flags & GPIOHANDLE_REQUEST_BIAS_DISABLE) && (flags & (GPIOHANDLE_REQUEST_BIAS_PULL_DOWN | - GPIOHANDLE_REQUEST_BIAS_PULL_UP))) || + GPIOHANDLE_REQUEST_BIAS_PULL_UP))) || ((flags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN) && (flags & GPIOHANDLE_REQUEST_BIAS_PULL_UP))) return -EINVAL; @@ -212,11 +212,11 @@ static long linehandle_ioctl(struct file *filep, unsigned int cmd, /* Reuse the array setting function */ return gpiod_set_array_value_complex(false, - true, - lh->numdescs, - lh->descs, - NULL, - vals); + true, + lh->numdescs, + lh->descs, + NULL, + vals); } else if (cmd == GPIOHANDLE_SET_CONFIG_IOCTL) { return linehandle_set_config(lh, ip); } @@ -225,7 +225,7 @@ static long linehandle_ioctl(struct file *filep, unsigned int cmd, #ifdef CONFIG_COMPAT static long linehandle_ioctl_compat(struct file *filep, unsigned int cmd, - unsigned long arg) + unsigned long arg) { return linehandle_ioctl(filep, cmd, (unsigned long)compat_ptr(arg)); } @@ -428,7 +428,7 @@ struct lineevent_state { GPIOEVENT_REQUEST_FALLING_EDGE) static __poll_t lineevent_poll(struct file *filep, - struct poll_table_struct *wait) + struct poll_table_struct *wait) { struct lineevent_state *le = filep->private_data; __poll_t events = 0; @@ -720,11 +720,11 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) /* Request a thread to read the events */ ret = request_threaded_irq(le->irq, - lineevent_irq_handler, - lineevent_irq_thread, - irqflags, - le->label, - le); + lineevent_irq_handler, + lineevent_irq_thread, + irqflags, + le->label, + le); if (ret) goto out_free_desc; @@ -1052,7 +1052,7 @@ static ssize_t lineinfo_watch_read(struct file *filep, char __user *buf, static int gpio_chrdev_open(struct inode *inode, struct file *filp) { struct gpio_device *gdev = container_of(inode->i_cdev, - struct gpio_device, chrdev); + struct gpio_device, chrdev); struct gpio_chardev_data *priv; int ret = -ENOMEM; From patchwork Wed Jul 8 04:15:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324942 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=TXOm5CrS; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mK31bbRz9sDX for ; Wed, 8 Jul 2020 14:19:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726420AbgGHETC (ORCPT ); Wed, 8 Jul 2020 00:19:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETC (ORCPT ); Wed, 8 Jul 2020 00:19:02 -0400 Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D987C061755; Tue, 7 Jul 2020 21:19:02 -0700 (PDT) Received: by mail-pl1-x641.google.com with SMTP id d10so17635270pls.5; Tue, 07 Jul 2020 21:19:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=97IajNvsl9y2bLP52rhhZb3Pr52WjicYWnAeK4dyEeU=; b=TXOm5CrS3XQG+gQAdKgXW89QqIPDg8rPRIVIB2tDEOM045M5M+OZSzEtKD5tcwRYvP bwPMddwiYWR+VjS1UWUpoHzJkLJS3IZFb1E+PPk2wre1/DNqXIWFNUWYRdOrzSlAfVwp jC2VV/7zD8TXDJmvfWgTeFZNklfAj8WRp+T2Z9VfsLKp6MVy/Gr+zLvrj79as8j+OIk9 2u/PHFUwwL8c8GghnBOD+UMTw1eZ69SvZBEExOoPOESFaiHfx5ub06dlNQAggROE5q3O LW+zJwtqaIPPehPHjch0R//hYIudRAjvwD9E9PoHw7vYELGWhgdDqlF9c2Ofqc8n/56H 6jWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=97IajNvsl9y2bLP52rhhZb3Pr52WjicYWnAeK4dyEeU=; b=DCe54wqTyb97nzaGPnMojHVZSTkMsL0JEsG5Noa0uCcIOBDvtWwDjoEBfBWO51ALZF PslGL/0N9y+N9+S83ckE01onoDUXXKiLidQ8Y+rm2UonX/6d71pXx/emiJSQQab1Mwx6 7yynEIW+xxugwV/cAGvIzNAjf9VbxsBVOSmi6PREPHsTJlHv/5ZjJT25H/mgQA9L+WnW OTfVLTLhIBrhwyRCzTrr8KEsQ+pVeor14BE+C10EtVJnxgSAq8KkMh9V7uFH2DP1FEMY MRTuKItpy7wKUJCYeiZjoZJIVzujK0BReC521hm3kFhqb0Rqb1pmxCH+HDQSz9esgeYn 8MgQ== X-Gm-Message-State: AOAM5302YO9dWjSzS4WbhgLUEKXUssbU1MIW4Z5hucus+dNDC5USRQV0 d3uEBpyRaMXnKWWSr2lZGIQEn8De X-Google-Smtp-Source: ABdhPJwNGqu/k1mFqMjZJyUCVSPtP9SjsIJvdBxgOtXaWTdfzVTTsNCpLwVCQCoduJGkrKjS3SLzjw== X-Received: by 2002:a17:90a:1a8a:: with SMTP id p10mr7518643pjp.236.1594181941201; Tue, 07 Jul 2020 21:19:01 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.18.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:00 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 04/17] gpiolib: cdev: refactor gpiohandle_flags_to_desc_flags Date: Wed, 8 Jul 2020 12:15:47 +0800 Message-Id: <20200708041600.768775-5-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Refactor the mapping from handle flags to desc flags into a helper function. The assign_bit is overkill where it is replacing the set_bit cases, as is rechecking bits known to be clear in some circumstances, but the DRY simplification more than makes up for any performance degradation, especially as this is not a hot path. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 60 ++++++++++++------------------------- 1 file changed, 19 insertions(+), 41 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 889ed2dc9e58..e64613b8d0ba 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -106,6 +106,22 @@ static int linehandle_validate_flags(u32 flags) return 0; } +static void linehandle_flags_to_desc_flags(u32 lflags, unsigned long *flagsp) +{ + assign_bit(FLAG_ACTIVE_LOW, flagsp, + lflags & GPIOHANDLE_REQUEST_ACTIVE_LOW); + assign_bit(FLAG_OPEN_DRAIN, flagsp, + lflags & GPIOHANDLE_REQUEST_OPEN_DRAIN); + assign_bit(FLAG_OPEN_SOURCE, flagsp, + lflags & GPIOHANDLE_REQUEST_OPEN_SOURCE); + assign_bit(FLAG_PULL_UP, flagsp, + lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP); + assign_bit(FLAG_PULL_DOWN, flagsp, + lflags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN); + assign_bit(FLAG_BIAS_DISABLE, flagsp, + lflags & GPIOHANDLE_REQUEST_BIAS_DISABLE); +} + static long linehandle_set_config(struct linehandle_state *lh, void __user *ip) { @@ -113,7 +129,6 @@ static long linehandle_set_config(struct linehandle_state *lh, struct gpio_desc *desc; int i, ret; u32 lflags; - unsigned long *flagsp; if (copy_from_user(&gcnf, ip, sizeof(gcnf))) return -EFAULT; @@ -125,25 +140,7 @@ static long linehandle_set_config(struct linehandle_state *lh, for (i = 0; i < lh->numdescs; i++) { desc = lh->descs[i]; - flagsp = &desc->flags; - - assign_bit(FLAG_ACTIVE_LOW, flagsp, - lflags & GPIOHANDLE_REQUEST_ACTIVE_LOW); - - assign_bit(FLAG_OPEN_DRAIN, flagsp, - lflags & GPIOHANDLE_REQUEST_OPEN_DRAIN); - - assign_bit(FLAG_OPEN_SOURCE, flagsp, - lflags & GPIOHANDLE_REQUEST_OPEN_SOURCE); - - assign_bit(FLAG_PULL_UP, flagsp, - lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP); - - assign_bit(FLAG_PULL_DOWN, flagsp, - lflags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN); - - assign_bit(FLAG_BIAS_DISABLE, flagsp, - lflags & GPIOHANDLE_REQUEST_BIAS_DISABLE); + linehandle_flags_to_desc_flags(gcnf.flags, &desc->flags); /* * Lines have to be requested explicitly for input @@ -306,19 +303,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) goto out_free_descs; lh->descs[i] = desc; count = i + 1; - - if (lflags & GPIOHANDLE_REQUEST_ACTIVE_LOW) - set_bit(FLAG_ACTIVE_LOW, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_OPEN_DRAIN) - set_bit(FLAG_OPEN_DRAIN, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_OPEN_SOURCE) - set_bit(FLAG_OPEN_SOURCE, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_DISABLE) - set_bit(FLAG_BIAS_DISABLE, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN) - set_bit(FLAG_PULL_DOWN, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP) - set_bit(FLAG_PULL_UP, &desc->flags); + linehandle_flags_to_desc_flags(handlereq.flags, &desc->flags); ret = gpiod_set_transitory(desc, false); if (ret < 0) @@ -685,14 +670,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) le->desc = desc; le->eflags = eflags; - if (lflags & GPIOHANDLE_REQUEST_ACTIVE_LOW) - set_bit(FLAG_ACTIVE_LOW, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_DISABLE) - set_bit(FLAG_BIAS_DISABLE, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN) - set_bit(FLAG_PULL_DOWN, &desc->flags); - if (lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP) - set_bit(FLAG_PULL_UP, &desc->flags); + linehandle_flags_to_desc_flags(lflags, &desc->flags); ret = gpiod_direction_input(desc); if (ret) From patchwork Wed Jul 8 04:15:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324943 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=C0kxEEDH; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mK93FKdz9sDX for ; Wed, 8 Jul 2020 14:19:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728868AbgGHETI (ORCPT ); Wed, 8 Jul 2020 00:19:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39810 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETI (ORCPT ); Wed, 8 Jul 2020 00:19:08 -0400 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1044BC061755; Tue, 7 Jul 2020 21:19:08 -0700 (PDT) Received: by mail-pj1-x1043.google.com with SMTP id b92so609556pjc.4; Tue, 07 Jul 2020 21:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lgHf/mGY+UlgAlm73qvEOx3bpdQsypqQFPDG2HWa7cg=; b=C0kxEEDHVaO6u4cmXjvqBxLtJWmd/TYlTe6TEbxIWZELugiGCqf1RZmsMrZv30BPrg Ndgknq8qwTvWniNn/xJ1bJQgJAkmYjYeOtqbwLmiTDToMXPuNu9I22STelFxExc95CnI 81oUrzTEAZjiioeQSYUdMOEi3X/qIEwRCc4kumFfUe/D/auu3D41R/NDEP25HPKJLmD8 iIl8p4/oDZ0Uy92h1RqCO5f1/j2LMJINKwQ1/KMgxGkt0xlAD7X98Vok2fo8dxhx8Dto GO5NjB8iMRfjvW5rns8dNQyR1YGrM6/KGBwYH54NPGlcD0JTiIUJbU7oHgzfhh3GiTt8 KmUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lgHf/mGY+UlgAlm73qvEOx3bpdQsypqQFPDG2HWa7cg=; b=U1Te2ZluwZPND3ZubwuqRa2pnN71YL3Cv6IcaY1lS/p0Li/tuweq12W1rbq9VijrLb Do/S/CLf26iSA04jJV/JtT5yPAi6Y+NcE+dbql1M4ZkiMWGhxYEgJvnzB7hXfaDX1Mi0 7fXulZ8sFqvT9oMJqUUHLQ63KSi/SUPlIujaO4eRKZIJRiZI2icx29xc1Kbwca+ZoybR MWA2SqXq6IpflkdhmB8udFdhRb0eHa4toNzsHnannWnI7gPjp85qVUbXKKfzj1ZCRbUX 5gW+/xys+kehFu1UxBW84vN5nXsbV1IIgJCYvDaHaJa9NN9mO9C5PnQ5GEVJMbSM4F6q v9YQ== X-Gm-Message-State: AOAM531IEkJNci9LJFN85L1XbEQPs3B89/y7BMw54P2FWsUTKjxuRlL/ KePpSNn/aGSQui6lUT9QH6BBHijp X-Google-Smtp-Source: ABdhPJxa38qkZnGoGFCV3uPwCi2FILM5VoB84ENlKOoA+9dhKo4+4JPZwHTHTNf0RYpMLvUQbQhl6Q== X-Received: by 2002:a17:902:ff10:: with SMTP id f16mr48622667plj.277.1594181947104; Tue, 07 Jul 2020 21:19:07 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:06 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 05/17] gpiolib: cdev: rename 'filep' and 'filp' to 'file' to be consistent with other use Date: Wed, 8 Jul 2020 12:15:48 +0800 Message-Id: <20200708041600.768775-6-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Rename 'filep' and 'filp' to 'file' to be consistent with other use and improve readability. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 70 ++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index e64613b8d0ba..0d3a799e09ae 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -164,10 +164,10 @@ static long linehandle_set_config(struct linehandle_state *lh, return 0; } -static long linehandle_ioctl(struct file *filep, unsigned int cmd, +static long linehandle_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - struct linehandle_state *lh = filep->private_data; + struct linehandle_state *lh = file->private_data; void __user *ip = (void __user *)arg; struct gpiohandle_data ghd; DECLARE_BITMAP(vals, GPIOHANDLES_MAX); @@ -221,16 +221,16 @@ static long linehandle_ioctl(struct file *filep, unsigned int cmd, } #ifdef CONFIG_COMPAT -static long linehandle_ioctl_compat(struct file *filep, unsigned int cmd, +static long linehandle_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) { - return linehandle_ioctl(filep, cmd, (unsigned long)compat_ptr(arg)); + return linehandle_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); } #endif -static int linehandle_release(struct inode *inode, struct file *filep) +static int linehandle_release(struct inode *inode, struct file *file) { - struct linehandle_state *lh = filep->private_data; + struct linehandle_state *lh = file->private_data; struct gpio_device *gdev = lh->gdev; int i; @@ -412,13 +412,13 @@ struct lineevent_state { (GPIOEVENT_REQUEST_RISING_EDGE | \ GPIOEVENT_REQUEST_FALLING_EDGE) -static __poll_t lineevent_poll(struct file *filep, +static __poll_t lineevent_poll(struct file *file, struct poll_table_struct *wait) { - struct lineevent_state *le = filep->private_data; + struct lineevent_state *le = file->private_data; __poll_t events = 0; - poll_wait(filep, &le->wait, wait); + poll_wait(file, &le->wait, wait); if (!kfifo_is_empty_spinlocked_noirqsave(&le->events, &le->wait.lock)) events = EPOLLIN | EPOLLRDNORM; @@ -427,12 +427,12 @@ static __poll_t lineevent_poll(struct file *filep, } -static ssize_t lineevent_read(struct file *filep, +static ssize_t lineevent_read(struct file *file, char __user *buf, size_t count, loff_t *f_ps) { - struct lineevent_state *le = filep->private_data; + struct lineevent_state *le = file->private_data; struct gpioevent_data ge; ssize_t bytes_read = 0; int ret; @@ -448,7 +448,7 @@ static ssize_t lineevent_read(struct file *filep, return bytes_read; } - if (filep->f_flags & O_NONBLOCK) { + if (file->f_flags & O_NONBLOCK) { spin_unlock(&le->wait.lock); return -EAGAIN; } @@ -481,9 +481,9 @@ static ssize_t lineevent_read(struct file *filep, return bytes_read; } -static int lineevent_release(struct inode *inode, struct file *filep) +static int lineevent_release(struct inode *inode, struct file *file) { - struct lineevent_state *le = filep->private_data; + struct lineevent_state *le = file->private_data; struct gpio_device *gdev = le->gdev; free_irq(le->irq, le); @@ -494,10 +494,10 @@ static int lineevent_release(struct inode *inode, struct file *filep) return 0; } -static long lineevent_ioctl(struct file *filep, unsigned int cmd, +static long lineevent_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - struct lineevent_state *le = filep->private_data; + struct lineevent_state *le = file->private_data; void __user *ip = (void __user *)arg; struct gpiohandle_data ghd; @@ -524,10 +524,10 @@ static long lineevent_ioctl(struct file *filep, unsigned int cmd, } #ifdef CONFIG_COMPAT -static long lineevent_ioctl_compat(struct file *filep, unsigned int cmd, +static long lineevent_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) { - return lineevent_ioctl(filep, cmd, (unsigned long)compat_ptr(arg)); + return lineevent_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); } #endif @@ -826,9 +826,9 @@ struct gpio_chardev_data { /* * gpio_ioctl() - ioctl handler for the GPIO chardev */ -static long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - struct gpio_chardev_data *priv = filp->private_data; + struct gpio_chardev_data *priv = file->private_data; struct gpio_device *gdev = priv->gdev; struct gpio_chip *gc = gdev->chip; void __user *ip = (void __user *)arg; @@ -919,10 +919,10 @@ static long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } #ifdef CONFIG_COMPAT -static long gpio_ioctl_compat(struct file *filp, unsigned int cmd, +static long gpio_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) { - return gpio_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); + return gpio_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); } #endif @@ -958,13 +958,13 @@ static int lineinfo_changed_notify(struct notifier_block *nb, return NOTIFY_OK; } -static __poll_t lineinfo_watch_poll(struct file *filep, +static __poll_t lineinfo_watch_poll(struct file *file, struct poll_table_struct *pollt) { - struct gpio_chardev_data *priv = filep->private_data; + struct gpio_chardev_data *priv = file->private_data; __poll_t events = 0; - poll_wait(filep, &priv->wait, pollt); + poll_wait(file, &priv->wait, pollt); if (!kfifo_is_empty_spinlocked_noirqsave(&priv->events, &priv->wait.lock)) @@ -973,10 +973,10 @@ static __poll_t lineinfo_watch_poll(struct file *filep, return events; } -static ssize_t lineinfo_watch_read(struct file *filep, char __user *buf, +static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, size_t count, loff_t *off) { - struct gpio_chardev_data *priv = filep->private_data; + struct gpio_chardev_data *priv = file->private_data; struct gpioline_info_changed event; ssize_t bytes_read = 0; int ret; @@ -992,7 +992,7 @@ static ssize_t lineinfo_watch_read(struct file *filep, char __user *buf, return bytes_read; } - if (filep->f_flags & O_NONBLOCK) { + if (file->f_flags & O_NONBLOCK) { spin_unlock(&priv->wait.lock); return -EAGAIN; } @@ -1024,10 +1024,10 @@ static ssize_t lineinfo_watch_read(struct file *filep, char __user *buf, /** * gpio_chrdev_open() - open the chardev for ioctl operations * @inode: inode for this chardev - * @filp: file struct for storing private data + * @file: file struct for storing private data * Returns 0 on success */ -static int gpio_chrdev_open(struct inode *inode, struct file *filp) +static int gpio_chrdev_open(struct inode *inode, struct file *file) { struct gpio_device *gdev = container_of(inode->i_cdev, struct gpio_device, chrdev); @@ -1057,9 +1057,9 @@ static int gpio_chrdev_open(struct inode *inode, struct file *filp) goto out_free_bitmap; get_device(&gdev->dev); - filp->private_data = priv; + file->private_data = priv; - ret = nonseekable_open(inode, filp); + ret = nonseekable_open(inode, file); if (ret) goto out_unregister_notifier; @@ -1078,12 +1078,12 @@ static int gpio_chrdev_open(struct inode *inode, struct file *filp) /** * gpio_chrdev_release() - close chardev after ioctl operations * @inode: inode for this chardev - * @filp: file struct for storing private data + * @file: file struct for storing private data * Returns 0 on success */ -static int gpio_chrdev_release(struct inode *inode, struct file *filp) +static int gpio_chrdev_release(struct inode *inode, struct file *file) { - struct gpio_chardev_data *priv = filp->private_data; + struct gpio_chardev_data *priv = file->private_data; struct gpio_device *gdev = priv->gdev; bitmap_free(priv->watched_lines); From patchwork Wed Jul 8 04:15:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324944 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Se4REoZm; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mKN6l8kz9sDX for ; Wed, 8 Jul 2020 14:19:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728943AbgGHETT (ORCPT ); Wed, 8 Jul 2020 00:19:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETT (ORCPT ); Wed, 8 Jul 2020 00:19:19 -0400 Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EEB5C061755; Tue, 7 Jul 2020 21:19:19 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id f16so619673pjt.0; Tue, 07 Jul 2020 21:19:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=205+60/P7OwdA5V7AIyIGdUsYZG8liqbjg0Asic3sG4=; b=Se4REoZmEtf7kttzrO20zaVgBQyXl9LdfHvbvtR0poQ6wDTW1HSMzF3h4Rp/PdxIrs LlXFfyNSXvNRsSf3t/wezL92iYbyOp++thAbtqnZFDnamOJ5DYSTLxgBYrStMWwReMH9 0st1vaIZrqSOWm5pwuyUCiJo2188yMVLO7WK4y4pOefPiaa3jALGTYxAvF6IFdFL/FkN uuinij9EoTjKFMptUEm+bepEbw1EMtjs3hV+lqs9XkLGxMcdYsu5cWal++clJgbO33n+ BL5Z66GKUTvmlzyNit3ODyfGRjQyxBPNHJvIRg7szK9PgbwBbcMsyPa+LkzTnHxPOwzg g4uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=205+60/P7OwdA5V7AIyIGdUsYZG8liqbjg0Asic3sG4=; b=lp91ECWgjW9jyA+MLMzL95XajvgJZu6nyrWM/FNol9YpnQ5tS6FAnr3lLadgWYkqyc r7g+95OdVRNLbXzTYGXqTwYOx0NA/Eu3eyoHeJ6zA8b0YqSBKFAXcNl511x35M/+fQOO Zpgy6X7r3szEg1H9SFDfbUSztIVMVyH6fX+vJjzt5u6ZmeKXJwyR0OHSxu0RVT8bzE/I oYr5ZiN7GcKLKyXYKdgmyfe5J0JNGrSSpHvR8UnSJOaYRlcIbiqk8wzgFiyTzzhZQSFw xHR52kZaMt21slQzKJC4c6TmUorREbD39hy8h9/3EJP9XZ5TrIXm84zzOPSjiaClYYRI MrXg== X-Gm-Message-State: AOAM530uziCxBvfCQneeimBG/sBPsdMWitCONVonItPHJKEygk5AA39F aH3dsOXoBeFsLsVflrdG0XQa8Zyl X-Google-Smtp-Source: ABdhPJxL2zLFZXurx3OlwWmk1TZXmW9NpRRKZeEKCPHoZmiobSjDKX/34tr87rLFd8rn04Xk8yUvPg== X-Received: by 2002:a17:90b:2350:: with SMTP id ms16mr7932377pjb.224.1594181958201; Tue, 07 Jul 2020 21:19:18 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:17 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 06/17] gpiolib: cdev: rename numdescs to num_descs Date: Wed, 8 Jul 2020 12:15:49 +0800 Message-Id: <20200708041600.768775-7-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Rename numdescs to num_descs to be more consistent with the naming of other counters and improve readability. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 0d3a799e09ae..b39e7ef8c0d4 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -39,13 +39,13 @@ * @gdev: the GPIO device the handle pertains to * @label: consumer label used to tag descriptors * @descs: the GPIO descriptors held by this handle - * @numdescs: the number of descriptors held in the descs array + * @num_descs: the number of descriptors held in the descs array */ struct linehandle_state { struct gpio_device *gdev; const char *label; struct gpio_desc *descs[GPIOHANDLES_MAX]; - u32 numdescs; + u32 num_descs; }; #define GPIOHANDLE_REQUEST_VALID_FLAGS \ @@ -138,7 +138,7 @@ static long linehandle_set_config(struct linehandle_state *lh, if (ret) return ret; - for (i = 0; i < lh->numdescs; i++) { + for (i = 0; i < lh->num_descs; i++) { desc = lh->descs[i]; linehandle_flags_to_desc_flags(gcnf.flags, &desc->flags); @@ -177,7 +177,7 @@ static long linehandle_ioctl(struct file *file, unsigned int cmd, /* NOTE: It's ok to read values of output lines. */ int ret = gpiod_get_array_value_complex(false, true, - lh->numdescs, + lh->num_descs, lh->descs, NULL, vals); @@ -185,7 +185,7 @@ static long linehandle_ioctl(struct file *file, unsigned int cmd, return ret; memset(&ghd, 0, sizeof(ghd)); - for (i = 0; i < lh->numdescs; i++) + for (i = 0; i < lh->num_descs; i++) ghd.values[i] = test_bit(i, vals); if (copy_to_user(ip, &ghd, sizeof(ghd))) @@ -204,13 +204,13 @@ static long linehandle_ioctl(struct file *file, unsigned int cmd, return -EFAULT; /* Clamp all values to [0,1] */ - for (i = 0; i < lh->numdescs; i++) + for (i = 0; i < lh->num_descs; i++) __assign_bit(i, vals, ghd.values[i]); /* Reuse the array setting function */ return gpiod_set_array_value_complex(false, true, - lh->numdescs, + lh->num_descs, lh->descs, NULL, vals); @@ -234,7 +234,7 @@ static int linehandle_release(struct inode *inode, struct file *file) struct gpio_device *gdev = lh->gdev; int i; - for (i = 0; i < lh->numdescs; i++) + for (i = 0; i < lh->num_descs; i++) gpiod_free(lh->descs[i]); kfree(lh->label); kfree(lh); @@ -333,7 +333,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) } /* Let i point at the last handle */ i--; - lh->numdescs = handlereq.lines; + lh->num_descs = handlereq.lines; fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); if (fd < 0) { @@ -364,7 +364,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) fd_install(fd, file); dev_dbg(&gdev->dev, "registered chardev handle for %d lines\n", - lh->numdescs); + lh->num_descs); return 0; From patchwork Wed Jul 8 04:15:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324945 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=PrrrfCY1; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mKY2440z9sQt for ; Wed, 8 Jul 2020 14:19:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729283AbgGHET0 (ORCPT ); Wed, 8 Jul 2020 00:19:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETZ (ORCPT ); Wed, 8 Jul 2020 00:19:25 -0400 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D49DDC061755; Tue, 7 Jul 2020 21:19:25 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id s26so5755199pfm.4; Tue, 07 Jul 2020 21:19:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ReGzyNGSefSJPOQjrjTLmjVp9vl7IO2xu/zGO+d6rEM=; b=PrrrfCY1xy9tox1r5mwnGG1Hs/6ErrSNt7uV0Lh10KSlJ4TiSFPaf4t+0atNjRmPCR 0+noFTKb1xHzOvTMPFl2icZtN/I5z9po70kHyjn91sT95mkHLe0mItMbti3N9f95hdaI 1eSWs2TyCyH+abrsBny/Tx3EA0KeYJAgYmAXpOYlomDaBFCeyRFq3V7OWmId7ihIsl7i VyztPfli1GUIb4d0FNkXKi/IPacgTGiBykNAb4L8U7B2UlA7hR612KYFUWE8MO+uL/dA dCMfm5zpJX1oxpgqI+IDz0Zja3v0QjM6z6Nl6lrCeIBCMCYGyHjvSGJ7Kn/w7z+gSB3j O/HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ReGzyNGSefSJPOQjrjTLmjVp9vl7IO2xu/zGO+d6rEM=; b=K2aStbKy0dUlg7cgdtRgtfzFt9Kgly0QJ1n2kMfGCtodjLWKz8veCf2ya1Llkao7mY 6Ys0YpB+20TNnQ0/p6QdLZsWOWtM2PDTSEZeZqHoNkPskVSCVvaTRg8770o5vlpohzmG UQMd3TKNIOpQQD/Y1XEHRnkb0NXgbjZQYrxJpHm7ecg40d1yM9O5ICXYmoqXBNla+wS8 pOnLxUUKb3z7mmDJbjNUsq9alC/P7MIFSp5bZ4ODvpFBx7+6MMIdPcIJZfasDMzd5DeB mnYjgyllvGVleXM8sebg4Nnm58vmReHkbBcNucvWDMZENsSEsRNyUH51limqD6DKPeqw oyPg== X-Gm-Message-State: AOAM533MkvCte2SnY66/3s3gwgAKFAQ81SsjQm6eN7hw/gvu+8Dh/ieq qfIE1Hcylskb+ZVwkrM5s43RLwgP X-Google-Smtp-Source: ABdhPJzhTCtMfgimGZzzI5s5UdY0rskw6sIx+56m7WLhJKXAeqOU19yOLllhvWcl4jbAbDkK6jvkYg== X-Received: by 2002:a63:184a:: with SMTP id 10mr24372049pgy.446.1594181964999; Tue, 07 Jul 2020 21:19:24 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:24 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 07/17] gpiolib: cdev: remove pointless decrement of i Date: Wed, 8 Jul 2020 12:15:50 +0800 Message-Id: <20200708041600.768775-8-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Remove pointless decrement of variable, and associated comment. While i is used subsequently, it is re-initialized so this decrement serves no purpose. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index b39e7ef8c0d4..d50339ef6f05 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -331,8 +331,6 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", offset); } - /* Let i point at the last handle */ - i--; lh->num_descs = handlereq.lines; fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); From patchwork Wed Jul 8 04:15:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324946 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=tHsd7jII; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mKl5SX0z9sDX for ; Wed, 8 Jul 2020 14:19:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729333AbgGHETj (ORCPT ); Wed, 8 Jul 2020 00:19:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETj (ORCPT ); Wed, 8 Jul 2020 00:19:39 -0400 Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED21CC061755; Tue, 7 Jul 2020 21:19:38 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id l6so619325pjq.1; Tue, 07 Jul 2020 21:19:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tKScUwPwGR54SrXti/OUBW9OyQkiVzQWLR/5wWYtdeg=; b=tHsd7jIIfPjZ5BBjFVaaCM03jiFbtEUSAooYHOEhG8zK0p8G24GUCsrBjOUG/cEpy7 YLMEKDJ310u9WdRVftrceL1nm0A/Y8YLsFrF9F2UlI+sqlsQf5ZXeZUW6L8ULsKk7iLi VvG7njPxe3mlrh0gurQ7i6KY32FMCbacxaM2aXV4wmuZjcaHxxC/Mi+qdf+ZimfBWaK9 7ulRNwEJVR7Kg4SE/aAdtOff/jq5E/8+xcwnvuqfnYE0jE3RPsusyqVvCk6zyp87WJH/ IF5YOanNE769jEE0WEmaV/M1PgI/LE+wm1Gp0G3dbNSU/8zGR16Xx0sYXmcy0nCienek QfUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tKScUwPwGR54SrXti/OUBW9OyQkiVzQWLR/5wWYtdeg=; b=Lbx0DbvoeVXr/ZnkOmUlR0eas3Gdv1I3qVwKFoaUXhVqtDI8+sB1ioLMwB/jkL1YPN XELsHuHSV2e5aUcnQZebpoMEghyiOSFCGt8Womj3LFuLZibP6GJ1i0MEhNXenOObZvaH vsHgUSx5VbpO4vkvLY9NXc7jmEJ2uoRwDro350vt4GGxcCaHgsmpEZ2LChWa8HVlP/YO vD6d9wjW4dYzc7xDMwhapB+K8PJDfQqV/TVHB0ZrjE/exDjyDfTNjSqkNj6bz6/rWfCJ p/OEXsrqgVIoRm2mzc8lHaqgsIx9anqY/9fE7Dy+R2/tHiVT5Wy05vEX54P5c5OrWAeB 8MgQ== X-Gm-Message-State: AOAM530/pbDXR+g/cFKcDqe1jcUh8miQfwKUe91/ltSgQLXolSF1sqzQ l9NHDx2NW8Sn08bBnoP9EVKN9wr1 X-Google-Smtp-Source: ABdhPJzqaYqPgvGqEHmilUqhCMINjWcXuAWMjpmKh9nnc2NuV06ECLbtLG+T5nNfA2FS6XFZhnkKcA== X-Received: by 2002:a17:90b:1b52:: with SMTP id nv18mr7949625pjb.129.1594181978008; Tue, 07 Jul 2020 21:19:38 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:37 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 08/17] gpiolib: cdev: use blocking notifier call chain instead of atomic Date: Wed, 8 Jul 2020 12:15:51 +0800 Message-Id: <20200708041600.768775-9-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Replace usage of atomic_notifier_call_chain with blocking_notifier_call_chain as the notifier function, lineinfo_changed_notify, calls gpio_desc_to_lineinfo, which calls pinctrl_gpio_can_use_line, which can sleep. The chain isn't being called from an atomic context so the the blocking notifier is a suitable substitute. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 24 ++++++++++++------------ drivers/gpio/gpiolib.c | 14 +++++++------- drivers/gpio/gpiolib.h | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index d50339ef6f05..352d815bbd07 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -158,8 +158,8 @@ static long linehandle_set_config(struct linehandle_state *lh, return ret; } - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_CONFIG, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_CONFIG, desc); } return 0; } @@ -325,8 +325,8 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) goto out_free_descs; } - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_REQUESTED, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_REQUESTED, desc); dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", offset); @@ -674,8 +674,8 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) if (ret) goto out_free_desc; - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_REQUESTED, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_REQUESTED, desc); le->irq = gpiod_to_irq(desc); if (le->irq <= 0) { @@ -1049,8 +1049,8 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) priv->gdev = gdev; priv->lineinfo_changed_nb.notifier_call = lineinfo_changed_notify; - ret = atomic_notifier_chain_register(&gdev->notifier, - &priv->lineinfo_changed_nb); + ret = blocking_notifier_chain_register(&gdev->notifier, + &priv->lineinfo_changed_nb); if (ret) goto out_free_bitmap; @@ -1064,8 +1064,8 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) return ret; out_unregister_notifier: - atomic_notifier_chain_unregister(&gdev->notifier, - &priv->lineinfo_changed_nb); + blocking_notifier_chain_unregister(&gdev->notifier, + &priv->lineinfo_changed_nb); out_free_bitmap: bitmap_free(priv->watched_lines); out_free_priv: @@ -1085,8 +1085,8 @@ static int gpio_chrdev_release(struct inode *inode, struct file *file) struct gpio_device *gdev = priv->gdev; bitmap_free(priv->watched_lines); - atomic_notifier_chain_unregister(&gdev->notifier, - &priv->lineinfo_changed_nb); + blocking_notifier_chain_unregister(&gdev->notifier, + &priv->lineinfo_changed_nb); put_device(&gdev->dev); kfree(priv); diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 4d267c69482c..80137c1b3cdc 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -615,7 +615,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, spin_unlock_irqrestore(&gpio_lock, flags); - ATOMIC_INIT_NOTIFIER_HEAD(&gdev->notifier); + BLOCKING_INIT_NOTIFIER_HEAD(&gdev->notifier); #ifdef CONFIG_PINCTRL INIT_LIST_HEAD(&gdev->pin_ranges); @@ -2049,8 +2049,8 @@ static bool gpiod_free_commit(struct gpio_desc *desc) } spin_unlock_irqrestore(&gpio_lock, flags); - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_RELEASED, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_RELEASED, desc); return ret; } @@ -3927,8 +3927,8 @@ struct gpio_desc *__must_check gpiod_get_index(struct device *dev, return ERR_PTR(ret); } - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_REQUESTED, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_REQUESTED, desc); return desc; } @@ -3995,8 +3995,8 @@ struct gpio_desc *fwnode_get_named_gpiod(struct fwnode_handle *fwnode, return ERR_PTR(ret); } - atomic_notifier_call_chain(&desc->gdev->notifier, - GPIOLINE_CHANGED_REQUESTED, desc); + blocking_notifier_call_chain(&desc->gdev->notifier, + GPIOLINE_CHANGED_REQUESTED, desc); return desc; } diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h index 2dee4e1e12dc..6709f79c02dd 100644 --- a/drivers/gpio/gpiolib.h +++ b/drivers/gpio/gpiolib.h @@ -56,7 +56,7 @@ struct gpio_device { const char *label; void *data; struct list_head list; - struct atomic_notifier_head notifier; + struct blocking_notifier_head notifier; #ifdef CONFIG_PINCTRL /* From patchwork Wed Jul 8 04:15:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324947 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=eWEtjuky; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mKw1RhMz9sDX for ; Wed, 8 Jul 2020 14:19:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729386AbgGHETr (ORCPT ); Wed, 8 Jul 2020 00:19:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39918 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHETq (ORCPT ); Wed, 8 Jul 2020 00:19:46 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86101C061755; Tue, 7 Jul 2020 21:19:46 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id u5so19392020pfn.7; Tue, 07 Jul 2020 21:19:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zs9gcJh1GuqENL0684ED+OEV5vC6ieHQPjBw7Yiioes=; b=eWEtjukyd4B/iIk4TZaUcjglHYlXoeXyGUov5TUBdYgyWmefN8mZa4hRd1Mv9tmN26 FucBcYfPQtavumQL0O1wxvd3mlJOblp9aPp8VYVX5x/O82Uz7n5o0vlE8eSWvgdLgig8 c9JsiNNQrTC9J8KLkt4lwi4B6lxHfadd36v4PH/X9hzUd6Yk0aD+/drXGl40K+CRtRuq QyUrpqvsoNHp1Kn+4qHcnLNfA+TFIzzjfPhs1Gn3k7Dav823EAD7zn5d076Nb1JPusYm qOZXk2r/diryGAf0M9+2JhkKmpWYagURTNJhrYkwd8saNtfigR3ErjDpREQmrVLnlqeG X8Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zs9gcJh1GuqENL0684ED+OEV5vC6ieHQPjBw7Yiioes=; b=uEEFufeqmk8tkVFO0xOAiFb46xIArwax32dugjwzC+jOD+wz7JRJw6BsCDhKvt81b1 pQLlieT88GLc4D5SVD8JA8yIaKbYvS86jg/xMlmanohzLYOMKSaLa9GlDrICtYoYO+Dz DOlFWzJUwqs7x1Fu+6f2rI7N7GHMPEXlyRagGLY9JV5XTqMN+1tuJWAk+LrIsgrT5B9F rRolEJ9auuVU6kx96O7qwK+ezQOI1v685cjLxazHv2BxVN3IXkmVdlelfj2akB5ZjzWi EX7mfH8EN8WVycr3NMQ7PVs3xM/rXoas+SYYQZ+rnbOIBrfHy7kDStMLGTeiA/tNeikM iYkA== X-Gm-Message-State: AOAM531uOVJYjUwoGgKZ+NzEMityb0F++Sx7X7L7Glyf2hSYUjBK1wwl Yu5+U03f28VY4Oh8oaCUm4Pi88Zp X-Google-Smtp-Source: ABdhPJxqAWofiG7Ff+XVsjXf0AapWy6YRlVt5dywMdwPPCPchFfVCRz0dERk40S87GG4CwTQ75PqEg== X-Received: by 2002:a05:6a00:148c:: with SMTP id v12mr51188651pfu.171.1594181985478; Tue, 07 Jul 2020 21:19:45 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:44 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 09/17] gpiolib: cdev: rename priv to cdev Date: Wed, 8 Jul 2020 12:15:52 +0800 Message-Id: <20200708041600.768775-10-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Rename priv to cdev to improve readability. The name "priv" indicates that the object is pointed to by file->private_data, not what the object is actually is. As it is always used to point to a struct gpio_chardev_data, renaming it to cdev is more appropriate. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 90 ++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 352d815bbd07..fe1b385deecc 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -826,8 +826,8 @@ struct gpio_chardev_data { */ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - struct gpio_chardev_data *priv = file->private_data; - struct gpio_device *gdev = priv->gdev; + struct gpio_chardev_data *cdev = file->private_data; + struct gpio_device *gdev = cdev->gdev; struct gpio_chip *gc = gdev->chip; void __user *ip = (void __user *)arg; struct gpio_desc *desc; @@ -887,7 +887,7 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) hwgpio = gpio_chip_hwgpio(desc); - if (test_bit(hwgpio, priv->watched_lines)) + if (test_bit(hwgpio, cdev->watched_lines)) return -EBUSY; gpio_desc_to_lineinfo(desc, &lineinfo); @@ -895,7 +895,7 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) if (copy_to_user(ip, &lineinfo, sizeof(lineinfo))) return -EFAULT; - set_bit(hwgpio, priv->watched_lines); + set_bit(hwgpio, cdev->watched_lines); return 0; } else if (cmd == GPIO_GET_LINEINFO_UNWATCH_IOCTL) { if (copy_from_user(&offset, ip, sizeof(offset))) @@ -907,10 +907,10 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) hwgpio = gpio_chip_hwgpio(desc); - if (!test_bit(hwgpio, priv->watched_lines)) + if (!test_bit(hwgpio, cdev->watched_lines)) return -EBUSY; - clear_bit(hwgpio, priv->watched_lines); + clear_bit(hwgpio, cdev->watched_lines); return 0; } return -EINVAL; @@ -933,12 +933,12 @@ to_gpio_chardev_data(struct notifier_block *nb) static int lineinfo_changed_notify(struct notifier_block *nb, unsigned long action, void *data) { - struct gpio_chardev_data *priv = to_gpio_chardev_data(nb); + struct gpio_chardev_data *cdev = to_gpio_chardev_data(nb); struct gpioline_info_changed chg; struct gpio_desc *desc = data; int ret; - if (!test_bit(gpio_chip_hwgpio(desc), priv->watched_lines)) + if (!test_bit(gpio_chip_hwgpio(desc), cdev->watched_lines)) return NOTIFY_DONE; memset(&chg, 0, sizeof(chg)); @@ -947,9 +947,9 @@ static int lineinfo_changed_notify(struct notifier_block *nb, chg.timestamp = ktime_get_ns(); gpio_desc_to_lineinfo(desc, &chg.info); - ret = kfifo_in_spinlocked(&priv->events, &chg, 1, &priv->wait.lock); + ret = kfifo_in_spinlocked(&cdev->events, &chg, 1, &cdev->wait.lock); if (ret) - wake_up_poll(&priv->wait, EPOLLIN); + wake_up_poll(&cdev->wait, EPOLLIN); else pr_debug_ratelimited("lineinfo event FIFO is full - event dropped\n"); @@ -959,13 +959,13 @@ static int lineinfo_changed_notify(struct notifier_block *nb, static __poll_t lineinfo_watch_poll(struct file *file, struct poll_table_struct *pollt) { - struct gpio_chardev_data *priv = file->private_data; + struct gpio_chardev_data *cdev = file->private_data; __poll_t events = 0; - poll_wait(file, &priv->wait, pollt); + poll_wait(file, &cdev->wait, pollt); - if (!kfifo_is_empty_spinlocked_noirqsave(&priv->events, - &priv->wait.lock)) + if (!kfifo_is_empty_spinlocked_noirqsave(&cdev->events, + &cdev->wait.lock)) events = EPOLLIN | EPOLLRDNORM; return events; @@ -974,7 +974,7 @@ static __poll_t lineinfo_watch_poll(struct file *file, static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, size_t count, loff_t *off) { - struct gpio_chardev_data *priv = file->private_data; + struct gpio_chardev_data *cdev = file->private_data; struct gpioline_info_changed event; ssize_t bytes_read = 0; int ret; @@ -983,28 +983,28 @@ static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, return -EINVAL; do { - spin_lock(&priv->wait.lock); - if (kfifo_is_empty(&priv->events)) { + spin_lock(&cdev->wait.lock); + if (kfifo_is_empty(&cdev->events)) { if (bytes_read) { - spin_unlock(&priv->wait.lock); + spin_unlock(&cdev->wait.lock); return bytes_read; } if (file->f_flags & O_NONBLOCK) { - spin_unlock(&priv->wait.lock); + spin_unlock(&cdev->wait.lock); return -EAGAIN; } - ret = wait_event_interruptible_locked(priv->wait, - !kfifo_is_empty(&priv->events)); + ret = wait_event_interruptible_locked(cdev->wait, + !kfifo_is_empty(&cdev->events)); if (ret) { - spin_unlock(&priv->wait.lock); + spin_unlock(&cdev->wait.lock); return ret; } } - ret = kfifo_out(&priv->events, &event, 1); - spin_unlock(&priv->wait.lock); + ret = kfifo_out(&cdev->events, &event, 1); + spin_unlock(&cdev->wait.lock); if (ret != 1) { ret = -EIO; break; @@ -1029,33 +1029,33 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) { struct gpio_device *gdev = container_of(inode->i_cdev, struct gpio_device, chrdev); - struct gpio_chardev_data *priv; + struct gpio_chardev_data *cdev; int ret = -ENOMEM; /* Fail on open if the backing gpiochip is gone */ if (!gdev->chip) return -ENODEV; - priv = kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) + cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); + if (!cdev) return -ENOMEM; - priv->watched_lines = bitmap_zalloc(gdev->chip->ngpio, GFP_KERNEL); - if (!priv->watched_lines) - goto out_free_priv; + cdev->watched_lines = bitmap_zalloc(gdev->chip->ngpio, GFP_KERNEL); + if (!cdev->watched_lines) + goto out_free_cdev; - init_waitqueue_head(&priv->wait); - INIT_KFIFO(priv->events); - priv->gdev = gdev; + init_waitqueue_head(&cdev->wait); + INIT_KFIFO(cdev->events); + cdev->gdev = gdev; - priv->lineinfo_changed_nb.notifier_call = lineinfo_changed_notify; + cdev->lineinfo_changed_nb.notifier_call = lineinfo_changed_notify; ret = blocking_notifier_chain_register(&gdev->notifier, - &priv->lineinfo_changed_nb); + &cdev->lineinfo_changed_nb); if (ret) goto out_free_bitmap; get_device(&gdev->dev); - file->private_data = priv; + file->private_data = cdev; ret = nonseekable_open(inode, file); if (ret) @@ -1065,11 +1065,11 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) out_unregister_notifier: blocking_notifier_chain_unregister(&gdev->notifier, - &priv->lineinfo_changed_nb); + &cdev->lineinfo_changed_nb); out_free_bitmap: - bitmap_free(priv->watched_lines); -out_free_priv: - kfree(priv); + bitmap_free(cdev->watched_lines); +out_free_cdev: + kfree(cdev); return ret; } @@ -1081,14 +1081,14 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file) */ static int gpio_chrdev_release(struct inode *inode, struct file *file) { - struct gpio_chardev_data *priv = file->private_data; - struct gpio_device *gdev = priv->gdev; + struct gpio_chardev_data *cdev = file->private_data; + struct gpio_device *gdev = cdev->gdev; - bitmap_free(priv->watched_lines); + bitmap_free(cdev->watched_lines); blocking_notifier_chain_unregister(&gdev->notifier, - &priv->lineinfo_changed_nb); + &cdev->lineinfo_changed_nb); put_device(&gdev->dev); - kfree(priv); + kfree(cdev); return 0; } From patchwork Wed Jul 8 04:15:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324948 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=h0m7TxVh; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mL60xLNz9sDX for ; Wed, 8 Jul 2020 14:19:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729418AbgGHET5 (ORCPT ); Wed, 8 Jul 2020 00:19:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHET4 (ORCPT ); Wed, 8 Jul 2020 00:19:56 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3D51C061755; Tue, 7 Jul 2020 21:19:56 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id gc9so615979pjb.2; Tue, 07 Jul 2020 21:19:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0FCq6Jagl5VFciT39ywBKkxFPJGQbt40FgsHop4dXwM=; b=h0m7TxVhBMRwJfUj1x0NGxsSreUshm90Hhmtciq8BbsVAEKQV8O8Q9DVK6wDjSGQHE 9IMAELdWUMbfca602EjFbZkcgfBc1ItxTi9kiuGVVVYLumWzH8AmQJt9RyAx7Z1hOJq9 vjufK5lQkZTM/Ie2cvG8RyYfdcN4849NaM5ZpArHRduHJYanbujNT2u7JwsArUKfZUw/ uEZWX6fXttkIwjnnGe6rok2l/8cBwMJqZjR01XXK6Tn/Tmb63nKazIEm7qdabVHy6zaS yEc3OUI/QcI/kJGs4gwkir6tVGviwmitvXZ9YsOlv4aXJO2fmEMZY/tJm9GjllFXhNW7 V3Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0FCq6Jagl5VFciT39ywBKkxFPJGQbt40FgsHop4dXwM=; b=Awcro8C67BbFodpCSiB47g2SkmfgchYnyXWHsPD1FIl2U2Iz1FCO1X+uI+MTShJgLO KQngCmYhkXYXWfIQUik0vOtHOp+dz3zcp39fgHQYwFCShleexgjO4RoQwtpzJ52hBIin c3CLJKwNOrpsSLSxqkQaq5U/SrBb7WkM8Sc3YcdTnAnhZpBbrDO5DTI36yTxVrjhemkh jkLi9pISlwh1BARJb/t71KXTIb7oSWn6r/iG6dXbFHMWhkBKXNrIPNMAYKdBIC8x0VHG VhHCoP3HSkEekPnrjjrGLZFnqjKNKnFtaDbuEi3VE1RCVW9qtFYUB9bitGXZb+5UIFSy yldw== X-Gm-Message-State: AOAM530FAz53UpoHWDMSYw2sdJ8Uqq6QnCZQpnYI0eJPB9tqHeJp4KUN /tQyq3JHTR6L0XF3dbMC03VbmhjD X-Google-Smtp-Source: ABdhPJyrPfSv3TjA5/FvNuZRRVv/bsk3xa5OkwC9Xhm54S+c4wi/oxGRQZ1/+3M5cUIQteuYIiTlzg== X-Received: by 2002:a17:902:b414:: with SMTP id x20mr36732197plr.143.1594181995676; Tue, 07 Jul 2020 21:19:55 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.19.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:19:54 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 10/17] gpiolib: cdev: fix minor race in GET_LINEINFO_WATCH Date: Wed, 8 Jul 2020 12:15:53 +0800 Message-Id: <20200708041600.768775-11-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Merge separate usage of test_bit/set_bit into test_and_set_bit to remove the possibility of a race between the test and set. Similarly test_bit and clear_bit. In the existing code it is possible for two threads to race past the test_bit and then set or clear the watch bit, and neither return EBUSY. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index fe1b385deecc..b2b26dc25051 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -887,15 +887,16 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) hwgpio = gpio_chip_hwgpio(desc); - if (test_bit(hwgpio, cdev->watched_lines)) + if (test_and_set_bit(hwgpio, cdev->watched_lines)) return -EBUSY; gpio_desc_to_lineinfo(desc, &lineinfo); - if (copy_to_user(ip, &lineinfo, sizeof(lineinfo))) + if (copy_to_user(ip, &lineinfo, sizeof(lineinfo))) { + clear_bit(hwgpio, cdev->watched_lines); return -EFAULT; + } - set_bit(hwgpio, cdev->watched_lines); return 0; } else if (cmd == GPIO_GET_LINEINFO_UNWATCH_IOCTL) { if (copy_from_user(&offset, ip, sizeof(offset))) @@ -907,10 +908,9 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) hwgpio = gpio_chip_hwgpio(desc); - if (!test_bit(hwgpio, cdev->watched_lines)) + if (!test_and_clear_bit(hwgpio, cdev->watched_lines)) return -EBUSY; - clear_bit(hwgpio, cdev->watched_lines); return 0; } return -EINVAL; From patchwork Wed Jul 8 04:15:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324949 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=pClKqL7C; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mLH6gTwz9sDX for ; Wed, 8 Jul 2020 14:20:07 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728294AbgGHEUH (ORCPT ); Wed, 8 Jul 2020 00:20:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39972 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHEUG (ORCPT ); Wed, 8 Jul 2020 00:20:06 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9459AC061755; Tue, 7 Jul 2020 21:20:06 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id k5so1775533plk.13; Tue, 07 Jul 2020 21:20:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EOpp4x8aa6lXjn0KFyGbW2hznqCbSYUjl5NJJNqoY6o=; b=pClKqL7CMA9TW8DWqsTOb4xcAL6VkZBTf/yXfOkrF4S7O+CHbD076qlloUo8Cz7rPB oQTweIvZLm+5qpeKOIlrrqAcszW3tiUYOkf/Fxh/MCEfgTqNq5Uf84Jr4cvxVZlMQaT5 OUVy38f7V/bEtvtt7zvNHy/L3fYfNQx7HTmSnoOQpAN/SVugbFMma/GuuJLv6JmOplHw h0IisWfekDnZQvt0kehTexAZ3bM+9X5xOP5xfjV/Eb0bFBIZPVXv90P7GFWyjzcfFhv8 6FPiGmvDcZflI2L63FJqp6oUAnQF1VQKC6mYZ06rQxbGoNDOiuAdkhK3m7cQBC1DZITy 4PKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EOpp4x8aa6lXjn0KFyGbW2hznqCbSYUjl5NJJNqoY6o=; b=aCuI5q4tOmD8op/9aCy0F74/pHCnghqL6QDyGkmKK5HSoK7T/rMcULrtaXH0jivofR E3FqxG5/01l5KoTicDPLwjLENCneCTK/3xBkuUdhUrpGi2yWhyzgh/R7CP2AAbyllaYk /X9JlkZqgKC0ImHXAgPNojBsg51IwjDvbPayiHPfe75ELqok0CcnbPp/dYpvcmqhbLtS 4pUdDb0WPA0SCGlxTu6sZ56y/gLxDZVpaU2sNVx6xNPAaNanX4IspK0MVdk1GHeFP9fQ tJzrpAiRD+jMt8rSB980oeb7DmHhbIPKsfikM4g70loIqeG1JmnDLiBYCNqbMmCPjQie 9zPA== X-Gm-Message-State: AOAM531rCREHHVBA+Tiy6sA5DSo709w8RlmzO+XPZWkXK81Yy3LFzZar YtNWwei3vA3080huj1LW0LJy6Opo X-Google-Smtp-Source: ABdhPJyQVRM94UgYgw1ebkfrNrUc7uRVLg6QSne2IyE3ypQe4s5CKXFNcJnM6B1lhHN+FB1zJVqPjg== X-Received: by 2002:a17:902:c211:: with SMTP id 17mr30934363pll.302.1594182005575; Tue, 07 Jul 2020 21:20:05 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:04 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 11/17] gpiolib: cdev: remove recalculation of offset Date: Wed, 8 Jul 2020 12:15:54 +0800 Message-Id: <20200708041600.768775-12-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Remove recalculation of offset from desc, where desc itself was calculated from offset. There is no benefit from the desc -> hwgpio conversion in this context. The only implicit benefit of the offset -> desc -> hwgpio is the range check in the offset -> desc, but where desc is required you still get that, and where desc isn't required it is simpler to perform the range check directly. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index b2b26dc25051..c86fb9305681 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -832,7 +832,6 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) void __user *ip = (void __user *)arg; struct gpio_desc *desc; __u32 offset; - int hwgpio; /* We fail any subsequent ioctl():s when the chip is gone */ if (!gc) @@ -860,12 +859,11 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) if (copy_from_user(&lineinfo, ip, sizeof(lineinfo))) return -EFAULT; + /* this doubles as a range check on line_offset */ desc = gpiochip_get_desc(gc, lineinfo.line_offset); if (IS_ERR(desc)) return PTR_ERR(desc); - hwgpio = gpio_chip_hwgpio(desc); - gpio_desc_to_lineinfo(desc, &lineinfo); if (copy_to_user(ip, &lineinfo, sizeof(lineinfo))) @@ -881,19 +879,18 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) if (copy_from_user(&lineinfo, ip, sizeof(lineinfo))) return -EFAULT; + /* this doubles as a range check on line_offset */ desc = gpiochip_get_desc(gc, lineinfo.line_offset); if (IS_ERR(desc)) return PTR_ERR(desc); - hwgpio = gpio_chip_hwgpio(desc); - - if (test_and_set_bit(hwgpio, cdev->watched_lines)) + if (test_and_set_bit(lineinfo.line_offset, cdev->watched_lines)) return -EBUSY; gpio_desc_to_lineinfo(desc, &lineinfo); if (copy_to_user(ip, &lineinfo, sizeof(lineinfo))) { - clear_bit(hwgpio, cdev->watched_lines); + clear_bit(lineinfo.line_offset, cdev->watched_lines); return -EFAULT; } @@ -902,13 +899,10 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) if (copy_from_user(&offset, ip, sizeof(offset))) return -EFAULT; - desc = gpiochip_get_desc(gc, offset); - if (IS_ERR(desc)) - return PTR_ERR(desc); - - hwgpio = gpio_chip_hwgpio(desc); + if (offset >= cdev->gdev->ngpio) + return -EINVAL; - if (!test_and_clear_bit(hwgpio, cdev->watched_lines)) + if (!test_and_clear_bit(offset, cdev->watched_lines)) return -EBUSY; return 0; From patchwork Wed Jul 8 04:15:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324950 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=FxZvmyUh; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mLT0HCmz9sDX for ; Wed, 8 Jul 2020 14:20:17 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729458AbgGHEUQ (ORCPT ); Wed, 8 Jul 2020 00:20:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHEUP (ORCPT ); Wed, 8 Jul 2020 00:20:15 -0400 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F0F6C061755; Tue, 7 Jul 2020 21:20:15 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id 207so19201054pfu.3; Tue, 07 Jul 2020 21:20:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DIvxW6NTvtcgRygXCnNgm6ihM/xzXyllojs+21+/QHA=; b=FxZvmyUhiQS+eZk0doFEfyYWBptooh0Dl2lC4e8LBL5vFDGl7WA3Ij5BJc2xjXNnQY 9f7u+u8aue29ilRcJmETn5eB09yrtX+EbOEnl/jG7VOB4kr7nPAXtvA0egIBLozqlGur QJ59gKSyD6DylelPjXRq3m7qUxgcRxuM9qdqL9Yakda40P2d/vxGfhR8Nr1et4dWz9Ls g9sqwCb/q6d1GbgBRgj51sU0jPgdS8EEaiCGvo1TAuRFOlbu1KMAlt1N0jbUVZvhr601 DUFB/195mBA4JeTJqx/aM5eLZ0cJW/u7ma9TBnD/+c54n6rd5b5UtSV5Kw4+InO6Lfrn bj+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DIvxW6NTvtcgRygXCnNgm6ihM/xzXyllojs+21+/QHA=; b=nObWP5SuviCzcSRCvq20UnX7NrdXjjH/37Hwl7bw6NvvrxGh6kpFx0QQjhTl2tnXxu H/VGmBoAIwgU8agX5HmQPtzdJO5pjgEGqph6Hs9bULXZx2b/NEoSIzUu2D44pG5cUHDu EuqPZAhVdqFsm5gAsJv602J861Otqzkoi8yRqBOn57H1wF7q8JjCedpR25g3Ls7mhVwv bCZboosf8USTbnHZhoApNY7dehYOOXry2LhKwWb8yR1qFn1mQh4p1rgADao9j2gH0Hs5 8zOGJUVwxCpEECIVO6Hox9zPGOgiD9ZUyJHppfFUO9wx9layuOPtBsTRQa8mlLdUJx+t jfAw== X-Gm-Message-State: AOAM531UjGob/KciugW2dJsuSIB4g2YwzqKtLh4yW9Kptr+IUh9NcaEB 1Mk0dd/NB6bx5e0JNag/2ZncJbc/ X-Google-Smtp-Source: ABdhPJxBBAQA8aepjonxxxHNRWzPcmRxuQJFw/achaMRFzAeAyUN6qUBF7W8JO0jJ2sb+OSx9l7p0w== X-Received: by 2002:a62:7a07:: with SMTP id v7mr46136013pfc.76.1594182014766; Tue, 07 Jul 2020 21:20:14 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:13 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 12/17] gpiolib: cdev: refactor linehandle cleanup into linehandle_free Date: Wed, 8 Jul 2020 12:15:55 +0800 Message-Id: <20200708041600.768775-13-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Consolidate the cleanup of linehandles, currently duplicated in linehandle_create and linehandle_release, into a helper function linehandle_free. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 39 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index c86fb9305681..d56b367239cc 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -228,17 +228,21 @@ static long linehandle_ioctl_compat(struct file *file, unsigned int cmd, } #endif -static int linehandle_release(struct inode *inode, struct file *file) +static void linehandle_free(struct linehandle_state *lh) { - struct linehandle_state *lh = file->private_data; - struct gpio_device *gdev = lh->gdev; int i; for (i = 0; i < lh->num_descs; i++) - gpiod_free(lh->descs[i]); + if (lh->descs[i]) + gpiod_free(lh->descs[i]); kfree(lh->label); + put_device(&lh->gdev->dev); kfree(lh); - put_device(&gdev->dev); +} + +static int linehandle_release(struct inode *inode, struct file *file) +{ + linehandle_free(file->private_data); return 0; } @@ -257,7 +261,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) struct gpiohandle_request handlereq; struct linehandle_state *lh; struct file *file; - int fd, i, count = 0, ret; + int fd, i, ret; u32 lflags; if (copy_from_user(&handlereq, ip, sizeof(handlereq))) @@ -288,6 +292,8 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) } } + lh->num_descs = handlereq.lines; + /* Request each GPIO */ for (i = 0; i < handlereq.lines; i++) { u32 offset = handlereq.lineoffsets[i]; @@ -295,19 +301,18 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) if (IS_ERR(desc)) { ret = PTR_ERR(desc); - goto out_free_descs; + goto out_free_lh; } ret = gpiod_request(desc, lh->label); if (ret) - goto out_free_descs; + goto out_free_lh; lh->descs[i] = desc; - count = i + 1; linehandle_flags_to_desc_flags(handlereq.flags, &desc->flags); ret = gpiod_set_transitory(desc, false); if (ret < 0) - goto out_free_descs; + goto out_free_lh; /* * Lines have to be requested explicitly for input @@ -318,11 +323,11 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) ret = gpiod_direction_output(desc, val); if (ret) - goto out_free_descs; + goto out_free_lh; } else if (lflags & GPIOHANDLE_REQUEST_INPUT) { ret = gpiod_direction_input(desc); if (ret) - goto out_free_descs; + goto out_free_lh; } blocking_notifier_call_chain(&desc->gdev->notifier, @@ -331,12 +336,11 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) dev_dbg(&gdev->dev, "registered chardev handle for line %d\n", offset); } - lh->num_descs = handlereq.lines; fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); if (fd < 0) { ret = fd; - goto out_free_descs; + goto out_free_lh; } file = anon_inode_getfile("gpio-linehandle", @@ -368,13 +372,8 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip) out_put_unused_fd: put_unused_fd(fd); -out_free_descs: - for (i = 0; i < count; i++) - gpiod_free(lh->descs[i]); - kfree(lh->label); out_free_lh: - kfree(lh); - put_device(&gdev->dev); + linehandle_free(lh); return ret; } From patchwork Wed Jul 8 04:15:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324951 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Dlxtv1kI; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mLd5lStz9sQt for ; Wed, 8 Jul 2020 14:20:25 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729485AbgGHEUY (ORCPT ); Wed, 8 Jul 2020 00:20:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHEUX (ORCPT ); Wed, 8 Jul 2020 00:20:23 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DC75C061755; Tue, 7 Jul 2020 21:20:22 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id x72so9958995pfc.6; Tue, 07 Jul 2020 21:20:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UGbIGJBshzPLISykEztMgHEa0rXjOkE3qrOM3IAMwy4=; b=Dlxtv1kI/oaGzpjHEawhILekrWwQ4djkpA3JeUhxbUha9n2Y75u3bpjTqffdVYpA/U Y96XFZjF+1W9yj6KB8NGtvG4+u5USezNzWmYPiY21OMnoVnH6KrOsZCrixZCora3X1tI OTzmYfI05Y6GbTnvBs+To6UZ9Bb2H2EAISsEQdZKnLrSX9t2cwDtXDqU1WYSf4eSUwou lAxmbdDAhPASG0v7vKAQg6ZeGJXpaqpcC1zdmb85wzFeHKa+f+iA82BbMh/Dpcg453UT kqGQDsZYsFZHo5i/mP/tBWn+FSClA6tRoRhXho15ZfAIBwMjF9cgnEW53V3/p0B6Pm8G mPZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UGbIGJBshzPLISykEztMgHEa0rXjOkE3qrOM3IAMwy4=; b=cap2VR+LHXdsZx5mtTMWl3CnemBXgDmGC40hI7tclSmFeFuQHUtEO4hfgAZ/B0FvJr u66m2V7XArBya8J+wfaLcEfWoaqiB7mC7gxAhPEZLTp0iNTOMpZkSzi4K6bW953p8aXE QQlm/ZCSOZmAbBjWMTKNk/2Cz2b3+FOIioAtPNjZ9h738hyGLE/WDydtNr2Xl7HZMWxP 8n8EbFP52ARMj8JlA7Uu/yvwm0eqSr4hZKtXmp6QDK6+dkpVTUA9N6vReccJ38zB++sX FnXOfX/Q+JQI7+hZHLYAkmwI0t14tlM4neb9VDgIdpx6y/8bVtY51QitxcRPLvFUA+AA pJ8w== X-Gm-Message-State: AOAM531BtoS93Tzgm0q+K1yK5ECDZLouXDxcJFnhL2uRnc4ydbndzQ0R gQ++rKB9b8xmwuyS+cto6fXSuOvj X-Google-Smtp-Source: ABdhPJwBRdl6uFMDofXXmt/eyg6u6Y6C81uFfYjdGhWbanU7jaUcJ4pqiQQaIL2kEQAzVRizLIOpDQ== X-Received: by 2002:a62:cd0c:: with SMTP id o12mr29870413pfg.70.1594182021646; Tue, 07 Jul 2020 21:20:21 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:20 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 13/17] gpiolib: cdev: refactor lineevent cleanup into lineevent_free Date: Wed, 8 Jul 2020 12:15:56 +0800 Message-Id: <20200708041600.768775-14-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Consolidate the cleanup of lineevents, currently duplicated in lineevent_create and lineevent_release, into a helper function lineevent_free. Signed-off-by: Kent Gibson --- drivers/gpio/gpiolib-cdev.c | 44 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index d56b367239cc..e6c9b78adfc2 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -478,16 +478,20 @@ static ssize_t lineevent_read(struct file *file, return bytes_read; } -static int lineevent_release(struct inode *inode, struct file *file) +static void lineevent_free(struct lineevent_state *le) { - struct lineevent_state *le = file->private_data; - struct gpio_device *gdev = le->gdev; - - free_irq(le->irq, le); - gpiod_free(le->desc); + if (le->irq) + free_irq(le->irq, le); + if (le->desc) + gpiod_free(le->desc); kfree(le->label); + put_device(&le->gdev->dev); kfree(le); - put_device(&gdev->dev); +} + +static int lineevent_release(struct inode *inode, struct file *file) +{ + lineevent_free(file->private_data); return 0; } @@ -612,7 +616,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) u32 eflags; int fd; int ret; - int irqflags = 0; + int irq, irqflags = 0; if (copy_from_user(&eventreq, ip, sizeof(eventreq))) return -EFAULT; @@ -663,7 +667,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) ret = gpiod_request(desc, le->label); if (ret) - goto out_free_label; + goto out_free_le; le->desc = desc; le->eflags = eflags; @@ -671,16 +675,17 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) ret = gpiod_direction_input(desc); if (ret) - goto out_free_desc; + goto out_free_le; blocking_notifier_call_chain(&desc->gdev->notifier, GPIOLINE_CHANGED_REQUESTED, desc); - le->irq = gpiod_to_irq(desc); - if (le->irq <= 0) { + irq = gpiod_to_irq(desc); + if (irq <= 0) { ret = -ENODEV; - goto out_free_desc; + goto out_free_le; } + le->irq = irq; if (eflags & GPIOEVENT_REQUEST_RISING_EDGE) irqflags |= test_bit(FLAG_ACTIVE_LOW, &desc->flags) ? @@ -701,12 +706,12 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) le->label, le); if (ret) - goto out_free_desc; + goto out_free_le; fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); if (fd < 0) { ret = fd; - goto out_free_irq; + goto out_free_le; } file = anon_inode_getfile("gpio-event", @@ -735,15 +740,8 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip) out_put_unused_fd: put_unused_fd(fd); -out_free_irq: - free_irq(le->irq, le); -out_free_desc: - gpiod_free(le->desc); -out_free_label: - kfree(le->label); out_free_le: - kfree(le); - put_device(&gdev->dev); + lineevent_free(le); return ret; } From patchwork Wed Jul 8 04:15:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324952 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=I0db/GMV; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mLk6qCCz9sDX for ; Wed, 8 Jul 2020 14:20:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729208AbgGHEUa (ORCPT ); Wed, 8 Jul 2020 00:20:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHEUa (ORCPT ); Wed, 8 Jul 2020 00:20:30 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 02F32C061755; Tue, 7 Jul 2020 21:20:30 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id x11so17628040plo.7; Tue, 07 Jul 2020 21:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VKmH3YWulKNlmBCUWN+19BKJhRrHEIxCdWWdI5ONgVQ=; b=I0db/GMV+yKS6YB/hvaO5ilO3CZulrIXoCps60q5y1KQbGax48CDCyV+4LpQ9dVmfE t1WB+ecfNCLR9cftJEoAffjcR5SSYn96RQLy7yILSHjw7nHvdLGmiv7KOrxV1CLgE6ql iNJ2ljwTdTBOOqq5eJ2W00cACFedA/OEyutq2y+5ACu93d6w49gKxzM96IQHICPkAn86 D0uYxyP54EEjD18kvs5G/ms8a93Ou2lLQQtI93puNAJ8i+nTIsOkqlQdQx3P1c7W84+x li5gsOb4hdTWYVfDnlkU3nh0wpPwgv+wGjG9mpyQYytcTgVI6dx7nD9W+QLSegzA1gwH yaQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VKmH3YWulKNlmBCUWN+19BKJhRrHEIxCdWWdI5ONgVQ=; b=QvIojYd+y4hG6Ab6p/qIxo8LzGz/Rg9wFIzc02qwQ5imnUUFKJakAXINIT/q7EYRZo BT9dIs/01X8EwhB6lOMM/4xzF3V/s+mbg2tqRtvQ3zNPe9LXGBHEamczNxOt9jb3Ld4h NU6pdLR0YqwJzQbn3QZL01rtmbujM7vNJJ1/rjsneHS5m5wFE8gRzx2lL9EzusFY3bCY kFannyQfQjqljJDu91+akJi6NOReg3TJ8TYW1q2y4rArIGi9/ZMrdiroKmg3CySTifaE PpV78ml0upkGm+3rjD0axi1Mm826mnOcijddf2ZBGPnY6QINq4UGizAyEpn3qQseiwLV BdWw== X-Gm-Message-State: AOAM530Mn1J/7bJ+xsndyixnmly8r4rk5n3ZLwixLj4OBEvhjhlQ6w+H +JAqg9pTRyH3OgCCqVZyXhb4VVRZ X-Google-Smtp-Source: ABdhPJzO9ynxK5hyUX81L+r9B4WJQaCuy2OCu/ePFoV4L4Q262AO8yt8UxPT5PfplD0JUFh/BZRrGA== X-Received: by 2002:a17:90b:2350:: with SMTP id ms16mr7935948pjb.224.1594182029156; Tue, 07 Jul 2020 21:20:29 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:28 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 14/17] gpio: uapi: fix misplaced comment line Date: Wed, 8 Jul 2020 12:15:57 +0800 Message-Id: <20200708041600.768775-15-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The second line of the description for event_type is before the first. Move it to after the first line. Signed-off-by: Kent Gibson --- include/uapi/linux/gpio.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/linux/gpio.h b/include/uapi/linux/gpio.h index 0206383c0383..9c27cecf406f 100644 --- a/include/uapi/linux/gpio.h +++ b/include/uapi/linux/gpio.h @@ -71,8 +71,8 @@ enum { * of a GPIO line * @info: updated line information * @timestamp: estimate of time of status change occurrence, in nanoseconds - * and GPIOLINE_CHANGED_CONFIG * @event_type: one of GPIOLINE_CHANGED_REQUESTED, GPIOLINE_CHANGED_RELEASED + * and GPIOLINE_CHANGED_CONFIG * * Note: struct gpioline_info embedded here has 32-bit alignment on its own, * but it works fine with 64-bit alignment too. With its 72 byte size, we can From patchwork Wed Jul 8 04:15:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324953 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=EE1U1yNh; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mLw1gHBz9sDX for ; Wed, 8 Jul 2020 14:20:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729539AbgGHEUj (ORCPT ); Wed, 8 Jul 2020 00:20:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728234AbgGHEUj (ORCPT ); Wed, 8 Jul 2020 00:20:39 -0400 Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D5FEC061755; Tue, 7 Jul 2020 21:20:39 -0700 (PDT) Received: by mail-pg1-x543.google.com with SMTP id g67so20145462pgc.8; Tue, 07 Jul 2020 21:20:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mVj4QaRFJwXQOHlJdSKbib6tPQMBpikDxG7+0rwvolA=; b=EE1U1yNhhcYCS6KLQXJ0k6Z+EfWCmwq/wOP388r1k3FkJ9sDHSF2vbYHCxf51ToJuu agwOjcG24AZfqo/yRp8pNvgjxPxhHAYnxq7Z49jRuIKXHKs0hOQ0SPVIGQubjEdRfAD2 x9IeAavAaGBnR2sgfgxII2w5BKsr/fPNdQ4JBrE309J0I4gujj9G2jY4r4PbSYXZy8VE 2Wii6Q2uiqK0nYZ9wkhma5s9wuyKXzhmfqxUMvazda+9Mv3HbbjsjHcNiZLVdHaKpfkG J+7NVkO/p7dYcyV9AmeLmMXqPmOM6UequwPnFTTjeps/kh5JkjyiqQHMh415UZvUP/RH 1nsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mVj4QaRFJwXQOHlJdSKbib6tPQMBpikDxG7+0rwvolA=; b=BciBnjFbTutriJ0tHerUr4GEhZQMtSn5Cw0Ky0zlFO6AafTzjzC3JnS8zP0YogxQZn c1guNotjBRDWoeSEQqp1vfUuMeyCl50LMDUmSrcssnMvsGV4qpz8kws+m0t1PiamQ/X6 Nlmc+NtFYJoIJKCZEIm3me4dkWLdkWeYPPUZHg3M5l5Kr0JHBckYtcK4FTklCfIaIqmk nd/9QlD41PZD2pzb+PLGrmf4uZnhYJCEW8dRnQxYjxDNNSHotkbpsBEHOomCQ7l5eRaT 5VhRGjEcbuvgb0I2WiYWo+9uec2oGYYWHX5sXjtE6BZm7kpX4Z9byoom0Z6EyGSuKbSr 4Yxg== X-Gm-Message-State: AOAM530Q6hqPNrFt1oLCO7z7jNN928l0P78o6gVD3FtoRYVB52JC7yho yk1yWomK4NafszrcewiCXsA4UIe1 X-Google-Smtp-Source: ABdhPJypq/1N6FLYLcVP+JDSn3TGAcsNDbAZ4/0YQdx2EJRZFcy2EeqlPQTXCcLM9NyMtg4fkVzDSA== X-Received: by 2002:a63:405:: with SMTP id 5mr46148298pge.449.1594182038374; Tue, 07 Jul 2020 21:20:38 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:37 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 15/17] tools: gpio: fix spurious close warning in lsgpio Date: Wed, 8 Jul 2020 12:15:58 +0800 Message-Id: <20200708041600.768775-16-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Fix bogus close warning that occurs when opening the character device fails. Signed-off-by: Kent Gibson --- tools/gpio/lsgpio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/gpio/lsgpio.c b/tools/gpio/lsgpio.c index 8a71ad36f83b..b08d7a5e779b 100644 --- a/tools/gpio/lsgpio.c +++ b/tools/gpio/lsgpio.c @@ -94,7 +94,7 @@ int list_device(const char *device_name) if (fd == -1) { ret = -errno; fprintf(stderr, "Failed to open %s\n", chrdev_name); - goto exit_close_error; + goto exit_free_name; } /* Inspect this GPIO chip */ @@ -141,6 +141,7 @@ int list_device(const char *device_name) exit_close_error: if (close(fd) == -1) perror("Failed to close GPIO character device file"); +exit_free_name: free(chrdev_name); return ret; } From patchwork Wed Jul 8 04:15:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324954 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=p9RqB/Qv; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mM530ggz9sQt for ; Wed, 8 Jul 2020 14:20:49 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729566AbgGHEUp (ORCPT ); Wed, 8 Jul 2020 00:20:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728234AbgGHEUp (ORCPT ); Wed, 8 Jul 2020 00:20:45 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 281ECC061755; Tue, 7 Jul 2020 21:20:45 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id d10so17636918pls.5; Tue, 07 Jul 2020 21:20:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Jwf9HX2v4pIKa2lTAdU6rNePQ32bNm3wIaZRAoDNPmQ=; b=p9RqB/Qv885kHcaYGbK7MG7uE6IyTOksWJGE3636Yy8V7MXXoRhfzJLolZNffI+CnG LTP58eb2p39jAuMKyFItSHZbR6JVt6adTZJTMaQABAdoMjBNJs0xLK8e/V7FBlyaX1Ta s80axRCb5GupZ8XBCgB3W1wwSeglej6lURba3oWohYGR2/bRrb5XIjX+53j0L/l8HcrB RHvIAesM22bO+R85TeIHzuwEYgl18jjt2NyGya6p9SpWEBYixIMJMr9WB41MQhfK46aY yTHAJChdvS90kIDD+fL6obu6qwe18il8TIEg7wGr9xr984LczLnwNYauzEwrmDGQOW74 i6MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Jwf9HX2v4pIKa2lTAdU6rNePQ32bNm3wIaZRAoDNPmQ=; b=GMZ1v7z256p/MAfsqXPRcx7GxCHlH7RROnsqJcNljVb4sW+jv5Um/xuogYteueMbg/ 5srnP/pka27knrDJLcE3YSh/qrZZfpErA3l1vvcMHAQ6ZM54jpuy45gYENFT/P73f5HW A2HUSE0qrDTEzZJxKirdxL4LMNJMX/YlTsKNUYtPbSXW6FIgwX8ZQExAOKShpqqxM9u7 pl6MpaLJi25X47hU+gpho4wjY47q6DXbnXaKi65m/hzwJ2osWL5GuI722fok+8lY61Zu VDLnknzkdL7/MWanplR+z7Y4dulH/hsDjpWISST21uVH1AaRy+9CsAvFl41ioXyr73p2 RA0g== X-Gm-Message-State: AOAM531bqYD2K8VNQZSmm+y1GlEHpI7LWADMimUNi1Gqwb1MnVs4UCLZ JJmNPJY5LG7gZGRFfg07HThu/QvP X-Google-Smtp-Source: ABdhPJzte7XvEIcqLv+9KrITWeS8yb08ygSJREBf8vTl3zcpZ0BxDAQhl3JjcuT10j0XE8yAtUzRSw== X-Received: by 2002:a17:90a:3223:: with SMTP id k32mr7649348pjb.121.1594182043687; Tue, 07 Jul 2020 21:20:43 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:43 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 16/17] tools: gpio: fix spurious close warning in gpio-utils Date: Wed, 8 Jul 2020 12:15:59 +0800 Message-Id: <20200708041600.768775-17-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Fix bogus close warning that occurs when opening the character device fails. Signed-off-by: Kent Gibson --- tools/gpio/gpio-utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/gpio/gpio-utils.c b/tools/gpio/gpio-utils.c index 06003789e7c7..16a5d9cb9da2 100644 --- a/tools/gpio/gpio-utils.c +++ b/tools/gpio/gpio-utils.c @@ -75,7 +75,7 @@ int gpiotools_request_linehandle(const char *device_name, unsigned int *lines, ret = -errno; fprintf(stderr, "Failed to open %s, %s\n", chrdev_name, strerror(errno)); - goto exit_close_error; + goto exit_free_name; } for (i = 0; i < nlines; i++) @@ -94,9 +94,9 @@ int gpiotools_request_linehandle(const char *device_name, unsigned int *lines, "GPIO_GET_LINEHANDLE_IOCTL", ret, strerror(errno)); } -exit_close_error: if (close(fd) == -1) perror("Failed to close GPIO character device file"); +exit_free_name: free(chrdev_name); return ret < 0 ? ret : req.fd; } From patchwork Wed Jul 8 04:16:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kent Gibson X-Patchwork-Id: 1324955 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Z8ED5p0w; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B1mM86zCjz9sQt for ; Wed, 8 Jul 2020 14:20:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728234AbgGHEUw (ORCPT ); Wed, 8 Jul 2020 00:20:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725446AbgGHEUw (ORCPT ); Wed, 8 Jul 2020 00:20:52 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF01BC061755; Tue, 7 Jul 2020 21:20:51 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id t6so21062631pgq.1; Tue, 07 Jul 2020 21:20:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=egk+b4CpekAWqka2nnTyP0i/HLlHstZqWKBVVCAFgOw=; b=Z8ED5p0wPKOE2B9FZBZrGFuJ42CqwOXGrDF9EGZKa3dP6wBx6evE1eomArA4ipTfYj zVjMtoTf24ukjgsVT/DqSLU8fPZZu8AFURtosfCqn5u4Btu7KPTI9dLzAm3lZU7EfEA3 pacbPPtu17xs+txtYl2FTNxpc2hd9abpHYne03eqD4wiY3agMO188f3IvdPvdDNyZOVC i/SfaND2TLucgpejQCopHtxFRXRohQtSEiE2sy4TSbTABH7gzzyKGGmOTBZzoG/J6i4A zM2w7+1jx9q6aW5OWqW/NSlYel1wAgCunbds1jiGLAfZXV5GbyFm64wxDX1bK2D+XHMv zbPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=egk+b4CpekAWqka2nnTyP0i/HLlHstZqWKBVVCAFgOw=; b=C/+etWUoX7aJpAC/ryocSud7NUMuFVnIdV+oL6PMxoYcKQO2FNYia9LOQlh4hTpjO9 Pv80FEfJH9dtfqGdMORb0UavtyMTKspSDE+FEQAL6oED5GUY4WrQ/KuNFJ6tM3yRtovq TduUPZORfpZqtX/qPl5pw6Ua96txo7il+eZqy7Eo745kdEwSghDK8tI1H4i/E/e5+Usn o69O0mJGZ6gQ6l2bZutjOWVIfshnqeNzBdcL4bea4V/t42p4K90bPlBmy76fRlh2Isjo WrdH8wAHsk7gkq3AyIASxij8D3RMl2kcUqassEyttBMJHOo2kAT2TWQuvLk5hcKSsRVa PLWQ== X-Gm-Message-State: AOAM530+BazsbJMppzxq5EoQd8OcqLFODPZ55qNCHP9dK3FAn9k03YSS 5fVJ0JYXBRBNxAKrQXY9cFkcZoqP X-Google-Smtp-Source: ABdhPJwckR3poTs2P1cQ2XQvhbyLS2/XfcJpqyI9gauer+gWsJapxPSfMNRZ66PscqeVwCFiYCfRkg== X-Received: by 2002:aa7:9e5c:: with SMTP id z28mr39520244pfq.49.1594182051118; Tue, 07 Jul 2020 21:20:51 -0700 (PDT) Received: from sol.lan (106-69-191-222.dyn.iinet.net.au. [106.69.191.222]) by smtp.gmail.com with ESMTPSA id gx23sm3821951pjb.39.2020.07.07.21.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 21:20:50 -0700 (PDT) From: Kent Gibson To: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, bgolaszewski@baylibre.com, linus.walleij@linaro.org Cc: Kent Gibson Subject: [PATCH 17/17] tools: gpio: fix spurious close warning in gpio-event-mon Date: Wed, 8 Jul 2020 12:16:00 +0800 Message-Id: <20200708041600.768775-18-warthog618@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200708041600.768775-1-warthog618@gmail.com> References: <20200708041600.768775-1-warthog618@gmail.com> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Fix bogus close warning that occurs when opening the character device fails. Signed-off-by: Kent Gibson --- tools/gpio/gpio-event-mon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/gpio/gpio-event-mon.c b/tools/gpio/gpio-event-mon.c index 30ed0e06f52a..1a303a81aeef 100644 --- a/tools/gpio/gpio-event-mon.c +++ b/tools/gpio/gpio-event-mon.c @@ -45,7 +45,7 @@ int monitor_device(const char *device_name, if (fd == -1) { ret = -errno; fprintf(stderr, "Failed to open %s\n", chrdev_name); - goto exit_close_error; + goto exit_free_name; } req.lineoffset = line; @@ -117,6 +117,7 @@ int monitor_device(const char *device_name, exit_close_error: if (close(fd) == -1) perror("Failed to close GPIO character device file"); +exit_free_name: free(chrdev_name); return ret; }