Explorar el Código

IB/qib: Prevent context loss

If a context has already been assigned to an FD, prevent
another assignment.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Ira Weiny hace 9 años
padre
commit
5e9ef24619
Se han modificado 1 ficheros con 5 adiciones y 0 borrados
  1. 5 0
      drivers/infiniband/hw/qib/qib_file_ops.c

+ 5 - 0
drivers/infiniband/hw/qib/qib_file_ops.c

@@ -2178,6 +2178,11 @@ static ssize_t qib_write(struct file *fp, const char __user *data,
 
 	switch (cmd.type) {
 	case QIB_CMD_ASSIGN_CTXT:
+		if (rcd) {
+			ret = -EINVAL;
+			goto bail;
+		}
+
 		ret = qib_assign_ctxt(fp, &cmd.cmd.user_info);
 		if (ret)
 			goto bail;