svn commit: r192894 - head/sys/dev/xen/netfront

Adrian Chadd adrian at FreeBSD.org
Wed May 27 13:59:18 UTC 2009


Author: adrian
Date: Wed May 27 13:59:17 2009
New Revision: 192894
URL: http://svn.freebsd.org/changeset/base/192894

Log:
  Clear IFF_DRV_OACTIVE if at least one TX xen/mbuf ring slot has been freed.

Modified:
  head/sys/dev/xen/netfront/netfront.c

Modified: head/sys/dev/xen/netfront/netfront.c
==============================================================================
--- head/sys/dev/xen/netfront/netfront.c	Wed May 27 12:44:36 2009	(r192893)
+++ head/sys/dev/xen/netfront/netfront.c	Wed May 27 13:59:17 2009	(r192894)
@@ -1099,6 +1099,8 @@ xn_txeof(struct netfront_info *np)
 				panic("netif_release_tx_bufs: tx_chain_cnt must be >= 0");
 			}
 			m_free(m);
+			/* Only mark the queue active if we've freed up at least one slot to try */
+			ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
 		}
 		np->tx.rsp_cons = prod;
 		
@@ -1115,7 +1117,6 @@ xn_txeof(struct netfront_info *np)
 		    prod + ((np->tx.sring->req_prod - prod) >> 1) + 1;
 
 		mb();
-		
 	} while (prod != np->tx.sring->rsp_prod);
 	
  out: 


More information about the svn-src-head mailing list