]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
cciss: fix flush cache transfer length
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Mon, 28 Nov 2011 19:12:05 +0000 (20:12 +0100)
committerJoe Jin <joe.jin@oracle.com>
Tue, 15 May 2012 07:52:44 +0000 (15:52 +0800)
We weren't filling in the transfer length of the
flush cache command (it transfers 4 bytes of zeroes).
Firmware didn't seem to be bothered by this, but it
should be fixed.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(cherry picked from commit 59bd71a81b66990564eac69aedd28ad87a2c81f4)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/block/cciss.c

index 6bfc6caefe37caf1c230e6c61ffe0eb76966ef6e..35e7d6f68008927c5067dbb5e3c2be160db09730 100644 (file)
@@ -2647,6 +2647,8 @@ static int fill_cmd(ctlr_info_t *h, CommandList_struct *c, __u8 cmd, void *buff,
                        c->Request.Timeout = 0;
                        c->Request.CDB[0] = BMIC_WRITE;
                        c->Request.CDB[6] = BMIC_CACHE_FLUSH;
+                       c->Request.CDB[7] = (size >> 8) & 0xFF;
+                       c->Request.CDB[8] = size & 0xFF;
                        break;
                case TEST_UNIT_READY:
                        c->Request.CDBLen = 6;