diff -u --recursive --new-file --exclude='.*' linux-2.6.13/drivers/scsi/libata-scsi.c linux/drivers/scsi/libata-scsi.c
--- linux-2.6.13/drivers/scsi/libata-scsi.c	2005-10-01 13:29:24.000000000 -0400
+++ linux/drivers/scsi/libata-scsi.c	2005-10-01 13:29:44.000000000 -0400
@@ -105,8 +105,10 @@
 	if (args[3]) {
 		argsize = SECTOR_SIZE * args[3];
 		argbuf = kmalloc(argsize, GFP_KERNEL);
-		if (argbuf == NULL)
-			return -ENOMEM;
+		if (argbuf == NULL) {
+			rc = -ENOMEM;
+			goto error;
+		}
 
 		scsi_cmd[1]  = (4 << 1); /* PIO Data-in */
 		scsi_cmd[2]  = 0x0e;     /* no off.line or cc, read from dev,

