Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xfrm: snmp: do not use SNMP_MIB_SENTINEL anymore

Use ARRAY_SIZE(), so that we know the limit at compile time.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://patch.msgid.link/20250905165813.1470708-9-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Eric Dumazet and committed by
Jakub Kicinski
c73d583e 3a951f95

+6 -6
+6 -6
net/xfrm/xfrm_proc.c
··· 45 45 SNMP_MIB_ITEM("XfrmInStateDirError", LINUX_MIB_XFRMINSTATEDIRERROR), 46 46 SNMP_MIB_ITEM("XfrmInIptfsError", LINUX_MIB_XFRMINIPTFSERROR), 47 47 SNMP_MIB_ITEM("XfrmOutNoQueueSpace", LINUX_MIB_XFRMOUTNOQSPACE), 48 - SNMP_MIB_SENTINEL 49 48 }; 50 49 51 50 static int xfrm_statistics_seq_show(struct seq_file *seq, void *v) 52 51 { 53 - unsigned long buff[LINUX_MIB_XFRMMAX]; 52 + unsigned long buff[ARRAY_SIZE(xfrm_mib_list)]; 53 + const int cnt = ARRAY_SIZE(xfrm_mib_list); 54 54 struct net *net = seq->private; 55 55 int i; 56 56 57 - memset(buff, 0, sizeof(unsigned long) * LINUX_MIB_XFRMMAX); 57 + memset(buff, 0, sizeof(buff)); 58 58 59 59 xfrm_state_update_stats(net); 60 - snmp_get_cpu_field_batch(buff, xfrm_mib_list, 61 - net->mib.xfrm_statistics); 62 - for (i = 0; xfrm_mib_list[i].name; i++) 60 + snmp_get_cpu_field_batch_cnt(buff, xfrm_mib_list, cnt, 61 + net->mib.xfrm_statistics); 62 + for (i = 0; i < cnt; i++) 63 63 seq_printf(seq, "%-24s\t%lu\n", xfrm_mib_list[i].name, 64 64 buff[i]); 65 65