diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2016-08-18 08:49:02 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2016-08-18 08:49:02 +0000 |
commit | 7dc445f8d3e1748cd4b8128a59bfdd6945045924 (patch) | |
tree | 997386547c3cc3456f10e97504276321fb976114 | |
parent | 9ab0e2a7e047dd37c466f693cdb44ee2a904de79 (diff) | |
download | src-7dc445f8d3e1748cd4b8128a59bfdd6945045924.tar.gz src-7dc445f8d3e1748cd4b8128a59bfdd6945045924.zip |
Add support for setting blocking and non-blocking mode on /dev/rdma_cm
by returning success on FIONBIO and FIOASYNC IOCTLs. The actual flags
handling is done by the kern_ioctl() function.
Reported by: Alex Bowden <alex.bowden@outlook.com>
Sponsored by: Mellanox Technologies
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=304342
-rw-r--r-- | sys/ofed/drivers/infiniband/core/ucma.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/ofed/drivers/infiniband/core/ucma.c b/sys/ofed/drivers/infiniband/core/ucma.c index 5f73b40b6405..4000aa20cd88 100644 --- a/sys/ofed/drivers/infiniband/core/ucma.c +++ b/sys/ofed/drivers/infiniband/core/ucma.c @@ -42,6 +42,8 @@ #include <linux/slab.h> #include <linux/module.h> +#include <sys/filio.h> + #include <rdma/rdma_user_cm.h> #include <rdma/ib_marshall.h> #include <rdma/rdma_cm.h> @@ -1345,11 +1347,25 @@ static int ucma_close(struct inode *inode, struct file *filp) return 0; } +static long +ucma_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + + switch (cmd) { + case FIONBIO: + case FIOASYNC: + return (0); + default: + return (-ENOTTY); + } +} + static const struct file_operations ucma_fops = { .owner = THIS_MODULE, .open = ucma_open, .release = ucma_close, .write = ucma_write, + .unlocked_ioctl = ucma_ioctl, .poll = ucma_poll, .llseek = no_llseek, }; |