On Thu, 2017-06-15 at 19:52 +0200, Greg Kroah-Hartman wrote: > 4.4-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: hayeswang <hayeswang@xxxxxxxxxxx> > > > [ Upstream commit 248b213ad908b88db15941202ef7cb7eb137c1a0 ] > > Re-schedule napi after napi_complete() for tx, if it is necessay. > > In r8152_poll(), if the tx is completed after tx_bottom() and before > napi_complete(), the scheduling of napi would be lost. Then, no > one handles the next tx until the next napi_schedule() is called. [...] This (and other) tests of list_empty() aren't going to be reliable unless you take the same spinlock used when enqueueing packets. Alternately you could count packets added and removed from the driver internal queues and then you should only need memory barriers for synchronisation when comparing counters. Ben. -- Ben Hutchings Software Developer, Codethink Ltd.