AF:
NF:0
PS:10
SRH:1
SFN:
DSR:
MID:<20071203112252.32e75d24@ripper.onstor.net>
CFG:
PT:0
S:andy.sharp@onstor.com
RQ:
SSV:onstor-exch02.onstor.net
NSV:
SSH:
R:<alan@lxorguk.ukuu.org.uk>,<linux-mips@linux-mips.org>,<ralf@linux-mips.org>,<akpm@linux-foundation.org>,<wim@iguana.be>
MAID:1
X-Sylpheed-Privacy-System:
X-Sylpheed-Sign:0
SCF:#mh/Mailbox/sent
RMID:#imap/andys@onstor.net@onstor-exch02.onstor.net/INBOX	0	20071203183419.3213d551@the-village.bc.nu
X-Sylpheed-End-Special-Headers: 1
Date: Mon, 3 Dec 2007 11:24:18 -0800
From: Andrew Sharp <andy.sharp@onstor.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>,
 akpm@linux-foundation.org, wim@iguana.be
Subject: Re: [PATCH] Add support for SB1 hardware watchdog.
Message-ID: <20071203112418.26b94838@ripper.onstor.net>
In-Reply-To: <20071203183419.3213d551@the-village.bc.nu>
References: <20071203181658.GA26631@onstor.com>
	<20071203183419.3213d551@the-village.bc.nu>
Organization: Onstor
X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.8.20; x86_64-pc-linux-gnu)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 3 Dec 2007 18:34:19 +0000 Alan Cox <alan@lxorguk.ukuu.org.uk>
wrote:

> > +	  on such processors; this driver supports only the first
> > one,
> > +	  because currently Linux only supports exporting one
> > watchdog
> > +	  to userspace.
> 
> Yep. Perhaps that should change.

I thought about that just a little; I'm just not sure what it would
mean to have multiple watchdog devices.

> > + * wdog is the iomem address of the cfg register
> > + */
> > + void
> > +sbwdog_set(char __iomem *wdog, unsigned long t)
> > +{
> > +	__raw_writeb(0, wdog - 0x10);
> > +	__raw_writeq(t & 0x7fffffUL, wdog);
> > +}
> 
> What guarantees you don't get a pair of these calls at once or
> interleaving ?

Not much, I suppose, except that opening the device file is exclusive.
A thread could fork (or dup) after that and get crazy in a theoretical
scenario ... are you suggesting this be serialized?

> 
> 
> > +		 * return the bits from the config register
> > +		 */
> > +		ret = put_user(__raw_readb(user_dog), p);
> 
> Should return the translated status bits ?

Don't need this really.  I see a few more things that need cleaning
up so I will do that and submit another patch.  And with changing of
the directory up a level, I also forgot the makefile change.

> 
> 
> Alan
