Hi David, On Fri, Jan 06, 2017 at 08:38:04PM -0500, David Miller wrote: > From: Phil Sutter <p...@nwl.cc> > Date: Thu, 5 Jan 2017 20:09:10 +0100 > > > This series adds VF support to dummy device driver after adding the > > necessary infrastructure changes: > > > > Patch 1 adds a netdevice callback for device-specific VF count > > retrieval. Patch 2 then changes dev_num_vf() implementation to make use > > of that new callback (if implemented), falling back to the old > > behaviour. Patch 3 then implements VF support in dummy, without the fake > > PCI parent device hack from v5. > > Please don't make this a netdev specific method and interface. > > Put the method in "struct bus_device", thereby making it a generic > "device" layer thing. > > So the pci BUS type will implement pci_bus_type.num_vf(). And you'll > make a bus type for the dummy device to attach to which will implement > it's own.
Following your approach, I'm running into a weird issue with conflicting sysfs symlink names after calling register_netdevice for the dummy device which has dev->dev.bus set to the dummy bus type I introduced: In netdev_register_kobject, dev->class is set to &net_class. This means that later in device_add, the call to device_add_class_symlinks will create symlink to the class named devices/virtual/net/dummy0/subsystem. The following call to bus_add_device by device_add though tries to create a symlink to the bus with identical name. This seems like a bug in device_add, but things apparently work for other devices and I don't get what's different for them. Can you maybe give me a hint what to look for or do you have an idea what I am missing? Thanks, Phil