On Wed, Jan 11, 2017 at 02:38:57PM +0100, Phil Sutter wrote:
> 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.
Ah, nevermind - it's actually the netdev's parent which should have the
bus type set. At first I assumed this would be a PCI specific thing.