On Thu, Feb 12, 2015 at 11:14:09AM +0100, Arturo Borrero Gonzalez wrote: > >> net/netfilter/nft_compat.c:140:37: sparse: incorrect type in assignment (different base types) > net/netfilter/nft_compat.c:140:37: expected restricted __be16 [usertype] ethproto > net/netfilter/nft_compat.c:140:37: got unsigned char [unsigned] [usertype] proto > >> net/netfilter/nft_compat.c:351:37: sparse: incorrect type in assignment (different base types) > net/netfilter/nft_compat.c:351:37: expected restricted __be16 [usertype] ethproto > net/netfilter/nft_compat.c:351:37: got unsigned char [unsigned] [usertype] proto This is spotting a more serious problem. The existing code is trimming the ethernet protocol field to u8. We should use u16 all around the code and then force the casting to calm down sparse. > Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx> > Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@xxxxxxxxx> > --- > net/netfilter/nft_compat.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c > index c598f74..b5dc651 100644 > --- a/net/netfilter/nft_compat.c > +++ b/net/netfilter/nft_compat.c > @@ -137,7 +137,7 @@ nft_target_set_tgchk_param(struct xt_tgchk_param *par, > entry->e6.ipv6.invflags = inv ? IP6T_INV_PROTO : 0; > break; > case NFPROTO_BRIDGE: > - entry->ebt.ethproto = proto; > + entry->ebt.ethproto = (__force __be16)proto; > entry->ebt.invflags = inv ? EBT_IPROTO : 0; > break; > } > @@ -348,7 +348,7 @@ nft_match_set_mtchk_param(struct xt_mtchk_param *par, const struct nft_ctx *ctx, > entry->e6.ipv6.invflags = inv ? IP6T_INV_PROTO : 0; > break; > case NFPROTO_BRIDGE: > - entry->ebt.ethproto = proto; > + entry->ebt.ethproto = (__force __be16)proto; > entry->ebt.invflags = inv ? EBT_IPROTO : 0; > break; > } > -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html