• Alex Elder's avatar
    net: ipa: use state to determine event ring command success · 428b448e
    Alex Elder authored
    This patch implements the same basic fix for event rings as the
    previous one does for channels.
    
    The result of issuing an event ring control command should be that
    the event ring changes state.  If enabled, a completion interrupt
    signals that the event ring state has changed.  This interrupt is
    enabled by gsi_evt_ring_command() and disabled again after the
    command has completed (or we time out).
    
    There is a window of time during which the command could complete
    successfully without interrupting.  This would cause the event ring
    to transition to the desired new state.
    
    So whether a event ring command ends via completion interrupt or
    timeout, we can consider the command successful if the event ring
    has entered the desired state (and a failure if it has not,
    regardless of the cause).
    
    Fixes: b4175f87 ("net: ipa: only enable GSI event control IRQs when needed")
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    428b448e
gsi.c 63.8 KB