diff options
| author | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
| commit | 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e (patch) | |
| tree | d57f3a63479a07b4e0cece029886e76e04feb984 /net/openvswitch/flow.c | |
| parent | 5dc63e56a9cf8df0b59c234a505a1653f1bdf885 (diff) | |
| parent | 53bea86b5712c7491bb3dae12e271666df0a308c (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.4 merge window.
Diffstat (limited to 'net/openvswitch/flow.c')
| -rw-r--r-- | net/openvswitch/flow.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c index e20d1a973417..33b21a0c0548 100644 --- a/net/openvswitch/flow.c +++ b/net/openvswitch/flow.c @@ -107,7 +107,8 @@ void ovs_flow_stats_update(struct sw_flow *flow, __be16 tcp_flags,  					rcu_assign_pointer(flow->stats[cpu],  							   new_stats); -					cpumask_set_cpu(cpu, &flow->cpu_used_mask); +					cpumask_set_cpu(cpu, +							flow->cpu_used_mask);  					goto unlock;  				}  			} @@ -135,7 +136,8 @@ void ovs_flow_stats_get(const struct sw_flow *flow,  	memset(ovs_stats, 0, sizeof(*ovs_stats));  	/* We open code this to make sure cpu 0 is always considered */ -	for (cpu = 0; cpu < nr_cpu_ids; cpu = cpumask_next(cpu, &flow->cpu_used_mask)) { +	for (cpu = 0; cpu < nr_cpu_ids; +	     cpu = cpumask_next(cpu, flow->cpu_used_mask)) {  		struct sw_flow_stats *stats = rcu_dereference_ovsl(flow->stats[cpu]);  		if (stats) { @@ -159,7 +161,8 @@ void ovs_flow_stats_clear(struct sw_flow *flow)  	int cpu;  	/* We open code this to make sure cpu 0 is always considered */ -	for (cpu = 0; cpu < nr_cpu_ids; cpu = cpumask_next(cpu, &flow->cpu_used_mask)) { +	for (cpu = 0; cpu < nr_cpu_ids; +	     cpu = cpumask_next(cpu, flow->cpu_used_mask)) {  		struct sw_flow_stats *stats = ovsl_dereference(flow->stats[cpu]);  		if (stats) { @@ -1038,7 +1041,8 @@ int ovs_flow_key_extract(const struct ip_tunnel_info *tun_info,  #if IS_ENABLED(CONFIG_NET_TC_SKB_EXT)  	if (tc_skb_ext_tc_enabled()) {  		tc_ext = skb_ext_find(skb, TC_SKB_EXT); -		key->recirc_id = tc_ext ? tc_ext->chain : 0; +		key->recirc_id = tc_ext && !tc_ext->act_miss ? +				 tc_ext->chain : 0;  		OVS_CB(skb)->mru = tc_ext ? tc_ext->mru : 0;  		post_ct = tc_ext ? tc_ext->post_ct : false;  		post_ct_snat = post_ct ? tc_ext->post_ct_snat : false;  |