Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8eb19e8e authored by Matan Barak's avatar Matan Barak Committed by Doug Ledford
Browse files

IB/core: Expose ioctl interface through experimental Kconfig



Add CONFIG_INFINIBAND_EXP_USER_ACCESS that enables the ioctl
interface. This interface is experimental and is subject to change.

Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 52427112
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -34,6 +34,15 @@ config INFINIBAND_USER_ACCESS
	  libibverbs, libibcm and a hardware driver library from
	  <http://www.openfabrics.org/git/>.

config INFINIBAND_EXP_USER_ACCESS
	bool "Allow experimental support for Infiniband ABI"
	depends on INFINIBAND_USER_ACCESS
	---help---
	  IOCTL based ABI support for Infiniband. This allows userspace
	  to invoke the experimental IOCTL based ABI.
	  These commands are parsed via per-device parsing tree and
	  enables per-device features.

config INFINIBAND_USER_MEM
	bool
	depends on INFINIBAND_USER_ACCESS != n
+2 −0
Original line number Diff line number Diff line
@@ -219,6 +219,8 @@ int uverbs_dealloc_mw(struct ib_mw *mw);
void ib_uverbs_detach_umcast(struct ib_qp *qp,
			     struct ib_uqp_object *uobj);

long ib_uverbs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);

struct ib_uverbs_flow_spec {
	union {
		union {
+6 −0
Original line number Diff line number Diff line
@@ -939,6 +939,9 @@ static const struct file_operations uverbs_fops = {
	.open	 = ib_uverbs_open,
	.release = ib_uverbs_close,
	.llseek	 = no_llseek,
#if IS_ENABLED(CONFIG_INFINIBAND_EXP_USER_ACCESS)
	.unlocked_ioctl = ib_uverbs_ioctl,
#endif
};

static const struct file_operations uverbs_mmap_fops = {
@@ -948,6 +951,9 @@ static const struct file_operations uverbs_mmap_fops = {
	.open	 = ib_uverbs_open,
	.release = ib_uverbs_close,
	.llseek	 = no_llseek,
#if IS_ENABLED(CONFIG_INFINIBAND_EXP_USER_ACCESS)
	.unlocked_ioctl = ib_uverbs_ioctl,
#endif
};

static struct ib_client uverbs_client = {