On Wednesday, March 03/18/20, 2020 at 12:52:36 +0000, Ferruh Yigit wrote: > Build error: > .../drivers/net/cxgbe/cxgbe_flow.c:315:2: > error: implicit truncation from 'int' to bitfield changes value > from -1 to 7 [-Werror,-Wbitfield-constant-conversion] > CXGBE_FILL_FS(adap->pf, ~0, pf); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > .../drivers/net/cxgbe/cxgbe_flow.c:25:2: > note: expanded from macro 'CXGBE_FILL_FS' > __CXGBE_FILL_FS(v, m, fs, elem, e) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > .../drivers/net/cxgbe/cxgbe_flow.c:15:18: note: > expanded from macro '__CXGBE_FILL_FS' > (fs)->mask.elem = (__m); \ > ^ ~~~~~ > Commit in fixes line changes 'PF_BITWIDTH' to '3', which makes 'fs->pf' > bitfield size '3', changing '~0' to '0x7' to prevent truncation in > assignment. > > Fixes: dcd456abe46f ("net/cxgbe: support flow API for matching all packets on > PF") > > Reported-by: Raslan Darawsheh <rasl...@mellanox.com> > Reported-by: Xueming Zhang <xuemingx.zh...@intel.com> > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com>
I've tested CLANG compilation with 9.0.1 without this patch, but couldn't hit the above mentioned error. # clang --version clang version 9.0.1 (Fedora 9.0.1-2.fc31) However, after grabbing CLANG 3.4.2, I could see the error. # clang --version clang version 3.4.2 (tags/RELEASE_34/dot2-final) This patch fixes it and the fix is correct too. Thanks for fixing it. Acked-by: Rahul Lakkireddy <rahul.lakkire...@chelsio.com> > --- > Cc: kaara.sat...@chelsio.com > --- > drivers/net/cxgbe/cxgbe_flow.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c > index 13fd78aaf..a46515d3b 100644 > --- a/drivers/net/cxgbe/cxgbe_flow.c > +++ b/drivers/net/cxgbe/cxgbe_flow.c > @@ -312,7 +312,7 @@ ch_rte_parsetype_pf(const void *dmask __rte_unused, > > CXGBE_FILL_FS(1, 1, pfvf_vld); > > - CXGBE_FILL_FS(adap->pf, ~0, pf); > + CXGBE_FILL_FS(adap->pf, 0x7, pf); > return 0; > } > > -- > 2.25.1 >