staging: kpc2000: report error status to spi core
There is an error condition that's not reported to the spi core in kp_spi_transfer_one_message(). It should restore status value to m->status, and return it in error path. Signed-off-by: Mao Wenan <maowenan@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4a932d90b1
commit
9164f33631
|
@ -374,7 +374,7 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m)
|
||||||
list_for_each_entry(transfer, &m->transfers, transfer_list) {
|
list_for_each_entry(transfer, &m->transfers, transfer_list) {
|
||||||
if (transfer->tx_buf == NULL && transfer->rx_buf == NULL && transfer->len) {
|
if (transfer->tx_buf == NULL && transfer->rx_buf == NULL && transfer->len) {
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
break;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* transfer */
|
/* transfer */
|
||||||
|
@ -412,7 +412,7 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m)
|
||||||
|
|
||||||
if (count != transfer->len) {
|
if (count != transfer->len) {
|
||||||
status = -EIO;
|
status = -EIO;
|
||||||
break;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,6 +430,10 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m)
|
||||||
/* done work */
|
/* done work */
|
||||||
spi_finalize_current_message(master);
|
spi_finalize_current_message(master);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
m->status = status;
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue