lkml.org 
[lkml]   [2008]   [May]   [14]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 14 May 2008 21:49:11 -0300
FromHenrique de Moraes Holschuh <>
SubjectRe: [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


\
 
 \ /
  Last update: 2008-05-15 03:03    [from the cache]
©2003-2008