From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 99555374E4C for ; Wed, 29 Jul 2026 09:44:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785318241; cv=none; b=V7g2Te79GipbM1NB+yMx8yXyNlMj341F3F/DmZQiAWZOE/4csYfG/F85547IRBHNviSK6Qsm9rjiTZbhKQTSI8SlSktThmyLS+TN1MMEIBEeQS7QSLFHNIV0ywJnEunHw6iwBHmjvQoVgZF21w8ZndDAtvuJ1ml3y+UimT3k1J0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785318241; c=relaxed/simple; bh=o1TU4OO/3OZUSVZ5J9jHx0bWik08EyqDGZPctPXB4go=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LerjHvvdJV9yu9dMeqm3hVbd56dxjdi0AGTfYqvx/qLxoF85sqBUa+RsRkyl3lkQ4JfbulsSJafIxjdUHu8w81dTZGxz6bJl+zQMt1lAW3aEd1cE8cImEb+kQhr8oKAIdIsD1dqhAcHcuvTE7GxqPmUS4vCsGmTflhN7g1H1SPo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LXRJKoum; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LXRJKoum" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A6F91F00A3A; Wed, 29 Jul 2026 09:43:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785318240; bh=c+wzxmKeaebY+KaQRlDj79IBjX5luLNedTCiqaK8EUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=LXRJKoumeIE48j1Cdq1uTi1E6kW8jF9++eav5qRf/4TeJ+HMCGij08d7l1dOfh6ec LypWQrBsAmnMHkRi4J5bLmKFOw3kLd3XJDRvfJLZ02W8nQxQFr7yhOJokiogVmOLyv NMJFWq/yfuOlvR/KMiJauLICocElaZVjsdA6Mns3DhQPj0cRTL0CiF8j2ve5e2q6IE bprex6hYxVuyGEupqGcYbNt+R8YmbxbYWC+bchQR7KvTv2sazq3qL+Uf4vQJtk9Vt1 +OEtIjdCml3YGsOCGx1Jk57HLGYiz3BfIwRgYe1yAdLLRIwBTOmdnKz3VY9ctp8sUs 1VkPG3Oa8WHPg== From: srini@kernel.org To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Mukesh Ojha , Bjorn Andersson , Srinivas Kandagatla Subject: [PATCH 01/10] misc: fastrpc: Move prints outside spinlock in fastrpc_cb_probe Date: Wed, 29 Jul 2026 10:43:43 +0100 Message-ID: <20260729094352.111065-2-srini@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260729094352.111065-1-srini@kernel.org> References: <20260729094352.111065-1-srini@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Mukesh Ojha dev_err() and dev_info() were called while holding a spinlock with IRQs disabled, which is incorrect as printk can be slow and should not be called in atomic context. Move the dev_err() for the FASTRPC_MAX_SESSIONS check to after the spinlock is released, and save the return value of of_property_read_u32() to print dev_info() after the lock is dropped. Minor variable style correction in probe function. Signed-off-by: Mukesh Ojha Reviewed-by: Bjorn Andersson Signed-off-by: Srinivas Kandagatla --- drivers/misc/fastrpc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index f3a49384586d..a9b2ae44c06f 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -2223,19 +2223,22 @@ static int fastrpc_cb_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; int i, sessions = 0; unsigned long flags; - int rc; u32 dma_bits; + u32 sid = 0; + int rc; cctx = dev_get_drvdata(dev->parent); if (!cctx) return -EINVAL; of_property_read_u32(dev->of_node, "qcom,nsessions", &sessions); + if (of_property_read_u32(dev->of_node, "reg", &sid)) + dev_info(dev, "FastRPC Session ID not specified in DT\n"); spin_lock_irqsave(&cctx->lock, flags); if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) { - dev_err(&pdev->dev, "too many sessions\n"); spin_unlock_irqrestore(&cctx->lock, flags); + dev_err(&pdev->dev, "too many sessions\n"); return -ENOSPC; } dma_bits = cctx->soc_data->dma_addr_bits_default; @@ -2244,13 +2247,11 @@ static int fastrpc_cb_probe(struct platform_device *pdev) sess->valid = true; sess->dev = dev; dev_set_drvdata(dev, sess); + sess->sid = sid; if (cctx->domain_id == CDSP_DOMAIN_ID) dma_bits = cctx->soc_data->dma_addr_bits_cdsp; - if (of_property_read_u32(dev->of_node, "reg", &sess->sid)) - dev_info(dev, "FastRPC Session ID not specified in DT\n"); - if (sessions > 0) { struct fastrpc_session_ctx *dup_sess; -- 2.53.0