svn commit: r357507 - stable/11/sys/compat/linuxkpi/common/src
Konstantin Belousov
kib at FreeBSD.org
Tue Feb 4 17:15:52 UTC 2020
Author: kib
Date: Tue Feb 4 17:15:51 2020
New Revision: 357507
URL: https://svnweb.freebsd.org/changeset/base/357507
Log:
MFC r357198:
Provide support for fdevname(3) on linuxkpi-backed devices.
For merge, compat32 support was left out. It is not yet present for
FIODGNAME over native cdevs yet.
Sponsored by: Mellanox Technologies
Modified:
stable/11/sys/compat/linuxkpi/common/src/linux_compat.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/compat/linuxkpi/common/src/linux_compat.c
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/src/linux_compat.c Tue Feb 4 17:12:09 2020 (r357506)
+++ stable/11/sys/compat/linuxkpi/common/src/linux_compat.c Tue Feb 4 17:15:51 2020 (r357507)
@@ -1530,7 +1530,9 @@ linux_file_ioctl(struct file *fp, u_long cmd, void *da
struct linux_file *filp;
const struct file_operations *fop;
struct linux_cdev *ldev;
- int error;
+ struct fiodgname_arg *fgn;
+ const char *p;
+ int error, i;
error = 0;
filp = (struct linux_file *)fp->f_data;
@@ -1557,6 +1559,20 @@ linux_file_ioctl(struct file *fp, u_long cmd, void *da
break;
case FIOGETOWN:
*(int *)data = fgetown(&filp->f_sigio);
+ break;
+ case FIODGNAME:
+ if (filp->f_cdev == NULL || filp->f_cdev->cdev == NULL) {
+ error = ENXIO;
+ break;
+ }
+ fgn = data;
+ p = devtoname(filp->f_cdev->cdev);
+ i = strlen(p) + 1;
+ if (i > fgn->len) {
+ error = EINVAL;
+ break;
+ }
+ error = copyout(p, fgn->buf, i);
break;
default:
error = linux_file_ioctl_sub(fp, filp, fop, cmd, data, td);
More information about the svn-src-stable-11
mailing list