linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix RTAS watchdog driver temperature read functionality
@ 2009-03-16 12:35 Adrian Reber
  2009-03-24  4:27 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 9+ messages in thread
From: Adrian Reber @ 2009-03-16 12:35 UTC (permalink / raw)
  To: linuxppc-dev


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]

This (removing "(void *)__pa") fixes it.

Signed-off-by: Adrian Reber <adrian@lisas.de>
---
 drivers/watchdog/wdrtas.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

Fix for:

Unable to handle kernel paging request for data at address 0xfe347b50
Faulting instruction address: 0xc00000000001af64
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=4 NUMA Cell
Modules linked in:
NIP: c00000000001af64 LR: c00000000001af28 CTR: c000000000281888
REGS: c0000000fe3477a0 TRAP: 0300   Not tainted  (2.6.29-rc6-11955-g2450cf5)
MSR: 9000000000001032 <ME,IR,DR>  CR: 22000422  XER: 00000000
DAR: 00000000fe347b50, DSISR: 0000000042000000
TASK = c0000000fe4886f0[1184] 'a.out' THREAD: c0000000fe344000 CPU: 1
GPR00: 000000000000002a c0000000fe347a20 c000000000ab2160 c000000000007bc0 
GPR04: 0000000022000422 c000000000281888 0000000000000000 00000400001e6138  
GPR08: 0000000000000008 c000000000b23ce4 0000000000000008 00000000fe347b54 
GPR12: 0000000082000424 c000000000b23680 c0000000003b37b0 c000000000441620 
GPR16: c0000000004412e0 c000000000441130 000000000e154ec8 c0000000003b4580 
GPR20: 0000000000000000 00000000100a0370 00000000100a0390 c000000000b23cc8 
GPR24: 0000000000000001 0000000000000002 00000000fe347b50 0000000000000002 
GPR28: 0000000000000010 c000000000b23cb0 c000000000a59588 0000000000000002 
NIP [c00000000001af64] .rtas_call+0x1ac/0x1f8
LR [c00000000001af28] .rtas_call+0x170/0x1f8
Call Trace:
[c0000000fe347a20] [c00000000001af28] .rtas_call+0x170/0x1f8 (unreliable)          
[c0000000fe347ae0] [c0000000002812e8] .wdrtas_get_temperature+0x48/0xa8  
[c0000000fe347b70] [c000000000281948] .wdrtas_ioctl+0xc0/0x300
[c0000000fe347c00] [c0000000000f58a4] .vfs_ioctl+0x54/0x138
[c0000000fe347c90] [c0000000000f5a20] .do_vfs_ioctl+0x98/0x738
[c0000000fe347d80] [c0000000000f6114] .SyS_ioctl+0x54/0xc8
[c0000000fe347e30] [c0000000000074b4] syscall_exit+0x0/0x40
Instruction dump:
2fba0000 419e0034 3939fffe 39400004 79290020 39290002 79281764 e93d0070 
7d7a5214 7c09502e 394a0004 7faa4000 <900bfffc> 409effe8 e93d0070 ebe90002 
---[ end trace 084fb7ab3feda750 ]---

diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c
index 5d3b1a8..30ee1f2 100644
--- a/drivers/watchdog/wdrtas.c
+++ b/drivers/watchdog/wdrtas.c
@@ -218,8 +218,7 @@ static int wdrtas_get_temperature(void)
 	int temperature = 0;
 
 	result = rtas_call(wdrtas_token_get_sensor_state, 2, 2,
-			   (void *)__pa(&temperature),
-			   WDRTAS_THERMAL_SENSOR, 0);
+			   &temperature, WDRTAS_THERMAL_SENSOR, 0);
 
 	if (result < 0)
 		printk(KERN_WARNING "wdrtas: reading the thermal sensor "
-- 
1.5.6.6

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] Fix RTAS watchdog driver temperature read functionality
  2009-03-16 12:35 [PATCH] Fix RTAS watchdog driver temperature read functionality Adrian Reber
@ 2009-03-24  4:27 ` Benjamin Herrenschmidt
  2009-03-24 11:45   ` Adrian Reber
  0 siblings, 1 reply; 9+ messages in thread
From: Benjamin Herrenschmidt @ 2009-03-24  4:27 UTC (permalink / raw)
  To: Adrian Reber; +Cc: linuxppc-dev

On Mon, 2009-03-16 at 13:35 +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]
> 
> This (removing "(void *)__pa") fixes it.

