From bb1e2477bda7ca103d04e208eeee0496560ea62c Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Tue, 1 Sep 2020 23:03:55 +1000 Subject: [PATCH] Increase limit of READ/WRITE BUFFER command for improved compatibility SGI Iris hosts --- CHANGELOG | 4 ++++ src/firmware/diagnostic.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index e6dccb96..c99ebb8e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +2020xxxx 6.X.X + - Increase limit of READ/WRITE BUFFER command for improved compatibility + SGI Iris hosts + 20200419 6.3.1 - Added checks to ensure the correct firmware version is loaded. V6 Rev.f and older boards need the "firmware.V6.revF.dfu" firmware updates. diff --git a/src/firmware/diagnostic.c b/src/firmware/diagnostic.c index 17d170b3..aeead0fc 100755 --- a/src/firmware/diagnostic.c +++ b/src/firmware/diagnostic.c @@ -154,7 +154,7 @@ void scsiReadBuffer() if (mode == 0) { - uint32_t maxSize = MAX_SECTOR_SIZE - 4; + uint32_t maxSize = sizeof(scsiDev.data) - 4; // 4 byte header scsiDev.data[0] = 0; scsiDev.data[1] = (maxSize >> 16) & 0xff; @@ -162,19 +162,19 @@ void scsiReadBuffer() scsiDev.data[3] = maxSize & 0xff; scsiDev.dataLen = - (allocLength > MAX_SECTOR_SIZE) ? MAX_SECTOR_SIZE : allocLength; + (allocLength > sizeof(scsiDev.data)) ? sizeof(scsiDev.data) : allocLength; scsiDev.phase = DATA_IN; } else if (mode == 0x2 && (scsiDev.cdb[2] == 0)) { // TODO support BUFFER OFFSET fields in CDB scsiDev.dataLen = - (allocLength > MAX_SECTOR_SIZE) ? MAX_SECTOR_SIZE : allocLength; + (allocLength > sizeof(scsiDev.data)) ? sizeof(scsiDev.data) : allocLength; scsiDev.phase = DATA_IN; } else if (mode == 0x3) { - uint32_t maxSize = MAX_SECTOR_SIZE - 4; + uint32_t maxSize = sizeof(scsiDev.data) - 4; // 4 byte header scsiDev.data[0] = 0; scsiDev.data[1] = (maxSize >> 16) & 0xff; -- 2.38.5