On 08/04/2011 07:38 PM, Bhanu Prakash Gollapudi wrote: > /** > - * fcoe_get_wwn() - Get the world wide name from LLD if it supports it > - * @netdev: the associated net device > - * @wwn: the output WWN > - * @type: the type of WWN (WWPN or WWNN) > - * > - * Returns: 0 for success > - */ > -static int fcoe_get_wwn(struct net_device *netdev, u64 *wwn, int type) > -{ > - const struct net_device_ops *ops = netdev->netdev_ops; > - > - if (ops->ndo_fcoe_get_wwn) > - return ops->ndo_fcoe_get_wwn(netdev, wwn, type); > - return -EINVAL; > -} > - > -/** > +/** > + * fcoe_get_wwn() - Get the world wide name from LLD if it supports it > + * @netdev: the associated net device > + * @wwn: the output WWN > + * @type: the type of WWN (WWPN or WWNN) > + * > + * Returns: 0 for success > + */ > +int fcoe_get_wwn(struct net_device *netdev, u64 *wwn, int type) > +{ > + const struct net_device_ops *ops = netdev->netdev_ops; > + > + if (ops->ndo_fcoe_get_wwn) > + return ops->ndo_fcoe_get_wwn(netdev, wwn, type); > + return -EINVAL; > +} > +EXPORT_SYMBOL_GPL(fcoe_get_wwn); > + > I got a report that this is going to be a problem because the fcoe ops like ndo_fcoe_get_wwn are defined when CONFIG_FCOE is set. That is set for fcoe.ko. If you move functions calling those callouts to libfcoe then it is possible CONFIG_FCOE is not set (if you were just using bnx2fc.ko and not using fcoe.ko for example), and the build fails like this: drivers/scsi/fcoe/fcoe_transport.c: In function ‘fcoe_get_wwn’: drivers/scsi/fcoe/fcoe_transport.c:152: error: ‘const struct net_device_ops’ has no member named ‘ndo_fcoe_get_wwn’ drivers/scsi/fcoe/fcoe_transport.c:153: error: ‘const struct net_device_ops’ has no member named ‘ndo_fcoe_get_wwn’ make[3]: *** [drivers/scsi/fcoe/fcoe_transport.o] Error 1 Do we need some ifdefs in libfcoe around the ops use or should there be some sort of lower level transport module callouts (or whatever modules like bnxfc and fcoe are called) that libfcoe calls into so those drivers can call into something like the netdev callouts if they use them? -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html