All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org>
To: Heiko Stuebner <heiko@sntech.de>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Jianqun Xu <jay.xu@rock-chips.com>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/4] pinctrl/rockchip: add a queue for deferred pin output settings on probe
Date: Sat, 18 Sep 2021 01:35:09 +0200	[thread overview]
Message-ID: <CACRpkdbWR68xv6a96Nt6mXhrMZaEVT=ejMvqm=TPYngEo6C3RA@mail.gmail.com> (raw)
In-Reply-To: <20210913224926.1260726-4-heiko@sntech.de>

On Tue, Sep 14, 2021 at 12:49 AM Heiko Stuebner <heiko@sntech.de> wrote:

> The separation of pinctrl and gpio drivers created a tiny window where
> a pinconfig setting might produce a null-pointer dereference.
>
> The affected device were rk3288-veyron devices in this case.
>
> Pinctrl-hogs are claimed when the pinctrl driver is registered,
> at which point their pinconfig settings will be applied.
> At this time the now separate gpio devices will not have been created
> yet and the matching driver won't have probed yet, making the gpio->foo()
> call run into a null-ptr.
>
> As probing is not really guaranteed to have been completed at a specific
> time, introduce a queue that can hold the output settings until the gpio
> driver has probed and will (in a separate patch) fetch the elements
> of the list.
>
> We expect the gpio driver to empty the list, but will nevertheless empty
> it ourself on remove if that didn't happen.
>
> Fixes: 9ce9a02039de ("pinctrl/rockchip: drop the gpio related codes")
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Hm this is not very elegant but what can we do.
Tentatively applied for fixes.

Can we not use device links to get around this?

Yours,
Linus Walleij

WARNING: multiple messages have this Message-ID
From: Linus Walleij <linus.walleij@linaro.org>
To: Heiko Stuebner <heiko@sntech.de>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Jianqun Xu <jay.xu@rock-chips.com>,
	 "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	 Linux ARM <linux-arm-kernel@lists.infradead.org>,
	 "open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	 linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/4] pinctrl/rockchip: add a queue for deferred pin output settings on probe
Date: Sat, 18 Sep 2021 01:35:09 +0200	[thread overview]
Message-ID: <CACRpkdbWR68xv6a96Nt6mXhrMZaEVT=ejMvqm=TPYngEo6C3RA@mail.gmail.com> (raw)
In-Reply-To: <20210913224926.1260726-4-heiko@sntech.de>

On Tue, Sep 14, 2021 at 12:49 AM Heiko Stuebner <heiko@sntech.de> wrote:

> The separation of pinctrl and gpio drivers created a tiny window where
> a pinconfig setting might produce a null-pointer dereference.
>
> The affected device were rk3288-veyron devices in this case.
>
> Pinctrl-hogs are claimed when the pinctrl driver is registered,
> at which point their pinconfig settings will be applied.
> At this time the now separate gpio devices will not have been created
> yet and the matching driver won't have probed yet, making the gpio->foo()
> call run into a null-ptr.
>
> As probing is not really guaranteed to have been completed at a specific
> time, introduce a queue that can hold the output settings until the gpio
> driver has probed and will (in a separate patch) fetch the elements
> of the list.
>
> We expect the gpio driver to empty the list, but will nevertheless empty
> it ourself on remove if that didn't happen.
>
> Fixes: 9ce9a02039de ("pinctrl/rockchip: drop the gpio related codes")
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Hm this is not very elegant but what can we do.
Tentatively applied for fixes.

Can we not use device links to get around this?

Yours,
Linus Walleij

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID
From: Linus Walleij <linus.walleij@linaro.org>
To: Heiko Stuebner <heiko@sntech.de>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Jianqun Xu <jay.xu@rock-chips.com>,
	 "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	 Linux ARM <linux-arm-kernel@lists.infradead.org>,
	 "open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	 linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/4] pinctrl/rockchip: add a queue for deferred pin output settings on probe