Looks correct, but why not use rtas_get_sensor() instead ? (Exported by
arch/powerpc/kernel/rtas.c

Cheers,
Ben.

> Signed-off-by: Adrian Reber <adrian@lisas.de>
> ---
>  drivers/watchdog/wdrtas.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> Fix for:
> 
> Unable to handle kernel paging request for data at address 0xfe347b50
> Faulting instruction address: 0xc00000000001af64
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=4 NUMA Cell
> Modules linked in:
> NIP: c00000000001af64 LR: c00000000001af28 CTR: c000000000281888
> REGS: c0000000fe3477a0 TRAP: 0300   Not tainted  (2.6.29-rc6-11955-g2450cf5)
> MSR: 9000000000001032 <ME,IR,DR>  CR: 22000422  XER: 00000000
> DAR: 00000000fe347b50, DSISR: 0000000042000000
> TASK = c0000000fe4886f0[1184] 'a.out' THREAD: c0000000fe344000 CPU: 1
> GPR00: 000000000000002a c0000000fe347a20 c000000000ab2160 c000000000007bc0 
> GPR04: 0000000022000422 c000000000281888 0000000000000000 00000400001e6138  
> GPR08: 0000000000000008 c000000000b23ce4 0000000000000008 00000000fe347b54 
> GPR12: 0000000082000424 c000000000b23680 c0000000003b37b0 c000000000441620 
> GPR16: c0000000004412e0 c000000000441130 000000000e154ec8 c0000000003b4580 
> GPR20: 0000000000000000 00000000100a0370 00000000100a0390 c000000000b23cc8 
> GPR24: 0000000000000001 0000000000000002 00000000fe347b50 0000000000000002 
> GPR28: 0000000000000010 c000000000b23cb0 c000000000a59588 0000000000000002 
> NIP [c00000000001af64] .rtas_call+0x1ac/0x1f8
> LR [c00000000001af28] .rtas_call+0x170/0x1f8
> Call Trace:
> [c0000000fe347a20] [c00000000001af28] .rtas_call+0x170/0x1f8 (unreliable)          
> [c0000000fe347ae0] [c0000000002812e8] .wdrtas_get_temperature+0x48/0xa8  
> [c0000000fe347b70] [c000000000281948] .wdrtas_ioctl+0xc0/0x300
> [c0000000fe347c00] [c0000000000f58a4] .vfs_ioctl+0x54/0x138
> [c0000000fe347c90] [c0000000000f5a20] .do_vfs_ioctl+0x98/0x738
> [c0000000fe347d80] [c0000000000f6114] .SyS_ioctl+0x54/0xc8
> [c0000000fe347e30] [c0000000000074b4] syscall_exit+0x0/0x40
> Instruction dump:
> 2fba0000 419e0034 3939fffe 39400004 79290020 39290002 79281764 e93d0070 
> 7d7a5214 7c09502e 394a0004 7faa4000 <900bfffc> 409effe8 e93d0070 ebe90002 
> ---[ end trace 084fb7ab3feda750 ]---
> 
> diff --git a/drivers/watchdog/wdrtas.c b/drivers/watchdog/wdrtas.c
> index 5d3b1a8..30ee1f2 100644
> --- a/drivers/watchdog/wdrtas.c
> +++ b/drivers/watchdog/wdrtas.c
> @@ -218,8 +218,7 @@ static int wdrtas_get_temperature(void)
>  	int temperature = 0;
>  
>  	result = rtas_call(wdrtas_token_get_sensor_state, 2, 2,
> -			   (void *)__pa(&temperature),
> -			   WDRTAS_THERMAL_SENSOR, 0);
> +			   &temperature, WDRTAS_THERMAL_SENSOR, 0);
>  
>  	if (result < 0)
>  		printk(KERN_WARNING "wdrtas: reading the thermal sensor "

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Fix RTAS watchdog driver temperature read functionality
  2009-03-24  4:27 ` Benjamin Herrenschmidt
@ 2009-03-24 11:45   ` Adrian Reber
  2009-03-24 21:00     ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 9+ messages in thread
From: Adrian Reber @ 2009-03-24 11:45 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

On Tue, Mar 24, 2009 at 03:27:18PM +1100, Benjamin Herrenschmidt wrote:
> On Mon, 2009-03-16 at 13:35 +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]
> > 
> > This (removing "(void *)__pa") fixes it.
> 
> Looks correct, but why not use rtas_get_sensor() instead ? (Exported by
> arch/powerpc/kernel/rtas.c

Ah, you mean something like?

 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..af2bbfa 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);
+		       "faild: %i\n", result);
 	else
 		temperature = ((temperature * 9) / 5) + 32; /* fahrenheit */

		Adrian

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] Fix RTAS watchdog driver temperature read functionality
  2009-03-24 11:45   ` Adrian Reber
@ 2009-03-24 21:00     ` Benjamin Herrenschmidt
  2009-03-25  3:49       ` Segher Boessenkool
  2009-03-26 12:05       ` [PATCH v2] " Adrian Reber
  0 siblings, 2 replies; 9+ messages in thread
