From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: a.zummo@towertech.it, linux-rtc@vger.kernel.org
Subject: Re: [bug report] [PATCH] RTC subsystem: class
Date: Thu, 15 Oct 2020 19:38:38 +0200 [thread overview]
Message-ID: <20201015173838.GF134622@piout.net> (raw)
In-Reply-To: <20201015095851.GA3042688@mwanda>
On 15/10/2020 12:58:51+0300, Dan Carpenter wrote:
> Hello Alessandro Zummo,
>
> The patch 0c86edc0d497: "[PATCH] RTC subsystem: class" from Mar 27,
> 2006, leads to the following static checker warning:
>
Wow, 14 years ago :)
> drivers/rtc/rtc-r9701.c:109 r9701_set_datetime()
> error: undefined (user controlled) shift '1 << dt->tm_wday'
>
> drivers/rtc/rtc-r9701.c
> 95 static int r9701_set_datetime(struct device *dev, struct rtc_time *dt)
> 96 {
> 97 int ret, year;
> 98
> 99 year = dt->tm_year + 1900;
> 100 if (year >= 2100 || year < 2000)
> 101 return -EINVAL;
> 102
> 103 ret = write_reg(dev, RHRCNT, bin2bcd(dt->tm_hour));
> 104 ret = ret ? ret : write_reg(dev, RMINCNT, bin2bcd(dt->tm_min));
> 105 ret = ret ? ret : write_reg(dev, RSECCNT, bin2bcd(dt->tm_sec));
> 106 ret = ret ? ret : write_reg(dev, RDAYCNT, bin2bcd(dt->tm_mday));
> 107 ret = ret ? ret : write_reg(dev, RMONCNT, bin2bcd(dt->tm_mon + 1));
> 108 ret = ret ? ret : write_reg(dev, RYRCNT, bin2bcd(dt->tm_year - 100));
> 109 ret = ret ? ret : write_reg(dev, RWKCNT, 1 << dt->tm_wday);
>
> I would have expected that rtc_valid_tm() would check that dt->tm_wday
> as valid but it doesn't. As far as I can see dt->tm_wday can be set to
> any int value in the rtc_dev_ioctl().
>
Nobody cares about tm_wday and userspace usually passes 0. For now, it
is left to individual rtc drivers to check and correct tm_wday when they
care in order to avoid having more calculations is the path for all the
other RTCs that don't care.
Honestly, for this RTC, this doesn't matter much because the value
isn't even read back.
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2020-10-15 17:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-15 9:58 [bug report] [PATCH] RTC subsystem: class Dan Carpenter
2020-10-15 17:38 ` Alexandre Belloni [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201015173838.GF134622@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=a.zummo@towertech.it \
--cc=dan.carpenter@oracle.com \
--cc=linux-rtc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox