]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
serial: add build-time sanity check of CONFIG_SERIAL_RX_BUFFER_SIZE
authorRasmus Villemoes <ravi@prevas.dk>
Thu, 3 Oct 2024 14:10:28 +0000 (16:10 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 16 Oct 2024 21:54:31 +0000 (15:54 -0600)
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 <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/serial/serial-uclass.c

index 28d7a202afce98820b16a2959fde7f9746271441..484f0f7d3e8da62c03174fc6d48a61a423d7160f 100644 (file)
@@ -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)) {