forked from mirrors/linux
		
	net: avoid reloads in SNMP_UPD_PO_STATS
Avoid two instructions to reload dev->nd_net->mib.ip_statistics pointer, unsing a temp variable, in ip_rcv(), ip_output() paths for example. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									9eb43e7653
								
							
						
					
					
						commit
						d25398df59
					
				
					 1 changed files with 6 additions and 4 deletions
				
			
		|  | @ -154,13 +154,15 @@ struct linux_xfrm_mib { | |||
|  */ | ||||
| #define SNMP_UPD_PO_STATS(mib, basefield, addend)	\ | ||||
| 	do { \ | ||||
| 		this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\ | ||||
| 		this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\ | ||||
| 		__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\ | ||||
| 		this_cpu_inc(ptr[basefield##PKTS]);		\ | ||||
| 		this_cpu_add(ptr[basefield##OCTETS], addend);	\ | ||||
| 	} while (0) | ||||
| #define SNMP_UPD_PO_STATS_BH(mib, basefield, addend)	\ | ||||
| 	do { \ | ||||
| 		__this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\ | ||||
| 		__this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\ | ||||
| 		__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\ | ||||
| 		__this_cpu_inc(ptr[basefield##PKTS]);		\ | ||||
| 		__this_cpu_add(ptr[basefield##OCTETS], addend);	\ | ||||
| 	} while (0) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Eric Dumazet
						Eric Dumazet