| Message ID | 20250510150945.18387-1-aha310510@gmail.com |
|---|---|
| State | Superseded |
| Headers | show
Return-Path:
<linux-rtc+bounces-4085-incoming=patchwork.ozlabs.org@vger.kernel.org>
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@legolas.ozlabs.org
Authentication-Results: legolas.ozlabs.org;
dkim=pass (2048-bit key;
unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256
header.s=20230601 header.b=WrwcGYwB;
dkim-atps=neutral
Authentication-Results: legolas.ozlabs.org;
spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org
(client-ip=147.75.199.223; helo=ny.mirrors.kernel.org;
envelope-from=linux-rtc+bounces-4085-incoming=patchwork.ozlabs.org@vger.kernel.org;
receiver=patchwork.ozlabs.org)
Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [147.75.199.223])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384)
(No client certificate requested)
by legolas.ozlabs.org (Postfix) with ESMTPS id 4Zvq6w6zLwz1yPv
for <incoming@patchwork.ozlabs.org>; Sun, 11 May 2025 01:10:16 +1000 (AEST)
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by ny.mirrors.kernel.org (Postfix) with ESMTPS id 89A3D4C0DCA
for <incoming@patchwork.ozlabs.org>; Sat, 10 May 2025 15:10:31 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by smtp.subspace.kernel.org (Postfix) with ESMTP id 02DBF2253A0;
Sat, 10 May 2025 15:10:27 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="WrwcGYwB"
X-Original-To: linux-rtc@vger.kernel.org
Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com
[209.85.210.182])
(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 717551DD0C7;
Sat, 10 May 2025 15:10:25 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
arc=none smtp.client-ip=209.85.210.182
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
t=1746889826; cv=none;
b=KhuTQcAuWlrkW84n2q6bi8kFhTRMoVPycmWtQEs6DjRY1an42yA7tPTcegbLrPx35z5QH53MD7BXQqEth2YstvJt4fJXO7ZK4jIaaZ4Dg8SQeCKHM/vebMmciolwI180RUdz1MdnqFovVWfHUPAbJ+mZe7DI/DOsWJHV6ty7aWc=
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
s=arc-20240116; t=1746889826; c=relaxed/simple;
bh=fj8vk2nF5Goc0jM13PecpuLrre3yWedEKp7zIwxRSro=;
h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;
b=Q6Rf0NGTFAV5Dhn4xvjo72YRpenka8q70DPZIPmU/g7mvmD2hLJnbf9MqvcS5ctL/fwCsX70DJZg16/7VR45rW29XAfaO4aI0Ouis6WJrOGzHg5/YGsvTTl2AcTWXytBXMcvDw4lBmRWTKIm/0kJ0F4wQsAL8hLlhDa+PKd5VXc=
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com;
spf=pass smtp.mailfrom=gmail.com;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b=WrwcGYwB; arc=none smtp.client-ip=209.85.210.182
Authentication-Results: smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com
Authentication-Results: smtp.subspace.kernel.org;
spf=pass smtp.mailfrom=gmail.com
Received: by mail-pf1-f182.google.com with SMTP id
d2e1a72fcca58-74248a3359fso1101757b3a.2;
Sat, 10 May 2025 08:10:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1746889824; x=1747494624;
darn=vger.kernel.org;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:from:to:cc:subject:date:message-id:reply-to;
bh=s5NjWbgd+215NvmTsJYPIGQXgwcjX49aa20RxmgDo9M=;
b=WrwcGYwBoKexy9y5cabZ/8bAgDVwdnz+WauieKUKki9S6BPhmiiSJBBg2meK8PUu5z
ig4Pgy32Hikl9Vc9FonPpzTaTNaP6tn56wwe9RNm20rs7dv3/9+zqpIOHESRHwE4Ibn5
hpILcEwPZ3jGCKIKWVv/ph3p8JwJ12pKnkqMGK1fyzz/90ccF1XjGArl9VK2pCdrar1J
IK2B58ttcbLOPnN8fXiWyFtS+q6A8vmqwGqK4F+nDiAp2JsuyR5hp+dDMgo2dFIe8RG9
CWETOthkOUQ5twVneUcC+yQehscCom2Ld4XH+24js6gger4z8LqZA28KVZxRBysU5ery
/ILA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1746889824; x=1747494624;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=s5NjWbgd+215NvmTsJYPIGQXgwcjX49aa20RxmgDo9M=;
b=MbTdJoEwB7+7fuxjEgNGJrIsfsQYdmAZnY1NkJzIqiYJ0jXTbiSQucRsHCylWMmrV0
WbuDP2PCf46aO4iPf0zlZFGHt3/HGrkCrXjqfG4KEJUoNP2n14wvhRVaLfyED939wqXP
MODHAPLVCvWyHuChD8U3pCN3oWD1Te302Dtr1l0kTxdqm8CAtNCaV0+bUH0JQOLezg4e
Qo0atwmopGsXD8mYWj5waUnrnBaHK6rp0X38AJ4M8AKXmdRcw4w+D3+2yXVZcLN6psQM
NB570pWT2icQZ3O+7bAbhfMGtZyPIgaxOykoW9hz18F1XT5sJrKgKmU/WWDcIA4y/Sk8
4fQA==
X-Forwarded-Encrypted: i=1;
AJvYcCVSj0WqDFnZsl7MYVK9Ci3cWtugcci5x68GIMi4DdkFTPy5wE9pp9ulwSi1ZWSPGU54WQMIAoA26EdLytI=@vger.kernel.org,
AJvYcCXIr0X4zMQcJrwp0ajYnUngIYR/2IyIp91P+kAbOuUmR2whU0/j4CfeBaQxCe0B7CrO2e+A6PIQ@vger.kernel.org,
AJvYcCXbM4zX5YIUkYPBhVOVKOlISsZglKvvHtj59Oie8O5aVFD5Rq9qmejTOXyJ2IUFnyUjRm2QfejFXWdJ@vger.kernel.org
X-Gm-Message-State: AOJu0YyhbngUzuxsi+0aAhBHTqwgEHjoFMjwhqYoTeGstXZEF7taaWwm
4oALVYbedleX1s/Jq0pEIHVx7se/W3qvFFqIxu5WSNpoFoiLc1Qg
X-Gm-Gg: ASbGncvTF0zf8ByiTKjHGDszoBS1KCMHlW4ZW9qRmfIW0QcVYPOaNjWfpcF5aNDqg7q
IIk9ioovmGvnSvdycLnekO2edyWErofisNsqgDt7/P9hGX/m5Y1uCLkF3e/MmMHuI4HAoEdjDLS
UdB6kXtRxTGARdJmZH53gjh2CXY9OTdDqDtN4bPjvZR0JWxlhG5NrwBB9eJO9N8Dn5j6Fdpn6QP
MVwXDPhiKrRPMIQvjKcydPLwp87FaGoC+0SCkvMGawTzF6aA7pOcAyqtwLwpVCqvCWji4C4sBS8
/fhdqw+XmwIgwlpeoj2zbb7EVpTojQ11702EiM9wNm+sJz4gYZ53+wnzQmdF4ThfEa8C3S7WpxO
RuCnf
X-Google-Smtp-Source:
AGHT+IE4QDBGiCycNXUyjCPkwa79deYcY277mu+wqZuo1qApUC6KJqFhsxYVGJVK7G71naCt3LuLbg==
X-Received: by 2002:a05:6a21:e92:b0:1f5:8678:1832 with SMTP id
adf61e73a8af0-215abb8e35amr10807619637.11.1746889824477;
Sat, 10 May 2025 08:10:24 -0700 (PDT)
Received: from localhost.localdomain ([121.185.186.233])
by smtp.gmail.com with ESMTPSA id
41be03b00d2f7-b2350ddb4cbsm2990428a12.52.2025.05.10.08.10.22
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sat, 10 May 2025 08:10:24 -0700 (PDT)
From: Jeongjun Park <aha310510@gmail.com>
To: alexandre.belloni@bootlin.com
Cc: gregkh@linuxfoundation.org,
akpm@linux-foundation.org,
linux-rtc@vger.kernel.org,
linux-kernel@vger.kernel.org,
stable@vger.kernel.org,
Jeongjun Park <aha310510@gmail.com>
Subject: [PATCH] rtc: fix data race in rtc_dev_poll()
Date: Sun, 11 May 2025 00:09:44 +0900
Message-ID: <20250510150945.18387-1-aha310510@gmail.com>
X-Mailer: git-send-email 2.43.0
Precedence: bulk
X-Mailing-List: linux-rtc@vger.kernel.org
List-Id: <linux-rtc.vger.kernel.org>
List-Subscribe: <mailto:linux-rtc+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-rtc+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
|
| Series |
rtc: fix data race in rtc_dev_poll()
|
expand
|
diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c index 0eeae5bcc3aa..a6570a5a938a 100644 --- a/drivers/rtc/dev.c +++ b/drivers/rtc/dev.c @@ -195,7 +195,9 @@ static __poll_t rtc_dev_poll(struct file *file, poll_table *wait) poll_wait(file, &rtc->irq_queue, wait); + spin_lock_irq(&rtc->irq_lock); data = rtc->irq_data; + spin_unlock_irq(&rtc->irq_lock); return (data != 0) ? (EPOLLIN | EPOLLRDNORM) : 0; }
I found data-race in my fuzzer: ================================================================== BUG: KCSAN: data-race in rtc_dev_poll / rtc_handle_legacy_irq write to 0xffff88800b307380 of 8 bytes by interrupt on cpu 1: rtc_handle_legacy_irq+0x58/0xb0 drivers/rtc/interface.c:624 rtc_pie_update_irq+0x75/0x90 drivers/rtc/interface.c:672 __run_hrtimer kernel/time/hrtimer.c:1761 [inline] __hrtimer_run_queues+0x2c4/0x5d0 kernel/time/hrtimer.c:1825 hrtimer_interrupt+0x214/0x4a0 kernel/time/hrtimer.c:1887 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1038 [inline] .... read to 0xffff88800b307380 of 8 bytes by task 11566 on cpu 0: rtc_dev_poll+0x6c/0xa0 drivers/rtc/dev.c:198 vfs_poll include/linux/poll.h:82 [inline] select_poll_one fs/select.c:480 [inline] do_select+0x95f/0x1030 fs/select.c:536 core_sys_select+0x284/0x6d0 fs/select.c:677 do_pselect.constprop.0+0x118/0x150 fs/select.c:759 .... value changed: 0x00000000000801c0 -> 0x00000000000802c0 ================================================================== rtc_dev_poll() is reading rtc->irq_data without a spinlock for some unknown reason. This causes a data-race, so we need to add a spinlock to fix it. Cc: <stable@vger.kernel.org> Fixes: e824290e5dcf ("[PATCH] RTC subsystem: dev interface") Signed-off-by: Jeongjun Park <aha310510@gmail.com> --- drivers/rtc/dev.c | 2 ++ 1 file changed, 2 insertions(+) --