提交 2dc1deb6 编写于 作者: S Sathya Perla 提交者: David S. Miller

be2net: request native mode each time the card is reset

Currently be3-native mode is requested only in probe(). It must be requested, each time the card is reset either after an EEH error or after
sleep/hibernation.
Also, the be_cmd_check_native_mode() is better named be_cmd_req_native_mode()
Signed-off-by: NSathya Perla <sathya.perla@emulex.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 d9be4f7a
...@@ -2390,7 +2390,7 @@ int be_cmd_get_cntl_attributes(struct be_adapter *adapter) ...@@ -2390,7 +2390,7 @@ int be_cmd_get_cntl_attributes(struct be_adapter *adapter)
} }
/* Uses mbox */ /* Uses mbox */
int be_cmd_check_native_mode(struct be_adapter *adapter) int be_cmd_req_native_mode(struct be_adapter *adapter)
{ {
struct be_mcc_wrb *wrb; struct be_mcc_wrb *wrb;
struct be_cmd_req_set_func_cap *req; struct be_cmd_req_set_func_cap *req;
......
...@@ -1545,7 +1545,7 @@ extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain); ...@@ -1545,7 +1545,7 @@ extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain);
extern void be_detect_dump_ue(struct be_adapter *adapter); extern void be_detect_dump_ue(struct be_adapter *adapter);
extern int be_cmd_get_die_temperature(struct be_adapter *adapter); extern int be_cmd_get_die_temperature(struct be_adapter *adapter);
extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter); extern int be_cmd_get_cntl_attributes(struct be_adapter *adapter);
extern int be_cmd_check_native_mode(struct be_adapter *adapter); extern int be_cmd_req_native_mode(struct be_adapter *adapter);
extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size); extern int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size);
extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf); extern void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf);
...@@ -2511,6 +2511,8 @@ static int be_setup(struct be_adapter *adapter) ...@@ -2511,6 +2511,8 @@ static int be_setup(struct be_adapter *adapter)
int status; int status;
u8 mac[ETH_ALEN]; u8 mac[ETH_ALEN];
be_cmd_req_native_mode(adapter);
cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED | cap_flags = en_flags = BE_IF_FLAGS_UNTAGGED |
BE_IF_FLAGS_BROADCAST | BE_IF_FLAGS_BROADCAST |
BE_IF_FLAGS_MULTICAST; BE_IF_FLAGS_MULTICAST;
...@@ -2618,6 +2620,8 @@ static int be_clear(struct be_adapter *adapter) ...@@ -2618,6 +2620,8 @@ static int be_clear(struct be_adapter *adapter)
be_cmd_if_destroy(adapter, adapter->if_handle, 0); be_cmd_if_destroy(adapter, adapter->if_handle, 0);
adapter->be3_native = 0;
/* tell fw we're done with firing cmds */ /* tell fw we're done with firing cmds */
be_cmd_fw_clean(adapter); be_cmd_fw_clean(adapter);
return 0; return 0;
...@@ -3215,8 +3219,6 @@ static int be_get_config(struct be_adapter *adapter) ...@@ -3215,8 +3219,6 @@ static int be_get_config(struct be_adapter *adapter)
if (status) if (status)
return status; return status;
be_cmd_check_native_mode(adapter);
if ((num_vfs && adapter->sriov_enabled) || if ((num_vfs && adapter->sriov_enabled) ||
(adapter->function_mode & 0x400) || (adapter->function_mode & 0x400) ||
lancer_chip(adapter) || !be_physfn(adapter)) { lancer_chip(adapter) || !be_physfn(adapter)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册