Re: [PATCH 0/3] PCI: host-generic: Fix driver_data overwriting bugs

From: Marc Zyngier
Date: Tue Jul 01 2025 - 06:54:21 EST


On Mon, 30 Jun 2025 18:34:15 +0100,
Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
>
> On Mon, Jun 30, 2025 at 06:23:00PM +0100, Marc Zyngier wrote:
> > On Mon, 30 Jun 2025 18:06:01 +0100,
> > Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
> > >
> > > On Wed, Jun 25, 2025 at 12:18:03PM +0100, Marc Zyngier wrote:
> > > > Geert reports that some drivers do rely on the device driver_data
> > > > field containing a pointer to the bridge structure at the point of
> > > > initialising the root port, while this has been recently changed to
> > > > contain some other data for the benefit of the Apple PCIe driver.
> > > >
> > > > This small series builds on top of Geert previously posted (and
> > > > included as a prefix for reference) fix for the Microchip driver,
> > > > which breaks the Apple driver. This is basically swapping a regression
> > > > for another, which isn't a massive deal at this stage, as the
> > > > follow-up patch fixes things for the Apple driver by adding extra
> > > > tracking.
> > >
> > > Is there a bisection hole between patches 1 and 2?
> > >
> > > 1: PCI: host-generic: Set driver_data before calling gen_pci_init()
> > > 2: PCI: apple: Add tracking of probed root ports
> > >
> > > If so, would it be practical to avoid the hole by reordering those
> > > patches?
> >
> > Sure, but you said you already had queued patch #1, and what is in
> > -rc1 already breaks Geert's box. So no matter the order, we break
> > something at some point.
>
> I did, but when I saw your problem report and subsequent updates, I
> put Geert's patch on hold.
>
> > If you want to only break one thing, then yes, swapping these two
> > patches is the correct thing to do.
>
> I swapped them and put them back on pci/for-linus for v6.16:
>
> https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/log/?h=for-linus&id=ba74278c638d
>

LGTM, thanks for picking these up!

M.

--
Without deviation from the norm, progress is not possible.