浏览代码

[SCSI] megaraid_sas: Add array boundary check for SystemPD

Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
adam radford 12 年之前
父节点
当前提交
e187df6399
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/scsi/megaraid/megaraid_sas_fusion.c

+ 2 - 1
drivers/scsi/megaraid/megaraid_sas_fusion.c

@@ -1508,7 +1508,8 @@ megasas_build_dcdb_fusion(struct megasas_instance *instance,
 	local_map_ptr = fusion->ld_map[(instance->map_id & 1)];
 
 	/* Check if this is a system PD I/O */
-	if (instance->pd_list[pd_index].driveState == MR_PD_STATE_SYSTEM) {
+	if (scmd->device->channel < MEGASAS_MAX_PD_CHANNELS &&
+	    instance->pd_list[pd_index].driveState == MR_PD_STATE_SYSTEM) {
 		io_request->Function = 0;
 		io_request->DevHandle =
 			local_map_ptr->raidMap.devHndlInfo[device_id].curDevHdl;