serial: add build-time sanity check of CONFIG_SERIAL_RX_BUFFER_SIZE
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>
This commit is contained in:
committed by
Tom Rini
parent
f4e7a39948
commit
3282298230
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user