Loading net/core/dev.c +4 −12 Original line number Diff line number Diff line Loading @@ -4330,7 +4330,6 @@ static int process_backlog(struct napi_struct *napi, int quota) { int work = 0; struct softnet_data *sd = container_of(napi, struct softnet_data, backlog); static int state_changed; #ifdef CONFIG_RPS /* Check if we have pending ipi, its better to send them now, Loading @@ -4352,15 +4351,7 @@ static int process_backlog(struct napi_struct *napi, int quota) local_irq_disable(); input_queue_head_incr(sd); if (++work >= quota) { if (state_changed) { local_irq_enable(); napi_gro_flush(napi, false); local_irq_disable(); state_changed = 0; } local_irq_enable(); sd->current_napi = NULL; return work; goto state_changed; } } Loading @@ -4376,17 +4367,18 @@ static int process_backlog(struct napi_struct *napi, int quota) */ list_del(&napi->poll_list); napi->state = 0; state_changed = 1; rps_unlock(sd); break; goto state_changed; } skb_queue_splice_tail_init(&sd->input_pkt_queue, &sd->process_queue); rps_unlock(sd); } state_changed: local_irq_enable(); napi_gro_flush(napi, false); sd->current_napi = NULL; return work; Loading Loading
net/core/dev.c +4 −12 Original line number Diff line number Diff line Loading @@ -4330,7 +4330,6 @@ static int process_backlog(struct napi_struct *napi, int quota) { int work = 0; struct softnet_data *sd = container_of(napi, struct softnet_data, backlog); static int state_changed; #ifdef CONFIG_RPS /* Check if we have pending ipi, its better to send them now, Loading @@ -4352,15 +4351,7 @@ static int process_backlog(struct napi_struct *napi, int quota) local_irq_disable(); input_queue_head_incr(sd); if (++work >= quota) { if (state_changed) { local_irq_enable(); napi_gro_flush(napi, false); local_irq_disable(); state_changed = 0; } local_irq_enable(); sd->current_napi = NULL; return work; goto state_changed; } } Loading @@ -4376,17 +4367,18 @@ static int process_backlog(struct napi_struct *napi, int quota) */ list_del(&napi->poll_list); napi->state = 0; state_changed = 1; rps_unlock(sd); break; goto state_changed; } skb_queue_splice_tail_init(&sd->input_pkt_queue, &sd->process_queue); rps_unlock(sd); } state_changed: local_irq_enable(); napi_gro_flush(napi, false); sd->current_napi = NULL; return work; Loading