Loading net/qrtr/qrtr.c +11 −15 Original line number Diff line number Diff line Loading @@ -1334,29 +1334,25 @@ static void qrtr_port_remove(struct qrtr_sock *ipc) */ static int qrtr_port_assign(struct qrtr_sock *ipc, int *port) { u32 min_port; int rc; if (!*port) { min_port = QRTR_MIN_EPH_SOCKET; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, QRTR_MAX_EPH_SOCKET, GFP_ATOMIC); if (!rc) *port = min_port; rc = idr_alloc_cyclic(&qrtr_ports, ipc, QRTR_MIN_EPH_SOCKET, QRTR_MAX_EPH_SOCKET + 1, GFP_ATOMIC); if (rc >= 0) *port = rc; } else if (*port < QRTR_MIN_EPH_SOCKET && !(capable(CAP_NET_ADMIN) || in_egroup_p(AID_VENDOR_QRTR) || in_egroup_p(GLOBAL_ROOT_GID))) { rc = -EACCES; } else if (*port == QRTR_PORT_CTRL) { min_port = 0; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, 0, GFP_ATOMIC); rc = idr_alloc(&qrtr_ports, ipc, 0, 1, GFP_ATOMIC); } else { min_port = *port; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, *port, rc = idr_alloc_cyclic(&qrtr_ports, ipc, *port, *port + 1, GFP_ATOMIC); if (!rc) *port = min_port; if (rc >= 0) *port = rc; } if (rc == -ENOSPC) Loading Loading
net/qrtr/qrtr.c +11 −15 Original line number Diff line number Diff line Loading @@ -1334,29 +1334,25 @@ static void qrtr_port_remove(struct qrtr_sock *ipc) */ static int qrtr_port_assign(struct qrtr_sock *ipc, int *port) { u32 min_port; int rc; if (!*port) { min_port = QRTR_MIN_EPH_SOCKET; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, QRTR_MAX_EPH_SOCKET, GFP_ATOMIC); if (!rc) *port = min_port; rc = idr_alloc_cyclic(&qrtr_ports, ipc, QRTR_MIN_EPH_SOCKET, QRTR_MAX_EPH_SOCKET + 1, GFP_ATOMIC); if (rc >= 0) *port = rc; } else if (*port < QRTR_MIN_EPH_SOCKET && !(capable(CAP_NET_ADMIN) || in_egroup_p(AID_VENDOR_QRTR) || in_egroup_p(GLOBAL_ROOT_GID))) { rc = -EACCES; } else if (*port == QRTR_PORT_CTRL) { min_port = 0; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, 0, GFP_ATOMIC); rc = idr_alloc(&qrtr_ports, ipc, 0, 1, GFP_ATOMIC); } else { min_port = *port; rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, *port, rc = idr_alloc_cyclic(&qrtr_ports, ipc, *port, *port + 1, GFP_ATOMIC); if (!rc) *port = min_port; if (rc >= 0) *port = rc; } if (rc == -ENOSPC) Loading