+/*+ * ib_umad_open() does not need the BKL:+ *+ * - umad_port[] accesses are protected by port_lock, the+ * ib_umad_port structures are properly reference counted, and+ * everything else is purely local to the file being created, so+ * races against other open calls are not a proble;+ * - the ioctl method does not affect any global state outside of the+ * file structure being operated on;+ * - the port is added to umad_port[] as the last part of module+ * initialization so the open method will either immediately run+ * -ENXIO, or all required initialization will be done.+ */ static int ib_umad_open(struct inode *inode, struct file *filp) { struct ib_umad_port *port; struct ib_umad_file *file; int ret = 0;