mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fix from James Bottomley: "A single bug fix for hpsa. The user visible consequences aren't clear, but the ioaccel2 raid acceleration may misfire on the malformed request assuming the payload is big enough to require chaining (more than 31 sg entries)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: hpsa: correct ioaccel2 chaining
This commit is contained in:
@@ -4940,7 +4940,7 @@ static int hpsa_scsi_ioaccel2_queue_command(struct ctlr_info *h,
|
||||
curr_sg->reserved[0] = 0;
|
||||
curr_sg->reserved[1] = 0;
|
||||
curr_sg->reserved[2] = 0;
|
||||
curr_sg->chain_indicator = 0x80;
|
||||
curr_sg->chain_indicator = IOACCEL2_CHAIN;
|
||||
|
||||
curr_sg = h->ioaccel2_cmd_sg_list[c->cmdindex];
|
||||
}
|
||||
@@ -4957,6 +4957,11 @@ static int hpsa_scsi_ioaccel2_queue_command(struct ctlr_info *h,
|
||||
curr_sg++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the last s/g element bit
|
||||
*/
|
||||
(curr_sg - 1)->chain_indicator = IOACCEL2_LAST_SG;
|
||||
|
||||
switch (cmd->sc_data_direction) {
|
||||
case DMA_TO_DEVICE:
|
||||
cp->direction &= ~IOACCEL2_DIRECTION_MASK;
|
||||
|
@@ -517,6 +517,7 @@ struct ioaccel2_sg_element {
|
||||
u8 reserved[3];
|
||||
u8 chain_indicator;
|
||||
#define IOACCEL2_CHAIN 0x80
|
||||
#define IOACCEL2_LAST_SG 0x40
|
||||
};
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user