On Tue, Sep 14, 2021 at 12:49 AM Heiko Stuebner <heiko@xxxxxxxxx> 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@xxxxxxxxx> 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