|
@@ -675,19 +675,18 @@ static int ata_ioc32(struct ata_port *ap)
|
|
int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev,
|
|
int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev,
|
|
int cmd, void __user *arg)
|
|
int cmd, void __user *arg)
|
|
{
|
|
{
|
|
- int val = -EINVAL, rc = -EINVAL;
|
|
|
|
|
|
+ unsigned long val;
|
|
|
|
+ int rc = -EINVAL;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
switch (cmd) {
|
|
switch (cmd) {
|
|
- case ATA_IOC_GET_IO32:
|
|
|
|
|
|
+ case HDIO_GET_32BIT:
|
|
spin_lock_irqsave(ap->lock, flags);
|
|
spin_lock_irqsave(ap->lock, flags);
|
|
val = ata_ioc32(ap);
|
|
val = ata_ioc32(ap);
|
|
spin_unlock_irqrestore(ap->lock, flags);
|
|
spin_unlock_irqrestore(ap->lock, flags);
|
|
- if (copy_to_user(arg, &val, 1))
|
|
|
|
- return -EFAULT;
|
|
|
|
- return 0;
|
|
|
|
|
|
+ return put_user(val, (unsigned long __user *)arg);
|
|
|
|
|
|
- case ATA_IOC_SET_IO32:
|
|
|
|
|
|
+ case HDIO_SET_32BIT:
|
|
val = (unsigned long) arg;
|
|
val = (unsigned long) arg;
|
|
rc = 0;
|
|
rc = 0;
|
|
spin_lock_irqsave(ap->lock, flags);
|
|
spin_lock_irqsave(ap->lock, flags);
|