From: Hayes Wang <redacted>
Date: Fri, 19 Dec 2014 16:56:00 +0800
Don't submit the rx if the device is unplugged, linking down,
or stopped.
...
quoted hunk ↗ jump to hunk
@@ -1789,6 +1789,11 @@ int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
{
int ret;
+ /* The rx would be stopped, so skip submitting */
+ if (test_bit(RTL8152_UNPLUG, &tp->flags) ||
+ !test_bit(WORK_ENABLE, &tp->flags) || !(tp->speed & LINK_STATUS))
+ return 0;
+
I think netif_carrier_off() should always be true in all three of those
situations, and would be a much simpler test than what you've coded
here.