Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e23a6878 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "net: ipc_router: Reorganize reader work item"

parents 6a96b2bd 17667a4e
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -2123,12 +2123,12 @@ static void do_read_data(struct work_struct *work)
		    pkt->length > MAX_IPC_PKT_SIZE) {
			IPC_RTR_ERR("%s: Invalid pkt length %d\n",
				__func__, pkt->length);
			goto fail_data;
			goto read_next_pkt1;
		}

		ret = extract_header(pkt);
		if (ret < 0)
			goto fail_data;
			goto read_next_pkt1;
		hdr = &(pkt->hdr);
		RAW("ver=%d type=%d src=%d:%08x crx=%d siz=%d dst=%d:%08x\n",
		     hdr->version, hdr->type, hdr->src_node_id,
@@ -2139,14 +2139,12 @@ static void do_read_data(struct work_struct *work)
		    ((hdr->type == IPC_ROUTER_CTRL_CMD_RESUME_TX) ||
		     (hdr->type == IPC_ROUTER_CTRL_CMD_DATA))) {
			forward_msg(xprt_info, pkt);
			release_pkt(pkt);
			continue;
			goto read_next_pkt1;
		}

		if (hdr->type != IPC_ROUTER_CTRL_CMD_DATA) {
			process_control_msg(xprt_info, pkt);
			release_pkt(pkt);
			continue;
			goto read_next_pkt1;
		}

		if (msm_ipc_router_debug_mask & SMEM_LOG) {
@@ -2166,9 +2164,7 @@ static void do_read_data(struct work_struct *work)
		if (!port_ptr) {
			IPC_RTR_ERR("%s: No local port id %08x\n", __func__,
				hdr->dst_port_id);
			up_read(&local_ports_lock_lha2);
			release_pkt(pkt);
			return;
			goto read_next_pkt2;
		}

		down_read(&routing_table_lock_lha3);
@@ -2182,21 +2178,20 @@ static void do_read_data(struct work_struct *work)
				IPC_RTR_ERR(
				"%s: Rmt Prt %08x:%08x create failed\n",
				__func__, hdr->src_node_id, hdr->src_port_id);
				up_read(&routing_table_lock_lha3);
				up_read(&local_ports_lock_lha2);
				release_pkt(pkt);
				return;
				goto read_next_pkt3;
			}
		}
		up_read(&routing_table_lock_lha3);
		post_pkt_to_port(port_ptr, pkt, 0);
		up_read(&local_ports_lock_lha2);
	}
	return;

fail_data:
		continue;
read_next_pkt3:
		up_read(&routing_table_lock_lha3);
read_next_pkt2:
		up_read(&local_ports_lock_lha2);
read_next_pkt1:
		release_pkt(pkt);
	IPC_RTR_ERR("%s: ipc_router has died\n", __func__);
	}
}

int msm_ipc_router_register_server(struct msm_ipc_port *port_ptr,