diff options
author | mjain001 <mridul.jain@stericsson.com> | 2012-06-18 09:54:00 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-06-18 11:21:02 +0200 |
commit | 6bec33e0f02526b5a5910fae1608cf8f3b210feb (patch) | |
tree | 1193d3080ee42e6fd7fcedb73fc2d38ab1b9f4bf | |
parent | 9cc4b670080966f5e83a17a31ce5901abc7e0360 (diff) |
cg2900: Fix for softirq warning during bootingstable-android-ux500-3.3
spin_lock_bh called in interrupt mode, which is incorrect.
Changed from spin_lock_bh/spin_inlock_bh to
spin_lock_irqsave/spin_lock_irqrestore.
Signed-off-by: mjain001 <mridul.jain@stericsson.com>
-rw-r--r-- | drivers/staging/cg2900/bluetooth/cg2900_uart.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/cg2900/bluetooth/cg2900_uart.c b/drivers/staging/cg2900/bluetooth/cg2900_uart.c index 6cde9d75c21..9f6f19ea643 100644 --- a/drivers/staging/cg2900/bluetooth/cg2900_uart.c +++ b/drivers/staging/cg2900/bluetooth/cg2900_uart.c @@ -1911,8 +1911,9 @@ static struct sk_buff *cg2900_hu_dequeue(struct hci_uart *hu) struct sk_buff *skb; struct uart_info *uart_info = dev_get_drvdata(hu->proto->dev); unsigned long timeout_jiffies = get_sleep_timeout(uart_info); + unsigned long flags; - spin_lock_bh(&(uart_info->transmission_lock)); + spin_lock_irqsave(&(uart_info->transmission_lock), flags); skb = skb_dequeue(&uart_info->tx_queue); @@ -1927,7 +1928,7 @@ static struct sk_buff *cg2900_hu_dequeue(struct hci_uart *hu) &uart_info->sleep_work.work, timeout_jiffies); - spin_unlock_bh(&(uart_info->transmission_lock)); + spin_unlock_irqrestore(&(uart_info->transmission_lock), flags); if (BAUD_SENDING == uart_info->baud_rate_state && !skb) finish_setting_baud_rate(hu); |