vxge.c (275358) | vxge.c (297482) |
---|---|
1/*- 2 * Copyright(c) 2002-2011 Exar Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification are permitted provided the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, --- 14 unchanged lines hidden (view full) --- 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ | 1/*- 2 * Copyright(c) 2002-2011 Exar Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification are permitted provided the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, --- 14 unchanged lines hidden (view full) --- 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ |
31/*$FreeBSD: head/sys/dev/vxge/vxge.c 275358 2014-12-01 11:45:24Z hselasky $*/ | 31/*$FreeBSD: head/sys/dev/vxge/vxge.c 297482 2016-04-01 06:28:33Z sephe $*/ |
32 33#include <dev/vxge/vxge.h> 34 35static int vxge_pci_bd_no = -1; 36static u32 vxge_drv_copyright = 0; 37static u32 vxge_dev_ref_count = 0; 38static u32 vxge_dev_req_reboot = 0; 39 --- 951 unchanged lines hidden (view full) --- 991 992 vxge_rxd_priv_t *rxd_priv; 993 vxge_hal_ring_rxd_info_t ext_info; 994 vxge_hal_status_e status = VXGE_HAL_OK; 995 996 vxge_vpath_t *vpath = (vxge_vpath_t *) userdata; 997 vxge_dev_t *vdev = vpath->vdev; 998 | 32 33#include <dev/vxge/vxge.h> 34 35static int vxge_pci_bd_no = -1; 36static u32 vxge_drv_copyright = 0; 37static u32 vxge_dev_ref_count = 0; 38static u32 vxge_dev_req_reboot = 0; 39 --- 951 unchanged lines hidden (view full) --- 991 992 vxge_rxd_priv_t *rxd_priv; 993 vxge_hal_ring_rxd_info_t ext_info; 994 vxge_hal_status_e status = VXGE_HAL_OK; 995 996 vxge_vpath_t *vpath = (vxge_vpath_t *) userdata; 997 vxge_dev_t *vdev = vpath->vdev; 998 |
999 struct lro_entry *queued = NULL; | |
1000 struct lro_ctrl *lro = &vpath->lro; 1001 1002 /* get the interface pointer */ 1003 ifnet_t ifp = vdev->ifp; 1004 1005 do { 1006 if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { 1007 vxge_hal_ring_rxd_post(vpath_handle, rxdh); --- 70 unchanged lines hidden (view full) --- 1078 BUS_DMASYNC_POSTREAD); 1079 1080 vxge_rx_input(ifp, mbuf_up, vpath); 1081 1082 } while (vxge_hal_ring_rxd_next_completed(vpath_handle, &rxdh, 1083 &dtr_priv, &t_code) == VXGE_HAL_OK); 1084 1085 /* Flush any outstanding LRO work */ | 999 struct lro_ctrl *lro = &vpath->lro; 1000 1001 /* get the interface pointer */ 1002 ifnet_t ifp = vdev->ifp; 1003 1004 do { 1005 if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { 1006 vxge_hal_ring_rxd_post(vpath_handle, rxdh); --- 70 unchanged lines hidden (view full) --- 1077 BUS_DMASYNC_POSTREAD); 1078 1079 vxge_rx_input(ifp, mbuf_up, vpath); 1080 1081 } while (vxge_hal_ring_rxd_next_completed(vpath_handle, &rxdh, 1082 &dtr_priv, &t_code) == VXGE_HAL_OK); 1083 1084 /* Flush any outstanding LRO work */ |
1086 if (vpath->lro_enable && vpath->lro.lro_cnt) { 1087 while ((queued = SLIST_FIRST(&lro->lro_active)) != NULL) { 1088 SLIST_REMOVE_HEAD(&lro->lro_active, next); 1089 tcp_lro_flush(lro, queued); 1090 } 1091 } | 1085 if (vpath->lro_enable && vpath->lro.lro_cnt) 1086 tcp_lro_flush_all(lro); |
1092 1093 return (status); 1094} 1095 1096static inline void 1097vxge_rx_input(ifnet_t ifp, mbuf_t mbuf_up, vxge_vpath_t *vpath) 1098{ 1099 if (vpath->lro_enable && vpath->lro.lro_cnt) { --- 3102 unchanged lines hidden --- | 1087 1088 return (status); 1089} 1090 1091static inline void 1092vxge_rx_input(ifnet_t ifp, mbuf_t mbuf_up, vxge_vpath_t *vpath) 1093{ 1094 if (vpath->lro_enable && vpath->lro.lro_cnt) { --- 3102 unchanged lines hidden --- |