net/mlx4_en: Fix transmit timeout when driver restarts port
authorAmir Vadai <amirv@mellanox.com>
Wed, 30 Jan 2013 23:07:11 +0000 (23:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Jan 2013 17:48:48 +0000 (12:48 -0500)
commit3484aac16149636f0ba5b5b0789a2918c682db7e
treeace64d0ccf89db5b59b596892ba5337aebcff3ec
parent955154fa33df2b74f0fea8e7c84df6dfd954dab2
net/mlx4_en: Fix transmit timeout when driver restarts port

Under heavy CPU load, changing, ring size/mtu/etc. could result in transmit
timeout, since stop-start port might take more than 10 seconds.
Calling netif_detach_device to prevent tx queue transmit timeout.

netif_detach_device() is not called under ndo_stop, because netif_carrier_off
will prevent the timeout, and device should not be marked as not present, or
else user won't be able to start it later on.

CC: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h