Re: [PATCH] bus: fsl-mc: don't assume child devices are all fsl-mc devices

From: Laurentiu Tudor
Date: Wed Feb 01 2023 - 06:50:21 EST


Hi Greg,

On 1/31/2023 1:56 PM, Greg KH wrote:
On Fri, Jan 27, 2023 at 03:16:36PM +0200, laurentiu.tudor@xxxxxxx wrote:
From: Laurentiu Tudor <laurentiu.tudor@xxxxxxx>

Changes in VFIO caused a pseudo-device to be created as child of
fsl-mc devices causing a crash [1] when trying to bind a fsl-mc
device to VFIO. Fix this by checking the device type when enumerating
fsl-mc child devices.

What changes? What commit id does this fix? Does it need to be
backported?

There were a lot of changes in the VFIO area but I'd point at this commit [1].

I'll resend the patch with a "Fixes:" tag pointing at this commit if that's ok with you.

And what type of "pseudo device" is being created? Why would it be passed to this driver if it's the wrong type?

It's not passed to the driver per-se. The problem shows up when the implementation of the driver does a device_for_each_child() [2] and the callback blindly assumes that all enumerated children devices are fsl-mc devices. The patch just adds a check for this case.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3c28a76124b25882411f005924be73795b6ef078
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/bus/fsl-mc/dprc-driver.c?#n96

---
Thanks & Best Regards, Laurentiu