[PATCH v6 03/13] spi: spidev_test: make size argument mandatory for --size

From: Jonas Rebmann

Date: Thu Sep 24 2026 - 08:34:02 EST


When the argument to --size is omitted, zero or not a number,
abort with a message instead of transmitting default_tx[].

Signed-off-by: Jonas Rebmann <jre@xxxxxxxxxxxxxx>
---
tools/spi/spidev_test.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/spi/spidev_test.c b/tools/spi/spidev_test.c
index 0bd6ae419cbf..36292d868d69 100644
--- a/tools/spi/spidev_test.c
+++ b/tools/spi/spidev_test.c
@@ -41,9 +41,10 @@ static uint32_t speed = 500000;
static uint16_t delay;
static uint16_t word_delay;
static int verbose;
-static int transfer_size;
+static int transfer_size = -1;
static int iterations;
static int interval = 5; /* interval in seconds for showing transfer rate */
+static int random_input;
static int input_choices;

static uint8_t default_tx[] = {
@@ -319,6 +320,7 @@ static void parse_opts(int argc, char *argv[])
break;
case 'S':
transfer_size = atoi(optarg);
+ random_input = 1;
input_choices++;
break;
case 'I':
@@ -454,6 +456,9 @@ int main(int argc, char *argv[])
pabort("at most one of -S (--size), -p, -i (--input) may be selected, "
"and each may be specified only once");

+ if (random_input && transfer_size < 0)
+ pabort("a size argument is mandatory for -S (--size)");
+
fd = open(device, O_RDWR);
if (fd < 0)
pabort("can't open device");
@@ -509,7 +514,7 @@ int main(int argc, char *argv[])
transfer_escaped_string(fd, input_tx);
else if (input_file)
transfer_file(fd, input_file);
- else if (transfer_size) {
+ else if (transfer_size >= 0) {
struct timespec last_stat;

clock_gettime(CLOCK_MONOTONIC, &last_stat);

--
2.56.0.rc0.108.gf0ef1b96a0