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 <gustavo@xxxxxxxxxxxxxx> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Acked-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> 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; >