rikaken2004 opened a new pull request, #20401:
URL: https://github.com/apache/nuttx/pull/20401

   ## Summary
   
   Check the return value of `SDIO_RECVSETUP`/`SDIO_SENDSETUP` on the non-DMA 
data paths of `drivers/mmcsd/mmcsd_sdio.c`, mirroring the existing DMA-path 
handling (`SDIO_CANCEL` + propagate the error): `mmcsd_readsingle()`, 
`mmcsd_readmultiple()`, `mmcsd_writesingle()`, `mmcsd_writemultiple()`, and the 
CMD56 read/write helpers.
   
   Today a lower-half setup failure on these paths is silently dropped and the 
driver still issues CMD17/18/24/25/56, so the real error only surfaces later as 
an unrelated-looking transfer timeout. The DMA twins in the same functions 
already check their setup calls, so this looks like an oversight. Reported as 
#20399.
   
   Two call sites without a checked DMA twin are left alone deliberately: the 
SCR read fallback and the switch-status read. Happy to cover them too if 
reviewers prefer.
   
   ## Impact
   
   All SDIO/MMC hosts using the non-DMA paths: setup failures (e.g. a lower 
half rejecting an unaligned buffer) now fail fast with the real error code 
instead of a confusing transfer timeout. No behaviour change when the lower 
half never fails, which is the case for most in-tree drivers.
   
   ## Testing
   
   Not runtime-tested on hardware; each hunk is byte-for-byte the error 
handling of the DMA twin in the same function (same log level, `SDIO_CANCEL`, 
propagate `ret`). Compile-verified only.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to