switch (elm->state) {
case ELM_NOTINIT:
elm->rxfill = 0;
- return;
+ break;
case ELM_GETMAGICCHAR:
{
elm327_drop_bytes(elm, i);
- return;
+ break;
}
case ELM_GETPROMPT:
elm327_handle_prompt(elm);
elm->rxfill = 0;
- return;
+ break;
case ELM_RECEIVING:
/* Find <CR> delimiting feedback lines. */
netdev_err(elm->dev,
"RX buffer overflow. Faulty ELM327 or UART?\n");
elm327_hw_failure(elm);
- return;
+ break;
} else if (len == elm->rxfill) {
if (elm327_is_ready_char(elm->rxbuf[elm->rxfill - 1])) {
/* The ELM327's AT ST response timeout ran out,
elm->rxfill = 0;
elm327_handle_prompt(elm);
- return;
+ break;
}
/* No <CR> found - we haven't received a full line yet.
* Wait for more data.
*/
- return;
+ break;
}
/* We have a full line to parse. */
return;
spin_lock_bh(&elm->lock);
- if (elm->hw_failure) {
- spin_unlock_bh(&elm->lock);
- put_elm(elm);
- return;
+ if (elm->hw_failure) {
+ goto out;
}
while (count-- && elm->rxfill < sizeof(elm->rxbuf)) {
netdev_err(elm->dev, "Error in received character stream. Check your wiring.");
elm327_hw_failure(elm);
- spin_unlock_bh(&elm->lock);
- put_elm(elm);
- return;
+ goto out;
}
/* Ignore NUL characters, which the PIC microcontroller may
"Received illegal character %02x.\n",
*cp);
elm327_hw_failure(elm);
- spin_unlock_bh(&elm->lock);
- put_elm(elm);
- return;
+ goto out;
}
elm->rxbuf[elm->rxfill++] = *cp;
netdev_err(elm->dev, "Receive buffer overflowed. Bad chip or wiring?");
elm327_hw_failure(elm);
- spin_unlock_bh(&elm->lock);
- put_elm(elm);
- return;
+ goto out;
}
elm327_parse_rxbuf(elm);
- spin_unlock_bh(&elm->lock);
+out:
+ spin_unlock_bh(&elm->lock);
put_elm(elm);
}