Signed-off-by: Andrew Morton --- 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 */ _