• Sebastian Andrzej Siewior's avatar
    airo: Always use JOB_STATS and JOB_EVENT · 49eb0199
    Sebastian Andrzej Siewior authored
    issuecommand() is using in_atomic() to decide if it is safe to invoke
    schedule() while waiting for the command to be accepted.
    
    Usage of in_atomic() for this is only half correct as it can not detect all
    condition where it is not allowed to schedule(). Also Linus clearly
    requested that code which changes behaviour depending on context should
    either be seperated or the context be conveyed in an argument passed by the
    caller, which usually knows the context.
    
    Chasing the call chains leading up to issuecommand() is straight forward,
    but airo_link() and airo_get_stats() would require to pass the context
    through a quite large amount of functions.
    
    As this is ancient hardware, avoid the churn and enforce the invocation of
    those functions through the JOB machinery.
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: linux-wireless@vger.kernel.org
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20201101211536.2966644-4-bigeasy@linutronix.de
    49eb0199
airo.c 217 KB