Loading drivers/scsi/fcoe/fcoe_sw.c +38 −0 Original line number Diff line number Diff line Loading @@ -373,8 +373,46 @@ static int fcoe_sw_destroy(struct net_device *netdev) return 0; } /* * fcoe_sw_ddp_setup - calls LLD's ddp_setup through net_device * @lp: the corresponding fc_lport * @xid: the exchange id for this ddp transfer * @sgl: the scatterlist describing this transfer * @sgc: number of sg items * * Returns : 0 no ddp */ static int fcoe_sw_ddp_setup(struct fc_lport *lp, u16 xid, struct scatterlist *sgl, unsigned int sgc) { struct net_device *n = fcoe_netdev(lp); if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_setup) return n->netdev_ops->ndo_fcoe_ddp_setup(n, xid, sgl, sgc); return 0; } /* * fcoe_sw_ddp_done - calls LLD's ddp_done through net_device * @lp: the corresponding fc_lport * @xid: the exchange id for this ddp transfer * * Returns : the length of data that have been completed by ddp */ static int fcoe_sw_ddp_done(struct fc_lport *lp, u16 xid) { struct net_device *n = fcoe_netdev(lp); if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_done) return n->netdev_ops->ndo_fcoe_ddp_done(n, xid); return 0; } static struct libfc_function_template fcoe_sw_libfc_fcn_templ = { .frame_send = fcoe_xmit, .ddp_setup = fcoe_sw_ddp_setup, .ddp_done = fcoe_sw_ddp_done, }; /** Loading Loading
drivers/scsi/fcoe/fcoe_sw.c +38 −0 Original line number Diff line number Diff line Loading @@ -373,8 +373,46 @@ static int fcoe_sw_destroy(struct net_device *netdev) return 0; } /* * fcoe_sw_ddp_setup - calls LLD's ddp_setup through net_device * @lp: the corresponding fc_lport * @xid: the exchange id for this ddp transfer * @sgl: the scatterlist describing this transfer * @sgc: number of sg items * * Returns : 0 no ddp */ static int fcoe_sw_ddp_setup(struct fc_lport *lp, u16 xid, struct scatterlist *sgl, unsigned int sgc) { struct net_device *n = fcoe_netdev(lp); if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_setup) return n->netdev_ops->ndo_fcoe_ddp_setup(n, xid, sgl, sgc); return 0; } /* * fcoe_sw_ddp_done - calls LLD's ddp_done through net_device * @lp: the corresponding fc_lport * @xid: the exchange id for this ddp transfer * * Returns : the length of data that have been completed by ddp */ static int fcoe_sw_ddp_done(struct fc_lport *lp, u16 xid) { struct net_device *n = fcoe_netdev(lp); if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_done) return n->netdev_ops->ndo_fcoe_ddp_done(n, xid); return 0; } static struct libfc_function_template fcoe_sw_libfc_fcn_templ = { .frame_send = fcoe_xmit, .ddp_setup = fcoe_sw_ddp_setup, .ddp_done = fcoe_sw_ddp_done, }; /** Loading