On Thu, 3 Oct 2024 at 08:11, Rasmus Villemoes <r...@prevas.dk> wrote: > > The help text says it must be a power of 2, and the implementation > does rely on that. Enforce it. > > A violation gives a wall of text, but the last few lines should be > reasonably obvious: > > drivers/serial/serial-uclass.c:334:9: note: in expansion of macro > ‘BUILD_BUG_ON_NOT_POWER_OF_2’ > 334 | BUILD_BUG_ON_NOT_POWER_OF_2(CONFIG_SERIAL_RX_BUFFER_SIZE); > > Signed-off-by: Rasmus Villemoes <r...@prevas.dk> > --- > drivers/serial/serial-uclass.c | 3 +++ > 1 file changed, 3 insertions(+)
Reviewed-by: Simon Glass <s...@chromium.org> > > diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c > index 28d7a202afc..484f0f7d3e8 100644 > --- a/drivers/serial/serial-uclass.c > +++ b/drivers/serial/serial-uclass.c > @@ -18,6 +18,7 @@ > #include <dm/lists.h> > #include <dm/device-internal.h> > #include <dm/of_access.h> > +#include <linux/build_bug.h> > #include <linux/delay.h> > > DECLARE_GLOBAL_DATA_PTR; > @@ -330,6 +331,8 @@ static int _serial_tstc(struct udevice *dev) > struct serial_dev_priv *upriv = dev_get_uclass_priv(dev); > uint wr, avail; > > + BUILD_BUG_ON_NOT_POWER_OF_2(CONFIG_SERIAL_RX_BUFFER_SIZE); > + > /* Read all available chars into the RX buffer while there's room */ > avail = CONFIG_SERIAL_RX_BUFFER_SIZE - (upriv->wr_ptr - > upriv->rd_ptr); > while (avail-- && __serial_tstc(dev)) { > -- > 2.46.2 >