[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACRpkdaF8R7_cxNXf8DnEEPtCm=yCmgLti3NRWgzuV5tBbBphw@mail.gmail.com>
Date: Tue, 25 Oct 2016 11:09:56 +0200
From: Linus Walleij <linus.walleij@...aro.org>
To: Stefan Agner <stefan@...er.ch>
Cc: Shawn Guo <shawnguo@...nel.org>,
Vladimir Zapolskiy <vladimir_zapolskiy@...tor.com>,
Markus Pargmann <mpa@...gutronix.de>,
Adrian Alonso <aalonso@...escale.com>,
Robin Gong <b38343@...escale.com>,
Laxman Dewangan <ldewangan@...dia.com>,
Peng Fan <van.freenix@...il.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] pinctrl: imx: reset group index on probe
On Tue, Oct 18, 2016 at 11:09 PM, Stefan Agner <stefan@...er.ch> wrote:
> Group index is incremented on every new group parsed. Since the
> field is part of struct imx_pinctrl_soc_info, which is typically
> a global variable passed by the individual pinctrl-imx.c based
> driver, it does not get cleared automatically when re-probing the
> driver. This lead imx_pinctrl_parse_functions passing a group
> pointer which is outside of the allocated group space on second
> probe and onwards. Typically this ended up in a NULL pointer
> dereference when accessing the name field like this:
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> ...
> PC is at strcmp+0x18/0x44
> LR is at imx_dt_node_to_map+0xc4/0x290
>
> Avoid this by setting group_index to 0 on probe.
>
> This has been observed when using DEBUG_TEST_DRIVER_REMOVE.
>
> Signed-off-by: Stefan Agner <stefan@...er.ch>
Patch applied for fixes.
Should it be tagged for stable too?
Yours,
Linus Walleij
Powered by blists - more mailing lists