diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-01-21 09:45:46 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-01-21 10:00:40 +0100 |
commit | aec8db05b216a102e334d131b7a71f1514b04679 (patch) | |
tree | f9343da918ce3585a1ce469d53d4d54d79ca8cc6 /freebsd/sys/fs/devfs | |
parent | dpaa: Use if_transmit instead of legacy if_start (diff) | |
download | rtems-libbsd-aec8db05b216a102e334d131b7a71f1514b04679.tar.bz2 |
Update to FreeBSD stable/12 2019-01-16
Git mirror commit 4ff7d8141f665693dd8b17090d410604888f1e9a.
Update #3472.
Diffstat (limited to 'freebsd/sys/fs/devfs')
-rw-r--r-- | freebsd/sys/fs/devfs/devfs_vnops.c | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/freebsd/sys/fs/devfs/devfs_vnops.c b/freebsd/sys/fs/devfs/devfs_vnops.c index 176664db..2e16ddf0 100644 --- a/freebsd/sys/fs/devfs/devfs_vnops.c +++ b/freebsd/sys/fs/devfs/devfs_vnops.c @@ -782,29 +782,6 @@ devfs_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, struc return (error); } -void * -fiodgname_buf_get_ptr(void *fgnp, u_long com) -{ - union { - struct fiodgname_arg fgn; -#ifdef COMPAT_FREEBSD32 - struct fiodgname_arg32 fgn32; -#endif - } *fgnup; - - fgnup = fgnp; - switch (com) { - case FIODGNAME: - return (fgnup->fgn.buf); -#ifdef COMPAT_FREEBSD32 - case FIODGNAME_32: - return ((void *)(uintptr_t)fgnup->fgn32.buf); -#endif - default: - panic("Unhandled ioctl command %ld", com); - } -} - static int devfs_ioctl(struct vop_ioctl_args *ap) { @@ -827,27 +804,24 @@ devfs_ioctl(struct vop_ioctl_args *ap) KASSERT(dev->si_refcount > 0, ("devfs: un-referenced struct cdev *(%s)", devtoname(dev))); - switch (com) { - case FIODTYPE: + if (com == FIODTYPE) { *(int *)ap->a_data = dsw->d_flags & D_TYPEMASK; error = 0; - break; - case FIODGNAME: -#ifdef COMPAT_FREEBSD32 - case FIODGNAME_32: -#endif + goto out; + } else if (com == FIODGNAME) { fgn = ap->a_data; p = devtoname(dev); i = strlen(p) + 1; if (i > fgn->len) error = EINVAL; else - error = copyout(p, fiodgname_buf_get_ptr(fgn, com), i); - break; - default: - error = dsw->d_ioctl(dev, com, ap->a_data, ap->a_fflag, td); + error = copyout(p, fgn->buf, i); + goto out; } + error = dsw->d_ioctl(dev, com, ap->a_data, ap->a_fflag, td); + +out: dev_relthread(dev, ref); if (error == ENOIOCTL) error = ENOTTY; |