diff options
Diffstat (limited to 'drivers/block/cciss.c')
-rw-r--r-- | drivers/block/cciss.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 855ce8e5efba..9715be3f2487 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -2630,12 +2630,14 @@ static void do_cciss_request(struct request_queue *q) | |||
2630 | c->Request.CDB[8] = creq->nr_sectors & 0xff; | 2630 | c->Request.CDB[8] = creq->nr_sectors & 0xff; |
2631 | c->Request.CDB[9] = c->Request.CDB[11] = c->Request.CDB[12] = 0; | 2631 | c->Request.CDB[9] = c->Request.CDB[11] = c->Request.CDB[12] = 0; |
2632 | } else { | 2632 | } else { |
2633 | u32 upper32 = upper_32_bits(start_blk); | ||
2634 | |||
2633 | c->Request.CDBLen = 16; | 2635 | c->Request.CDBLen = 16; |
2634 | c->Request.CDB[1]= 0; | 2636 | c->Request.CDB[1]= 0; |
2635 | c->Request.CDB[2]= (start_blk >> 56) & 0xff; //MSB | 2637 | c->Request.CDB[2]= (upper32 >> 24) & 0xff; //MSB |
2636 | c->Request.CDB[3]= (start_blk >> 48) & 0xff; | 2638 | c->Request.CDB[3]= (upper32 >> 16) & 0xff; |
2637 | c->Request.CDB[4]= (start_blk >> 40) & 0xff; | 2639 | c->Request.CDB[4]= (upper32 >> 8) & 0xff; |
2638 | c->Request.CDB[5]= (start_blk >> 32) & 0xff; | 2640 | c->Request.CDB[5]= upper32 & 0xff; |
2639 | c->Request.CDB[6]= (start_blk >> 24) & 0xff; | 2641 | c->Request.CDB[6]= (start_blk >> 24) & 0xff; |
2640 | c->Request.CDB[7]= (start_blk >> 16) & 0xff; | 2642 | c->Request.CDB[7]= (start_blk >> 16) & 0xff; |
2641 | c->Request.CDB[8]= (start_blk >> 8) & 0xff; | 2643 | c->Request.CDB[8]= (start_blk >> 8) & 0xff; |