From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 749C93A1E92 for ; Mon, 27 Apr 2026 08:48:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777279724; cv=none; b=ksjm6BNXjOPkuYcRvj3Yu3YkSdjBbeueldmWBvmABrGb9RKjIjSUGSYYwYV+gWD1jNMdcEcX6mC/tTfYo5yQVhJ0vYTQ1Lf7RFtcehq2Y4Rv4DzpBLzUhNesBpS8EV4UB0JYq7EWYVw1hUFqcO0QbeX9WI/8igOcMwMr16Rz/iU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777279724; c=relaxed/simple; bh=bQSKliJdOgSghj/0j57jxwwP485TZouAqr/8lLlLuNs=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=UBxTSIU950CS4mf0EUAcfhgjTmf6ZYJ6O/JEHPpzinSf+V6vEDrMJCr/cPTfxW0V5D59jGAveGNTwUeszQs+yh69AsN6lolquHBalMHy9E3ReLRRD/DqSEgUb0XWdJ42SFsRyEG8PJ/0J6c5vftn1xuUbzyA4/sjHNviRMhpzhg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=UKFRNcDE; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="UKFRNcDE" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-43eb012ac4fso5980859f8f.0 for ; Mon, 27 Apr 2026 01:48:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777279722; x=1777884522; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=0JA+E2OJoqNXeWdWbhpFOoKA8w/M6yXZ6Nq/L8Dy8vA=; b=UKFRNcDEpPwR3Z7y8ROLx3oZWCI+WSQxkCITgNgqU5Co5zeLqYXe64KnG08Evx3v88 urS/fgSLxF1he8nJZBA8BGdOzUW9nc81kWvKLPXaHkTcivsRYII0fGexhUSOZkM+3VXU tYC3/wsrzWsoiA/sDt4XLbjLMiktLb39mGCw1hn+llR2IO9dGX4DHa72QOn5c/wGyc0R WqYDa03+7vPReJHaZo0zI8yhLNdHEaRGEddW6v/gEsppCb1cxS7pPdsr0HqpzajC1PKE 97kOFsEKNvbfBATP9Purc//SS3UCr82y5/FOyEtH+ajIit5flO4VhoaKoJkqgaBepjAQ iDUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777279722; x=1777884522; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0JA+E2OJoqNXeWdWbhpFOoKA8w/M6yXZ6Nq/L8Dy8vA=; b=Zi3QEJMqy89Bw2NV7EGgQ4E0YIdJicculkfpAvJay8ZbJTdB3zqgnxTQfsszXFxcOy 8baA6y/4rozd8fptESIgiKubsxnJZzk5QRjm1VytttxTCvaPrFAwjoQwG0pjDTAPiGKJ dQZUfxAcF2MrDtFlPlBshBpevr6jg6m979oJ5+BFlWHqjYtlCxVYZaQPN4Uxqb4/51Eh E0Xk6Xy9Vy0GKjaHPvXcpagwEM3/aOL2tV23BouQSDz0WyJtW2uxDKYpkdRx8MLewaEx ll2oJPIfFjstf/nsU740nzW6oaPd+zBkFcVARPPqYZogU7XxBI6l3JwN6DSr4Th00yF3 EEOA== X-Forwarded-Encrypted: i=1; AFNElJ9nvrC5IYgxIEQMcTfXrhLoRo6nxK+KMP0HlCJoNk0jMCv3b7NW6JrtJGmSN3C0DZPqYVG8jZxODsZLRQY=@vger.kernel.org X-Gm-Message-State: AOJu0YyHiJPTo/FI5DKSJGlOlc0RnEEaJP7VY4RlmsqpVygj4i3pLLKC UT6Exrh0jzrteqlqTPqOsjoffPozdiJGhPevU57sAer8DLQOQnuqzM+itWT+6SLdfIk= X-Gm-Gg: AeBDievzd8aZ3gmZZnPI9IyVqnYgIk+jTHQqtXISYoeEytN6JxsgkTSYn7cGuNjUIIn gFlua8G23Seyrb/1Q+yLzK428lAAj/zrgmPSZ83Rm8vdQ+SH4wn/Je0HwV98nK6A9lSiwov2ejB 6WJu0uGXeMe2Q2eQk/9g2GynQ1ZgY6lXT6Dpsg6njzHjGT6zIPjPDz3Oi8NgjBi6/DMl9FZi9yq p4QQlxmTm2a4HNo4R2xC4ftxLhtcy/1QW8c3yrVJ7jnH47CgLYOMNJ6Kn/N5R13zPo1oU+AfeRo t7je0Tt5JvEG5xyFHJUFgrAVRhPfS1eT0mfDe7y7JnWS8etSh88ZtFlSnlY/lmE16YxGsX/GtVP LCks0xoRcSnh7uUxm1L0eQ3luRyYihC9ngwHphRJEe8HbiWYL2f8rIbzLD9BD6cptX/3oJzQcOZ xH5JxZkDo2odRkro8+lMaRkS+PaJxfki+VKe9LQ4PLKcM= X-Received: by 2002:a05:6000:184e:b0:43b:9a9f:8956 with SMTP id ffacd0b85a97d-43fe3e0715dmr63483116f8f.22.1777279721576; Mon, 27 Apr 2026 01:48:41 -0700 (PDT) Received: from [10.11.12.108] ([79.115.63.228]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4cc2cacsm79702504f8f.13.2026.04.27.01.48.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Apr 2026 01:48:41 -0700 (PDT) Message-ID: <84c292d8-d2a0-4c29-bd28-cc00f66c2f43@linaro.org> Date: Mon, 27 Apr 2026 11:48:38 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] firmware: samsung: fix stale response flag in acpm_prepare_xfer() To: Titouan Ameline de Cadeville Cc: krzk@kernel.org, alim.akhtar@samsung.com, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20260426210255.73674-1-titouan.ameline@gmail.com> Content-Language: en-US From: Tudor Ambarus In-Reply-To: <20260426210255.73674-1-titouan.ameline@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, Thanks for the patch! On 4/27/26 12:02 AM, Titouan Ameline de Cadeville wrote: > acpm_prepare_xfer() only ever set rx_data->response to true, never > false. A reused sequence number slot could therefore inherit a stale > true from a previous transfer that expected a response, causing > acpm_get_rx() to enter the response-copy path for a fire-and-forget > transfer whose rxd is NULL. > > Unconditionally assign the correct boolean value so the slot is fully > reset on every reuse. > How did you find this? Sashiko identified this too when reviewing the ACPM thermal patches. I sent some fixes last week, where this bug is squashed as well: https://lore.kernel.org/linux-samsung-soc/20260423-acpm-fixes-sashiko-reports-v1-0-2217b790925e@linaro.org/T/#m1c32aa4c84ea7e3909bc8fe7599585b71e95d8b5 Thanks! ta > Fixes: a88927b534ba ("firmware: add Exynos ACPM protocol driver") > Signed-off-by: Titouan Ameline de Cadeville > --- > drivers/firmware/samsung/exynos-acpm.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/firmware/samsung/exynos-acpm.c b/drivers/firmware/samsung/exynos-acpm.c > index 16c46ed60837..2fee6bb60efc 100644 > --- a/drivers/firmware/samsung/exynos-acpm.c > +++ b/drivers/firmware/samsung/exynos-acpm.c > @@ -380,8 +380,7 @@ static void acpm_prepare_xfer(struct acpm_chan *achan, > /* Clear data for upcoming responses */ > rx_data = &achan->rx_data[achan->seqnum - 1]; > memset(rx_data->cmd, 0, sizeof(*rx_data->cmd) * rx_data->n_cmd); > - if (xfer->rxd) > - rx_data->response = true; > + rx_data->response = !!xfer->rxd; > > /* Flag the index based on seqnum. (seqnum: 1~63, bitmap: 0~62) */ > set_bit(achan->seqnum - 1, achan->bitmap_seqnum);