lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <53FCA0FA.20600@intel.com> Date: Tue, 26 Aug 2014 08:00:10 -0700 From: Alexander Duyck <alexander.h.duyck@...el.com> To: David Miller <davem@...emloft.net>, netdev@...r.kernel.org CC: therbert@...gle.com, jhs@...atatu.com, hannes@...essinduktion.org, edumazet@...gle.com, jeffrey.t.kirsher@...el.com, rusty@...tcorp.com.au, dborkman@...hat.com, brouer@...hat.com Subject: Re: [PATCH 2/2] ixgbe: support skb->xmit_more in netdev_ops->ndo_start_xmit() On 08/25/2014 04:35 PM, David Miller wrote: > > From: Daniel Borkmann <dborkman@...hat.com> > > This implements the deferred tail pointer flush API for the ixgbe > driver. Similar version also proposed longer time ago by Alexander Duyck. > > Signed-off-by: Daniel Borkmann <dborkman@...hat.com> > Signed-off-by: David S. Miller <davem@...emloft.net> > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > index 87bd53f..ba9ceaa 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > @@ -6958,9 +6958,10 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring, > > tx_ring->next_to_use = i; > > - /* notify HW of packet */ > - ixgbe_write_tail(tx_ring, i); > - > + if (!skb->xmit_more) { > + /* notify HW of packet */ > + ixgbe_write_tail(tx_ring, i); > + } > return; > dma_error: > dev_err(tx_ring->dev, "TX DMA map failed\n"); > It might help to add some handling for the case where xmit_more is set, but the ring has become full. This current implementation introduces the risk of triggering a Tx hang. My advice would be to pull the ixgbe_maybe_stop_tx code at the end of xmit_frame into the if check here, and perhaps look into adding an additional check to see if BQL has stopped the ring as well. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists