Re: [PATCH 5.4 055/191] mfd: mfd-core: Honour Device Trees request to disable a child-device

Greg Kroah-Hartman
2020-01-04T12:31:09Z

On Fri, Jan 03, 2020 at 11:23:47AM +0100, Stephan Gerhold wrote:
> On Thu, Jan 02, 2020 at 11:05:37PM +0100, Greg Kroah-Hartman wrote:
> > From: Lee Jones <lee.jones@linaro.org>
> >
> > [ Upstream commit 6b5c350648b857047b47acf74a57087ad27d6183 ]
> >
> > Until now, MFD has assumed all child devices passed to it (via
> > mfd_cells) are to be registered. It does not take into account
> > requests from Device Tree and the like to disable child devices
> > on a per-platform basis.
> >
> > Well now it does.
> >
> > Link: https://www.spinics.net/lists/arm-kernel/msg366309.html
> > Link: https://lkml.org/lkml/2019/8/22/1350
>
> As far as I understand it, this commit is not suitable for backporting.
> The link above explains the problem for a similar patch:
>
> But I believe this would introduce a rather ugly bug in
> mfd_remove_devices() if the first sub-device is set to disabled:
> It iterates over the children devices to find the base address
> of the allocated "usage count" array, which is then used to free it.
> If the first sub-device is missing, it would free the wrong address.
>
> This problem does not exist in mainline because the MFD usage counting
> was removed entirely as part of the larger "Simplify MFD Core" series [1].
>
> None of the device trees in the stable kernels should depend on
> disabling MFD devices from the device tree. (They were written at a time
> when the MFD core ignored that request entirely...)
> Therefore, I would suggest to drop this patch entirely.

Thanks for catching this, now dropped from all stable queues.

greg k-h