• Mike McCormack's avatar
    sky2: Avoid transmits during sky2_down() · f6caa14a
    Mike McCormack authored
    This patch supersedes my previous patch "sky2: Avoid transmitting
    during sky2_restart".
    
    I have reworked the patch to avoid crashes during both sky2_restart()
    and sky2_set_ringparam().
    
    Without this patch, the sky2 driver can be crashed by doing:
    
    # pktgen eth1 &    (transmit many packets on eth1)
    # ethtool -G eth1 tx 510
    
    I am aware you object to storing extra state, but I can't see a way
    around this. Without remembering that we're restarting,
    netif_wake_queue() is called in the ISR from sky2_tx_complete(), and
    netif_tx_lock() is used in sky2_tx_done().  If anybody can see a way
    around this, please let me know.
    Signed-off-by: default avatarMike McCormack <mikem@ring3k.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f6caa14a
sky2.c 123 KB