From 21e6f47aa48bcd2021064d2cf4a8f0226836e92f Mon Sep 17 00:00:00 2001 From: Deepika Date: Tue, 11 Jul 2017 08:31:30 -0500 Subject: [PATCH] Error handling for CMD9 --- SDBlockDevice.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/SDBlockDevice.cpp b/SDBlockDevice.cpp index ab170ae53e..976deea3a2 100644 --- a/SDBlockDevice.cpp +++ b/SDBlockDevice.cpp @@ -344,6 +344,11 @@ int SDBlockDevice::init() } debug_if(SD_DBG, "init card = %d\n", _is_initialized); _sectors = _sd_sectors(); + // CMD9 failed + if (0 == _sectors) { + _lock.unlock(); + return BD_ERROR_DEVICE_ERROR; + } // Set block length to 512 (CMD16) if (_cmd(CMD16_SET_BLOCKLEN, _block_size) != 0) { @@ -358,12 +363,10 @@ int SDBlockDevice::init() _lock.unlock(); return err; } - _lock.unlock(); return BD_ERROR_OK; } - int SDBlockDevice::deinit() { return 0;