Re: 2.6.-test10: bad "__might_sleep" in ALSA sound drivers

From: Andrew Morton
Date: Mon Nov 24 2003 - 20:54:42 EST


Torrey Hoffman <thoffman@xxxxxxxxx> wrote:
>
> I get this every time I boot 2.6.0-test10. I think this problem has
> been around for a while.
>
> Debug: sleeping function called from invalid context at
> include/asm/semaphore.h:119
> in_atomic():1, irqs_disabled():0
> Call Trace:
> [<c01229d0>] __might_sleep+0xab/0xc9
> [<fcff57bd>] ap_cs8427_sendbytes+0x38/0xd2 [snd_ice1712]
> [<fcfa825a>] snd_i2c_sendbytes+0x22/0x26 [snd_i2c]
> [<fcfaf15e>] snd_cs8427_reg_read+0x2c/0x8c [snd_cs8427]
> [<fcfaf414>] snd_cs8427_create+0xa4/0x347 [snd_cs8427]
> [<c02dc4b0>] snd_device_new+0x20/0x6a
> [<fcff151a>] snd_ice1712_init_cs8427+0x2f/0x6f [snd_ice1712]
> [<fcff6153>] snd_ice1712_delta_init+0x230/0x2b9 [snd_ice1712]
> [<fcff5227>] snd_ice1712_probe+0x323/0x34c [snd_ice1712]

snd_cs8427_create() does:

snd_i2c_lock(bus);
if ((err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER)) != CS8427_VER8427A) {

the first statement takes a spinlock. snd_cs8427_reg_read() then calls
ap_cs8427_sendbytes() which downs a semaphore.


It might be more appropriate to use a semaphore for ice1712_t.gpio_mutex?


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/