On 5/2/19 12:35 PM, Greg Kroah-Hartman wrote:
> Gustavo has been working to fix up all of the switch statements that
> "fall through" such that we can eventually turn on
> -Wimplicit-fallthrough. As part of that, the io_edgeport.c driver is a
> bit "messy" with the parsing logic of a data packet. Clean that logic
> up a bit by unindenting one level of the logic, and properly label
> /* Fall through */ to make gcc happy.
>
> Reported-by: Gustavo A. R. Silva <gust...@embeddedor.com>
> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
>
Acked-by: Gustavo A. R. Silva <gust...@embeddedor.com>
Thanks, Greg.
--
Gustavo
> diff --git a/drivers/usb/serial/io_edgeport.c
> b/drivers/usb/serial/io_edgeport.c
> index 4ca31c0e4174..48a439298a68 100644
> --- a/drivers/usb/serial/io_edgeport.c
> +++ b/drivers/usb/serial/io_edgeport.c
> @@ -1751,7 +1751,7 @@ static void process_rcvd_data(struct edgeport_serial
> *edge_serial,
> edge_serial->rxState = EXPECT_HDR2;
> break;
> }
> - /* otherwise, drop on through */
> + /* Fall through */
> case EXPECT_HDR2:
> edge_serial->rxHeader2 = *buffer;
> ++buffer;
> @@ -1790,29 +1790,20 @@ static void process_rcvd_data(struct edgeport_serial
> *edge_serial,
> edge_serial->rxHeader2, 0);
> edge_serial->rxState = EXPECT_HDR1;
> break;
> - } else {
> - edge_serial->rxPort =
> - IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
> - edge_serial->rxBytesRemaining =
> - IOSP_GET_HDR_DATA_LEN(
> - edge_serial->rxHeader1,
> - edge_serial->rxHeader2);
> - dev_dbg(dev, "%s - Data for Port %u Len %u\n",
> - __func__,
> - edge_serial->rxPort,
> - edge_serial->rxBytesRemaining);
> -
> - /* ASSERT(DevExt->RxPort < DevExt->NumPorts);
> - * ASSERT(DevExt->RxBytesRemaining <
> - * IOSP_MAX_DATA_LENGTH);
> - */
> -
> - if (bufferLength == 0) {
> - edge_serial->rxState = EXPECT_DATA;
> - break;
> - }
> - /* Else, drop through */
> }
> +
> + edge_serial->rxPort =
> IOSP_GET_HDR_PORT(edge_serial->rxHeader1);
> + edge_serial->rxBytesRemaining =
> IOSP_GET_HDR_DATA_LEN(edge_serial->rxHeader1,
> +
> edge_serial->rxHeader2);
> + dev_dbg(dev, "%s - Data for Port %u Len %u\n", __func__,
> + edge_serial->rxPort,
> + edge_serial->rxBytesRemaining);
> +
> + if (bufferLength == 0) {
> + edge_serial->rxState = EXPECT_DATA;
> + break;
> + }
> + /* Fall through */
> case EXPECT_DATA: /* Expect data */
> if (bufferLength < edge_serial->rxBytesRemaining) {
> rxLen = bufferLength;
>