drivers/memstick/core/ms_block.c: fix unreachable state in h_msb_read_page()
authorRoger Tseng <rogerable@realtek.com>
Tue, 12 Nov 2013 23:11:40 +0000 (15:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Nov 2013 19:28:06 +0000 (11:28 -0800)
commit a0e5a12fd18d47aa87a7a8c60ca5bc422b136564 upstream.

In h_msb_read_page() in ms_block.c, flow never reaches case
MSB_RP_RECIVE_STATUS_REG.  This causes error when MEMSTICK_INT_ERR is
encountered and status error bits are going to be examined, but the status
will never be copied back.

Fix it by transitioning to MSB_RP_RECIVE_STATUS_REG right after
MSB_RP_SEND_READ_STATUS_REG.

Signed-off-by: Roger Tseng <rogerable@realtek.com>
Acked-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/memstick/core/ms_block.c

index 08e70232062fbcdde628d33afef1a4f5f3f93de0..9188ef5d677ede05a5cb2c56d176bfb878321185 100644 (file)
@@ -401,7 +401,7 @@ again:
                        sizeof(struct ms_status_register)))
                        return 0;
 
-               msb->state = MSB_RP_RECEIVE_OOB_READ;
+               msb->state = MSB_RP_RECIVE_STATUS_REG;
                return 0;
 
        case MSB_RP_RECIVE_STATUS_REG: