p54spi: workqueue deadlock fix
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 852-p54spi-cancel-workqueue-fix.patch
1 Index: compat-wireless-2011-11-04/drivers/net/wireless/p54/p54spi.c
2 ===================================================================
3 --- compat-wireless-2011-11-04.orig/drivers/net/wireless/p54/p54spi.c 2011-11-16 23:36:01.399952345 +0100
4 +++ compat-wireless-2011-11-04/drivers/net/wireless/p54/p54spi.c 2011-11-16 23:37:38.799547564 +0100
5 @@ -584,8 +584,6 @@ static void p54spi_op_stop(struct ieee80
6 mutex_lock(&priv->mutex);
7 WARN_ON(priv->fw_state != FW_STATE_READY);
8
9 - cancel_work_sync(&priv->work);
10 -
11 p54spi_power_off(priv);
12 spin_lock_irqsave(&priv->tx_lock, flags);
13 INIT_LIST_HEAD(&priv->tx_pending);
14 @@ -593,6 +591,8 @@ static void p54spi_op_stop(struct ieee80
15
16 priv->fw_state = FW_STATE_OFF;
17 mutex_unlock(&priv->mutex);
18 +
19 + cancel_work_sync(&priv->work);
20 }
21
22 static int __devinit p54spi_probe(struct spi_device *spi)