summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjain001 <mridul.jain@stericsson.com>2012-06-18 09:54:00 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-06-18 11:20:59 +0200
commit2448b77b72d2a53d24237327e2f94c47b80ccb90 (patch)
treefa70a739980e6c71e99e00c4c9e3fe2a9580841c
parenta1b293b42de29a94283602e6d749b769e42d0670 (diff)
cg2900: Fix for softirq warning during bootingstable-linux-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.c5
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);