diff --git a/selfdrive/boardd/spi.cc b/selfdrive/boardd/spi.cc index e02252018f..ecf32bef5d 100644 --- a/selfdrive/boardd/spi.cc +++ b/selfdrive/boardd/spi.cc @@ -345,13 +345,13 @@ int PandaSpiHandle::spi_transfer(uint8_t endpoint, uint8_t *tx_data, uint16_t tx ret = lltransfer(transfer); if (ret < 0) { LOGE("SPI: failed to send header"); - goto transfer_fail; + return ret; } // Wait for (N)ACK ret = wait_for_ack(SPI_HACK, 0x11, timeout, 1); if (ret < 0) { - goto transfer_fail; + return ret; } // Send data @@ -363,20 +363,20 @@ int PandaSpiHandle::spi_transfer(uint8_t endpoint, uint8_t *tx_data, uint16_t tx ret = lltransfer(transfer); if (ret < 0) { LOGE("SPI: failed to send data"); - goto transfer_fail; + return ret; } // Wait for (N)ACK ret = wait_for_ack(SPI_DACK, 0x13, timeout, 3); if (ret < 0) { - goto transfer_fail; + return ret; } // Read data rx_data_len = *(uint16_t *)(rx_buf+1); if (rx_data_len >= SPI_BUF_SIZE) { LOGE("SPI: RX data len larger than buf size %d", rx_data_len); - goto transfer_fail; + return -1; } transfer.len = rx_data_len + 1; @@ -384,11 +384,11 @@ int PandaSpiHandle::spi_transfer(uint8_t endpoint, uint8_t *tx_data, uint16_t tx ret = lltransfer(transfer); if (ret < 0) { LOGE("SPI: failed to read rx data"); - goto transfer_fail; + return ret; } if (!check_checksum(rx_buf, rx_data_len + 4)) { LOGE("SPI: bad checksum"); - goto transfer_fail; + return -1; } if (rx_data != NULL) { @@ -396,8 +396,5 @@ int PandaSpiHandle::spi_transfer(uint8_t endpoint, uint8_t *tx_data, uint16_t tx } return rx_data_len; - -transfer_fail: - return ret; } #endif