Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 349124a0 authored by Figo.zhang's avatar Figo.zhang Committed by David S. Miller
Browse files

net8139: fix a race at the end of NAPI



fix a race at the end of NAPI complete processing, it had
better do __napi_complete() first before re-enable interrupt.

Signed-off-by: default avatarFigo.zhang <figo1802@gmail.com>

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 07a0f0f0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -598,8 +598,8 @@ rx_next:
			goto rx_status_loop;

		spin_lock_irqsave(&cp->lock, flags);
		cpw16_f(IntrMask, cp_intr_mask);
		__napi_complete(napi);
		cpw16_f(IntrMask, cp_intr_mask);
		spin_unlock_irqrestore(&cp->lock, flags);
	}

+1 −1
Original line number Diff line number Diff line
@@ -2089,8 +2089,8 @@ static int rtl8139_poll(struct napi_struct *napi, int budget)
		 * again when we think we are done.
		 */
		spin_lock_irqsave(&tp->lock, flags);
		RTL_W16_F(IntrMask, rtl8139_intr_mask);
		__napi_complete(napi);
		RTL_W16_F(IntrMask, rtl8139_intr_mask);
		spin_unlock_irqrestore(&tp->lock, flags);
	}
	spin_unlock(&tp->rx_lock);