diff options
author | Kalesh AP <kalesh.purayil@emulex.com> | 2013-04-28 18:22:29 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-29 15:14:02 -0400 |
commit | 2d177be8e4a1f6ea7e3280b3a578a6b86472a39d (patch) | |
tree | ac01b768149e5e852117f1accf1080ee30e15c70 /drivers/net | |
parent | 28710c55f4a62b6c595d1a7134e7196c63838e1c (diff) |
be2net: FLR must be first cmd issued to Lancer FW
Lancer FW requires that the first cmd issued by the host-driver be an FLR.
So, re-order be_probe() to move be_cmd_function_reset() ahead of
be_cmd_fw_init().
Signed-off-by: Kalesh AP <kalesh.purayil@emulex.com>
Signed-off-by: Somnath Kotur <somnath.kotur@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 43d5c1e29fc7..1c734915933f 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -4174,23 +4174,23 @@ static int be_probe(struct pci_dev *pdev, const struct pci_device_id *pdev_id) | |||
4174 | goto ctrl_clean; | 4174 | goto ctrl_clean; |
4175 | } | 4175 | } |
4176 | 4176 | ||
4177 | /* tell fw we're ready to fire cmds */ | ||
4178 | status = be_cmd_fw_init(adapter); | ||
4179 | if (status) | ||
4180 | goto ctrl_clean; | ||
4181 | |||
4182 | if (be_reset_required(adapter)) { | 4177 | if (be_reset_required(adapter)) { |
4183 | status = be_cmd_reset_function(adapter); | 4178 | status = be_cmd_reset_function(adapter); |
4184 | if (status) | 4179 | if (status) |
4185 | goto ctrl_clean; | 4180 | goto ctrl_clean; |
4186 | } | ||
4187 | 4181 | ||
4188 | /* Wait for interrupts to quiesce after an FLR */ | 4182 | /* Wait for interrupts to quiesce after an FLR */ |
4189 | msleep(100); | 4183 | msleep(100); |
4184 | } | ||
4190 | 4185 | ||
4191 | /* Allow interrupts for other ULPs running on NIC function */ | 4186 | /* Allow interrupts for other ULPs running on NIC function */ |
4192 | be_intr_set(adapter, true); | 4187 | be_intr_set(adapter, true); |
4193 | 4188 | ||
4189 | /* tell fw we're ready to fire cmds */ | ||
4190 | status = be_cmd_fw_init(adapter); | ||
4191 | if (status) | ||
4192 | goto ctrl_clean; | ||
4193 | |||
4194 | status = be_stats_init(adapter); | 4194 | status = be_stats_init(adapter); |
4195 | if (status) | 4195 | if (status) |
4196 | goto ctrl_clean; | 4196 | goto ctrl_clean; |
@@ -4400,12 +4400,12 @@ static void be_eeh_resume(struct pci_dev *pdev) | |||
4400 | 4400 | ||
4401 | pci_save_state(pdev); | 4401 | pci_save_state(pdev); |
4402 | 4402 | ||
4403 | /* tell fw we're ready to fire cmds */ | 4403 | status = be_cmd_reset_function(adapter); |
4404 | status = be_cmd_fw_init(adapter); | ||
4405 | if (status) | 4404 | if (status) |
4406 | goto err; | 4405 | goto err; |
4407 | 4406 | ||
4408 | status = be_cmd_reset_function(adapter); | 4407 | /* tell fw we're ready to fire cmds */ |
4408 | status = be_cmd_fw_init(adapter); | ||
4409 | if (status) | 4409 | if (status) |
4410 | goto err; | 4410 | goto err; |
4411 | 4411 | ||