• Mika Westerberg's avatar
    net: thunderbolt: Enable DMA paths only after rings are enabled · ff7cd07f
    Mika Westerberg authored
    If the other host starts sending packets early on it is possible that we
    are still in the middle of populating the initial Rx ring packets to the
    ring. This causes the tbnet_poll() to mess over the queue and causes
    list corruption. This happens specifically when connected with macOS as
    it seems start sending various IP discovery packets as soon as its side
    of the paths are configured.
    
    To prevent this we move the DMA path enabling to happen after we have
    primed the Rx ring. This makes sure no incoming packets can arrive
    before we are ready to handle them.
    
    Fixes: e69b6c02 ("net: Add support for networking over Thunderbolt cable")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ff7cd07f
thunderbolt.c 35.8 KB