I understand this is already queued up, but I still have a question: On Wed, Jul 31, 2019 at 5:23 AM <yhchuang@xxxxxxxxxxx> wrote: > C2H commands that cannot be handled in IRQ context should > be protected by rtwdev->mutex. Because they might have a > sequece of hardware operations that does not want to be > interfered. Can you elaborate on what interference you're looking at, exactly? I'm not a big fan of defensive addition of global locks, and this particular mutex isn't very targeted. It claims to be for mac80211 callbacks, but you use it in quite a few places (some of which clearly don't make sense), and many of them are not related to mac80211 callbacks AFAICT. To the contrary: this handler is called from the mac80211 work queue, which is ordered and therefore shouldn't be getting "interrupted" (e.g., conflicting commands). But then, you added the 'irqsafe' command, which gets run from the ISR...and doesn't hold this lock, obviously. It may well be that you're correct here, but I'd like to see a better explanation for stuff like this. And maybe an update to the rtw_dev::mutex comments. Brian