Эх сурвалжийг харах

[SCSI] isd200: Allocate sense_buffer for hacked up scsi_cmnd

Since the separation of sense_buffer from scsi_cmnd, Drivers that hack their
own struct scsi_cmnd like here isd200, must also take care of their own
sense_buffer.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Boaz Harrosh 17 жил өмнө
parent
commit
e92e63aaba

+ 4 - 1
drivers/usb/storage/isd200.c

@@ -1469,6 +1469,7 @@ static void isd200_free_info_ptrs(void *info_)
 	if (info) {
 	if (info) {
 		kfree(info->id);
 		kfree(info->id);
 		kfree(info->RegsBuf);
 		kfree(info->RegsBuf);
+		kfree(info->srb.sense_buffer);
 	}
 	}
 }
 }
 
 
@@ -1494,7 +1495,9 @@ static int isd200_init_info(struct us_data *us)
 				kzalloc(sizeof(struct hd_driveid), GFP_KERNEL);
 				kzalloc(sizeof(struct hd_driveid), GFP_KERNEL);
 		info->RegsBuf = (unsigned char *)
 		info->RegsBuf = (unsigned char *)
 				kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
 				kmalloc(sizeof(info->ATARegs), GFP_KERNEL);
-		if (!info->id || !info->RegsBuf) {
+		info->srb.sense_buffer =
+				kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
+		if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) {
 			isd200_free_info_ptrs(info);
 			isd200_free_info_ptrs(info);
 			kfree(info);
 			kfree(info);
 			retStatus = ISD200_ERROR;
 			retStatus = ISD200_ERROR;