linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: "Jonathan Corbet" <corbet@lwn.net>,
	"Miguel Ojeda Sandonis" <miguel.ojeda.sandonis@gmail.com>,
	"Peter Korsgaard" <peter.korsgaard@barco.com>,
	"Peter Rosin" <peda@axentia.se>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	"Dominik Brodowski" <linux@dominikbrodowski.net>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Kishon Vijay Abraham I" <kishon@ti.com>,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Hartmut Knaack" <knaack.h@gmx.de>,
	"Peter Meerwald-Stadler" <pmeerw@pmeerw.net>,
	"Jiri Slaby" <jslaby@suse.com>, "Willy Tarreau" <w@1wt.eu>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>,
	"Sebastien Bourdelin" <sebastien.bourdelin@savoirfairelinux.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Rojhalat Ibrahim" <imr@rtschenk.de>,
	"Russell King" <rmk+kernel@armlinux.org.uk>,
	"Tony Lindgren" <tony@atomide.com>,
	"Yegor Yefremov" <yegorslists@googlemail.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Janusz Krzysztofik" <jmkrzyszt@gmail.com>,
	linux-doc@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-mmc@vger.kernel.org, netdev@vger.kernel.org,
	linux-iio@vger.kernel.org, devel@driverdev.osuosl.org,
	linux-serial@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"Marek Szyprowski" <m.szyprowski@samsung.com>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Linux Samsung SOC" <linux-samsung-soc@vger.kernel.org>
Subject: [PATCH 1/2] gpiolib: Fix missing updates of bitmap index
Date: Mon, 24 Sep 2018 01:53:35 +0200	[thread overview]
Message-ID: <20180923235336.22148-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20180923235336.22148-1-jmkrzyszt@gmail.com>

In new code introduced by commit b17566a6b08b ("gpiolib: Implement fast
processing path in get/set array"), bitmap index is not updated with
next found zero bit position as it should while skipping over pins
already processed via fast bitmap path, possibly resulting in an
infinite loop.  Fix it.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
 drivers/gpio/gpiolib.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index a53d17745d21..7d9536a79a66 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -2880,8 +2880,8 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
 			__set_bit(hwgpio, mask);
 
 			if (array_info)
-				find_next_zero_bit(array_info->get_mask,
-						   array_size, i);
+				i = find_next_zero_bit(array_info->get_mask,
+						       array_size, i);
 			else
 				i++;
 		} while ((i < array_size) &&
@@ -2905,7 +2905,8 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
 			trace_gpio_value(desc_to_gpio(desc), 1, value);
 
 			if (array_info)
-				find_next_zero_bit(array_info->get_mask, i, j);
+				j = find_next_zero_bit(array_info->get_mask, i,
+						       j);
 			else
 				j++;
 		}
@@ -3192,8 +3193,8 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
 			}
 
 			if (array_info)
