Jason Gunthorpe
2025-Oct-02 12:01 UTC
[PATCH 0/2] rust: pci: expose is_virtfn() and reject VFs in nova-core
On Thu, Oct 02, 2025 at 12:52:10AM +0200, Danilo Krummrich wrote:> Indicating whether the driver supports VFs through a boolean in struct > pci_driver is about the same effort (well, maybe slightly more), but solves the > problem in a cleaner way since it avoids probe() being called in the first > place. Other existing drivers benefit from that as well.I'm strongly against that idea. Drivers should not be doing things like this, giving them core code helpers to do something they should not do is the wrong direction. I think this patchset should be simply dropped. Novacore should try to boot on a VF and fail if it isn't setup. Jason
Danilo Krummrich
2025-Oct-02 12:08 UTC
[PATCH 0/2] rust: pci: expose is_virtfn() and reject VFs in nova-core
On Thu Oct 2, 2025 at 2:01 PM CEST, Jason Gunthorpe wrote:> On Thu, Oct 02, 2025 at 12:52:10AM +0200, Danilo Krummrich wrote: > >> Indicating whether the driver supports VFs through a boolean in struct >> pci_driver is about the same effort (well, maybe slightly more), but solves the >> problem in a cleaner way since it avoids probe() being called in the first >> place. Other existing drivers benefit from that as well. > > I'm strongly against that idea. > > Drivers should not be doing things like this, giving them core code > helpers to do something they should not do is the wrong direction. > > I think this patchset should be simply dropped. Novacore should try to > boot on a VF and fail if it isn't setup.Why? What about other upstream drivers that clearly assert that they don't support VFs? Why would we want to force them to try to boot to a point where they "naturally" fail? I think there's nothing wrong with allowing drivers to "officially" assert that they're intended for PFs only. Here are a few examples of drivers that have the same requirement: https://elixir.bootlin.com/linux/v6.17/source/drivers/net/ethernet/realtek/rtase/rtase_main.c#L2195 https://elixir.bootlin.com/linux/v6.17/source/drivers/net/ethernet/intel/ice/ice_main.c#L5266 https://elixir.bootlin.com/linux/v6.17/source/drivers/net/ethernet/intel/igb/igb_main.c#L3221