···38#include <linux/in.h>39#include <linux/in6.h>40#include <linux/miscdevice.h>04142#include <rdma/rdma_user_cm.h>43#include <rdma/ib_marshall.h>···1149 return mask;1150}11511152+/*1153+ * ucma_open() does not need the BKL:1154+ *1155+ * - no global state is referred to;1156+ * - there is no ioctl method to race against;1157+ * - no further module initialization is required for open to work1158+ * after the device is registered.1159+ */1160static int ucma_open(struct inode *inode, struct file *filp)1161{1162 struct ucma_file *file;···1157 if (!file)1158 return -ENOMEM;115901160 INIT_LIST_HEAD(&file->event_list);1161 INIT_LIST_HEAD(&file->ctx_list);1162 init_waitqueue_head(&file->poll_wait);···11651166 filp->private_data = file;1167 file->filp = filp;01168 return 0;1169}1170