From: Benjamin Herrenschmidt @ 2009-03-24 21:00 UTC (permalink / raw)
  To: Adrian Reber; +Cc: linuxppc-dev

On Tue, 2009-03-24 at 12:45 +0100, Adrian Reber wrote:
> On Tue, Mar 24, 2009 at 03:27:18PM +1100, Benjamin Herrenschmidt wrote:
> > On Mon, 2009-03-16 at 13:35 +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]
> > > 
> > > This (removing "(void *)__pa") fixes it.
> > 
> > Looks correct, but why not use rtas_get_sensor() instead ? (Exported by
> > arch/powerpc/kernel/rtas.c
> 
> Ah, you mean something like?

Right, now turn it into a proper patch submission :-)

Cheers,
Ben.

>  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..af2bbfa 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);
> +		       "faild: %i\n", result);
>  	else
>  		temperature = ((temperature * 9) / 5) + 32; /* fahrenheit */
> 
> 		Adrian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Fix RTAS watchdog driver temperature read functionality
  2009-03-24 21:00     ` Benjamin Herrenschmidt
@ 2009-03-25  3:49       ` Segher Boessenkool
  2009-03-26 12:05       ` [PATCH v2] " Adrian Reber
  1 sibling, 0 replies; 9+ messages in thread
From: Segher Boessenkool @ 2009-03-25  3:49 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

> Right, now turn it into a proper patch submission :-)

>>  	if (result < 0)
>>  		printk(KERN_WARNING "wdrtas: reading the thermal sensor "
>> -		       "faild: %li\n", result);
>> +		       "faild: %i\n", result);
>>  	else
>>  		temperature = ((temperature * 9) / 5) + 32; /* fahrenheit */

Fix the spelling of "failed" while you're at it?  (And Fahrenheit  
maybe).


Segher

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2] Fix RTAS watchdog driver temperature read functionality
  2009-03-24 21:00     ` Benjamin Herrenschmidt
  2009-03-25  3:49       ` Segher Boessenkool
@ 2009-03-26 12:05       ` Adrian Reber
  2009-06-11 10:52         ` Adrian Reber
  1 sibling, 1 reply; 9+ messages in thread
From: Adrian Reber @ 2009-03-26 12:05 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, Utz Bacher

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@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] Fix RTAS watchdog driver temperature read functionality
  2009-03-26 12:05       ` [PATCH v2] " Adrian Reber
@ 2009-06-11 10:52         ` Adrian Reber
  2009-06-25 11:22           ` Utz Bacher
  0 siblings, 1 reply; 9+ messages in thread
From: Adrian Reber @ 2009-06-11 10:52 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, Utz Bacher


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@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

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] Fix RTAS watchdog driver temperature read functionality
  2009-06-11 10:52         ` Adrian Reber
@ 2009-06-25 11:22           ` Utz Bacher
  2009-06-25 11:28             ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 9+ messages in thread
From: Utz Bacher @ 2009-06-25 11:22 UTC (permalink / raw)
  To: Adrian Reber; +Cc: linuxppc-dev-bounces+adrian=lisas.de, linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1836 bytes --]

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@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@de.ibm.com>

Utz

:wq

[-- Attachment #2: Type: text/html, Size: 2852 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] Fix RTAS watchdog driver temperature read functionality
  2009-06-25 11:22           ` Utz Bacher
@ 2009-06-25 11:28             ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Benjamin Herrenschmidt @ 2009-06-25 11:28 UTC (permalink / raw)
  To: Utz Bacher; +Cc: linuxppc-dev

On Thu, 2009-06-25 at 13:22 +0200, Utz Bacher wrote:
> 
> Adrian Reber wrote on 11.06.2009 12:52:17: 
> > 
> > I forgot about this patch. Can this still be merged?

Probably, can you re-send it in proper format to the list so it gets
into patchwork (unless it's already there in which case I'll pick it up
anyway) ?

Cheers,
Ben.

> > 
> > 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@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@de.ibm.com> 
> 
> Utz 
> 
> :wq

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-06-25 11:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-16 12:35 [PATCH] Fix RTAS watchdog driver temperature read functionality Adrian Reber
2009-03-24  4:27 ` Benjamin Herrenschmidt
2009-03-24 11:45   ` Adrian Reber
2009-03-24 21:00     ` Benjamin Herrenschmidt
2009-03-25  3:49       ` Segher Boessenkool
2009-03-26 12:05       ` [PATCH v2] " Adrian Reber
2009-06-11 10:52         ` Adrian Reber
2009-06-25 11:22           ` Utz Bacher
2009-06-25 11:28             ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).