From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 7814A3CF661 for ; Tue, 19 May 2026 07:20:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779175214; cv=none; b=VynmceShFQXXApdz0MyFqn6dnbDJo72lrfP2qfierxrRhXz3A9lrxu8u+ri5jNySfojwV61n6V9pxBVt+thWGRki2cIn5BG3/d5ZanDC5XK1wxqjKdNuaPWyByRUnQzl93VAxbXxz4ldhfHTl2lBcXxO2m9FDA6Uh1NiHzJK+rc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779175214; c=relaxed/simple; bh=bscwrSlVpz4MNHSHLLAXg90Xfda+9OYWIvmhkgv3eb4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NRlj4dPw+MyM9uRC4t50LrhW7BLoZug+t35hPCuaIdfruAenzCS/xARp51wf7fpA4/yLef9j51afvc+uc3/Q61rpXo9omWy2SWMlE8UsUPOrarXH2d3iInQHbrWPh1bRLFiqHIrAZAvoTWO6kyWeWsaXJXWMU0uOM8X5+8HGeBU= 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=CKAc4p9g; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dFre4VJx; arc=none smtp.client-ip=205.220.180.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="CKAc4p9g"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dFre4VJx" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64J5a7J6867004 for ; Tue, 19 May 2026 07:20:11 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= O1S35uCyDNCtXUX3buUrp0I7Z6/lE+g8Tviz/lzBaZw=; b=CKAc4p9gnBjwH9JL eORX2pCQ0AvZGNqBpWzoB2ngw3KUf4/xOpogpDuiwsC+e+iSA1nKkU8Ague2fxRf YhCmoEsCG06bo4IC5lqhQJsef2Vr2+RQx8xva11EFiKwZx6o6iRVBkhDbC0MKjCy 4W3FopKzqH74Ueaj96YQUOGUNWF38GNBDqzcMSBYNXN6zJM45GHVI5812YadE7zZ Y1XWiNgVhQiqZGjsXxSROKHIdLSyAR08kPAfVAYjvggxSR7X9MSPvpTab/syGz8L HOV3iRoOuQxI9epLCV03dOcXHgPrm5S1SMk84ekKmjkAAHDKSFQwEDXWJkLOlEmi UW5ZQg== Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8hv1gdxd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 19 May 2026 07:20:11 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2ee34588671so3722649eec.0 for ; Tue, 19 May 2026 00:20:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779175210; x=1779780010; 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=O1S35uCyDNCtXUX3buUrp0I7Z6/lE+g8Tviz/lzBaZw=; b=dFre4VJxzpzWEUNsIEY6NS3zWugL3ML1voTbbeKdHJtSlm6ymvIrMZeOqN5K8NdP0o 3L/1vGg8HmRTfFg5iPstpy2KpHS+EivdTkUMBihtJBoy360HyvFaLbt8JecA5PPSd35Y 9cjrEWwdDHqo0InonzpykuWCPgsDKqvLPW3iptnU6Qp0Rfe12Aw8SORzl+7XDizl/Y9D tYud9qVGvj3I1k/CY0EREOKykGDKXzfZYz+oNBac5Lip5xTlD1NCuUWNXBgLk6CycpMn j5QiGm9ofyyamz+1RbNvb7Ce30KISM4yVMw1c7CGwX2iSG4J+XfVfbJUqT+bvW6pBu8d ZHGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779175210; x=1779780010; 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=O1S35uCyDNCtXUX3buUrp0I7Z6/lE+g8Tviz/lzBaZw=; b=NFhSGbv2wK82NYNyLGnBuXkYuuHk29Iv0+YfJgA5BB+TwQJ5OW61S2I0OtmsRDIjod mltq0xlmOeRh4P0RBnJ6lITPkjNqfla0jsehZD7q5pk3hw/SgFIGcjz1cSLAwHv7dut/ n1JdRy0zbab6osiL+Cvfd4FC8QsHNn7T8/inXoeRlXw60p2P7pcvkp2v4yxoQUR/hMXp RZX9yDvTmqcgmG+cWK6lhBM4Pr810ZmVcSFIIa+NANW/s6BifrlXpj061tJvtPBWKgTQ NbIiP3llDbJc1WHi2AaAO7ejpdmyo/Xatq3eUH3bEpqBStXDV9mRZLNqAyiWEr8Vf+c2 dx4Q== X-Forwarded-Encrypted: i=1; AFNElJ+SN/E13FZ6ji9shr72D5OHc9EmCEJ9E7iFr4bOwGTswjdSbqxUP5V7rxI7akiGIAKgcD3SCWOhl25zrrk=@vger.kernel.org X-Gm-Message-State: AOJu0YyHQ+0CVsbIIJFFmZNk1IIL+LCi5tyXqSlVHpZRyZVInKdfkHjA oSVz+ns7vPUiA+xpFkmpVy/WSnO4vbaIxhfE65vcGjdtemUx5i+soSylq9cbK+OgoEC8VIN/ykS lgh3ijwNev7xnXFfj71eH8SPFQsDp4YOQ/2wz3aGsgJUBc4r5IeP2CT96quKtWut78x8OgbdT/f XkUQ== X-Gm-Gg: Acq92OFPSp1FuHsR0se+EHfdgeOjnWcud0ITGyvhAkNqzc8QCWofJN5Sp9zyd5rYqu/ 2e7R0+BeGafk44vtd4ZKQxbRRomUPyezjpwLgNFcYhD0GxTy4exF9ewUPm0l4EiyhUwLOErydFQ r3ANdpRBETH3UZbyqZgNzG27Zj6xERZ6oB/Nf+cizb54s87o8gYKjZeo5iufiqNjAnph9H97qpJ jb37F6PaQSDTqgbsoCdYCjjL3gUvrGT5L/xucGEc6m5gKjBdjqg7/stQJpnXZGrR+d7zOEYw1nZ JXze0BuLxbSP6Y2FAd6GTWlcZbYcyv/FlsdnMm5wrL1tXXxWVAzzos2eSvb0hwk4fveIa654R9e UQKQx3SQeUb/H1joxBW0hsrVTarXmhnbqfDk2O2EqA5C/Yz4HcwVnSeTe9JHCWnCtxDLtr+5f X-Received: by 2002:a05:7300:b2a5:b0:303:a1af:5042 with SMTP id 5a478bee46e88-303a1af60eamr5200987eec.0.1779175210292; Tue, 19 May 2026 00:20:10 -0700 (PDT) X-Received: by 2002:a05:7300:b2a5:b0:303:a1af:5042 with SMTP id 5a478bee46e88-303a1af60eamr5200970eec.0.1779175209709; Tue, 19 May 2026 00:20:09 -0700 (PDT) Received: from hu-jingyw-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-302973bcd0csm16438595eec.24.2026.05.19.00.20.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 00:20:09 -0700 (PDT) From: Jingyi Wang Date: Tue, 19 May 2026 00:20:03 -0700 Subject: [PATCH v2 2/3] remoteproc: core: Check subdev start status in rproc_stop() 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: 7bit Message-Id: <20260519-rproc-attach-issue-v2-2-caa1eaf75081@oss.qualcomm.com> References: <20260519-rproc-attach-issue-v2-0-caa1eaf75081@oss.qualcomm.com> In-Reply-To: <20260519-rproc-attach-issue-v2-0-caa1eaf75081@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier Cc: aiqun.yu@oss.qualcomm.com, tingwei.zhang@oss.qualcomm.com, trilok.soni@oss.qualcomm.com, yijie.yang@oss.qualcomm.com, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, Jingyi Wang X-Mailer: b4 0.15-dev-3d134 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779175207; l=3054; i=jingyi.wang@oss.qualcomm.com; s=20250911; h=from:subject:message-id; bh=bscwrSlVpz4MNHSHLLAXg90Xfda+9OYWIvmhkgv3eb4=; b=7a/JGryUVN0w5oetGmN7yC2k9A+joMOvHT2gMeXi/YqWlK0e5Hf35yZ2O4vXLQq1SvHX+5OA+ vCvF8R6Yt5/DhH+FRCVplqk93xQ3qu3orBx+EXxTprF+xn6i7+xvyM+ X-Developer-Key: i=jingyi.wang@oss.qualcomm.com; a=ed25519; pk=PSoHZ6KbUss3IW8FPRVMHMK0Jkkr/jV347mBYJO3iLo= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE5MDA3MCBTYWx0ZWRfX+4WpT9f8x/pz 9SkpWWtqFzspmTUpLsr4Z3dJ/D4dl/pacGnp04Nu0ijml90wdFIPih9FPCNkJIIm/4Sjx6h9RLy PD670QFxVqQ7WCc4MTLi1EGyHrhQ5JpAbupttGZn0maknMEAeR9trTlrIuA7heEcmTrI8Pn7Y9r Sj8KVyeGFYcmKRyW9s/9ZGJxn0YJ9zqXJbPYApMcOVmSY+MEjSPN0GVN1Ou22jFy/i0MethHzGw 09U1Nx5Si5p/s3ekWtQScBPYCwQJ3iPk1aYVbvjuxAMjzJ3rnLxOA0qe0xiREMmQ2e/LTrJldtK p6iNCvyBC+oaiXUTvwGrHXNMVgjshP8gIe7ntQhj98yNaPI++ZCndVMeXpCD9kROMFiNrRhm0ER mX1z99Cww/sibXUsp4oZ456O5y0QuoMR7fZt7DeR/tINlCax4b60x+QK6Oz/rqFrP9ds2W0lzk6 IP9Jd9EepZu3heFeIVg== X-Proofpoint-GUID: L2D-0nHzwgKjeE746S-BxA1xHVuHbxlr X-Proofpoint-ORIG-GUID: L2D-0nHzwgKjeE746S-BxA1xHVuHbxlr X-Authority-Analysis: v=2.4 cv=WZM8rUhX c=1 sm=1 tr=0 ts=6a0c0f2b cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=9H_D3iXqDRE50K2jjPsA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 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-05-19_02,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 phishscore=0 spamscore=0 impostorscore=0 adultscore=0 bulkscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605190070 For rproc that doing attach, rproc_start_subdevices() is called only when attach successfully. If rproc_report_crash() is called in the attach function, rproc_boot_recovery()->rproc_stop()->rproc_stop_subdevices()-> glink_subdev_stop() could be called and cause NULL pointer dereference: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000300 Mem abort info: ... pc : qcom_glink_smem_unregister+0x14/0x48 [qcom_glink_smem] lr : glink_subdev_stop+0x1c/0x30 [qcom_common] ... Call trace: qcom_glink_smem_unregister+0x14/0x48 [qcom_glink_smem] (P) glink_subdev_stop+0x1c/0x30 [qcom_common] rproc_stop+0x58/0x17c rproc_trigger_recovery+0xb0/0x150 rproc_crash_handler_work+0xa4/0xc4 process_scheduled_works+0x18c/0x2d8 worker_thread+0x144/0x280 kthread+0x124/0x138 ret_from_fork+0x10/0x20 Code: a9be7bfd 910003fd a90153f3 aa0003f3 (b9430000) ---[ end trace 0000000000000000 ]--- Introduce "subdevs_started" flag to indicate rproc_start_subdevices() has been called successfully. Ensure subdevices are only stopped if they have been started. Signed-off-by: Jingyi Wang --- drivers/remoteproc/remoteproc_core.c | 4 +++- include/linux/remoteproc.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index f02db1113fae..6e23cb11e515 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -1308,6 +1308,7 @@ static int rproc_start(struct rproc *rproc, const struct firmware *fw) goto stop_rproc; } + rproc->subdevs_started = true; rproc->state = RPROC_RUNNING; dev_info(dev, "remote processor %s is now up\n", rproc->name); @@ -1712,7 +1713,8 @@ static int rproc_stop(struct rproc *rproc, bool crashed) return -EINVAL; /* Stop any subdevices for the remote processor */ - rproc_stop_subdevices(rproc, crashed); + if (rproc->subdevs_started) + rproc_stop_subdevices(rproc, crashed); /* the installed resource table is no longer accessible */ ret = rproc_reset_rsc_table_on_stop(rproc); diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index 580d324a1e8f..bc6adbd23827 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -539,6 +539,7 @@ enum rproc_features { * @has_iommu: flag to indicate if remote processor is behind an MMU * @auto_boot: flag to indicate if remote processor should be auto-started * @sysfs_read_only: flag to make remoteproc sysfs files read only + * @subdevs_started: flag to indicate if subdevs have started * @dump_segments: list of segments in the firmware * @nb_vdev: number of vdev currently handled by rproc * @elf_class: firmware ELF class @@ -581,6 +582,7 @@ struct rproc { bool has_iommu; bool auto_boot; bool sysfs_read_only; + bool subdevs_started; struct list_head dump_segments; int nb_vdev; u8 elf_class; -- 2.34.1