On Mon, Dec 16, 2019 at 08:36:02AM +0000, Parav Pandit wrote: > On 12/16/2019 12:45 PM, Greg KH wrote: > > On Mon, Dec 16, 2019 at 03:48:05AM +0000, Parav Pandit wrote: > [..] > >>> I feel like the virtual bus code is getting better, but this use of the > >>> code, um, no, not ok. > >>> > >>> Either way, this series is NOT ready to be merged anywhere, please do > >>> not try to rush things. > >>> > >>> Also, what ever happened to my "YOU ALL MUST AGREE TO WORK TOGETHER" > >>> requirement between this group, and the other group trying to do the > >>> same thing? I want to see signed-off-by from EVERYONE involved before > >>> we are going to consider this thing. > >> > >> I am working on RFC where PCI device is sliced to create sub-functions. > >> Each sub-function/slice is created dynamically by the user. > >> User gives sf-number at creation time which will be used for plumbing by > >> systemd/udev, devlink ports. > > > > That sounds exactly what is wanted here as well, right? > > Not exactly. > Here, in i40 use case - there is a PCI function. > This PCI function is used by two drivers: > (1) vendor_foo_netdev.ko creating Netdevice (class net) > (2) vendor_foo_rdma.ko creating RDMA device (class infiniband) > > And both drivers are notified using matching service virtbus, which > attempts to create to two virtbus_devices with different driver-id, one > for each class of device. Yes, that is fine. > However, devices of both class (net, infiniband) will have parent device > as PCI device. That is fine. > In case of sub-functions, created rdma and netdevice will have parent as > the sub-function 'struct device'. This way those SFs gets their > systemd/udev plumbing done rightly. huh? The rdma and netdevice will have as their parent device the virtdevice that is on the virtbus. Not the PCI device's 'struct device'. thanks, greg k-h