From nobody Thu Apr 9 09:36:50 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 8A3F53CD8D9 for ; Tue, 10 Mar 2026 04:09:21 +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=1773115763; cv=none; b=pihgIUr2INF18nb0SjqPAPapGmXzKtSEmDjkjq1YcMKYtHuxTNToTuEYaI241yqbV8zEqfwjKlKX3R8qRmp5qMCjrJZIC7s1MLmwvt0IqgPOg52mp0T8FWibRpI08t59gIGpaqi7+AXwmCYUEg/cCCAP4QiKzaK+PjwyG9vJOEk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773115763; c=relaxed/simple; bh=zGVaLAxemQaYiwlKZIKzDKYyFQu6oOcs69v7lEwpQxA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KIX5HrE8reWB9s2capk6SPx7T3Gd765nzUnjSNXI1HFs9Eu///vbACReyaPyhgEhdhsr5q4eL9m9MDWpP440q4QFOAx8TJcX4auvj78NlwaiUDh//HCCSeO8L7TJgnq8fYVrtiGnWTm8rr/Ee04VIUvS21iLN2gRtpHWKjPchgc= 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=GvNduocD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KL/Yryn1; 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="GvNduocD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KL/Yryn1" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62A2EQ3S2460657 for ; Tue, 10 Mar 2026 04:09:21 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= UjlsEWsqPCF1j9+yQxHiKqzEkI4BuT/eRnZpqywirEs=; b=GvNduocDtWHuXiLm 4AK2gsSAKEcrh7h+tbt+gfME2d6DtDpDnVDE3iEVhEqycS1itbGsHMyZH9SUpgTZ x9rokacHv4UAUpNHnGDj/YdwwiPzenEO0eBXXWiAipiD9oOdgQItWoDaAFww90u4 V2a3FAVXZqKNe51ERigavJXSPien1CBqZBtzvsQru/jZ10v2LpSmn/+v4mFrSCBU p19eFu9IVOWEv0TdIW9puZeSUvPorOU9NUFcKMxMNnyj70hEW9UXUD54CA5Td1l+ lx1ihKnepX2gRJbfvFh8NbrEB2ytmfrO1vEBTc+Ee/6Dr+Jx8Jnzwtt1D2jJd95q rykE5A== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyv1ag9t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 10 Mar 2026 04:09:20 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d74533e53dso16064238a34.1 for ; Mon, 09 Mar 2026 21:09:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773115760; x=1773720560; 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=UjlsEWsqPCF1j9+yQxHiKqzEkI4BuT/eRnZpqywirEs=; b=KL/Yryn1vhE9YHwNjSBADAVf0xks/Bvh/eBfmkr3lz30Cx7btVA4LnIs1VgB/r9tWY WjW6Vw0PvIggAL2yL0cxykHdA8U8yNWnEPBntPgg6Agq/jkFFXaoMn0w0hzlyBkZ3Srr HBTSZn5rNqz7zaNU31M3pJwpgT/p3OtN6XN+vPUTBY97CN+B09/WjAC518K/CxW1yC96 S2z4mCR/+7eE8rcLFzbrz+Tq7C4OgjjH4YiYvvqTlPH5TsSYqQRPzD7jgcItOrp1yHyl 065tY39nOPryJYlUtYki6HUVU1K1HdmevEhd026rI7g0Pb0TpDR9UMnpHGK1KMpIxhIR JtIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773115760; x=1773720560; 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=UjlsEWsqPCF1j9+yQxHiKqzEkI4BuT/eRnZpqywirEs=; b=r3C5zoWCYupncHG7InTscZnOPVgXsKHNCry43sqD8b8smkcGAu66Wy4JzoeeenJlG9 zsf5yyLz6TKCderh9jyv3h+gNvnltMmedpfB0Ys8/mVK+XUvV9VdEqfOXljEKJowEhag B8S5V65gg0I9a+GLdJrr9tgZGL5GRNbNwFxw69QU82sg4CCL79LOgbYABS4XVI+QZNVq sia6E3SEYpLi/zbMCclYNe46tplygi4NGpmvmQxMPF0K0fMGgXNq7yCP02Iu2DzCGQdd JRAn3CmyDeK/hNVyvgBXtTASYbDf2/Uph/ipnHG3fbyS9I0LVfYgXbus/06Zd0shhXFU ultw== X-Forwarded-Encrypted: i=1; AJvYcCVQIGS026L4jidcOMzKuD05uGcJUASsrqbXm9t9BRkZJWfhBmlq1zPJ99YzkSjnITNr7Z0Ed6KE2jK4CMA=@vger.kernel.org X-Gm-Message-State: AOJu0YwBk+DvbYdSgLZZAysh2Q7fLd0oF/0dd8sAVLvANC2wU+JKhLHv Oc7PpnOXa6Fm+DtYsfk0VUY9ZTTrNC1fQtu00UAczeu0b2d/vYNZLv1lX8HVOtaAqgNEWX+OKIg 4kpY1fGd/ripN2aqVPjzKLSMt8K/iiTksz26hpf1m10IratgqLhk2zlBMWcM2W+/wTAA= X-Gm-Gg: ATEYQzxSw/mUWcroIDepY5x0T8tlsUlfOhPuhyAWttD+3YHPt0ELkyEFrl0doW+z8sc zokA6yAHAhYzYu1a7WcDJmqJRjRrCgW56vpqfQZ66aBHmJdPZbIZc7djELsfKz3ZM5OWe5CThE+ fTkSm2rwBlGFahApFmB7aCMt0a+mYoFs67Asf1LFFoayXblMOkRTo9IAdlfSdr1C8X3aDAmu4J/ 76ibux8CI+YBuwI3i6BGurUkC68TBznFxRa6uQv73fDlqWjk/NAy9yBWKrUXsHUKNQj7mmlmQbr 4X+rDFlCC0Rd7L342jnSAhpblZNRTx4apPX93r0Z7H5K22v0N6CZjy+71yMAJCLXHgUwXqq0Zzm trxhm6PxgyKyE5mWZNj3JHyixnhPdi8GpWFObnVUMXoA= X-Received: by 2002:a05:6808:2443:b0:467:1f90:412d with SMTP id 5614622812f47-4671f906e7bmr786583b6e.11.1773115760140; Mon, 09 Mar 2026 21:09:20 -0700 (PDT) X-Received: by 2002:a05:6808:2443:b0:467:1f90:412d with SMTP id 5614622812f47-4671f906e7bmr786566b6e.11.1773115759681; Mon, 09 Mar 2026 21:09:19 -0700 (PDT) Received: from [192.168.86.59] ([104.57.184.186]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-41756e24c39sm1595685fac.20.2026.03.09.21.09.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 21:09:19 -0700 (PDT) From: Bjorn Andersson Date: Mon, 09 Mar 2026 23:09:06 -0500 Subject: [PATCH 5/7] slimbus: qcom-ngd-ctrl: Initialize controller resources in controller 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: <20260309-slim-ngd-dev-v1-5-5843e3ed62a3@oss.qualcomm.com> References: <20260309-slim-ngd-dev-v1-0-5843e3ed62a3@oss.qualcomm.com> In-Reply-To: <20260309-slim-ngd-dev-v1-0-5843e3ed62a3@oss.qualcomm.com> To: Srinivas Kandagatla , Greg Kroah-Hartman , Vinod Koul , Krzysztof Kozlowski Cc: linux-arm-msm@vger.kernel.org, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Andersson , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3519; i=bjorn.andersson@oss.qualcomm.com; h=from:subject:message-id; bh=zGVaLAxemQaYiwlKZIKzDKYyFQu6oOcs69v7lEwpQxA=; b=owEBgwJ8/ZANAwAKAQsfOT8Nma3FAcsmYgBpr5lpLT57UGW6OKOXgPyzrTb0L0MvKgFdYUyKa sGIUnV+ErGJAkkEAAEKADMWIQQF3gPMXzXqTwlm1SULHzk/DZmtxQUCaa+ZaRUcYW5kZXJzc29u QGtlcm5lbC5vcmcACgkQCx85Pw2ZrcXCxQ/9FMzppuWFWHC3LmXCiM+ouPWDPZi/Nf1ugV32/hk Vp/j1WSGg5HDjPIx05zBnlz1Dqe/MFHdycKNtuMuRDHClxV2xeI27SkTrKsNE6zVFNAMRFKAcrN 5vZmyp6mcqdlvv2VpBFD3+k2kyGF3hVaXfZ4Pb1xpdxxOOSiby0dgLWXOJfgVJBLCiX9jCKkt7V aZ0367oXrdU/ztqefS89/tzU6IuifVZw25Jli+DXYQ9fYfm7P16kUSCSZ/cD49ja3x6m7nDyL5N lfyRpBlibT0enrWEEoD/YhAs+ps2tr5NUhAt9S+1P/H8c98Nmls2Lc9iRMcHpWcmOzsFX1mpXKz nFag0hnMrqk9t8XorN7KJ5lAYzlyoDhiPD18wr9oZxxtWauAB8PfMRChYDESlUN6RmIPvLhd+Rr 4jXBSIUkkw3DIKaqkIotyGctBFsfohPL78w1d33DikWnlgBJHnILNJxGFtdx5rQFEEarq1u5HK0 huJah9o3dewLbPKgQcmO1Og9tDNE+K4icvLcb2GOb2KYB+Mg5jtDBEit7taB3z7L3W7XwnMNyzQ dD7T7jEA6vNci/UddIxy75O6t3RSg7ZrBy+FnioEkVSsxguirX38CzgzRdCxCxCyJxtja3xsC49 i8cPixAKjpLf/nP9BW71erDCo13pYViw+YksMmol+udk= X-Developer-Key: i=bjorn.andersson@oss.qualcomm.com; a=openpgp; fpr=05DE03CC5F35EA4F0966D5250B1F393F0D99ADC5 X-Proofpoint-GUID: BWOsKmyNABkRas0GDVE0pAGh4mU3_yGZ X-Proofpoint-ORIG-GUID: BWOsKmyNABkRas0GDVE0pAGh4mU3_yGZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzEwMDAzMSBTYWx0ZWRfX91waoXo0lSA0 Rdz74H2cUsdjr19h6vCIPSVAUmoaSR3s15Dq4ekwTFrYUIQnZO76TpiZ5e6IWYGblIbPlXGthDI AduY/3G1u6spQ4+sHHO2UGoOeQaN4cLyCdxToWfaW/k1M/992hvIbd5K9Xm5G9E+fK3Z+12qc1b 3G0pSJbM3qZotOvAoJyaMia8c+z77zTZd6M15pRvL2/wpq29QuWjok1P/0o/oL6imI4vHpqp6uZ 1Iy1nAy/CWR2tADQSRR2mEOiaF0R7WeYtNmlUbOcdL6HrBRyiWek9UIp5rGdKVcExN5bvTF1NQL SzU0wYj4+Oi9LfjWwwxtYjltnJFbtFL1hAbKhb5WOM+bnqd63h6e0Y96ACzjGf/EA1cy1Vy/ifu /5YhN2Aadi5Se0POgnbLJGTxhswFWY3V/o2xrVnOk/QI14VFTEUP709+MQUZ83FyP68BtxpRtRE 0dHRsAnztyMDlrJltDA== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69af9970 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=DaeiM5VmU20ml6RIjrOvYw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=UUHtT1FIUfGxZnwV23YA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk: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-03-10_01,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603100031 The work structs and work queue are controller resources, create and destroy them in the controller context. Creating them as part of the child device's probe path seems to be okay now that the controller's probe has been updated, but if for some reason the child does not probe successfully a SSR or PDR notification will schedule_work() on an uninitialized "ngd_up_work". Move the initialization of these controller resources to the controller probe function to avoid any issues, and to clarify the ownership. Fixes: 917809e2280b ("slimbus: ngd: Add qcom SLIMBus NGD driver") Cc: stable@vger.kernel.org Signed-off-by: Bjorn Andersson Reviewed-by: Dmitry Baryshkov Reviewed-by: Mukesh Ojha --- drivers/slimbus/qcom-ngd-ctrl.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctr= l.c index 76944c515291a62fb9cb192bec5cd5c2caa542f4..d932f7fd6170773890f561e3af4= 44ac2c5730338 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -1584,25 +1584,8 @@ static int qcom_slim_ngd_probe(struct platform_devic= e *pdev) pm_runtime_enable(dev); pm_runtime_get_noresume(dev); ret =3D qcom_slim_ngd_qmi_svc_event_init(ctrl); - if (ret) { + if (ret) dev_err(&pdev->dev, "QMI service registration failed:%d", ret); - return ret; - } - - INIT_WORK(&ctrl->m_work, qcom_slim_ngd_master_worker); - INIT_WORK(&ctrl->ngd_up_work, qcom_slim_ngd_up_worker); - ctrl->mwq =3D create_singlethread_workqueue("ngd_master"); - if (!ctrl->mwq) { - dev_err(&pdev->dev, "Failed to start master worker\n"); - ret =3D -ENOMEM; - goto wq_err; - } - - return 0; -wq_err: - qcom_slim_ngd_qmi_svc_event_deinit(&ctrl->qmi); - if (ctrl->mwq) - destroy_workqueue(ctrl->mwq); =20 return ret; } @@ -1649,9 +1632,18 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_= device *pdev) init_completion(&ctrl->qmi.qmi_comp); init_completion(&ctrl->qmi_up); =20 + INIT_WORK(&ctrl->m_work, qcom_slim_ngd_master_worker); + INIT_WORK(&ctrl->ngd_up_work, qcom_slim_ngd_up_worker); + + ctrl->mwq =3D create_singlethread_workqueue("ngd_master"); + if (!ctrl->mwq) + return dev_err_probe(dev, -ENOMEM, "Failed to start master worker\n"); + ctrl->pdr =3D pdr_handle_alloc(slim_pd_status, ctrl); - if (IS_ERR(ctrl->pdr)) - return dev_err_probe(dev, PTR_ERR(ctrl->pdr), "Failed to init PDR handle= \n"); + if (IS_ERR(ctrl->pdr)) { + ret =3D dev_err_probe(dev, PTR_ERR(ctrl->pdr), "Failed to init PDR handl= e\n"); + goto err_destroy_mwq; + } =20 ret =3D of_qcom_slim_ngd_register(dev, ctrl); if (ret) @@ -1685,6 +1677,8 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_d= evice *pdev) qcom_slim_ngd_unregister(ctrl); err_pdr_release: pdr_handle_release(ctrl->pdr); +err_destroy_mwq: + destroy_workqueue(ctrl->mwq); =20 return ret; } @@ -1697,6 +1691,8 @@ static void qcom_slim_ngd_ctrl_remove(struct platform= _device *pdev) qcom_unregister_ssr_notifier(ctrl->notifier, &ctrl->nb); =20 qcom_slim_ngd_unregister(ctrl); + + destroy_workqueue(ctrl->mwq); } =20 static void qcom_slim_ngd_remove(struct platform_device *pdev) @@ -1707,8 +1703,6 @@ static void qcom_slim_ngd_remove(struct platform_devi= ce *pdev) qcom_slim_ngd_enable(ctrl, false); qcom_slim_ngd_exit_dma(ctrl); qcom_slim_ngd_qmi_svc_event_deinit(&ctrl->qmi); - if (ctrl->mwq) - destroy_workqueue(ctrl->mwq); =20 kfree(ctrl->ngd); ctrl->ngd =3D NULL; --=20 2.51.0