When Multiple slave/master Memif interfaces are created in single process data transmission over second connection is not successful.
Issue is because of "mq->in_port" is not initialized with "dev->data->port_id" in memif_msg_enq_add_ring() and memif_msg_receive_add_ring() functions, and while transmitting packets over second connection in eth_memif_tx function it refer "mq->in_port" which is always zero, and leads to data transmission always in 0th port. To mitigate the issue,"mq->in_port" is initialized with "dev->data->port_id" in memif_msg_enq_add_ring() and memif_msg_receive_add_ring() functions. Signed-off-by: Anand Sunkad <anand.sun...@benisontech.com> --- drivers/net/memif/memif_socket.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/memif/memif_socket.c b/drivers/net/memif/memif_socket.c index 0c71f6c..ef8c509 100644 --- a/drivers/net/memif/memif_socket.c +++ b/drivers/net/memif/memif_socket.c @@ -322,6 +322,7 @@ mq->log2_ring_size = ar->log2_ring_size; mq->region = ar->region; mq->ring_offset = ar->offset; + mq->in_port = dev->data->port_id; return 0; } @@ -464,6 +465,7 @@ ar->log2_ring_size = mq->log2_ring_size; ar->flags = (type == MEMIF_RING_S2M) ? MEMIF_MSG_ADD_RING_FLAG_S2M : 0; ar->private_hdr_size = 0; + mq->in_port = dev->data->port_id; return 0; } -- 1.9.1