Date: Sat, 18 Sep 2021 01:35:09 +0200	[thread overview]
Message-ID: <CACRpkdbWR68xv6a96Nt6mXhrMZaEVT=ejMvqm=TPYngEo6C3RA@mail.gmail.com> (raw)
In-Reply-To: <20210913224926.1260726-4-heiko@sntech.de>

On Tue, Sep 14, 2021 at 12:49 AM Heiko Stuebner <heiko@sntech.de> wrote:

> The separation of pinctrl and gpio drivers created a tiny window where
> a pinconfig setting might produce a null-pointer dereference.
>
> The affected device were rk3288-veyron devices in this case.
>
> Pinctrl-hogs are claimed when the pinctrl driver is registered,
> at which point their pinconfig settings will be applied.
> At this time the now separate gpio devices will not have been created
> yet and the matching driver won't have probed yet, making the gpio->foo()
> call run into a null-ptr.
>
> As probing is not really guaranteed to have been completed at a specific
> time, introduce a queue that can hold the output settings until the gpio
> driver has probed and will (in a separate patch) fetch the elements
> of the list.
>
> We expect the gpio driver to empty the list, but will nevertheless empty
> it ourself on remove if that didn't happen.
>
> Fixes: 9ce9a02039de ("pinctrl/rockchip: drop the gpio related codes")
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Hm this is not very elegant but what can we do.
Tentatively applied for fixes.

Can we not use device links to get around this?

Yours,
Linus Walleij

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-09-17 23:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-13 22:49 [PATCH 0/4] gpio/pinctrl-rockchip: Fixes for the recently separated gpio/pinctrl driver Heiko Stuebner
2021-09-13 22:49 ` Heiko Stuebner
2021-09-13 22:49 ` Heiko Stuebner
2021-09-13 22:49 ` [PATCH 1/4] gpio/rockchip: extended debounce support is only available on v2 Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-17 22:34   ` Linus Walleij
2021-09-17 22:34     ` Linus Walleij
2021-09-17 22:34     ` Linus Walleij
2021-09-22  9:45   ` Bartosz Golaszewski
2021-09-22  9:45     ` Bartosz Golaszewski
2021-09-22  9:45     ` Bartosz Golaszewski
2021-09-13 22:49 ` [PATCH 2/4] gpio/rockchip: fix get_direction value handling Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-17 23:30   ` Linus Walleij
2021-09-17 23:30     ` Linus Walleij
2021-09-17 23:30     ` Linus Walleij
2021-09-22  9:46   ` Bartosz Golaszewski
2021-09-22  9:46     ` Bartosz Golaszewski
2021-09-22  9:46     ` Bartosz Golaszewski
2021-09-13 22:49 ` [PATCH 3/4] pinctrl/rockchip: add a queue for deferred pin output settings on probe Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-17 23:35   ` Linus Walleij [this message]
2021-09-17 23:35     ` Linus Walleij
2021-09-17 23:35     ` Linus Walleij
2021-09-13 22:49 ` [PATCH 4/4] gpio/rockchip: fetch deferred " Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-13 22:49   ` Heiko Stuebner
2021-09-17 23:38   ` Linus Walleij
2021-09-17 23:38     ` Linus Walleij
2021-09-17 23:38     ` Linus Walleij
2021-09-18  0:00     ` Heiko Stübner
2021-09-18  0:00       ` Heiko Stübner
2021-09-18  0:00       ` Heiko Stübner
2021-09-19 14:47       ` Linus Walleij
2021-09-19 14:47         ` Linus Walleij
2021-09-19 14:47         ` 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='CACRpkdbWR68xv6a96Nt6mXhrMZaEVT=ejMvqm=TPYngEo6C3RA@mail.gmail.com' \
    --to=linus.walleij@linaro.org \
    --cc=bgolaszewski@baylibre.com \
    --cc=heiko@sntech.de \
    --cc=jay.xu@rock-chips.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.