Commit 0700d816 authored by Kalesh AP's avatar Kalesh AP Committed by David S. Miller

be2net: move interface create code to a separate routine

This removes a bit of duplication of code that initializes the en_flags.
Signed-off-by: default avatarKalesh AP <kalesh.purayil@emulex.com>
Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5ec27425
...@@ -3183,13 +3183,32 @@ static int be_clear(struct be_adapter *adapter) ...@@ -3183,13 +3183,32 @@ static int be_clear(struct be_adapter *adapter)
return 0; return 0;
} }
static int be_if_create(struct be_adapter *adapter, u32 *if_handle,
u32 cap_flags, u32 vf)
{
u32 en_flags;
int status;
en_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST |
BE_IF_FLAGS_MULTICAST | BE_IF_FLAGS_PASS_L3L4_ERRORS |
BE_IF_FLAGS_RSS;
en_flags &= cap_flags;
status = be_cmd_if_create(adapter, cap_flags, en_flags,
if_handle, vf);
return status;
}
static int be_vfs_if_create(struct be_adapter *adapter) static int be_vfs_if_create(struct be_adapter *adapter)
{ {
struct be_resources res = {0}; struct be_resources res = {0};
struct be_vf_cfg *vf_cfg; struct be_vf_cfg *vf_cfg;
u32 cap_flags, en_flags, vf; u32 cap_flags, vf;
int status = 0; int status;
/* If a FW profile exists, then cap_flags are updated */
cap_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST | cap_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST |
BE_IF_FLAGS_MULTICAST; BE_IF_FLAGS_MULTICAST;
...@@ -3201,18 +3220,13 @@ static int be_vfs_if_create(struct be_adapter *adapter) ...@@ -3201,18 +3220,13 @@ static int be_vfs_if_create(struct be_adapter *adapter)
cap_flags = res.if_cap_flags; cap_flags = res.if_cap_flags;
} }
/* If a FW profile exists, then cap_flags are updated */ status = be_if_create(adapter, &vf_cfg->if_handle,
en_flags = cap_flags & (BE_IF_FLAGS_UNTAGGED | cap_flags, vf + 1);
BE_IF_FLAGS_BROADCAST |
BE_IF_FLAGS_MULTICAST);
status =
be_cmd_if_create(adapter, cap_flags, en_flags,
&vf_cfg->if_handle, vf + 1);
if (status) if (status)
goto err; return status;
} }
err:
return status; return 0;
} }
static int be_vf_setup_init(struct be_adapter *adapter) static int be_vf_setup_init(struct be_adapter *adapter)
...@@ -3653,7 +3667,7 @@ int be_update_queues(struct be_adapter *adapter) ...@@ -3653,7 +3667,7 @@ int be_update_queues(struct be_adapter *adapter)
static int be_setup(struct be_adapter *adapter) static int be_setup(struct be_adapter *adapter)
{ {
struct device *dev = &adapter->pdev->dev; struct device *dev = &adapter->pdev->dev;
u32 tx_fc, rx_fc, en_flags; u32 tx_fc, rx_fc;
int status; int status;
be_setup_init(adapter); be_setup_init(adapter);
...@@ -3669,13 +3683,8 @@ static int be_setup(struct be_adapter *adapter) ...@@ -3669,13 +3683,8 @@ static int be_setup(struct be_adapter *adapter)
if (status) if (status)
goto err; goto err;
en_flags = BE_IF_FLAGS_UNTAGGED | BE_IF_FLAGS_BROADCAST | status = be_if_create(adapter, &adapter->if_handle,
BE_IF_FLAGS_MULTICAST | BE_IF_FLAGS_PASS_L3L4_ERRORS; be_if_cap_flags(adapter), 0);
if (adapter->function_caps & BE_FUNCTION_CAPS_RSS)
en_flags |= BE_IF_FLAGS_RSS;
en_flags = en_flags & be_if_cap_flags(adapter);
status = be_cmd_if_create(adapter, be_if_cap_flags(adapter), en_flags,
&adapter->if_handle, 0);
if (status) if (status)
goto err; goto err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment