From 5f46d948dcc1049044f26eedfad09db7d3023190 Mon Sep 17 00:00:00 2001 From: mjain001 Date: Mon, 18 Jun 2012 09:54:00 +0200 Subject: cg2900: Fix for softirq warning during booting 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 --- drivers/staging/cg2900/bluetooth/cg2900_uart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/staging/cg2900/bluetooth/cg2900_uart.c b/drivers/staging/cg2900/bluetooth/cg2900_uart.c index adfc1b26e83..150cad2ec82 100644 --- a/drivers/staging/cg2900/bluetooth/cg2900_uart.c +++ b/drivers/staging/cg2900/bluetooth/cg2900_uart.c @@ -2037,8 +2037,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); @@ -2053,7 +2054,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); -- cgit v1.2.3