On 2019/5/25 20:59, Sven Van Asbroeck wrote: > On Sat, May 25, 2019 at 12:20 AM Mao Wenan <maowenan@xxxxxxxxxx> wrote: >> >> The variable 'status' is not used any more, remve it. > >> /* do the transfers for this message */ >> list_for_each_entry(transfer, &m->transfers, transfer_list) { >> if (transfer->tx_buf == NULL && transfer->rx_buf == NULL && transfer->len) { >> - status = -EINVAL; >> break; >> } > > This looks like an error condition that's not reported to the spi core. > > Instead of removing the status variable (which also removes the error value!), > maybe this should be reported to the spi core instead ? > > Other spi drivers appear to do the following on the error path: > m->status = status; > return status; I have reviewed the code again, and it is good idea to store m->status in error path, like below? @@ -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; } } ... /* done work */ spi_finalize_current_message(master); return 0; + + error: + m->status = status; + return status; } > >> >> @@ -370,7 +368,6 @@ kp_spi_transfer_one_message(struct spi_master *master, struct spi_message *m) >> >> if (count != transfer->len) { >> - status = -EIO; >> break; > > Same issue here. > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel