Commit a2d1d5aa authored by Rasmus Villemoes's avatar Rasmus Villemoes Committed by Luis Henriques

usb: musb: Fix a few off-by-one lengths

commit e87c3f80 upstream.

!strncmp(buf, "force host", 9) is true if and only if buf starts with
"force hos". This was obviously not what was intended. The same error
exists for "force full-speed", "force high-speed" and "test
packet". Using strstarts avoids the error-prone hardcoding of the
prefix length.

For consistency, also change the other occurences of the !strncmp
idiom.
Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent 4960ce27
...@@ -649,9 +649,9 @@ static int cppi41_dma_controller_start(struct cppi41_dma_controller *controller) ...@@ -649,9 +649,9 @@ static int cppi41_dma_controller_start(struct cppi41_dma_controller *controller)
ret = of_property_read_string_index(np, "dma-names", i, &str); ret = of_property_read_string_index(np, "dma-names", i, &str);
if (ret) if (ret)
goto err; goto err;
if (!strncmp(str, "tx", 2)) if (strstarts(str, "tx"))
is_tx = 1; is_tx = 1;
else if (!strncmp(str, "rx", 2)) else if (strstarts(str, "rx"))
is_tx = 0; is_tx = 0;
else { else {
dev_err(dev, "Wrong dmatype %s\n", str); dev_err(dev, "Wrong dmatype %s\n", str);
......
...@@ -194,30 +194,30 @@ static ssize_t musb_test_mode_write(struct file *file, ...@@ -194,30 +194,30 @@ static ssize_t musb_test_mode_write(struct file *file,
if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
return -EFAULT; return -EFAULT;
if (!strncmp(buf, "force host", 9)) if (strstarts(buf, "force host"))
test = MUSB_TEST_FORCE_HOST; test = MUSB_TEST_FORCE_HOST;
if (!strncmp(buf, "fifo access", 11)) if (strstarts(buf, "fifo access"))
test = MUSB_TEST_FIFO_ACCESS; test = MUSB_TEST_FIFO_ACCESS;
if (!strncmp(buf, "force full-speed", 15)) if (strstarts(buf, "force full-speed"))
test = MUSB_TEST_FORCE_FS; test = MUSB_TEST_FORCE_FS;
if (!strncmp(buf, "force high-speed", 15)) if (strstarts(buf, "force high-speed"))
test = MUSB_TEST_FORCE_HS; test = MUSB_TEST_FORCE_HS;
if (!strncmp(buf, "test packet", 10)) { if (strstarts(buf, "test packet")) {
test = MUSB_TEST_PACKET; test = MUSB_TEST_PACKET;
musb_load_testpacket(musb); musb_load_testpacket(musb);
} }
if (!strncmp(buf, "test K", 6)) if (strstarts(buf, "test K"))
test = MUSB_TEST_K; test = MUSB_TEST_K;
if (!strncmp(buf, "test J", 6)) if (strstarts(buf, "test J"))
test = MUSB_TEST_J; test = MUSB_TEST_J;
if (!strncmp(buf, "test SE0 NAK", 12)) if (strstarts(buf, "test SE0 NAK"))
test = MUSB_TEST_SE0_NAK; test = MUSB_TEST_SE0_NAK;
musb_writeb(musb->mregs, MUSB_TESTMODE, test); musb_writeb(musb->mregs, MUSB_TESTMODE, test);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment