net: qrtr: Handle IPCR control port format of older targets
authorVignesh Viswanathan <quic_viswanat@quicinc.com>
Fri, 14 Jul 2023 05:58:46 +0000 (11:28 +0530)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Jul 2023 08:02:30 +0000 (09:02 +0100)
The destination port value in the IPCR control buffer on older
targets is 0xFFFF. Handle the same by updating the dst_port to
QRTR_PORT_CTRL.

Signed-off-by: Vignesh Viswanathan <quic_viswanat@quicinc.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/qrtr/af_qrtr.c

index 78beb74..41ece61 100644 (file)
@@ -23,6 +23,8 @@
 #define QRTR_EPH_PORT_RANGE \
                XA_LIMIT(QRTR_MIN_EPH_SOCKET, QRTR_MAX_EPH_SOCKET)
 
+#define QRTR_PORT_CTRL_LEGACY 0xffff
+
 /**
  * struct qrtr_hdr_v1 - (I|R)PCrouter packet header version 1
  * @version: protocol version
@@ -495,6 +497,9 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
                goto err;
        }
 
+       if (cb->dst_port == QRTR_PORT_CTRL_LEGACY)
+               cb->dst_port = QRTR_PORT_CTRL;
+
        if (!size || len != ALIGN(size, 4) + hdrlen)
                goto err;