Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3601102pxb; Mon, 24 Jan 2022 13:14:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJxNe3Emis0nYC5Vq9t1nRxQeMs4iRmCV8UYqotH8dokFaDBC0GAaoWhd44EtP0UzIXyWQQA X-Received: by 2002:a63:7406:: with SMTP id p6mr12924638pgc.151.1643058878527; Mon, 24 Jan 2022 13:14:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643058878; cv=none; d=google.com; s=arc-20160816; b=BbD9tCJ94JdNzjbdaU/SJ0OzmhPlxxB1fgxfpB+buXkCAMIf+6bbtPB/YJfYrticcY HC7Eu6tg9qAR6klzQZS8n2EEnjtnkLe1RYMj77Z3kN3jadQW1ZN/IIO2EdTquSP47GK0 9Wv8f3UFuDxxi8O31XMZsdQ9gvZ4o69+LWPIHbrhuJ5SYXXNE/M/1Q3RFDU4SZT0iSrB kwUSB6RS/HcUctewsy6CcrijlL20buGLtEA3tOrynm/iwBM/qsog3mlieCRoDr5U583N S02LFYmKfFcdp6hR3EJ6Z1nKucvSKbp0mSSyudd5JK087xvEIruUYyjWAe+uUOs7bEs8 Zu2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YIq1anSxomuuDyTbtjVic0+R1sqGPVTP2BG8Z9JHu88=; b=bFzJf55ssJkRG0L70s/sYdzURp0qUVnqCf2X+/Msuy/8UFvQAYZqVzTrgJIWNhIs+q qYtYJ50ob5HjqVVRLTc0vORoJ0CLL/jpCH2hVQe0v9p1M40zYO/OFwamOZE0GT4k1KOr kXMVH7o1XiPB44i5WUMp9KMXKqF2WIHwJBbhfe7eR5aXXx9Qia++6RPUHpCB8ytt4FeU zd6qVltiuBdO/46x6CBZQcWLw/Ia6qKumkyi1KzzkANktpY9ikNclV0u7h5fCwm+kJ7i UWpHj6Q0Tu9/3HZH9jkaXdlR3Q/T84aVgK4FHIU0g64iveUTRmwsRG4ds1oePBy+0WUu tSxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=bvYTvkpF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y13si14763235pgc.372.2022.01.24.13.14.24; Mon, 24 Jan 2022 13:14:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=bvYTvkpF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1390488AbiAXUpc (ORCPT + 99 others); Mon, 24 Jan 2022 15:45:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1382937AbiAXU0c (ORCPT ); Mon, 24 Jan 2022 15:26:32 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94260C07E32E; Mon, 24 Jan 2022 11:41:32 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 52461B8121A; Mon, 24 Jan 2022 19:41:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4799C340E5; Mon, 24 Jan 2022 19:41:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643053290; bh=Q3d16Erybi8ks3P6I31MKaCH6TV11ACxsCvMgjcQY2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bvYTvkpFZ/QlxS159i2MpHNGjNGcu5akkQpNqqmGguT+4C5kKDwTn0UVDEewPMtT4 7cJYm/QdoOMTRcm0GiZ1xN21+anzpepo6WN+yMwQsofwGyWBlTaOhyhU6qdVbI9ZDO izrh7l0Wn3/FWTX3CXTVqh/yK2pfMS+pCRSU2B08= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Mateusz=20Jo=C5=84czyk?= , Nobuhiro Iwamatsu , Alessandro Zummo , Alexandre Belloni Subject: [PATCH 5.10 018/563] rtc: cmos: take rtc_lock while reading from CMOS Date: Mon, 24 Jan 2022 19:36:23 +0100 Message-Id: <20220124184025.048026288@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184024.407936072@linuxfoundation.org> References: <20220124184024.407936072@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mateusz Jończyk commit 454f47ff464325223129b9b5b8d0b61946ec704d upstream. Reading from the CMOS involves writing to the index register and then reading from the data register. Therefore access to the CMOS has to be serialized with rtc_lock. This invocation of CMOS_READ was not serialized, which could cause trouble when other code is accessing CMOS at the same time. Use spin_lock_irq() like the rest of the function. Nothing in kernel modifies the RTC_DM_BINARY bit, so there could be a separate pair of spin_lock_irq() / spin_unlock_irq() before doing the math. Signed-off-by: Mateusz Jończyk Reviewed-by: Nobuhiro Iwamatsu Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: stable@vger.kernel.org Signed-off-by: Alexandre Belloni Link: https://lore.kernel.org/r/20211210200131.153887-2-mat.jonczyk@o2.pl Signed-off-by: Greg Kroah-Hartman --- drivers/rtc/rtc-cmos.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -463,7 +463,10 @@ static int cmos_set_alarm(struct device min = t->time.tm_min; sec = t->time.tm_sec; + spin_lock_irq(&rtc_lock); rtc_control = CMOS_READ(RTC_CONTROL); + spin_unlock_irq(&rtc_lock); + if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { /* Writing 0xff means "don't care" or "match all". */ mon = (mon <= 12) ? bin2bcd(mon) : 0xff;