On Thu, Nov 24, 2016 at 09:15:45AM -0700, Jason Gunthorpe wrote:
On Wed, Nov 23, 2016 at 04:08:25PM -0800, Vishwanathapura, Niranjana wrote:
In order to pass the hfi function pointers to the hfi_vnic ULP, I can,
a) Have hfi_vnic ULP define an interface API for hfi1 driver to call to
register its callback (as you pointed). Unfortunately there will be a module
dependency here.
Or,
That is probably backwards
b) Add a new member ‘struct vnic_ops’ either to the ib_device structure or
ib_port_immutable structure. As it is hfi1 specific, only hfi1 driver will
set it. No module dependency here.
You can add a hfi1_get_vnic_ops(struct ib_device *) and implement it
in your module..
In order to be truely device independent the hfi_vnic ULP should not depend on
a device exported symbol. Instead device should register its functions with the
ULP. Hence the approaches a) and b).
Niranjana
Jason