> In airoha_ppe_debugfs_foe_show(), the second switch statement falls > through from PPE_PKT_TYPE_IPV4_HNAPT/DSLITE to PPE_PKT_TYPE_IPV4_ROUTE, > accessing hwe->ipv4.new_tuple for all three types. However, IPv4 ROUTE > (3-tuple) entries do not contain a valid new_tuple — this field is only > meaningful for NATted flows (HNAPT/DSLITE). For ROUTE entries, the > memory at the new_tuple offset holds routing information, not NAT data, > so displaying "new=" produces garbage output. > > Split the fallthrough: display new_tuple only for HNAPT and DSLITE, and > add an explicit empty case for IPV4_ROUTE. > > Fixes: 3fe15c640f38 ("net: airoha: Introduce PPE debugfs support") > Signed-off-by: Wayen.Yan > --- > drivers/net/ethernet/airoha/airoha_ppe_debugfs.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c > index 0112c41..f9c12e7 100644 > --- a/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c > +++ b/drivers/net/ethernet/airoha/airoha_ppe_debugfs.c > @@ -121,8 +121,6 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private, > case PPE_PKT_TYPE_IPV4_DSLITE: > src_port = &hwe->ipv4.new_tuple.src_port; > dest_port = &hwe->ipv4.new_tuple.dest_port; > - fallthrough; > - case PPE_PKT_TYPE_IPV4_ROUTE: > src_addr = &hwe->ipv4.new_tuple.src_ip; > dest_addr = &hwe->ipv4.new_tuple.dest_ip; > seq_puts(m, " new="); > @@ -130,6 +128,8 @@ static int airoha_ppe_debugfs_foe_show(struct seq_file *m, void *private, > src_port, dest_port, > ipv6); > break; > + case PPE_PKT_TYPE_IPV4_ROUTE: I guess you can just drop PPE_PKT_TYPE_IPV4_ROUTE and use the default case. Fixing it: Acked-by: Lorenzo Bianconi > + break; > default: > break; > } > -- > 2.51.0 > >