Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/scsi/aacraid/linit.c |    2 +-
 drivers/scsi/scsi.c          |    2 +-
 drivers/scsi/sr_ioctl.c      |    3 +++
 3 files changed, 5 insertions(+), 2 deletions(-)

diff -puN drivers/scsi/aacraid/linit.c~git-scsi-rc-fixes drivers/scsi/aacraid/linit.c
--- 25/drivers/scsi/aacraid/linit.c~git-scsi-rc-fixes	2005-05-04 16:44:45.000000000 -0700
+++ 25-akpm/drivers/scsi/aacraid/linit.c	2005-05-04 16:44:45.000000000 -0700
@@ -450,7 +450,7 @@ static int aac_cfg_open(struct inode *in
 		}
 	}
 
-	return 0;
+	return err;
 }
 
 /**
diff -puN drivers/scsi/scsi.c~git-scsi-rc-fixes drivers/scsi/scsi.c
--- 25/drivers/scsi/scsi.c~git-scsi-rc-fixes	2005-05-04 16:44:45.000000000 -0700
+++ 25-akpm/drivers/scsi/scsi.c	2005-05-04 16:44:45.000000000 -0700
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *
 		 * that the device is no longer present */
 		cmd->result = DID_NO_CONNECT << 16;
 		atomic_inc(&cmd->device->iorequest_cnt);
-		scsi_done(cmd);
+		__scsi_done(cmd);
 		/* return 0 (because the command has been processed) */
 		goto out;
 	}
diff -puN drivers/scsi/sr_ioctl.c~git-scsi-rc-fixes drivers/scsi/sr_ioctl.c
--- 25/drivers/scsi/sr_ioctl.c~git-scsi-rc-fixes	2005-05-04 16:44:45.000000000 -0700
+++ 25-akpm/drivers/scsi/sr_ioctl.c	2005-05-04 16:44:45.000000000 -0700
@@ -284,6 +284,9 @@ int sr_get_mcn(struct cdrom_device_info 
 	if (!buffer)
 		return -ENOMEM;
 
+	if (!buffer)
+		return -ENOMEM;
+
 	memset(&cgc, 0, sizeof(struct packet_command));
 	cgc.cmd[0] = GPCMD_READ_SUBCHANNEL;
 	cgc.cmd[2] = 0x40;	/* I do want the subchannel info */
_
