- Add support for SG_GET_SG_TABLESIZE IOCTL to report that we don't support
scatter/gather lists. - Return error for still unsupported SG 3.x API read/write calls. MFC after: 1 month
This commit is contained in:
parent
a31f80290e
commit
94fe9f959c
@ -627,6 +627,13 @@ sgioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SG_GET_SG_TABLESIZE:
|
||||||
|
{
|
||||||
|
int *size = (int *)arg;
|
||||||
|
*size = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case SG_EMULATED_HOST:
|
case SG_EMULATED_HOST:
|
||||||
case SG_SET_TRANSFORM:
|
case SG_SET_TRANSFORM:
|
||||||
case SG_GET_TRANSFORM:
|
case SG_GET_TRANSFORM:
|
||||||
@ -638,7 +645,6 @@ sgioctl(struct cdev *dev, u_long cmd, caddr_t arg, int flag, struct thread *td)
|
|||||||
case SG_GET_ACCESS_COUNT:
|
case SG_GET_ACCESS_COUNT:
|
||||||
case SG_SET_FORCE_LOW_DMA:
|
case SG_SET_FORCE_LOW_DMA:
|
||||||
case SG_GET_LOW_DMA:
|
case SG_GET_LOW_DMA:
|
||||||
case SG_GET_SG_TABLESIZE:
|
|
||||||
case SG_SET_FORCE_PACK_ID:
|
case SG_SET_FORCE_PACK_ID:
|
||||||
case SG_GET_PACK_ID:
|
case SG_GET_PACK_ID:
|
||||||
case SG_SET_RESERVED_SIZE:
|
case SG_SET_RESERVED_SIZE:
|
||||||
@ -684,6 +690,12 @@ sgwrite(struct cdev *dev, struct uio *uio, int ioflag)
|
|||||||
if (error)
|
if (error)
|
||||||
goto out_hdr;
|
goto out_hdr;
|
||||||
|
|
||||||
|
/* XXX: We don't support SG 3.x read/write API. */
|
||||||
|
if (hdr->reply_len < 0) {
|
||||||
|
error = ENODEV;
|
||||||
|
goto out_hdr;
|
||||||
|
}
|
||||||
|
|
||||||
ccb = xpt_alloc_ccb();
|
ccb = xpt_alloc_ccb();
|
||||||
if (ccb == NULL) {
|
if (ccb == NULL) {
|
||||||
error = ENOMEM;
|
error = ENOMEM;
|
||||||
|
@ -2751,6 +2751,9 @@ linux_ioctl_sg(struct thread *td, struct linux_ioctl_args *args)
|
|||||||
case LINUX_SG_GET_SCSI_ID:
|
case LINUX_SG_GET_SCSI_ID:
|
||||||
args->cmd = SG_GET_SCSI_ID;
|
args->cmd = SG_GET_SCSI_ID;
|
||||||
break;
|
break;
|
||||||
|
case LINUX_SG_GET_SG_TABLESIZE:
|
||||||
|
args->cmd = SG_GET_SG_TABLESIZE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return (ENODEV);
|
return (ENODEV);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user