mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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)	\
 | 
					#define SNMP_UPD_PO_STATS(mib, basefield, addend)	\
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\
 | 
							__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\
 | 
				
			||||||
		this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\
 | 
							this_cpu_inc(ptr[basefield##PKTS]);		\
 | 
				
			||||||
 | 
							this_cpu_add(ptr[basefield##OCTETS], addend);	\
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend)	\
 | 
					#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend)	\
 | 
				
			||||||
	do { \
 | 
						do { \
 | 
				
			||||||
		__this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\
 | 
							__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\
 | 
				
			||||||
		__this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\
 | 
							__this_cpu_inc(ptr[basefield##PKTS]);		\
 | 
				
			||||||
 | 
							__this_cpu_add(ptr[basefield##OCTETS], addend);	\
 | 
				
			||||||
	} while (0)
 | 
						} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue