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

Reply via email to