From: Gabor Juhos Date: Sun, 25 Nov 2012 16:23:00 +0000 (+0000) Subject: AA: generic: ar8216: remove an unblanced mutex_unlock call X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=20312cd4e6b64226cc4453f2107d5bfeb30c93f6 AA: generic: ar8216: remove an unblanced mutex_unlock call Backport of r34282. Fixes the following warning: [ 94.080000] [ 94.080000] ===================================== [ 94.080000] [ BUG: bad unlock balance detected! ] [ 94.080000] 3.3.8 #2 Tainted: G O [ 94.080000] ------------------------------------- [ 94.080000] swconfig/1220 is trying to release lock (&priv->mib_lock) at: [ 94.080000] [<801df8f4>] ar8216_sw_get_port_mib+0x138/0x16c [ 94.080000] but there are no more locks to release! [ 94.080000] [ 94.080000] other info that might help us debug this: [ 94.080000] 2 locks held by swconfig/1220: [ 94.080000] #0: (genl_mutex){+.+...}, at: [<80222430>] genl_rcv+0x14/0x34 [ 94.080000] #1: (&dev->sw_mutex){+.+...}, at: [<801da018>] swconfig_get_dev+0x88/0xb4 [ 94.080000] [ 94.080000] stack backtrace: [ 94.080000] Call Trace: [ 94.080000] [<8028dc58>] dump_stack+0x8/0x34 [ 94.080000] [<800a5128>] print_unlock_inbalance_bug+0xe0/0xfc [ 94.080000] [<800a82c0>] lock_release+0x18c/0x1c8 [ 94.080000] [<80292074>] __mutex_unlock_slowpath+0xd8/0x17c [ 94.080000] [<801df8f4>] ar8216_sw_get_port_mib+0x138/0x16c [ 94.080000] [<801db688>] swconfig_get_attr+0xbc/0x394 [ 94.080000] [<8022261c>] genl_rcv_msg+0x1cc/0x214 [ 94.080000] [<80221a18>] netlink_rcv_skb+0x6c/0xe8 [ 94.080000] [<80222440>] genl_rcv+0x24/0x34 [ 94.080000] [<80221370>] netlink_unicast+0x15c/0x22c [ 94.080000] [<8022175c>] netlink_sendmsg+0x240/0x2d0 [ 94.080000] [<801ef544>] sock_sendmsg+0x84/0x9c [ 94.080000] [<801f0648>] __sys_sendmsg+0x1cc/0x270 [ 94.080000] [<801f207c>] sys_sendmsg+0x48/0x7c [ 94.080000] [<8006ad78>] stack_done+0x20/0x40 [ 94.080000] Signed-off-by: Gabor Juhos SVN-Revision: 34370 --- diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index 3801225600..8fc1f4b37e 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -1549,7 +1549,6 @@ ar8216_sw_get_port_mib(struct switch_dev *dev, goto unlock; ar8216_mib_fetch_port_stat(priv, port, false); - mutex_unlock(&priv->mib_lock); len += snprintf(buf + len, sizeof(priv->buf) - len, "Port %d MIB counters\n",