From: Felix Fietkau Date: Mon, 12 Mar 2018 08:50:33 +0000 (+0100) Subject: swconfig: convert swdevs_lock from spinlock to mutex X-Git-Tag: v18.06.0-rc1~664 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=ed3860c3e3ebe484c00cf603c29e68af28eb0839 swconfig: convert swdevs_lock from spinlock to mutex Should fix some sleep-while-atomic issues Signed-off-by: Felix Fietkau --- diff --git a/target/linux/generic/files/drivers/net/phy/swconfig.c b/target/linux/generic/files/drivers/net/phy/swconfig.c index 78569a9302..e8a684742c 100644 --- a/target/linux/generic/files/drivers/net/phy/swconfig.c +++ b/target/linux/generic/files/drivers/net/phy/swconfig.c @@ -36,7 +36,7 @@ MODULE_LICENSE("GPL"); static int swdev_id; static struct list_head swdevs; -static DEFINE_SPINLOCK(swdevs_lock); +static DEFINE_MUTEX(swdevs_lock); struct swconfig_callback; struct swconfig_callback { @@ -296,13 +296,13 @@ static struct nla_policy link_policy[SWITCH_LINK_ATTR_MAX] = { static inline void swconfig_lock(void) { - spin_lock(&swdevs_lock); + mutex_lock(&swdevs_lock); } static inline void swconfig_unlock(void) { - spin_unlock(&swdevs_lock); + mutex_unlock(&swdevs_lock); } static struct switch_dev *