Skip to content

Commit

Permalink
[SCSI] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices
Browse files Browse the repository at this point in the history
Currently, ipr does not support HDIO_GET_IDENTITY to SATA devices.
An oops occurs if userspace attempts to send the command. Since hald
issues the command, ensure we fail the ioctl in ipr. This is a
temporary solution to the oops. Once the ipr libata EH conversion
is upstream, ipr will fully support HDIO_GET_IDENTITY.

Tested-by: Milton Miller <[email protected]>
Signed-off-by: Brian King <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
  • Loading branch information
bjking1 authored and James Bottomley committed Jul 11, 2008
1 parent 081a5bc commit 0ce3a7e
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion drivers/scsi/ipr.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/libata.h>
#include <linux/hdreg.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/processor.h>
Expand Down Expand Up @@ -4913,8 +4914,11 @@ static int ipr_ioctl(struct scsi_device *sdev, int cmd, void __user *arg)
struct ipr_resource_entry *res;

res = (struct ipr_resource_entry *)sdev->hostdata;
if (res && ipr_is_gata(res))
if (res && ipr_is_gata(res)) {
if (cmd == HDIO_GET_IDENTITY)
return -ENOTTY;
return ata_scsi_ioctl(sdev, cmd, arg);
}

return -EINVAL;
}
Expand Down

0 comments on commit 0ce3a7e

Please sign in to comment.