On Fri, Mar 24, 2023 at 01:50:07PM +0200, Andy Shevchenko wrote: > On Fri, Mar 24, 2023 at 01:48:43PM +0200, Andy Shevchenko wrote: > > On Thu, Mar 23, 2023 at 05:25:28PM -0400, William Breathitt Gray wrote: > > ... > > > > +static void quad8_control_register_update(struct quad8 *const priv, u8 *const buf, > > > + const size_t channel, const u8 val, const u8 field) > > > +{ > > > + u8p_replace_bits(&buf[channel], val, field); > > > + iowrite8(buf[channel], &priv->reg->channel[channel].control); > > > +} > > > > How did you compile this? > > Due to nature of *_replace_bits() this may only be a macro. > > > > That's what LKP is telling about I think. > > Ah, no, that's because the last parameter is not constant in the last patch in > the series. > > -- > With Best Regards, > Andy Shevchenko I'm having trouble cross-compiling for riscv, but I'm unable to recreate the build error when I compile for x86_64. However, I'd like to understand this error so I can fix it properly. Is the problem here due to the "const u8 field" parameter? Instead of a constant variable, does this need to be a constant literal value for u8p_replace_bits()? I don't think that parameter changed in the last patch of the series, so why is the build error occurring for the last patch and not this penultimate patch here? Would qualifying the quad8_control_register_update() function with "__always_inline" resolve this issue? William Breathitt Gray
Attachment:
signature.asc
Description: PGP signature