Re: [PATCH] pinctrl: intel: fix NULL pointer deref

Andy Shevchenko
2021-06-10T15:28:39Z

On Thu, Jun 10, 2021 at 06:00:29PM +0300, Andy Shevchenko wrote:
> On Thu, Jun 10, 2021 at 5:56 PM Henning Schild
> <henning.schild@siemens.com> wrote:
> >
> > Am Thu, 10 Jun 2021 17:32:46 +0300
> > schrieb Andy Shevchenko <andy.shevchenko@gmail.com>:
> >
> > > On Thu, Jun 10, 2021 at 05:25:04PM +0300, Andy Shevchenko wrote:
> > > > On Wed, Jun 09, 2021 at 01:08:16PM +0200, Henning Schild wrote:
> > > > > Am Wed, 9 Jun 2021 13:33:34 +0300
> > > > > schrieb Andy Shevchenko <andy.shevchenko@gmail.com>:
> > > >
> > > > ...
> > > >
> > > > > In order to use GPIO from the drivers i need to make sure
> > > > > "broxton-pinctrl" comes up even if p2sb is hidden.
> > > > >
> > > > > Long story short, i thought the patch was simple enough to merge
> > > > > even taken out of my special context.
> > > > >
> > > > > Currently intel_pinctl only works if "ps2b is not hidden by BIOS"
> > > > > or "ACPI tables are correct", lifting the ban on the hidden p2sb
> > > > > seems like a useful thing in general (i.e. sysfs gpio interface).
> > > > > And i was hoping Andy would take the lead on that. It is
> > > > > something my Siemens drivers would depend on, but really a
> > > > > generic thing as far as i understand it.
> > > >
> > > > From p2sb series discussion it appears that this patch is not
> > > > needed. The case is when BIOS already provides an ACPI device.
> > > >
> > > > So, the initial bug is in that series that needs to check if the
> > > > ACPI device is exposed and forbid platform device instantiation in
> > > > that case.
> > >
> > > Actually, I'm still thinking how this ever possible. We have all
> > > drivers to provide SoC data pointers. match data may be NULL if and
> > > only if the ACPI device provided is a new one that doesn't provide a
> > > SoC data.
> > >
> > > So, w/o seeing ACPI table, I'm really puzzled here.
> >
> > Not sure what exactly you mean. Let us kill this thread and ignore the
> > patch. It was posted out of context and the NULL deref code-path does
> > not exist in the kernel, so the check is not needed.
> >
> > I will revisit the machine where your patch-series did lead to a
> > double-init and EBUSY on claiming those memory ressources. And i will
> > add ACPI info there as well.
>
> I guess I got what's going on here. When we create a platform device
> we get an associated companion device (which is parent in this case of
> LPC) and that's why when we try enumerating it you have got the first
> branch chosen.

I have just sent another patch based on this report. Can you please test it?