o Interface needs to be brought down and up while configuring SR-IOV.
Protect interface up/down using rtnl_lock()/rtnl_unlock()
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
{
struct net_device *netdev = adapter->netdev;
{
struct net_device *netdev = adapter->netdev;
if (netif_running(netdev))
__qlcnic_down(adapter, netdev);
if (netif_running(netdev))
__qlcnic_down(adapter, netdev);
/* After disabling SRIOV re-init the driver in default mode
configure opmode based on op_mode of function
*/
/* After disabling SRIOV re-init the driver in default mode
configure opmode based on op_mode of function
*/
- if (qlcnic_83xx_configure_opmode(adapter))
+ if (qlcnic_83xx_configure_opmode(adapter)) {
+ rtnl_unlock();
if (netif_running(netdev))
__qlcnic_up(adapter, netdev);
if (netif_running(netdev))
__qlcnic_up(adapter, netdev);
if (netif_running(netdev))
__qlcnic_down(adapter, netdev);
if (netif_running(netdev))
__qlcnic_down(adapter, netdev);
__qlcnic_up(adapter, netdev);
error:
__qlcnic_up(adapter, netdev);
error: