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);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to