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) {
|
||||
if (transfer->tx_buf == NULL && transfer->rx_buf == NULL && transfer->len) {
|
||||
status = -EINVAL;
|
||||
break;
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* transfer */
|
||||
|
@ -412,7 +412,7 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m)
|
|||
|
||||
if (count != transfer->len) {
|
||||
status = -EIO;
|
||||
break;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -430,6 +430,10 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m)
|
|||
/* done work */
|
||||
spi_finalize_current_message(master);
|
||||
return 0;
|
||||
|
||||
error:
|
||||
m->status = status;
|
||||
return status;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue