From nobody Thu Apr 9 08:04:21 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC22E38A71B for ; Tue, 10 Mar 2026 11:22:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773141776; cv=none; b=HnAy6t8QJ7CjJOmodcGoT38vR46tzmitXHQt1SgATzEIRMKAEPCdld2yuzRGvBXHipFnW7nRdb0vkYkAoiQiIm0hX6E/3xIHRuyEt6CmonnMyIDZYKhnZe1PQ3an3oC6c/LOjp+GNCkFzfng/MN/31KdHZomdNBO1bW75OxzaVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773141776; c=relaxed/simple; bh=6B0vVMbf0cTPfHKQcu37PToX+TkTnGz5fLYnXk2cW+U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=q6AMty8WrBUPRB4MpYvC6Jgfd+zXwAxo++eos/L4QGqzUJPhOweFn+1PkSGpDvJj/xrVhYAKFL2laTt0kxfVBb/TkTRuUYWQrkBTY8PWFItDOUDQK33HW+xOroAjnoZiBYzWtPXmgWRBql11mVw20VZcSXOxL7Chdb8CXVg7G+o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=CVFTHzAh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bdOvnrIm; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="CVFTHzAh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bdOvnrIm" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62AARBVh4188394 for ; Tue, 10 Mar 2026 11:22:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= bZ81K+s/mqduu4wm6bGMuDFDp5cpVX1TLMHdFJk1Aus=; b=CVFTHzAh2YbPm1ss y28i08Ray5OG1nsjoX8Gfm9cXS8ChSyEQvkd8+XUFNY2ZbCp1AnM473aFXYOzjwF IrfdxD+EIpLamGGgozAJovWLjmOk5xsyBY4/vZJZ55RRgrdlbvPlO2K00SHK3Ykp oiBHLkXWL2UZq737Jlc3Xn0mJXTzFooA9OLctJtxASqod3F13/jJ05HElO1QLC5k yLIBdv8NSwztQDl+5aZTP9gldewCA9xBIcBU1LYw3roiVj+kcxEvdS0anv/1TXb+ i9LHNWolLBaY0nLD3hKq71W+z5MMRkkbv+8mLa6ya0OUeq5TsJghA7iM9fH8Z4Qq KWorlw== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cthjf0852-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 10 Mar 2026 11:22:53 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cd827a356aso1237381485a.3 for ; Tue, 10 Mar 2026 04:22:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773141773; x=1773746573; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bZ81K+s/mqduu4wm6bGMuDFDp5cpVX1TLMHdFJk1Aus=; b=bdOvnrImg0HFJpRQe5Nb+KQ4pU4u9/PhksEkyDL9ie866JIC0gb4bWrODuzBHnweys DvjB3qHO2OoLEuhXioFGhLlB29odr8WD68Jfs4HCFoeYHt9sm4mHxHtxfJkTGWlCz7yf WcQMMOWppEuC7ECm3mBPHFML8TPsNIFp5N+9Y5efd8WWEmevptDMauNWoVhonb0FYSMy oz673WfNr4QQ2++60wX5M/R8jYHU1udoduXuZm6hMq9L0dGjMbDyj9HVJvsF/fK0P475 AIkvSZAEC270ImTq5ZcUJV+ih8U/LT4165HEHP5zB87MVG54KYLq3So6lz/pmWcoule7 1Uww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773141773; x=1773746573; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bZ81K+s/mqduu4wm6bGMuDFDp5cpVX1TLMHdFJk1Aus=; b=EM4RbknXz8UbNpcFZ79Sh4K9Q1UK8kV4CxpNlMJ4yA0zzxxINkpp+xGZoAT/dLiBb+ Rc1LMa6bQo261u7M8z6CyGOjZAQKFsiLyT7+TGnfHQLFKnpAqqe9NYTuoAIbOIUvsNRH N99kx2vbiCgSl6gWqat6FpnnIIKWXHHg6fYSPtdv5aPKaoYrarkw90jQbUl6j+ItSih1 R1rZfIML3Kw6/FMk8lt7AykxTVT6fp0L+N2t0PhYdrJTnPZGnUFias/WJgxoj2e9PKz/ L4ouvYETODWTJtFzxxIKBRixp6P2QwaW9+xBoGrePCc/X4K6koXUPHcHzKz1dtoetXgj GlZw== X-Forwarded-Encrypted: i=1; AJvYcCX2djOlR3c1NVhhIkT/wgZZ8Yd6zU8wE0JskThbjUtrl8CPmypqybok6xB6fPxe9ykszPwIawSMjeqU91Y=@vger.kernel.org X-Gm-Message-State: AOJu0Yxm4LN843ADliBdhROed9QW+QM4Q8xCG/PrUYHQTeur0hEbBQwJ 35tbEu9JdiTb2Vslqvx6mYKmXgTpGdgfkArYR9Xap5N4E4uE3sIs/zy++x8kBJM+PguP+MObk50 JdsV3PXEFNrKYDPiDwsB2kUdE6RRcy6iS3VMJXL7Tz4qObruymkqhTgIOOVGJ9HA17B0= X-Gm-Gg: ATEYQzwNAbldLJpHWiNl2ANCwuTr8cfi4QN1PbnOnXb748DjPhV3R0QlNdtdEPmV2Bj 3pzczJjAi6ze7w6kRefJ3RzlVoli9qPYXe2EkBNBeHaKEkR6nCNvPLun2NjHiE0YMrpjJ8FpCF5 GZnBmNMbgSl2vP96IbMz7mOtScCiM+6GyY1rMtVa9VsfjpgMiT52OnF1nXcAl0sa2ZG+NC8eXeD lia2c8Q43HWZVggZdjRv3G1J2whLq6Anf3ceH8i6PlmvwBT+wugXg8Xo9+DgN8PRnl7JDo3/ziY 0svkAKXgytJAclK/xywrStUI+bYb3LFVwJS7TKHf31EbLZelycuczi5FImJNoXTu9uBsaO9875N addPU2CrgT0SUApSCOfvVzJma/uhBOta3sgiTrfIUaAl8 X-Received: by 2002:a05:620a:468d:b0:8cd:92e7:7192 with SMTP id af79cd13be357-8cd92e7773dmr446827085a.71.1773141772885; Tue, 10 Mar 2026 04:22:52 -0700 (PDT) X-Received: by 2002:a05:620a:468d:b0:8cd:92e7:7192 with SMTP id af79cd13be357-8cd92e7773dmr446823685a.71.1773141772443; Tue, 10 Mar 2026 04:22:52 -0700 (PDT) Received: from [127.0.1.1] ([178.197.219.94]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48541b7f255sm67162115e9.12.2026.03.10.04.22.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Mar 2026 04:22:51 -0700 (PDT) From: Krzysztof Kozlowski Date: Tue, 10 Mar 2026 12:22:37 +0100 Subject: [PATCH v2 3/5] rpmsg: Constify buffer passed to send API Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260310-rpmsg-send-const-v2-3-0e94c5db9bf4@oss.qualcomm.com> References: <20260310-rpmsg-send-const-v2-0-0e94c5db9bf4@oss.qualcomm.com> In-Reply-To: <20260310-rpmsg-send-const-v2-0-0e94c5db9bf4@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Matthias Brugger , AngeloGioacchino Del Regno , Srinivas Kandagatla , Konrad Dybcio , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Mauro Carvalho Chehab Cc: linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-sound@vger.kernel.org, linux-media@vger.kernel.org, Mathieu Poirier , Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=13547; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=6B0vVMbf0cTPfHKQcu37PToX+TkTnGz5fLYnXk2cW+U=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBpr/8AWwrOLpR1jQOYLLeUnLd7iNkB9dvFL+FHN 5G56dRpYRiJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaa//AAAKCRDBN2bmhouD 14+BD/9147We9xfkXZdj5OtI225DcSkVivpk79k426PSLJHmpuGX7F7LIVgiHilx+t/yDFE0rP/ fFbBYc6lD1Yxui7NQCJGVpP8u+ff2SSH9B+B/zuLP+nK7T+2IL7/ohhNOsPuOn76z6b95dNu3d1 JG19Pl1CjYVQEOby8Gj/opncbteACIcES4Ezary9jg1NRXbhfI6Hx+bMSA0oUPJ2EvQ4Yd01r5F 8mS1acaKPkrSxGkWKn7749XQKG+6fXz4OBU9XN4s2/0IRsB8HqcjyLQlnlYiqBNvpS7HJXaSLJY 286H7YMPPAux4HFWibiCY7hHs00vmTmRBdf+2Jd0NnC+hKrnFsNrkQJh3r2fnAOnVgRU2UpBEBZ qoSa39jZbf9jTN4J4nROm1gvuS20hqLLKUHUUUgCdJX2UgFKLoKF+jngSSpaskSpwYWNP6+8FUq gRsa1ZINFDAcJP2PK1UTXAOXvqzF2NAUMhp+mUasXMiPFX9G6CAnNKTXgRSOlYtuycwYBmDafhI FvKj5XUDmcray9PCKEj4yWUCGs7m5Sy21UDNkUM2DHPoNtETCMoGXTIMv/y5H2wSsDJWfhUUUQi z6dpsJdAJIwkALccAjXvkTECp4D3WDfJh7JDWwRtxSqTXfTBPBT5f2myNqDkclXgMlCxlCAB91a q8Jz0ZdV1DK8HQQ== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Proofpoint-GUID: sX4KNjt6zctJ4MZL5EhHR9IQIJAA7_2O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEwMDA5OCBTYWx0ZWRfX0Try8U/lEZj3 lOROsTlQ32HIrwOam0sekqSUbbWCPp/zmadJLDMB52Xh2ry6Z6BmDHK8bR7q5SVZyKNNGB/ZZWb yTFc9+9KzKrU2g13WEZRKZ13uPCRctvMEAL1v4uO5oeFiTD9wZ76NH/OSXTduXkTOQT821mUX/k EapWmk7UdYOfYJJ7JtzCvpQRR9r4LHqZMhq/+K38vM8OA+muA06IDHLUIKABQXsnp3tHKH/HXQv 3oVAnTwRo0sEBbEiUcz8wNNXttOBjgo0hJ4cNKXUpJrAVXxCzM1m4o/nPEyP+fCXe7KrpNgNb0G eGHaHRIunVG3X6Vhs6Tmm3yr0dIfuYpnEVv+p2codl1Sw/gcWchY9geL/lE30n8m5JTxOvDPn5C r1s4FCrJosYxOEplNPZ58beRzRvGXkKFayKrA7Fh6ANx+dQFnl0OIyGRRsL+gxVlVgkC0Tv80qP iJHRsr253HNUqrS/S7w== X-Authority-Analysis: v=2.4 cv=A71h/qWG c=1 sm=1 tr=0 ts=69afff0e cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=gOEeR9iKwsj33Yj5oN/cWg==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=7kuhv_acGB6hOQYBqC0A:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: sX4KNjt6zctJ4MZL5EhHR9IQIJAA7_2O X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-10_02,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 clxscore=1015 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603100098 The rpmsg_send(), rpmsg_sendto() and other variants of sending interfaces should only send the passed data, without modifying its contents, so mark pointer 'data' as pointer to const. All users of this interface already follow this approach, so only the function declarations have to be updated. Acked-by: Mathieu Poirier Signed-off-by: Krzysztof Kozlowski Reviewed-by: AngeloGioacchino Del Regno --- Patch necessary for the further patches, please keep with the rest. --- drivers/rpmsg/mtk_rpmsg.c | 4 ++-- drivers/rpmsg/qcom_glink_native.c | 13 ++++++++----- drivers/rpmsg/qcom_smd.c | 10 ++++++---- drivers/rpmsg/rpmsg_core.c | 8 ++++---- drivers/rpmsg/rpmsg_internal.h | 8 ++++---- drivers/rpmsg/virtio_rpmsg_bus.c | 24 +++++++++++++----------- include/linux/rpmsg.h | 17 +++++++++-------- 7 files changed, 46 insertions(+), 38 deletions(-) diff --git a/drivers/rpmsg/mtk_rpmsg.c b/drivers/rpmsg/mtk_rpmsg.c index 0e03c5336609..1b670ed54cfa 100644 --- a/drivers/rpmsg/mtk_rpmsg.c +++ b/drivers/rpmsg/mtk_rpmsg.c @@ -135,7 +135,7 @@ static void mtk_rpmsg_destroy_ept(struct rpmsg_endpoint= *ept) kref_put(&ept->refcount, __mtk_ept_release); } =20 -static int mtk_rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len) +static int mtk_rpmsg_send(struct rpmsg_endpoint *ept, const void *data, in= t len) { struct mtk_rpmsg_rproc_subdev *mtk_subdev =3D to_mtk_rpmsg_endpoint(ept)->mtk_subdev; @@ -144,7 +144,7 @@ static int mtk_rpmsg_send(struct rpmsg_endpoint *ept, v= oid *data, int len) len, 0); } =20 -static int mtk_rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int l= en) +static int mtk_rpmsg_trysend(struct rpmsg_endpoint *ept, const void *data,= int len) { struct mtk_rpmsg_rproc_subdev *mtk_subdev =3D to_mtk_rpmsg_endpoint(ept)->mtk_subdev; diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_n= ative.c index 9ef17c2e45b0..401a4ece0c97 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -1474,7 +1474,7 @@ static int qcom_glink_request_intent(struct qcom_glin= k *glink, } =20 static int __qcom_glink_send(struct glink_channel *channel, - void *data, int len, bool wait) + const void *data, int len, bool wait) { struct qcom_glink *glink =3D channel->glink; struct glink_core_rx_intent *intent =3D NULL; @@ -1553,28 +1553,31 @@ static int __qcom_glink_send(struct glink_channel *= channel, return 0; } =20 -static int qcom_glink_send(struct rpmsg_endpoint *ept, void *data, int len) +static int qcom_glink_send(struct rpmsg_endpoint *ept, const void *data, i= nt len) { struct glink_channel *channel =3D to_glink_channel(ept); =20 return __qcom_glink_send(channel, data, len, true); } =20 -static int qcom_glink_trysend(struct rpmsg_endpoint *ept, void *data, int = len) +static int qcom_glink_trysend(struct rpmsg_endpoint *ept, const void *data, + int len) { struct glink_channel *channel =3D to_glink_channel(ept); =20 return __qcom_glink_send(channel, data, len, false); } =20 -static int qcom_glink_sendto(struct rpmsg_endpoint *ept, void *data, int l= en, u32 dst) +static int qcom_glink_sendto(struct rpmsg_endpoint *ept, const void *data, + int len, u32 dst) { struct glink_channel *channel =3D to_glink_channel(ept); =20 return __qcom_glink_send(channel, data, len, true); } =20 -static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, void *data, in= t len, u32 dst) +static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, const void *da= ta, + int len, u32 dst) { struct glink_channel *channel =3D to_glink_channel(ept); =20 diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c index e1eb450f4fea..3ac863f400ec 100644 --- a/drivers/rpmsg/qcom_smd.c +++ b/drivers/rpmsg/qcom_smd.c @@ -960,28 +960,30 @@ static void qcom_smd_destroy_ept(struct rpmsg_endpoin= t *ept) kref_put(&ept->refcount, __ept_release); } =20 -static int qcom_smd_send(struct rpmsg_endpoint *ept, void *data, int len) +static int qcom_smd_send(struct rpmsg_endpoint *ept, const void *data, int= len) { struct qcom_smd_endpoint *qsept =3D to_smd_endpoint(ept); =20 return __qcom_smd_send(qsept->qsch, data, len, true); } =20 -static int qcom_smd_trysend(struct rpmsg_endpoint *ept, void *data, int le= n) +static int qcom_smd_trysend(struct rpmsg_endpoint *ept, const void *data, = int len) { struct qcom_smd_endpoint *qsept =3D to_smd_endpoint(ept); =20 return __qcom_smd_send(qsept->qsch, data, len, false); } =20 -static int qcom_smd_sendto(struct rpmsg_endpoint *ept, void *data, int len= , u32 dst) +static int qcom_smd_sendto(struct rpmsg_endpoint *ept, const void *data, i= nt len, + u32 dst) { struct qcom_smd_endpoint *qsept =3D to_smd_endpoint(ept); =20 return __qcom_smd_send(qsept->qsch, data, len, true); } =20 -static int qcom_smd_trysendto(struct rpmsg_endpoint *ept, void *data, int = len, u32 dst) +static int qcom_smd_trysendto(struct rpmsg_endpoint *ept, const void *data, + int len, u32 dst) { struct qcom_smd_endpoint *qsept =3D to_smd_endpoint(ept); =20 diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c index 96964745065b..2f9444d1f194 100644 --- a/drivers/rpmsg/rpmsg_core.c +++ b/drivers/rpmsg/rpmsg_core.c @@ -153,7 +153,7 @@ EXPORT_SYMBOL(rpmsg_destroy_ept); * * Return: 0 on success and an appropriate error value on failure. */ -int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len) +int rpmsg_send(struct rpmsg_endpoint *ept, const void *data, int len) { if (WARN_ON(!ept)) return -EINVAL; @@ -182,7 +182,7 @@ EXPORT_SYMBOL(rpmsg_send); * * Return: 0 on success and an appropriate error value on failure. */ -int rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) +int rpmsg_sendto(struct rpmsg_endpoint *ept, const void *data, int len, u3= 2 dst) { if (WARN_ON(!ept)) return -EINVAL; @@ -210,7 +210,7 @@ EXPORT_SYMBOL(rpmsg_sendto); * * Return: 0 on success and an appropriate error value on failure. */ -int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int len) +int rpmsg_trysend(struct rpmsg_endpoint *ept, const void *data, int len) { if (WARN_ON(!ept)) return -EINVAL; @@ -238,7 +238,7 @@ EXPORT_SYMBOL(rpmsg_trysend); * * Return: 0 on success and an appropriate error value on failure. */ -int rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 d= st) +int rpmsg_trysendto(struct rpmsg_endpoint *ept, const void *data, int len,= u32 dst) { if (WARN_ON(!ept)) return -EINVAL; diff --git a/drivers/rpmsg/rpmsg_internal.h b/drivers/rpmsg/rpmsg_internal.h index 397e4926bd02..a8b7065fd165 100644 --- a/drivers/rpmsg/rpmsg_internal.h +++ b/drivers/rpmsg/rpmsg_internal.h @@ -63,11 +63,11 @@ struct rpmsg_device_ops { struct rpmsg_endpoint_ops { void (*destroy_ept)(struct rpmsg_endpoint *ept); =20 - int (*send)(struct rpmsg_endpoint *ept, void *data, int len); - int (*sendto)(struct rpmsg_endpoint *ept, void *data, int len, u32 dst); + int (*send)(struct rpmsg_endpoint *ept, const void *data, int len); + int (*sendto)(struct rpmsg_endpoint *ept, const void *data, int len, u32 = dst); =20 - int (*trysend)(struct rpmsg_endpoint *ept, void *data, int len); - int (*trysendto)(struct rpmsg_endpoint *ept, void *data, int len, u32 dst= ); + int (*trysend)(struct rpmsg_endpoint *ept, const void *data, int len); + int (*trysendto)(struct rpmsg_endpoint *ept, const void *data, int len, u= 32 dst); __poll_t (*poll)(struct rpmsg_endpoint *ept, struct file *filp, poll_table *wait); int (*set_flow_control)(struct rpmsg_endpoint *ept, bool pause, u32 dst); diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_= bus.c index 8d9e2b4dc7c1..5ae15111fb4f 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c @@ -136,11 +136,12 @@ struct virtio_rpmsg_channel { #define RPMSG_RESERVED_ADDRESSES (1024) =20 static void virtio_rpmsg_destroy_ept(struct rpmsg_endpoint *ept); -static int virtio_rpmsg_send(struct rpmsg_endpoint *ept, void *data, int l= en); -static int virtio_rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int= len, - u32 dst); -static int virtio_rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, in= t len); -static int virtio_rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, +static int virtio_rpmsg_send(struct rpmsg_endpoint *ept, const void *data,= int len); +static int virtio_rpmsg_sendto(struct rpmsg_endpoint *ept, const void *dat= a, + int len, u32 dst); +static int virtio_rpmsg_trysend(struct rpmsg_endpoint *ept, const void *da= ta, + int len); +static int virtio_rpmsg_trysendto(struct rpmsg_endpoint *ept, const void *= data, int len, u32 dst); static __poll_t virtio_rpmsg_poll(struct rpmsg_endpoint *ept, struct file = *filp, poll_table *wait); @@ -490,7 +491,7 @@ static void *get_a_tx_buf(struct virtproc_info *vrp) */ static int rpmsg_send_offchannel_raw(struct rpmsg_device *rpdev, u32 src, u32 dst, - void *data, int len, bool wait) + const void *data, int len, bool wait) { struct virtio_rpmsg_channel *vch =3D to_virtio_rpmsg_channel(rpdev); struct virtproc_info *vrp =3D vch->vrp; @@ -580,7 +581,7 @@ static int rpmsg_send_offchannel_raw(struct rpmsg_devic= e *rpdev, return err; } =20 -static int virtio_rpmsg_send(struct rpmsg_endpoint *ept, void *data, int l= en) +static int virtio_rpmsg_send(struct rpmsg_endpoint *ept, const void *data,= int len) { struct rpmsg_device *rpdev =3D ept->rpdev; u32 src =3D ept->addr, dst =3D rpdev->dst; @@ -588,8 +589,8 @@ static int virtio_rpmsg_send(struct rpmsg_endpoint *ept= , void *data, int len) return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true); } =20 -static int virtio_rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int= len, - u32 dst) +static int virtio_rpmsg_sendto(struct rpmsg_endpoint *ept, const void *dat= a, + int len, u32 dst) { struct rpmsg_device *rpdev =3D ept->rpdev; u32 src =3D ept->addr; @@ -597,7 +598,8 @@ static int virtio_rpmsg_sendto(struct rpmsg_endpoint *e= pt, void *data, int len, return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true); } =20 -static int virtio_rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, in= t len) +static int virtio_rpmsg_trysend(struct rpmsg_endpoint *ept, const void *da= ta, + int len) { struct rpmsg_device *rpdev =3D ept->rpdev; u32 src =3D ept->addr, dst =3D rpdev->dst; @@ -605,7 +607,7 @@ static int virtio_rpmsg_trysend(struct rpmsg_endpoint *= ept, void *data, int len) return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false); } =20 -static int virtio_rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, +static int virtio_rpmsg_trysendto(struct rpmsg_endpoint *ept, const void *= data, int len, u32 dst) { struct rpmsg_device *rpdev =3D ept->rpdev; diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h index fb7ab9165645..83266ce14642 100644 --- a/include/linux/rpmsg.h +++ b/include/linux/rpmsg.h @@ -182,11 +182,11 @@ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_= device *, rpmsg_rx_cb_t cb, void *priv, struct rpmsg_channel_info chinfo); =20 -int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len); -int rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst); +int rpmsg_send(struct rpmsg_endpoint *ept, const void *data, int len); +int rpmsg_sendto(struct rpmsg_endpoint *ept, const void *data, int len, u3= 2 dst); =20 -int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int len); -int rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 d= st); +int rpmsg_trysend(struct rpmsg_endpoint *ept, const void *data, int len); +int rpmsg_trysendto(struct rpmsg_endpoint *ept, const void *data, int len,= u32 dst); =20 __poll_t rpmsg_poll(struct rpmsg_endpoint *ept, struct file *filp, poll_table *wait); @@ -249,7 +249,7 @@ static inline struct rpmsg_endpoint *rpmsg_create_ept(s= truct rpmsg_device *rpdev return NULL; } =20 -static inline int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int l= en) +static inline int rpmsg_send(struct rpmsg_endpoint *ept, const void *data,= int len) { /* This shouldn't be possible */ WARN_ON(1); @@ -257,7 +257,7 @@ static inline int rpmsg_send(struct rpmsg_endpoint *ept= , void *data, int len) return -ENXIO; } =20 -static inline int rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int= len, +static inline int rpmsg_sendto(struct rpmsg_endpoint *ept, const void *dat= a, int len, u32 dst) { /* This shouldn't be possible */ @@ -267,7 +267,8 @@ static inline int rpmsg_sendto(struct rpmsg_endpoint *e= pt, void *data, int len, =20 } =20 -static inline int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, in= t len) +static inline int rpmsg_trysend(struct rpmsg_endpoint *ept, const void *da= ta, + int len) { /* This shouldn't be possible */ WARN_ON(1); @@ -275,7 +276,7 @@ static inline int rpmsg_trysend(struct rpmsg_endpoint *= ept, void *data, int len) return -ENXIO; } =20 -static inline int rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, +static inline int rpmsg_trysendto(struct rpmsg_endpoint *ept, const void *= data, int len, u32 dst) { /* This shouldn't be possible */ --=20 2.51.0