Message ID | 20090326120542.GD24889@lisas.de (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | 5ba762c9bb3ce2cc11e9e111cb3c476e84b91668 |
Headers | show |
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
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
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 */
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(-)