提交 538181a8 编写于 作者: A Alexander Aring 提交者: Marcel Holtmann

mac802154: add synchronization handling

This patch adds synchronization handling in start and stop driver ops
calls. This patch is mostly grab from mac80211 which was introduced by
commit ea77f12f ("mac80211: remove
tasklet enable/disable"). This is to be sure that we don't run into same
issues.
Signed-off-by: NAlexander Aring <alex.aring@gmail.com>
Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
上级 e363eca3
......@@ -30,6 +30,7 @@ static inline int drv_start(struct ieee802154_local *local)
might_sleep();
local->started = true;
smp_mb();
return local->ops->start(&local->hw);
}
......@@ -40,6 +41,12 @@ static inline void drv_stop(struct ieee802154_local *local)
local->ops->stop(&local->hw);
/* sync away all work on the tasklet before clearing started */
tasklet_disable(&local->tasklet);
tasklet_enable(&local->tasklet);
barrier();
local->started = false;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册