On Mon, Nov 21, 2016 at 04:31:18PM -0700, Jason Gunthorpe wrote:
>>>>+       ida_init(&hfi_vnic_ctrl_ida);
>>>>+       idr_init(&hfi_vnic_idr);
>>>>+
>>>>+       rc = bus_register(&hfi_vnic_bus);
>>>
>>>Why on earth do we need this? Didn't I give you enough grief for the
>>>psm stuff and now you want to create an entire subystem hidden away!?
>>>
>>>Use some netlink scheme to control your vnic like the rest of the net
>>>stack..
>>>
>>
>>The hfi_vnic_bus is only abstracting the HW independent functionality (like
>>Ethernet interface, encapsulation, IB MAD interface etc) with the HW
>>dependent functionality (sending/receiving packets on the wire).
>>Thus providing a cleaner interface between HW independent hfi_vnic Ethernet
>>and Control drivers and the HW dependent HFI1 driver.
>
>That doesn't explain anything, sound like you don't need it so get rid
>of it.

>>There is no other User interface here other than the standard Ethernet
>>interface through network stack.
>
>Good, then this isn't needed, because it doesn't provide a user interface.
>

Can you explain what exactly you are asking to get rid of here and why?

Get rid of the bus_register/etc as drivers do not get to call this.


There are many example drivers in kernel which are using bus_register() in
an initcall.
We could add a custom Interface between HFI1 driver and hfi_vnic drivers without involving a bus. But using the existing bus model gave a lot of in-built flexibility in decoupling devices from the drivers.

Niranjana

Jason

Reply via email to