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

Commit 55d1458a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "net: Flush GRO list when input packet queue is empty"

parents 6cd07053 b9939e0e
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -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,
@@ -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;
			}
		}

@@ -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;