From: Pavel Kubelun Date: Mon, 28 Nov 2016 11:58:39 +0000 (+0300) Subject: net: ar8216: sync mib_work cancellation X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fyousong.git;a=commitdiff_plain;h=7de8d5322e8a90cf073a92e2c9c479d4667c94b9 net: ar8216: sync mib_work cancellation Import from https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c05af20272059e149e2da2e1fa1fbd90c03ec979 Signed-off-by: Pavel Kubelun CHROMIUM: drivers: ar8216: sync mib_work cancellation ar8xxx_mib_stop() is called from ar8xxx_phy_remove(), so we want to make sure the work doesn't run after priv is freed / the device ceases to exist. BUG=chrome-os-partner:33096 TEST=none Change-Id: Iafb44ce93a87433adc4576e5fea5fda58d1f43a9 Signed-off-by: Mathieu Olivari Reviewed-on: https://chromium-review.googlesource.com/232827 Reviewed-by: Matthias Kaehlcke Reviewed-by: Toshi Kikuchi Reviewed-by: Grant Grundler Tested-by: Toshi Kikuchi --- diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index cd5fbac86e..7398d7e273 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -1889,7 +1889,7 @@ ar8xxx_mib_stop(struct ar8xxx_priv *priv) if (!ar8xxx_has_mib_counters(priv)) return; - cancel_delayed_work(&priv->mib_work); + cancel_delayed_work_sync(&priv->mib_work); } static struct ar8xxx_priv *