Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Feb 2020 17:15:51 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r357507 - stable/11/sys/compat/linuxkpi/common/src
Message-ID:  <202002041715.014HFp8T067866@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002041715.014HFp8T067866>