Messages in this thread | | | Date | Wed, 14 May 2008 21:49:11 -0300 | From | Henrique de Moraes Holschuh <> | Subject | Re: [Bug #10670] BUG: linux-2.6.26-rc1 oops at thinkpad_acpi:led_set_status |
| |
On Thu, 15 May 2008, Adrian Bunk wrote: > static int led_set_status(unsigned int led, enum led_status_t ledstatus) > { > ... > switch (led_supported) { > ... > case TPACPI_LED_OLD: > /* 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20 */ > -----> led = 1 << led; > rc = ec_write(TPACPI_LED_EC_HLMS, led); > if (rc >= 0) > rc = ec_write(TPACPI_LED_EC_HLBL, > led * led_exp_hlbl[ledstatus]); > if (rc >= 0) > rc = ec_write(TPACPI_LED_EC_HLCL, > led * led_exp_hlcl[ledstatus]); > break; > ... > if (!rc) > tpacpi_led_state_cache[led] = ledstatus; > ... ^^^ > }
ARGH. Thanks. Will fix ASAP. This is really one of those cases where one is "too close to actualy see the picture".
> What happens when you write to tpacpi_led_state_cache[0x80] is > undefined, and it's not a surprise that random changes let the > bug seem to disappear.
Indeed. Thanks Adrian.
-- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh
| |