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

From: Jason Gunthorpe
Date: Tue Jun 15 2021 - 19:33:02 EST


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 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..

Jason