if_em.c (f9b2a21c9eb4d2715be82dc9049eae29fdb40d17) | if_em.c (ce3ee1e7c4cac5b86bbc15daac68f2129aa42187) |
---|---|
1/****************************************************************************** 2 3 Copyright (c) 2001-2013, Intel Corporation 4 All rights reserved. 5 6 Redistribution and use in source and binary forms, with or without 7 modification, are permitted provided that the following conditions are met: 8 --- 3822 unchanged lines hidden (view full) --- 3831 struct adapter *adapter = txr->adapter; 3832 int first, last, done, processed; 3833 struct em_buffer *tx_buffer; 3834 struct e1000_tx_desc *tx_desc, *eop_desc; 3835 struct ifnet *ifp = adapter->ifp; 3836 3837 EM_TX_LOCK_ASSERT(txr); 3838#ifdef DEV_NETMAP | 1/****************************************************************************** 2 3 Copyright (c) 2001-2013, Intel Corporation 4 All rights reserved. 5 6 Redistribution and use in source and binary forms, with or without 7 modification, are permitted provided that the following conditions are met: 8 --- 3822 unchanged lines hidden (view full) --- 3831 struct adapter *adapter = txr->adapter; 3832 int first, last, done, processed; 3833 struct em_buffer *tx_buffer; 3834 struct e1000_tx_desc *tx_desc, *eop_desc; 3835 struct ifnet *ifp = adapter->ifp; 3836 3837 EM_TX_LOCK_ASSERT(txr); 3838#ifdef DEV_NETMAP |
3839 if (netmap_tx_irq(ifp, txr->me | 3840 (NETMAP_LOCKED_ENTER | NETMAP_LOCKED_EXIT))) | 3839 if (netmap_tx_irq(ifp, txr->me)) |
3841 return; 3842#endif /* DEV_NETMAP */ 3843 3844 /* No work, make sure watchdog is off */ 3845 if (txr->tx_avail == adapter->num_tx_desc) { 3846 txr->queue_status = EM_QUEUE_IDLE; 3847 return; 3848 } --- 247 unchanged lines hidden (view full) --- 4096 4097 4098 /* Clear the ring contents */ 4099 EM_RX_LOCK(rxr); 4100 rsize = roundup2(adapter->num_rx_desc * 4101 sizeof(struct e1000_rx_desc), EM_DBA_ALIGN); 4102 bzero((void *)rxr->rx_base, rsize); 4103#ifdef DEV_NETMAP | 3840 return; 3841#endif /* DEV_NETMAP */ 3842 3843 /* No work, make sure watchdog is off */ 3844 if (txr->tx_avail == adapter->num_tx_desc) { 3845 txr->queue_status = EM_QUEUE_IDLE; 3846 return; 3847 } --- 247 unchanged lines hidden (view full) --- 4095 4096 4097 /* Clear the ring contents */ 4098 EM_RX_LOCK(rxr); 4099 rsize = roundup2(adapter->num_rx_desc * 4100 sizeof(struct e1000_rx_desc), EM_DBA_ALIGN); 4101 bzero((void *)rxr->rx_base, rsize); 4102#ifdef DEV_NETMAP |
4104 slot = netmap_reset(na, NR_RX, 0, 0); | 4103 slot = netmap_reset(na, NR_RX, rxr->me, 0); |
4105#endif 4106 4107 /* 4108 ** Free current RX buffer structs and their mbufs 4109 */ 4110 for (int i = 0; i < adapter->num_rx_desc; i++) { 4111 rxbuf = &rxr->rx_buffers[i]; 4112 if (rxbuf->m_head != NULL) { --- 315 unchanged lines hidden (view full) --- 4428 u16 len; 4429 int i, processed, rxdone = 0; 4430 bool eop; 4431 struct e1000_rx_desc *cur; 4432 4433 EM_RX_LOCK(rxr); 4434 4435#ifdef DEV_NETMAP | 4104#endif 4105 4106 /* 4107 ** Free current RX buffer structs and their mbufs 4108 */ 4109 for (int i = 0; i < adapter->num_rx_desc; i++) { 4110 rxbuf = &rxr->rx_buffers[i]; 4111 if (rxbuf->m_head != NULL) { --- 315 unchanged lines hidden (view full) --- 4427 u16 len; 4428 int i, processed, rxdone = 0; 4429 bool eop; 4430 struct e1000_rx_desc *cur; 4431 4432 EM_RX_LOCK(rxr); 4433 4434#ifdef DEV_NETMAP |
4436 if (netmap_rx_irq(ifp, rxr->me | NETMAP_LOCKED_ENTER, &processed)) | 4435 if (netmap_rx_irq(ifp, rxr->me, &processed)) { 4436 EM_RX_UNLOCK(rxr); |
4437 return (FALSE); | 4437 return (FALSE); |
4438 } |
|
4438#endif /* DEV_NETMAP */ 4439 4440 for (i = rxr->next_to_check, processed = 0; count != 0;) { 4441 4442 if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) 4443 break; 4444 4445 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, --- 1353 unchanged lines hidden --- | 4439#endif /* DEV_NETMAP */ 4440 4441 for (i = rxr->next_to_check, processed = 0; count != 0;) { 4442 4443 if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) 4444 break; 4445 4446 bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, --- 1353 unchanged lines hidden --- |