net: qrtr: Fix port ID for control messages
authorLoic Poulain <loic.poulain@linaro.org>
Fri, 6 Nov 2020 17:33:26 +0000 (18:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Feb 2021 14:53:23 +0000 (15:53 +0100)
[ Upstream commit ae068f561baa003d260475c3e441ca454b186726 ]

The port ID for control messages was uncorrectly set with broadcast
node ID value, causing message to be dropped on remote side since
not passing packet filtering (cb->dst_port != QRTR_PORT_CTRL).

Fixes: d27e77a3de28 ("net: qrtr: Reset the node and port ID of broadcast messages")
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/qrtr/qrtr.c

index 957aa92..d7134c5 100644 (file)
@@ -347,7 +347,7 @@ static int qrtr_node_enqueue(struct qrtr_node *node, struct sk_buff *skb,
        hdr->src_port_id = cpu_to_le32(from->sq_port);
        if (to->sq_port == QRTR_PORT_CTRL) {
                hdr->dst_node_id = cpu_to_le32(node->nid);
-               hdr->dst_port_id = cpu_to_le32(QRTR_NODE_BCAST);
+               hdr->dst_port_id = cpu_to_le32(QRTR_PORT_CTRL);
        } else {
                hdr->dst_node_id = cpu_to_le32(to->sq_node);
                hdr->dst_port_id = cpu_to_le32(to->sq_port);