From: sshtylyov@mvista.com (Sergei Shtylyov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 3/6] mpcore_wdt: Fix WDIOC_SETOPTIONS handling
Date: Wed, 06 Jul 2011 16:05:22 +0400 [thread overview]
Message-ID: <4E144F82.8060300@mvista.com> (raw)
In-Reply-To: <1309892440-3260-4-git-send-email-vkuzmichev@mvista.com>
Hello.
On 05-07-2011 23:00, Vitaly Kuzmichev wrote:
> According to the include/linux/watchdog.h WDIOC_SETOPTIONS is
> classified as 'read from device' ioctl call:
> #define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int)
> However, the driver 'mpcore_wdt' performs 'copy_from_user' only if
> _IOC_WRITE is set, thus the local variable 'uarg' which is used in
> WDIOC_SETOPTIONS handling remains uninitialized.
> The proper way to fix this is to bind WDIOC_SETOPTIONS to _IOW,
> but this will break compatibility.
> So adding additional condition for performing 'copy_from_user'.
> Signed-off-by: Vitaly Kuzmichev<vkuzmichev@mvista.com>
> ---
> drivers/watchdog/mpcore_wdt.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
> diff --git a/drivers/watchdog/mpcore_wdt.c b/drivers/watchdog/mpcore_wdt.c
> index 7a3d6b2..b330a0a 100644
> --- a/drivers/watchdog/mpcore_wdt.c
> +++ b/drivers/watchdog/mpcore_wdt.c
> @@ -240,7 +240,8 @@ static long mpcore_wdt_ioctl(struct file *file, unsigned int cmd,
> if (_IOC_DIR(cmd)&& _IOC_SIZE(cmd)> sizeof(uarg))
> return -ENOTTY;
>
> - if (_IOC_DIR(cmd) & _IOC_WRITE) {
> + if (_IOC_DIR(cmd) & _IOC_WRITE
I think you need parens around this.
> + || cmd == WDIOC_SETOPTIONS) {
> ret = copy_from_user(&uarg, (void __user *)arg, _IOC_SIZE(cmd));
> if (ret)
> return -EFAULT;
WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Vitaly Kuzmichev <vkuzmichev@mvista.com>
Cc: linux-arm-kernel@lists.infradead.org,
linux-watchdog@vger.kernel.org,
Russell King <linux@arm.linux.org.uk>,
Marc Zyngier <marc.zyngier@arm.com>,
Wim Van Sebroeck <wim@iguana.be>, Arnd Bergmann <arnd@arndb.de>,
Nicolas Pitre <nico@fluxnic.net>,
John Stultz <johnstul@us.ibm.com>,
linux-kernel@vger.kernel.org, arm@kernel.org,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH V2 3/6] mpcore_wdt: Fix WDIOC_SETOPTIONS handling
Date: Wed, 06 Jul 2011 16:05:22 +0400 [thread overview]
Message-ID: <4E144F82.8060300@mvista.com> (raw)
In-Reply-To: <1309892440-3260-4-git-send-email-vkuzmichev@mvista.com>
Hello.
On 05-07-2011 23:00, Vitaly Kuzmichev wrote:
> According to the include/linux/watchdog.h WDIOC_SETOPTIONS is
> classified as 'read from device' ioctl call:
> #define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int)
> However, the driver 'mpcore_wdt' performs 'copy_from_user' only if
> _IOC_WRITE is set, thus the local variable 'uarg' which is used in
> WDIOC_SETOPTIONS handling remains uninitialized.
> The proper way to fix this is to bind WDIOC_SETOPTIONS to _IOW,
> but this will break compatibility.
> So adding additional condition for performing 'copy_from_user'.
> Signed-off-by: Vitaly Kuzmichev<vkuzmichev@mvista.com>
> ---
> drivers/watchdog/mpcore_wdt.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
> diff --git a/drivers/watchdog/mpcore_wdt.c b/drivers/watchdog/mpcore_wdt.c
> index 7a3d6b2..b330a0a 100644
> --- a/drivers/watchdog/mpcore_wdt.c
> +++ b/drivers/watchdog/mpcore_wdt.c
> @@ -240,7 +240,8 @@ static long mpcore_wdt_ioctl(struct file *file, unsigned int cmd,
> if (_IOC_DIR(cmd)&& _IOC_SIZE(cmd)> sizeof(uarg))
> return -ENOTTY;
>
> - if (_IOC_DIR(cmd) & _IOC_WRITE) {
> + if (_IOC_DIR(cmd) & _IOC_WRITE
I think you need parens around this.
> + || cmd == WDIOC_SETOPTIONS) {
> ret = copy_from_user(&uarg, (void __user *)arg, _IOC_SIZE(cmd));
> if (ret)
> return -EFAULT;
WBR, Sergei
next prev parent reply other threads:[~2011-07-06 12:05 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-04 9:45 [PATCH 0/4] ARM: smp_twd: mpcore_wdt: Fix MPCORE watchdog setup vkuzmichev
2010-10-04 9:45 ` vkuzmichev at mvista.com
2010-10-04 9:45 ` [PATCH 1/4] ARM: smp_twd: mpcore_wdt: Fix watchdog counter loading vkuzmichev
2010-10-04 9:45 ` vkuzmichev at mvista.com
2010-10-04 9:45 ` [PATCH 2/4] ARM: smp_twd: Fix typo in twd_timer_rate printout vkuzmichev
2010-10-04 9:45 ` vkuzmichev at mvista.com
2010-10-04 9:45 ` [PATCH 3/4] ARM: mpcore_wdt: Fix WDIOC_SETOPTIONS handling vkuzmichev
2010-10-04 9:45 ` vkuzmichev at mvista.com
2010-10-04 9:45 ` [PATCH 4/4] ARM: mpcore_wdt: Fix timer mode setup vkuzmichev
2010-10-04 9:45 ` vkuzmichev at mvista.com
2011-05-27 8:26 ` [PATCH 0/4] ARM: smp_twd: mpcore_wdt: Fix MPCORE watchdog setup Wim Van Sebroeck
2011-05-27 8:26 ` Wim Van Sebroeck
2011-05-27 10:44 ` Marc Zyngier
2011-05-27 10:44 ` Marc Zyngier
2011-05-27 10:44 ` Marc Zyngier
2011-07-05 19:00 ` [PATCH V2 0/6] arm_smp_twd: " Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-06 10:05 ` Marc Zyngier
2011-07-06 10:05 ` Marc Zyngier
2011-07-06 10:14 ` Russell King - ARM Linux
2011-07-06 10:14 ` Russell King - ARM Linux
2011-07-06 11:05 ` Catalin Marinas
2011-07-06 11:05 ` Catalin Marinas
2011-07-06 11:16 ` Russell King - ARM Linux
2011-07-06 11:16 ` Russell King - ARM Linux
2011-07-10 10:39 ` Russell King - ARM Linux
2011-07-10 10:39 ` Russell King - ARM Linux
2011-07-11 9:43 ` Catalin Marinas
2011-07-11 9:43 ` Catalin Marinas
2011-07-11 9:54 ` Russell King - ARM Linux
2011-07-11 9:54 ` Russell King - ARM Linux
2011-07-11 11:06 ` Catalin Marinas
2011-07-11 11:06 ` Catalin Marinas
2011-07-06 12:27 ` Vitaly Kuzmichev
2011-07-06 12:27 ` Vitaly Kuzmichev
2011-07-06 12:39 ` Marc Zyngier
2011-07-06 12:39 ` Marc Zyngier
2011-07-06 15:06 ` Vitaly Kuzmichev
2011-07-06 15:06 ` Vitaly Kuzmichev
2011-07-05 19:00 ` [PATCH V2 1/6] arm_smp_twd: Fix typo in 'twd_timer_rate' printing Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-05 19:00 ` [PATCH V2 2/6] arm_smp_twd: mpcore_wdt: Fix watchdog counter loading Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-06 12:05 ` Arnd Bergmann
2011-07-06 12:05 ` Arnd Bergmann
2011-07-05 19:00 ` [PATCH V2 3/6] mpcore_wdt: Fix WDIOC_SETOPTIONS handling Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-06 12:05 ` Sergei Shtylyov [this message]
2011-07-06 12:05 ` Sergei Shtylyov
2011-07-06 12:22 ` Arnd Bergmann
2011-07-06 12:22 ` Arnd Bergmann
2011-07-06 13:13 ` Vitaly Kuzmichev
2011-07-06 13:13 ` Vitaly Kuzmichev
2011-07-06 13:48 ` Russell King - ARM Linux
2011-07-06 13:48 ` Russell King - ARM Linux
2011-07-06 13:52 ` Russell King - ARM Linux
2011-07-06 13:52 ` Russell King - ARM Linux
2011-07-06 14:19 ` Arnd Bergmann
2011-07-06 14:19 ` Arnd Bergmann
2011-07-06 15:27 ` Arnd Bergmann
2011-07-06 15:27 ` Arnd Bergmann
2011-07-06 17:28 ` Wim Van Sebroeck
2011-07-06 17:28 ` Wim Van Sebroeck
2011-07-05 19:00 ` [PATCH V2 4/6] mpcore_wdt: Fix timer mode setup Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-05 19:00 ` [PATCH V2 5/6] mpcore_wdt: Add cpufreq notifier to reload counter Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-06 12:09 ` Sergei Shtylyov
2011-07-06 12:09 ` Sergei Shtylyov
2011-07-05 19:00 ` [PATCH V2 6/6] mpcore_wdt: Move declarations in a separate header Vitaly Kuzmichev
2011-07-05 19:00 ` Vitaly Kuzmichev
2011-07-06 11:58 ` Arnd Bergmann
2011-07-06 11:58 ` Arnd Bergmann
2011-07-06 12:36 ` Vitaly Kuzmichev
2011-07-06 12:36 ` Vitaly Kuzmichev
2011-07-06 12:48 ` Arnd Bergmann
2011-07-06 12:48 ` Arnd Bergmann
2011-07-10 10:42 ` Russell King - ARM Linux
2011-07-10 10:42 ` Russell King - ARM Linux
2011-07-06 12:11 ` Sergei Shtylyov
2011-07-06 12:11 ` Sergei Shtylyov
2011-07-07 12:22 ` [PATCH V3 0/4] ARM: smp_twd: mpcore_wdt: Fix MPCORE watchdog setup Vitaly Kuzmichev
2011-07-07 12:22 ` Vitaly Kuzmichev
2011-07-07 12:23 ` [PATCH V3 1/4] ARM: smp_twd: Fix typo in 'twd_timer_rate' printing Vitaly Kuzmichev
2011-07-07 12:23 ` Vitaly Kuzmichev
2011-07-07 12:39 ` Russell King - ARM Linux
2011-07-07 12:39 ` Russell King - ARM Linux
2011-07-07 12:50 ` Vitaly Kuzmichev
2011-07-07 12:50 ` Vitaly Kuzmichev
2011-07-07 13:31 ` Vitaly Kuzmichev
2011-07-07 13:31 ` Vitaly Kuzmichev
2011-07-07 16:20 ` Vitaly Kuzmichev
2011-07-07 16:20 ` Vitaly Kuzmichev
2011-07-10 10:47 ` Russell King - ARM Linux
2011-07-10 10:47 ` Russell King - ARM Linux
2011-07-11 11:50 ` Vitaly Kuzmichev
2011-07-11 11:50 ` Vitaly Kuzmichev
2011-07-07 12:23 ` [PATCH V3 2/4] ARM: smp_twd: mpcore_wdt: Fix watchdog counter loading Vitaly Kuzmichev
2011-07-07 12:23 ` Vitaly Kuzmichev
2011-07-07 12:44 ` Arnd Bergmann
2011-07-07 12:44 ` Arnd Bergmann
2011-07-07 14:09 ` Vitaly Kuzmichev
2011-07-07 14:09 ` Vitaly Kuzmichev
2011-07-07 12:23 ` [PATCH V3 3/4] ARM: mpcore_wdt: Fix WDIOC_SETOPTIONS handling Vitaly Kuzmichev
2011-07-07 12:23 ` Vitaly Kuzmichev
2011-07-07 12:45 ` Arnd Bergmann
2011-07-07 12:45 ` Arnd Bergmann
2011-07-07 12:23 ` [PATCH V3 4/4] ARM: mpcore_wdt: Fix timer mode setup Vitaly Kuzmichev
2011-07-07 12:23 ` Vitaly Kuzmichev
2011-07-07 12:46 ` [PATCH V3 0/4] ARM: smp_twd: mpcore_wdt: Fix MPCORE watchdog setup Wim Van Sebroeck
2011-07-07 12:46 ` Wim Van Sebroeck
2011-07-07 14:06 ` [PATCH V4 2/4] ARM: smp_twd: mpcore_wdt: Fix watchdog counter loading Vitaly Kuzmichev
2011-07-07 14:06 ` Vitaly Kuzmichev
-- strict thread matches above, loose matches on Subject: below --
2011-07-06 13:18 [PATCH V2 3/6] mpcore_wdt: Fix WDIOC_SETOPTIONS handling Wim Van Sebroeck
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=4E144F82.8060300@mvista.com \
--to=sshtylyov@mvista.com \
--cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.