From nobody Wed Apr 1 10:27:13 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 C312437FF6A for ; Wed, 1 Apr 2026 03: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=1775013776; cv=none; b=eneQzm6tg1b9ZQPdnKO4b6bG6lAFs8U9oKblMFtvMlVmFfC/fp9tepE3vVrd/jJ6wjZ54rk9CngO4O7+5xzcqrGLxQ70I4JpNiuAAGHBWfOdVI36Rfi/nBIMpkBVWj1AWX8sssxYqvl1dCnXOBhXCxARsKuwu/l6cim7Iermvac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775013776; c=relaxed/simple; bh=DOXwknPSO8kS4GpsjjcGsbygukGZn2mtQA+P9ZL0MF8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SSoorwD2GwmHi32m1KdXkKJg4AP6jFyGiONiWj8eQnOGdQdNP4HZSWkw/ICYCq2JGCiFfqNXvIWcmKOsl4b22QJqYyITnHs+nyVRctfBxJI/fmk2tiK/e5lSxXKR2S2utp63Lm4Ir81TjRL/+8xBcFYdcj1FgJEmPopY62o9kh4= 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=IMenfcoJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Wb2sokfs; 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="IMenfcoJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Wb2sokfs" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62VNX4R63926859 for ; Wed, 1 Apr 2026 03: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= 0LgrG8m60aHTZivb3eNUz5aOlnco6nMtQPs6zLRWeXY=; b=IMenfcoJIRapS2Qe n+yzj1cIsgVDqE5Y6C0Ul1kvm1Q4NSqZjsVHnwXFqc2uBuZIrz8/UsIurwxeBZ7J aunrBX09li/n/Ex9vTeY8bzvevNdhJ44EP2T3OLaub700i6DNEmOTXosVv49aKpY RkbMal4uM3osJN28zhxV2y/boFlIL3/DU732TzY46rbH2CvBzjnLW9Dk31ixd5Og 7E2Zn5E7jQK91xb7stuyVOY4W9XdBbWVZWYRvzQbyyNNsmN+8vah+NtgRbnYr/nt A9yeJ4kXUmvjGBH11zPZgHzIROXZzlDuDoPLYGmMCoSC0awT0cIHVWZAkLpBcXbc b8Vihw== 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 4d8b934g2f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 01 Apr 2026 03:22:54 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d7e995a87cso27145996a34.1 for ; Tue, 31 Mar 2026 20:22:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775013773; x=1775618573; 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=0LgrG8m60aHTZivb3eNUz5aOlnco6nMtQPs6zLRWeXY=; b=Wb2sokfsV9AG/8ErP1/plrRvU9a7MeSKj+7g3ngSsU94JLdfCbG74deGD5gvbprOIb o7fJ5SeAYvLiZOnU+ihqzjtVNlpn9Upg2WYux8jxpxPCYcC7/OWHPio2jjMi1sxs4ZHr 8PLN7UZLkcf+B39OaI/FzA5tnFC6OxmNdjuyrPc5bmm+WkhOb5WCCrDipgqayFHKPggE 47dF/bi8lIGqAjGzZQN9URnIptYq35f27E5W65eTz60EMam48651IS4bDjoxO/k7zkjj bs0ZwQjg7V+/2f9vzqSS7ipb2quVNTw0TaJzxf26L8lsx9w6yzwIqnkUgoJo/sOgpcFY viZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775013773; x=1775618573; 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=0LgrG8m60aHTZivb3eNUz5aOlnco6nMtQPs6zLRWeXY=; b=n6nHjJDKI49l3MUs7aRbciKJnikAaPY82Y8SgJiycOAvrnxJLqaA4MMXEfCFOSKUbo rXAGBh8RToOmvBHdfk6lWGvsRDyJ0cnLWM/b6vf7eTixq3ecQxb0yYh936fgMpbFsLMh rL46HusCD/+qlM0XrXLkQbppRmV3Zmw5a0e4rmzFRca0PDTUQJHoavvMj/7Bku7CqvPF khZQN8vp5MmAirPf6qa5TOR+tpY+8s9hvmXDCsjGrUWF5gINnYyIaT0GSGsn+WYQ56SJ T6iM4WKAUCywIk/9d4DJeoLwlGa1PpYcKd4dq/1ZLDqb8RvzfbgevlTdQtqXwRvX7HM7 8jFw== X-Forwarded-Encrypted: i=1; AJvYcCWykZmVQuiQnd+RTqdO2Kcu22OweKeDWzxLL9To19G0UcD5Vl0VNVp5Be1PUSNv0ZCPtWw6/jR4o/pu+Rc=@vger.kernel.org X-Gm-Message-State: AOJu0Yy9Tq6jTyLVSmdBgqRc6QuYsNGEG0DTEOGK8pljdDW3BuEpTHwK GrY9Tgq4SxQ6YRI9hPJQGA938LDS6tlSnsLVbBUdrwheIanYT5Png0aYEZC3++6364Pdv2YidrJ Z1vZtS8MlaQ1tY3jhIKz/1MI20T5zV6YQZKZodytWAow9gn5dOdDzuMD/ULlLC2ZsTAU= X-Gm-Gg: ATEYQzxrewx/jgPjN8gdyWcyky11Mm5iavM3tmfMGWqHg9/Vl5z8e4FyYgtTLF7e8LP BACFfzmR/i/31v2BZm3+Ri6cqBss/IxTcHLIuHGec0r8LoRASTBWPgMf8AHiyy3s6nRfr0qDuWG d9/Sy42uy7EK7P+7O/PmzIJy6ptdQHvby3elvhUJoUw+5Mq7KXPXQ1d2KF3UX5boqyAByd2juzW EAkq2O/ClFAQBEg0qcGk8ERpoLhY5jau3MBl90yVuU9klteT3/BAQOSD3mCIZMSbeZNzubiIcPR yb7YCt7kti8nPhAFgCbgc5qxbWFxjwwwftIrK40tQ+81tdWDO/zvI4m7KgsRYAX/AOapL4PbM6h /A3kFqgCtU6jWFC1UvPkqBQtkPLlT5fPF01OjB35fXbg= X-Received: by 2002:a05:6830:368a:b0:7d7:cba0:8b75 with SMTP id 46e09a7af769-7db99400313mr1420044a34.32.1775013773365; Tue, 31 Mar 2026 20:22:53 -0700 (PDT) X-Received: by 2002:a05:6830:368a:b0:7d7:cba0:8b75 with SMTP id 46e09a7af769-7db99400313mr1420032a34.32.1775013772968; Tue, 31 Mar 2026 20:22:52 -0700 (PDT) Received: from [192.168.86.59] ([104.57.184.186]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7da0a336d73sm9589357a34.5.2026.03.31.20.22.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2026 20:22:52 -0700 (PDT) From: Bjorn Andersson Date: Tue, 31 Mar 2026 22:22:47 -0500 Subject: [PATCH v2 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: <20260331-slim-ngd-dev-v2-5-9441e9c8420e@oss.qualcomm.com> References: <20260331-slim-ngd-dev-v2-0-9441e9c8420e@oss.qualcomm.com> In-Reply-To: <20260331-slim-ngd-dev-v2-0-9441e9c8420e@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, Dmitry Baryshkov , Mukesh Ojha X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3643; i=bjorn.andersson@oss.qualcomm.com; h=from:subject:message-id; bh=DOXwknPSO8kS4GpsjjcGsbygukGZn2mtQA+P9ZL0MF8=; b=owEBgwJ8/ZANAwAKAQsfOT8Nma3FAcsmYgBpzI+HrkJvA/cP/LbBw1cuKuXWfEzmCGPwukqpw tjyQDNLDVCJAkkEAAEKADMWIQQF3gPMXzXqTwlm1SULHzk/DZmtxQUCacyPhxUcYW5kZXJzc29u QGtlcm5lbC5vcmcACgkQCx85Pw2ZrcXzhw/+Pj2aFY35QSvXe2eILSOyPrX3bhXmJo0jRoEqLG4 KU3avOXDVvik1F//HpJklEYX7lcGpfhgyBMcEXrnBiCtHqXHXrd/4NchdaaLPWfnKrYx7qTTj2F BhjGBmK8OUSHbgVzh41v5QteWh4X8XUOBvhdw8jACcqtZRDLdooKzan52iYzEnSKFtJDtIi3JLu 3h2VRNur9HRPt6SKOJ51nahfx/cQIy7JQNreHvny3Ee2aFQVvIXnzIoFfrCl1epwfdTdmA/eU3X G0XSmN8609KYyPFdh90ZwMiznaA2ZIHEECYZfLDngTuD+4tD35bYdhOXpJS1v5BjVwPkeTsjnNi enf4qSRnWn84iSzc4YEsd8SPqSi69jfgUo7CItciXzfXwUFqYyj8w81xEPnPJdevp3il7xatddP a14t3f7hC5+mzYw9ce4HrowQosVl5r7STF6JHiBA0Tkark9Y/2KLEjUaKhuLA9vkGZGOaf1tBpx aDduv/2Pr0EGJMd9AcZiEYIK5YzQmVFqP7oskAOA9l/Q0EpWRyLseejbwPJ5okwmFAhxrMZJrG5 QQFBc3i4FM4Tr2M9L6eFcMB4nxZ5TJViE6DEhy0ba5hzjQ7mwGvy25Q2kx/oygWsnThfoKdw83+ w4ElxsttFzlCp8db7MID7fYvsAVhnUfSHpVDBXdxKGwQ= X-Developer-Key: i=bjorn.andersson@oss.qualcomm.com; a=openpgp; fpr=05DE03CC5F35EA4F0966D5250B1F393F0D99ADC5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDAyNCBTYWx0ZWRfX4mXZljOy72bM ZFeL5aEUuX9JNtcAmnRY67iJl5PYYpeGHKzdFIMRI+93l93ke/kyfUNaV6x+QvAooesU4EmU2Xg tCGE9YyRGDYThTgoWwUwXiO8fWj1t6JUp70NfW9Eg2wyD5/LK2lhNqCKW7vVPvUqbQ4l6SlDBuZ jm21N0bt0sJWp6635cuYkmyOUMp7PuPDSpf0A4xc3eRNtmth9z87gBbXXPDyXamiUfccr8AcOME zqpj/E16eCTUjhc4ZEVYwCffVfc4Yfs5HyxXOa6MwdcPIcIJ+xvo0G0cW6bgKRecFpLTvAIozq6 zbf0kP1Gk/Wo3bug32QduzsUjMaanLBhkHZkpy2y1dWweCzS9M8/zKQd3Sy7l44XiHMz8FYVWQP r5wG3j4+CASamMiw1YgQgGccBAXWACFKYmg21l70HlHTXhFg+IXNS6r8JTLtKoTOrC2eZZrNLnI 6s5iqfrcCCzigNwPtHw== X-Proofpoint-ORIG-GUID: yXfMD-IOQRZgd0jym3vobr3LD1-f8_0d X-Proofpoint-GUID: yXfMD-IOQRZgd0jym3vobr3LD1-f8_0d X-Authority-Analysis: v=2.4 cv=NLjYOk6g c=1 sm=1 tr=0 ts=69cc8f8e cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=DaeiM5VmU20ml6RIjrOvYw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ZDM3EJ2L_4yozt0j5AIA: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-04-01_01,2026-03-31_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010024 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 Reviewed-by: Dmitry Baryshkov Reviewed-by: Mukesh Ojha Signed-off-by: Bjorn Andersson --- 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 814ecb01b575984f0951919bba0b8ef4fc64a6dd..ca5c1c00fad163c69672db3b37b= f225490e7fb96 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -1582,25 +1582,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; } @@ -1653,9 +1636,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) @@ -1682,6 +1674,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; } @@ -1694,6 +1688,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) @@ -1704,8 +1700,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