Loading net/core/dev.c +5 −9 Original line number Diff line number Diff line Loading @@ -6397,8 +6397,8 @@ void napi_disable(struct napi_struct *n) might_sleep(); set_bit(NAPI_STATE_DISABLE, &n->state); for ( ; ; ) { val = READ_ONCE(n->state); do { if (val & (NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC)) { usleep_range(20, 200); continue; Loading @@ -6406,10 +6406,7 @@ void napi_disable(struct napi_struct *n) new = val | NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC; new &= ~(NAPIF_STATE_THREADED | NAPIF_STATE_PREFER_BUSY_POLL); if (cmpxchg(&n->state, val, new) == val) break; } } while (!try_cmpxchg(&n->state, &val, new)); hrtimer_cancel(&n->timer); Loading @@ -6426,16 +6423,15 @@ EXPORT_SYMBOL(napi_disable); */ void napi_enable(struct napi_struct *n) { unsigned long val, new; unsigned long new, val = READ_ONCE(n->state); do { val = READ_ONCE(n->state); BUG_ON(!test_bit(NAPI_STATE_SCHED, &val)); new = val & ~(NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC); if (n->dev->threaded && n->thread) new |= NAPIF_STATE_THREADED; } while (cmpxchg(&n->state, val, new) != val); } while (!try_cmpxchg(&n->state, &val, new)); } EXPORT_SYMBOL(napi_enable); Loading Loading
net/core/dev.c +5 −9 Original line number Diff line number Diff line Loading @@ -6397,8 +6397,8 @@ void napi_disable(struct napi_struct *n) might_sleep(); set_bit(NAPI_STATE_DISABLE, &n->state); for ( ; ; ) { val = READ_ONCE(n->state); do { if (val & (NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC)) { usleep_range(20, 200); continue; Loading @@ -6406,10 +6406,7 @@ void napi_disable(struct napi_struct *n) new = val | NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC; new &= ~(NAPIF_STATE_THREADED | NAPIF_STATE_PREFER_BUSY_POLL); if (cmpxchg(&n->state, val, new) == val) break; } } while (!try_cmpxchg(&n->state, &val, new)); hrtimer_cancel(&n->timer); Loading @@ -6426,16 +6423,15 @@ EXPORT_SYMBOL(napi_disable); */ void napi_enable(struct napi_struct *n) { unsigned long val, new; unsigned long new, val = READ_ONCE(n->state); do { val = READ_ONCE(n->state); BUG_ON(!test_bit(NAPI_STATE_SCHED, &val)); new = val & ~(NAPIF_STATE_SCHED | NAPIF_STATE_NPSVC); if (n->dev->threaded && n->thread) new |= NAPIF_STATE_THREADED; } while (cmpxchg(&n->state, val, new) != val); } while (!try_cmpxchg(&n->state, &val, new)); } EXPORT_SYMBOL(napi_enable); Loading