On Tue, Sep 17, 2024 at 05:14:10PM +0100, Simon Horman wrote: > On Tue, Sep 17, 2024 at 09:31:00AM -0500, Wei Huang wrote: > > > > > > On 9/17/24 02:32, Simon Horman wrote: > > > On Mon, Sep 16, 2024 at 03:51:00PM -0500, Wei Huang wrote: > > ... > > >> + val = readl(vec_ctrl); > > >> + mask = PCI_MSIX_ENTRY_CTRL_ST_LOWER | PCI_MSIX_ENTRY_CTRL_ST_UPPER; > > >> + val &= ~mask; > > >> + val |= FIELD_PREP(mask, (u32)tag); > > > > > > Hi Wei Huang, > > > > > > Unfortunately clang-18 (x86_64, allmodconfig, W=1, when applied to net-next) > > > complains about this. I think it is because it expects FIELD_PREP to be > > > used with a mask that is a built-in constant. > > > > I thought I fixed it, but apparently not enough for clang-18. I will > > address this problem, along with other comments from you and Bjorn (if any). > > > > BTW there is another code in drivers/gpu/drm/ using a similar approach. > > Thanks, > > I will run some checks over drivers/gpu/drm/ and let you know if they find > anything. FWIIW, I did try compiling all the .c files under drivers/gpu/drm/ with clang-18, and it did not flag this problem.