The table "/proc/net/can/rcvlist_all" is garbled if the interface names are longer than 5 characters. Consider IFNAMSIZ when formatting the table so that it looks like this: | receive list 'rx_all': | device can_id can_mask function userdata matches ident | any 000 00000000 8e807747 9bc49fd8 0 raw | device can_id can_mask function userdata matches ident | mcp251xfd0 000 00000000 8e807747 ec6d80a2 | 0 raw Cc: Oliver Hartkopp <socketcan@xxxxxxxxxxxx> Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> --- net/can/proc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/net/can/proc.c b/net/can/proc.c index bbce97825f13..62eeae453544 100644 --- a/net/can/proc.c +++ b/net/can/proc.c @@ -186,12 +186,12 @@ static void can_print_rcvlist(struct seq_file *m, struct hlist_head *rx_list, struct receiver *r; hlist_for_each_entry_rcu(r, rx_list, list) { - char *fmt = (r->can_id & CAN_EFF_FLAG)? - " %-5s %08x %08x %pK %pK %8ld %s\n" : - " %-5s %03x %08x %pK %pK %8ld %s\n"; + const char *fmt = r->can_id & CAN_EFF_FLAG ? + " %-*s %08x %08x %pK %pK %8ld %s\n" : + " %-*s %03x %08x %pK %pK %8ld %s\n"; - seq_printf(m, fmt, DNAME(dev), r->can_id, r->mask, - r->func, r->data, r->matches, r->ident); + seq_printf(m, fmt, IFNAMSIZ, DNAME(dev), r->can_id, r->mask, + r->func, r->data, r->matches, r->ident); } } @@ -202,9 +202,9 @@ static void can_print_recv_banner(struct seq_file *m) * ....... 0 tp20 */ if (IS_ENABLED(CONFIG_64BIT)) - seq_puts(m, " device can_id can_mask function userdata matches ident\n"); + seq_puts(m, " device can_id can_mask function userdata matches ident\n"); else - seq_puts(m, " device can_id can_mask function userdata matches ident\n"); + seq_puts(m, " device can_id can_mask function userdata matches ident\n"); } static int can_stats_proc_show(struct seq_file *m, void *v) -- 2.39.1