]> rtime.felk.cvut.cz Git - arc.git/commitdiff
NvM, fixed handling of write all with block with highest index was skipped. Ticket1581-NvM
authorhebe <devnull@localhost>
Wed, 19 Sep 2012 11:51:12 +0000 (13:51 +0200)
committerhebe <devnull@localhost>
Wed, 19 Sep 2012 11:51:12 +0000 (13:51 +0200)
memory/NvM/NvM.c

index 0757fb89a15391a252fa8aea87a70cf711cf1589..d44f72bc9894c119310d2adeddf7e005664c1db5 100644 (file)
@@ -1269,6 +1269,23 @@ static void WriteAllMain(void)
                }\r
                AdminMultiReq.currBlockIndex++;\r
        }\r
+       if( AdminMultiReq.currBlockIndex >= NVM_NUM_OF_NVRAM_BLOCKS ) {\r
+               AdminMultiReq.currBlockIndex = 0;\r
+\r
+               /* @req 3.1.5/NVM301 */\r
+               if( NVM_REQ_NOT_OK == AdminMultiReq.PendingErrorStatus ) {\r
+                       AdminMultiBlock.ErrorStatus = NVM_REQ_NOT_OK;\r
+               } else {\r
+                       AdminMultiBlock.ErrorStatus = NVM_REQ_OK;\r
+               }\r
+               nvmState = NVM_IDLE;\r
+               nvmSubState = 0;\r
+\r
+               /*  @req 3.1.5/NVM468 */\r
+               if( NvM_Config.Common.MultiBlockCallback != NULL ) {\r
+                       NvM_Config.Common.MultiBlockCallback(serviceId, AdminMultiBlock.ErrorStatus);\r
+               }\r
+       }\r
 }\r
 \r
 \r