Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp4914109pxb; Tue, 28 Sep 2021 06:51:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxJE2PIl/qLcpZGa8u96HO2KkjOgMcrT+MXa3h1K+HDQvugew72yl3aicmv5t1DR4Rckawy X-Received: by 2002:a17:907:6297:: with SMTP id nd23mr7148516ejc.62.1632837103314; Tue, 28 Sep 2021 06:51:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632837103; cv=none; d=google.com; s=arc-20160816; b=irHhE892+bk5DPanFPuwQoGTsZ2nyA4EuYXXRop9gvDiAXynhffmzag57Pd6SLmwGK 2nDYBhmqajkvaB+fm7leMsOlnwKTHWFS7hHAMqxNprZp+R9vIDcamEznwu3Gihf2pFdT FH0dBKyr6LG0mtwZ6FGYTnlfEsC/OL3jbHvsQ69rHBIWy1OUhgsKVFE/C/Kgzjs3sBCQ rDFwMJI7c/zEInupWpwo70o8j0jxDAdrnMH5qggnDgdMmEsFNxpZ/iw2uG9acz2yAyIJ y9XXhxXXLg9Os4mZbfId3AiQ5q3FhAX0CGpjmVmuoZEVsfd8feuXRsA7FQomLnxHTVYb qpJQ== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=CVPzKw2Lf6fMiEtRUXtIUtsODqt2nAe+y+A62+2Z9IY=; b=WNZE1ic2YaMSfFaJSJep6cXOrfyrEBMim7bWrTn8mnIDAlXwzbHKyXdh4KV0TM2N/5 aLnMJU0WjKe38ynwh0VjYMrkLpCto7uKjok8BcRG0e4xEwqVR+11+Y3hCngiSWkXRqqr +UbjFlkJHHxZx4/HZtr/K3no4jwGjEnvQ98zmWM4Rq6psCWwl8I3Kx5Z8o18WfZ8zZzJ ehs05iqzPYgj80dctW2il/eWzCdOqV5ldOJ8a9o4hl7998oMvGWtFgLJh3SKGUOydxMJ 4zbNGAffWo1pNXT/9cR1j8P3x65aab3unhc3iPVmVVUk+jAuaLSUCeE+j6A+T/KCyBum oKkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=DSXRZ0wp; 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=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t10si12094163ejg.316.2021.09.28.06.51.16; Tue, 28 Sep 2021 06:51:43 -0700 (PDT) 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=@canonical.com header.s=20210705 header.b=DSXRZ0wp; 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=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241014AbhI1Nsk (ORCPT + 99 others); Tue, 28 Sep 2021 09:48:40 -0400 Received: from smtp-relay-canonical-0.canonical.com ([185.125.188.120]:45458 "EHLO smtp-relay-canonical-0.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241007AbhI1Nsf (ORCPT ); Tue, 28 Sep 2021 09:48:35 -0400 Received: from localhost (1.general.cking.uk.vpn [10.172.193.212]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 19D29405E4; Tue, 28 Sep 2021 13:46:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1632836815; bh=CVPzKw2Lf6fMiEtRUXtIUtsODqt2nAe+y+A62+2Z9IY=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=DSXRZ0wptf2RiwWyAD0QPn2zdUgT89tEBpTwHBqCgEPUx48yTDEulxBLFXUCgpICR tyZJKsR+RUsxjSTytHcs6u/Vg7q9b75ycMuuVTICwi9Attq658OoC8bak2feTQFX9c h7GVZiR8+MJuFNvP9m/PJ6j91YF+/3jMw208n/QuA2IGg1BGwN/36KitkUzRiR3Vqm 8SCigiokb9y+ZWIigeBfQg9BVCLRH2ye4cQ0TyowvL1rmppSPFZakhmcDDpKg5tXz9 pJCKf1pDSRGOu38clY9lxfOjMHNOtxBMRWBXHzG33GvCBkw2B5VO7l1xvsIGMR4xGz TbazDNZNjvcaA== From: Colin King To: Daniel Palmer , Romain Perier , Alexandre Belloni , Nobuhiro Iwamatsu , linux-arm-kernel@lists.infradead.org, linux-rtc@vger.kernel.org Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH][next][V2] rtc: msc313: Fix unintentional sign extension issues with left shift of a u16 Date: Tue, 28 Sep 2021 14:46:54 +0100 Message-Id: <20210928134654.991923-1-colin.king@canonical.com> X-Mailer: git-send-email 2.32.0 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: Colin Ian King Shifting the u16 value returned by readw by 16 bits to the left will be promoted to a 32 bit signed int and then sign-extended to an unsigned long. If the top bit of the readw is set then the shifted value will be sign extended and the top 32 bits of the result will be set. Fixes: be7d9c9161b9 ("rtc: Add support for the MSTAR MSC313 RTC") Signed-off-by: Colin Ian King --- V2: Fix identical issue in msc313_rtc_read_time too. Thanks to Daniel Palmer for noticing this ommission. --- drivers/rtc/rtc-msc313.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-msc313.c b/drivers/rtc/rtc-msc313.c index 5f178d29cfd8..f3fde013c4b8 100644 --- a/drivers/rtc/rtc-msc313.c +++ b/drivers/rtc/rtc-msc313.c @@ -53,7 +53,7 @@ static int msc313_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm) unsigned long seconds; seconds = readw(priv->rtc_base + REG_RTC_MATCH_VAL_L) - | (readw(priv->rtc_base + REG_RTC_MATCH_VAL_H) << 16); + | ((unsigned long)readw(priv->rtc_base + REG_RTC_MATCH_VAL_H) << 16); rtc_time64_to_tm(seconds, &alarm->time); @@ -122,7 +122,7 @@ static int msc313_rtc_read_time(struct device *dev, struct rtc_time *tm) udelay(1); seconds = readw(priv->rtc_base + REG_RTC_CNT_VAL_L) - | (readw(priv->rtc_base + REG_RTC_CNT_VAL_H) << 16); + | ((unsigned long)readw(priv->rtc_base + REG_RTC_CNT_VAL_H) << 16); rtc_time64_to_tm(seconds, tm); -- 2.32.0