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:
Родитель
9eb43e7653
Коммит
d25398df59
|
@ -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)
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче