Re: [PATCH 09/11] PCI: add matching checks for driver_override binding

From: Alex Williamson
Date: Tue Jun 15 2021 - 20:22:53 EST


On Tue, 15 Jun 2021 20:32:57 -0300
Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:

> On Tue, Jun 15, 2021 at 05:22:42PM -0600, Alex Williamson wrote:
>
> > > > b) alone is a functional, runtime difference.
> > >
> > > I would state b) differently:
> > >
> > > b) Ignore the driver-override-only match entries in the ID table.
> >
> > No, pci_match_device() returns NULL if a match is found that is marked
> > driver-override-only and a driver_override is not specified. That's
> > the same as no match at all. We don't then go on to search past that
> > match in the table, we fail to bind the driver. That's effectively an
> > anti-match when there's no driver_override on the device.
>
> anti-match isn't the intention. The deployment will have match tables
> where all entires are either flags=0 or are driver-override-only.

I'd expect pci-pf-stub to have one of each, an any-id with
override-only flag and the one device ID currently in the table with
no flag.

> I would say that mixed match tables make driver-override-only into an
> anti-match is actually a minor bug in the patch.
>
> The series isn't about adding some new anti-match scheme.
>
> > I understand that's not your intended use case, but I think this allows
> > that and justifies handling a dynamic ID the same as a static ID.
> > Adding a field to pci_device_id, which is otherwise able to be fully
> > specified via new_id, except for this field, feels like a bug. Thanks,
>
> Okay, I see what you are saying clearly now.
>
> Your example usage seems legit to me, but I really don't want to
> entangle it with this series. It is a seperate idea, it can go as a
> seperate work that uses the new flags and an updated new_id and
> related parts by someone who wants it.
>
> I hope you'll understand that having NVIDIA Mellanox persue what you
> describe above is just not going to work..

I understand that use case might hit a nerve, but I don't particularly
see why handling static and dynamic IDs consistently wrt to this new
flags field is controversial. Thanks,

Alex