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: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
d9be4f7a6f
Коммит
2dc1deb659
|
@ -2390,7 +2390,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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);
|
||||||
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)
|
||||||
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)
|
||||||
|
|
||||||
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)
|
||||||
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)) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче