On Wed, Apr 24, 2019 at 11:34 AM Nathan Chancellor <[email protected]> wrote: > > Clang warns: > > drivers/thunderbolt/tunnel.c:504:17: warning: implicit truncation from > 'int' to bit-field changes value from 5 to -3 > [-Wbitfield-constant-conversion] > path->priority = 5; > ^ ~ > 1 warning generated. > > The priority member in struct tb_path is only ever assigned a positive > number: > > $ rg -n priority drivers/thunderbolt/path.c > drivers/thunderbolt/tunnel.c:99: path->priority = 3; > drivers/thunderbolt/tunnel.c:308: path->priority = 2; > drivers/thunderbolt/tunnel.c:323: path->priority = 1; > drivers/thunderbolt/tunnel.c:504: path->priority = 5;
LGTM. Looks like drivers/thunderbolt/tb_regs.h also defines it as u32 (no change needed here). Triple checking it's uses, looks like it gets assigned: drivers/thunderbolt/path.c#L492: hop.priority = path->priority; hop is an instance of a struct tb_regs_hop, which is the definition I was looking at above. LGTM thanks Nathan! Reviewed-by: Nick Desaulniers <[email protected]> > > Furthmore, that value is only assigned to an unsigned integer in > tb_path_activate (the priority member in struct tb_regs_hop). > > Fixes: 44242d6c9703 ("thunderbolt: Add support for DMA tunnels") > Link: https://github.com/ClangBuiltLinux/linux/issues/454 > Signed-off-by: Nathan Chancellor <[email protected]> > --- > drivers/thunderbolt/tb.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h > index 15d225dcb403..b12c8f33d89c 100644 > --- a/drivers/thunderbolt/tb.h > +++ b/drivers/thunderbolt/tb.h > @@ -225,7 +225,7 @@ struct tb_path { > enum tb_path_port ingress_fc_enable; > enum tb_path_port egress_fc_enable; > > - int priority:3; > + unsigned int priority:3; > int weight:4; > bool drop_packages; > bool activated; > -- > 2.21.0 > -- Thanks, ~Nick Desaulniers

