• Sebastian Andrzej Siewior's avatar
    airo: Replace in_atomic() usage. · 494e46d0
    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.
    
    Add an may_sleep argument to issuecommand() indicating when it is save to
    sleep and change schedule() to cond_resched() because it's pointless to
    invoke schedule() if there is no request to reschedule.
    
    Pass the may_sleep condition through the various call chains leading to
    issuecommand().
    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-5-bigeasy@linutronix.de
    494e46d0
airo.c 217 KB