Re: [BUG] ali-ircc.c sleeping function called from invalid context

From: Alexander Strakh
Date: Thu Oct 08 2009 - 06:44:19 EST


KERNEL_VERSION: 2.6.31
DESCRIBE:
(wrong message before that)
Driver reports/drivers/net/irda/ali-ircc.c - get spin_lock twice

drivers/net/irda/ali-ircc.c:
2028static int ali_ircc_net_ioctl(struct net_device *dev, struct ifreq *rq,
int cmd)
...
2056 ? ? ? ? ? ? ? ?spin_lock_irqsave(&self->lock, flags);
2057 ? ? ? ? ? ? ? ?ali_ircc_change_speed(self, irq->ifr_baudrate); ? ? ? ?
...

Path to second spin_lock_irqsave(&self->lock, flags) from
ali_ircc_change_speed:
1. ali_ircc_change_speed calls ali_ircc_sir_change_speed
./drivers/net/irda/ali-ircc.c:999
2. ali_ircc_sir_change_speed calls spin_lock_irqsave at
./drivers/net/irda/ali-ircc.c:1084:

1050static void ali_ircc_sir_change_speed(struct ali_ircc_cb *priv, __u32
speed)
1084 spin_lock_irqsave(&self->lock, flags);

Found by: Linux Driver Verification

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