-				find_next_zero_bit(array_info->set_mask,
-						   array_size, i);
+				i = find_next_zero_bit(array_info->set_mask,
+						       array_size, i);
 			else
 				i++;
 		} while ((i < array_size) &&
-- 
2.16.4


  reply	other threads:[~2018-09-23 23:53 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180813223448.21316-1-jmkrzyszt@gmail.com>
2018-08-20 23:43 ` [RFC RFT PATCH 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik
2018-08-20 23:43   ` [RFC RFT PATCH v4 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik
2018-08-21  6:49     ` Peter Rosin
2018-08-21  6:52       ` Peter Rosin
2018-08-29 12:03     ` Miguel Ojeda
2018-08-29 18:01       ` Janusz Krzysztofik
2018-08-20 23:43   ` [RFC RFT PATCH v4 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik
2018-08-20 23:43   ` [RFC RFT PATCH v4 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik
2018-08-20 23:43   ` [RFC RFT PATCH v4 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik
2018-08-29  9:06   ` [RFC RFT PATCH 0/4] gpiolib: speed up GPIO array processing Linus Walleij
2018-08-29 18:16     ` Janusz Krzysztofik
2018-08-29 10:19   ` Ulf Hansson
2018-08-29 20:48   ` [PATH v5 " Janusz Krzysztofik
2018-08-29 20:48     ` [PATCH v5 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik
2018-08-30  4:30       ` Peter Rosin
2018-08-30  7:40       ` Geert Uytterhoeven
2018-08-30 11:10       ` Miguel Ojeda
2018-08-30 15:35         ` David Laight
2018-09-02 10:19         ` Janusz Krzysztofik
2018-08-31  9:14       ` Linus Walleij
2018-08-29 20:48     ` [PATCH v5 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik
2018-08-29 20:48     ` [PATCH v5 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik
2018-08-29 20:49     ` [PATCH v5 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik
2018-08-31 22:56     ` [PATH v6 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik
2018-08-31 22:56       ` [PATCH v6 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik
2018-09-01  0:23         ` Peter Rosin
2018-09-04 15:28         ` kbuild test robot
2018-09-04 15:28         ` kbuild test robot
2018-08-31 22:56       ` [PATCH v6 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik
2018-08-31 22:56       ` [PATCH v6 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik
2018-09-04 15:27         ` kbuild test robot
2018-08-31 22:56       ` [PATCH v6 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik
2018-09-02 12:01       ` [PATCH v7 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik
2018-09-02 12:01         ` [PATCH v7 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik
2018-09-02 13:21           ` Lukas Wunner
2018-09-03  4:31           ` Matthew Wilcox
2018-09-03 14:24             ` Geert Uytterhoeven
2018-09-03 15:07           ` Geert Uytterhoeven
2018-09-04 15:29           ` kbuild test robot
2018-09-05  6:46           ` kbuild test robot
2018-09-02 12:01         ` [PATCH v7 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik
2018-09-02 12:01         ` [PATCH v7 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik
2018-09-03 14:21           ` Geert Uytterhoeven
2018-09-04 15:23           ` kbuild test robot
2018-09-05  7:11           ` kbuild test robot
2018-09-02 12:01         ` [PATCH v7 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik
     [not found]           ` <CGME20180920101151eucas1p221f5a1715b8556bb9d99bf08fe09ce6f@eucas1p2.samsung.com>
2018-09-20 10:11             ` Marek Szyprowski
2018-09-20 15:48               ` Janusz Krzysztofik
2018-09-20 16:21                 ` Janusz Krzysztofik
2018-09-21  8:18                   ` Marek Szyprowski
2018-09-21 10:51                     ` Janusz Krzysztofik
2018-09-21 11:26                       ` Janusz Krzysztofik
2018-09-21 14:14                       ` Marek Szyprowski
2018-09-23 10:43                         ` Janusz Krzysztofik
2018-09-23 23:53                           ` [PATCH 0/2] gpiolib: Fix issues introduced by fast bitmap processing path Janusz Krzysztofik
2018-09-23 23:53                             ` Janusz Krzysztofik [this message]
2018-09-24  8:11                               ` [PATCH 1/2] gpiolib: Fix missing updates of bitmap index Linus Walleij
2018-09-23 23:53                             ` [PATCH 2/2] gpiolib: Fix array members of same chip processed separately Janusz Krzysztofik
2018-09-24  8:13                               ` Linus Walleij
2018-09-24  9:43                             ` [PATCH 0/2] gpiolib: Fix issues introduced by fast bitmap processing path Marek Szyprowski
2018-09-24 11:08                               ` Janusz Krzysztofik
2018-09-24 11:38                                 ` Marek Szyprowski
2018-09-24 14:18                                   ` Janusz Krzysztofik
2018-09-20 18:05                 ` [PATCH v7 4/4] gpiolib: Implement fast processing path in get/set array Dan Carpenter
2018-09-20 15:49               ` Linus Walleij
2018-09-05 21:50         ` [PATCH v8 0/4] gpiolib: speed up GPIO array processing Janusz Krzysztofik
2018-09-05 21:50           ` [PATCH v8 1/4] gpiolib: Pass bitmaps, not integer arrays, to get/set array Janusz Krzysztofik
2018-09-05 21:50           ` [PATCH v8 2/4] gpiolib: Identify arrays matching GPIO hardware Janusz Krzysztofik
2018-09-05 21:50           ` [PATCH v8 3/4] gpiolib: Pass array info to get/set array functions Janusz Krzysztofik
2018-09-05 21:50           ` [PATCH v8 4/4] gpiolib: Implement fast processing path in get/set array Janusz Krzysztofik
2018-09-13  9:22           ` [PATCH v8 0/4] gpiolib: speed up GPIO array processing Linus Walleij
2018-09-19 18:08             ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180923235336.22148-2-jmkrzyszt@gmail.com \
    --to=jmkrzyszt@gmail.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=andrew@lunn.ch \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=devel@driverdev.osuosl.org \
    --cc=f.fainelli@gmail.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=imr@rtschenk.de \
    --cc=jic23@kernel.org \
    --cc=jslaby@suse.com \
    --cc=kishon@ti.com \
    --cc=knaack.h@gmx.de \
    --cc=krzk@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=lukas@wunner.de \
    --cc=m.szyprowski@samsung.com \
    --cc=miguel.ojeda.sandonis@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=peda@axentia.se \
    --cc=peter.korsgaard@barco.com \
    --cc=pmeerw@pmeerw.net \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=sebastien.bourdelin@savoirfairelinux.com \
    --cc=tony@atomide.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=ulf.hansson@linaro.org \
    --cc=w@1wt.eu \
    --cc=yegorslists@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).