Unverified Commit 547bed38 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!9619 r8169: Fix possible ring buffer corruption on fragmented Tx packets.

parents e2febfbf 7b7963b6
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4246,11 +4246,11 @@ static void rtl8169_doorbell(struct rtl8169_private *tp)
static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
				      struct net_device *dev)
{
	unsigned int frags = skb_shinfo(skb)->nr_frags;
	struct rtl8169_private *tp = netdev_priv(dev);
	unsigned int entry = tp->cur_tx % NUM_TX_DESC;
	struct TxDesc *txd_first, *txd_last;
	bool stop_queue, door_bell;
	unsigned int frags;
	u32 opts[2];

	if (unlikely(!rtl_tx_slots_avail(tp))) {
@@ -4273,6 +4273,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,

	txd_first = tp->TxDescArray + entry;

	frags = skb_shinfo(skb)->nr_frags;
	if (frags) {
		if (rtl8169_xmit_frags(tp, skb, opts, entry))
			goto err_dma_1;