Skip to content

Commit

Permalink
be2net: Bug fix to send config commands to hardware after netdev_regi…
Browse files Browse the repository at this point in the history
…ster

Sending config commands to be2 hardware before netdev_register is
completed, is sometimes causing the async link notification to arrive
even before the driver is ready to handle it. The commands for vlan
config and flow control settings can infact wait till be_open.
This patch takes care of that.

Signed-off-by: Ajit Khaparde <ajitk@serverengines.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ajit Khaparde authored and David S. Miller committed Nov 7, 2009
1 parent 9e90c96 commit 4f2aa89
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions drivers/net/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1610,11 +1610,21 @@ static int be_open(struct net_device *netdev)

status = be_cmd_link_status_query(adapter, &link_up);
if (status)
return status;
goto ret_sts;
be_link_status_update(adapter, link_up);

status = be_vid_config(adapter);
if (status)
goto ret_sts;

status = be_cmd_set_flow_control(adapter,
adapter->tx_fc, adapter->rx_fc);
if (status)
goto ret_sts;

schedule_delayed_work(&adapter->work, msecs_to_jiffies(100));
return 0;
ret_sts:
return status;
}

static int be_setup(struct be_adapter *adapter)
Expand Down Expand Up @@ -1648,18 +1658,8 @@ static int be_setup(struct be_adapter *adapter)
if (status != 0)
goto rx_qs_destroy;

status = be_vid_config(adapter);
if (status != 0)
goto mccqs_destroy;

status = be_cmd_set_flow_control(adapter,
adapter->tx_fc, adapter->rx_fc);
if (status != 0)
goto mccqs_destroy;
return 0;

mccqs_destroy:
be_mcc_queues_destroy(adapter);
rx_qs_destroy:
be_rx_queues_destroy(adapter);
tx_qs_destroy:
Expand Down

0 comments on commit 4f2aa89

Please sign in to comment.