[PATCH v2] Fix RTAS watchdog driver temperature read functionality
Utz Bacher
utz.bacher at de.ibm.com
Thu Jun 25 21:22:19 EST 2009
Adrian Reber wrote on 11.06.2009 12:52:17:
>
> I forgot about this patch. Can this still be merged?
>
>
> On Thu, Mar 26, 2009 at 01:05:42PM +0100, Adrian Reber wrote:
> > Using the RTAS watchdog driver to read out the temperature crashes
> > on a PXCAB:
> >
> > Unable to handle kernel paging request for data at address 0xfe347b50
> > Faulting instruction address: 0xc00000000001af64
> > Oops: Kernel access of bad area, sig: 11 [#1]
> >
> > The wrong usage of "(void *)__pa(&temperature)" in rtas_call() is
> > removed by using the function rtas_get_sensor() which does the
> > right thing.
> >
> > Signed-off-by: Adrian Reber <adrian at lisas.de>
> > ---
> > v2: use rtas_get_sensor(); typo fixed
> > ---
> > drivers/watchdog/wdrtas.c | 8 +++-----
> > 1 files changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c
> > index 5d3b1a8..a9f00dc 100644
> > --- a/drivers/watchdog/wdrtas.c
> > +++ b/drivers/watchdog/wdrtas.c
> > @@ -214,16 +214,14 @@ static void wdrtas_timer_keepalive(void)
> > */
> > static int wdrtas_get_temperature(void)
> > {
> > - long result;
> > + int result;
> > int temperature = 0;
> >
> > - result = rtas_call(wdrtas_token_get_sensor_state, 2, 2,
> > - (void *)__pa(&temperature),
> > - WDRTAS_THERMAL_SENSOR, 0);
> > + result = rtas_get_sensor(WDRTAS_THERMAL_SENSOR, 0, &temperature);
> >
> > if (result < 0)
> > printk(KERN_WARNING "wdrtas: reading the thermal sensor "
> > - "faild: %li\n", result);
> > + "failed: %i\n", result);
> > else
> > temperature = ((temperature * 9) / 5) + 32; /* fahrenheit */
> >
> > --
> > 1.5.6.6
makes sense. Second version also looks good to me -- thanks!
Acked-by: Utz Bacher <utz.bacher at de.ibm.com>
Utz
:wq
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090625/dfa31723/attachment.htm>
More information about the Linuxppc-dev
mailing list