Skip to contentSkip to conversation

Patch "8139too: revisit napi_complete_done() usage" has been added to the 4.13-stable tree

PATCH [email protected] 1 participant 1 message Oct 9, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

8139too: revisit napi_complete_done() usage

to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
8139too-revisit-napi_complete_done-usage.patch
and it can be found in the queue-4.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Mon Oct 9 09:32:35 CEST 2017

From: Eric Dumazet <[email protected]>
Date: Mon, 18 Sep 2017 13:03:43 -0700
Subject: 8139too: revisit napi_complete_done() usage

From: Eric Dumazet <[email protected]>

[ Upstream commit 129c6cda2de2a8ac44fab096152469999b727faf ]

It seems we have to be more careful in napi_complete_done() use. This patch is not a revert, as it seems we can avoid bug that Ville reported by moving the napi_complete_done() test in the spinlock section.

Many thanks to Ville for detective work and all tests.

Fixes 617f01211baf ("8139too: use napi_complete_done()")
---
 drivers/net/ethernet/realtek/8139too.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/net/ethernet/realtek/8139too.c +3 -2
@@ -2135,11 +2135,12 @@ static int rtl8139_poll(struct napi_stru
 	if (likely(RTL_R16(IntrStatus) & RxAckBits))
 		work_done += rtl8139_rx(dev, tp, budget);
 
-	if (work_done < budget && napi_complete_done(napi, work_done)) {
+	if (work_done < budget) {
 		unsigned long flags;
 
 		spin_lock_irqsave(&tp->lock, flags);
-		RTL_W16_F(IntrMask, rtl8139_intr_mask);
+		if (napi_complete_done(napi, work_done))
+			RTL_W16_F(IntrMask, rtl8139_intr_mask);
 		spin_unlock_irqrestore(&tp->lock, flags);
 	}
 	spin_unlock(&tp->rx_lock);

Patches currently in stable-queue which might be from [email protected] are

queue-4.13/packet-in-packet_do_bind-test-fanout-with-bind_lock-held.patch queue-4.13/socket-bpf-fix-possible-use-after-free.patch queue-4.13/bpf-do-not-disable-enable-bh-in-bpf_map_free_id.patch queue-4.13/packet-only-test-po-has_vnet_hdr-once-in-packet_snd.patch queue-4.13/8139too-revisit-napi_complete_done-usage.patch queue-4.13/net_sched-gen_estimator-fix-scaling-error-in-bytes-packets-samples.patch queue-4.13/tcp-fastopen-fix-on-syn-data-transmit-failure.patch queue-4.13/bpf-fix-bpf_tail_call-x64-jit.patch queue-4.13/net-set-sk_prot_creator-when-cloning-sockets-to-the-right-proto.patch queue-4.13/tcp-fix-data-delivery-rate.patch