linux-mips
[Top] [All Lists]

Re: [PATCH] Added MIPS RM9K watchdog driver

To: Randy Dunlap <rdunlap@xenotime.net>
Subject: Re: [PATCH] Added MIPS RM9K watchdog driver
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 2 Nov 2006 14:04:51 +0000
Cc: Wim Van Sebroeck <wim@iguana.be>, Thomas Koeller <thomas@koeller.dyndns.org>, Dave Jones <davej@redhat.com>, Alan Cox <alan@lxorguk.ukuu.org.uk>, Sam Ravnborg <sam@ravnborg.org>, Alexey Dobriyan <adobriyan@gmail.com>, linux-kernel@vger.kernel.org, linux-mips@linux-mips.org
In-reply-to: <20061101221125.73505baa.rdunlap@xenotime.net>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20061101184633.GA7056@infomag.infomag.iguana.be> <20061101221125.73505baa.rdunlap@xenotime.net>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.2.2i
On Wed, Nov 01, 2006 at 10:11:25PM -0800, Randy Dunlap wrote:

> >     wd_regs = ioremap_nocache(rr->start, rr->end + 1 - rr->start);
> >     if (unlikely(!wd_regs))
> >             return -ENOMEM;
> 
> There's no way to return the resources on failure?

MIPS drivers (and this one is specific to a particular MIPS SOC) are
generally a bit sloopy about checking of return values of ioremap because
ioremap is only doing some address arithmetic but no allocations that
actually could fail.  So for 64-bit kernels or addresses below 0x20000000
on a 32-bit system ioremap cannot fail.  In the same cases ioremap happens
to be a no-op because where nothing was allocated nothing needs to be
freed.

> >                     if (unlikely(__copy_from_user(&val, (const void __user 
> > *) arg,

Note to self, __copy_from_user and gang are generally assume to not
return an error so it might be a good idea to move that unlikely() into
the macro definitions.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>