netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] be2net: patch set
@ 2012-11-07  3:48 Sathya Perla
  2012-11-07 22:00 ` David Miller
  0 siblings, 1 reply; 18+ messages in thread
From: Sathya Perla @ 2012-11-07  3:48 UTC (permalink / raw)
  To: netdev; +Cc: Sathya Perla

Pls apply.

Sathya Perla (7):
  be2net: remove LANCER A0 workaround
  be2net: fix wrong usage of adapter->generation
  be2net: do not use sli_family to identify skyhawk-R chip
  be2net: re-factor bar mapping code
  be2net: fix access to SEMAPHORE reg
  be2net: remove roce on lancer
  be2net: remove adapter->eq_next_idx

 drivers/net/ethernet/emulex/benet/be.h      |   33 ++--
 drivers/net/ethernet/emulex/benet/be_cmds.c |   17 +-
 drivers/net/ethernet/emulex/benet/be_cmds.h |   27 ---
 drivers/net/ethernet/emulex/benet/be_hw.h   |   17 +-
 drivers/net/ethernet/emulex/benet/be_main.c |  280 ++++++++++-----------------
 drivers/net/ethernet/emulex/benet/be_roce.c |    5 +-
 6 files changed, 135 insertions(+), 244 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH net-next 0/7] be2net: patch set
  2012-11-07  3:48 [PATCH net-next 0/7] be2net: " Sathya Perla
@ 2012-11-07 22:00 ` David Miller
  0 siblings, 0 replies; 18+ messages in thread
From: David Miller @ 2012-11-07 22:00 UTC (permalink / raw)
  To: sathya.perla; +Cc: netdev

From: Sathya Perla <sathya.perla@emulex.com>
Date: Wed, 7 Nov 2012 09:18:54 +0530

> Pls apply.
> 
> Sathya Perla (7):
>   be2net: remove LANCER A0 workaround
>   be2net: fix wrong usage of adapter->generation
>   be2net: do not use sli_family to identify skyhawk-R chip
>   be2net: re-factor bar mapping code
>   be2net: fix access to SEMAPHORE reg
>   be2net: remove roce on lancer
>   be2net: remove adapter->eq_next_idx

Looks good, all applied to net-next, thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH net-next 0/7] be2net patch set
@ 2013-08-06  3:57 Sathya Perla
  2013-08-07 17:40 ` David Miller
  0 siblings, 1 reply; 18+ messages in thread
From: Sathya Perla @ 2013-08-06  3:57 UTC (permalink / raw)
  To: netdev

The following fix/cleanup patches are for the net-next tree. Pls apply.

Thanks!

Sathya Perla (1):
  be2net: update driver version

Vasundhara Volam (6):
  be2net: Adding more speeds reported by get_settings
  be2net: Do not call get_die_temperature cmd for VF
  be2net: don't limit max MAC and VLAN counts
  be2net: Fix displaying supported speeds for BE2
  be2net: fixup log msgs for async events
  be2net: Initialize "status" in be_cmd_get_die_temperature()

 drivers/net/ethernet/emulex/benet/be.h      |    2 +-
 drivers/net/ethernet/emulex/benet/be_cmds.c |   20 +++++++++++++++++---
 drivers/net/ethernet/emulex/benet/be_cmds.h |    5 ++++-
 drivers/net/ethernet/emulex/benet/be_main.c |   10 ++--------
 4 files changed, 24 insertions(+), 13 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH net-next 0/7] be2net patch set
  2013-08-06  3:57 [PATCH net-next 0/7] be2net " Sathya Perla
@ 2013-08-07 17:40 ` David Miller
  0 siblings, 0 replies; 18+ messages in thread
From: David Miller @ 2013-08-07 17:40 UTC (permalink / raw)
  To: sathya.perla; +Cc: netdev

From: Sathya Perla <sathya.perla@emulex.com>
Date: Tue, 6 Aug 2013 09:27:14 +0530

> The following fix/cleanup patches are for the net-next tree. Pls apply.

Series applied, thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH net-next 0/7] be2net: patch set
@ 2014-03-11 13:23 Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 1/7] be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs Sathya Perla
                   ` (7 more replies)
  0 siblings, 8 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

Pls apply. Thanks!

Ravikumar Nelavelli (2):
  be2net: log LPVID used in multi-channel configs
  be2net: fix pmac_id[] allocation size

Sathya Perla (1):
  be2net: update driver version to 10.2

Suresh Reddy (2):
  be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs
  be2net: Add link state control for VFs

Vasundhara Volam (2):
  be2net: Create multiple TXQs on RSS capable multi-channel BE3-R
    interfaces
  be2net: Fix vlans_added counter

 drivers/net/ethernet/emulex/benet/be.h      |    3 +-
 drivers/net/ethernet/emulex/benet/be_cmds.c |   56 +++++++++++++++++++--
 drivers/net/ethernet/emulex/benet/be_cmds.h |   10 ++++
 drivers/net/ethernet/emulex/benet/be_main.c |   73 ++++++++++++++++++++-------
 4 files changed, 118 insertions(+), 24 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH net-next 1/7] be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 2/7] be2net: Add link state control for VFs Sathya Perla
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Suresh Reddy <suresh.reddy@emulex.com>

Use GET_PROFILE_CONFIG_V1 cmd even for BE3-R (it's already used for
Lancer-R and Skyhawk-R), to query max-vfs value supported by the FW.
This is needed as on some configs, the value exported in the PCI-config
space is not accurate.

Signed-off-by: Suresh Reddy <suresh.reddy@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 6e10230..5ba1ea5 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3150,13 +3150,16 @@ static void BEx_get_resources(struct be_adapter *adapter,
 {
 	struct pci_dev *pdev = adapter->pdev;
 	bool use_sriov = false;
-	int max_vfs;
-
-	max_vfs = pci_sriov_get_totalvfs(pdev);
-
-	if (BE3_chip(adapter) && sriov_want(adapter)) {
-		res->max_vfs = max_vfs > 0 ? min(MAX_VFS, max_vfs) : 0;
-		use_sriov = res->max_vfs;
+	int max_vfs = 0;
+
+	if (be_physfn(adapter) && BE3_chip(adapter)) {
+		be_cmd_get_profile_config(adapter, res, 0);
+		/* Some old versions of BE3 FW don't report max_vfs value */
+		if (res->max_vfs == 0) {
+			max_vfs = pci_sriov_get_totalvfs(pdev);
+			res->max_vfs = max_vfs > 0 ? min(MAX_VFS, max_vfs) : 0;
+		}
+		use_sriov = res->max_vfs && sriov_want(adapter);
 	}
 
 	if (be_physfn(adapter))
@@ -3197,7 +3200,7 @@ static void BEx_get_resources(struct be_adapter *adapter,
 	res->max_rx_qs = res->max_rss_qs + 1;
 
 	if (be_physfn(adapter))
-		res->max_evt_qs = (max_vfs > 0) ?
+		res->max_evt_qs = (res->max_vfs > 0) ?
 					BE3_SRIOV_MAX_EVT_QS : BE3_MAX_EVT_QS;
 	else
 		res->max_evt_qs = 1;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 2/7] be2net: Add link state control for VFs
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 1/7] be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 3/7] be2net: log LPVID used in multi-channel configs Sathya Perla
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Suresh Reddy <suresh.reddy@emulex.com>

Add support to control VF's link state by implementing the
ndo_set_vf_link_state() hook.

Signed-off-by: Suresh Reddy <suresh.reddy@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be.h      |    1 +
 drivers/net/ethernet/emulex/benet/be_cmds.c |   50 +++++++++++++++++++++++++--
 drivers/net/ethernet/emulex/benet/be_cmds.h |   10 +++++
 drivers/net/ethernet/emulex/benet/be_main.c |   32 ++++++++++++++++-
 4 files changed, 88 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index a91267b..d08c707 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -359,6 +359,7 @@ struct be_vf_cfg {
 	int pmac_id;
 	u16 vlan_tag;
 	u32 tx_rate;
+	u32 plink_tracking;
 };
 
 enum vf_state {
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 72bde5d..ff353d7 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -202,8 +202,12 @@ static void be_async_link_state_process(struct be_adapter *adapter,
 	/* When link status changes, link speed must be re-queried from FW */
 	adapter->phy.link_speed = -1;
 
-	/* Ignore physical link event */
-	if (lancer_chip(adapter) &&
+	/* On BEx the FW does not send a separate link status
+	 * notification for physical and logical link.
+	 * On other chips just process the logical link
+	 * status notification
+	 */
+	if (!BEx_chip(adapter) &&
 	    !(evt->port_link_status & LOGICAL_LINK_STATUS_MASK))
 		return;
 
@@ -211,7 +215,8 @@ static void be_async_link_state_process(struct be_adapter *adapter,
 	 * it may not be received in some cases.
 	 */
 	if (adapter->flags & BE_FLAGS_LINK_STATUS_INIT)
-		be_link_status_update(adapter, evt->port_link_status);
+		be_link_status_update(adapter,
+				      evt->port_link_status & LINK_STATUS_MASK);
 }
 
 /* Grp5 CoS Priority evt */
@@ -3743,6 +3748,45 @@ err:
 	return status;
 }
 
+int be_cmd_set_logical_link_config(struct be_adapter *adapter,
+				   int link_state, u8 domain)
+{
+	struct be_mcc_wrb *wrb;
+	struct be_cmd_req_set_ll_link *req;
+	int status;
+
+	if (BEx_chip(adapter) || lancer_chip(adapter))
+		return 0;
+
+	spin_lock_bh(&adapter->mcc_lock);
+
+	wrb = wrb_from_mccq(adapter);
+	if (!wrb) {
+		status = -EBUSY;
+		goto err;
+	}
+
+	req = embedded_payload(wrb);
+
+	be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON,
+			       OPCODE_COMMON_SET_LOGICAL_LINK_CONFIG,
+			       sizeof(*req), wrb, NULL);
+
+	req->hdr.version = 1;
+	req->hdr.domain = domain;
+
+	if (link_state == IFLA_VF_LINK_STATE_ENABLE)
+		req->link_config |= 1;
+
+	if (link_state == IFLA_VF_LINK_STATE_AUTO)
+		req->link_config |= 1 << PLINK_TRACK_SHIFT;
+
+	status = be_mcc_notify_wait(adapter);
+err:
+	spin_unlock_bh(&adapter->mcc_lock);
+	return status;
+}
+
 int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload,
 			int wrb_payload_size, u16 *cmd_status, u16 *ext_status)
 {
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h
index d0ab980..fda3e88 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.h
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.h
@@ -203,6 +203,7 @@ struct be_mcc_mailbox {
 #define OPCODE_COMMON_GET_BEACON_STATE			70
 #define OPCODE_COMMON_READ_TRANSRECV_DATA		73
 #define OPCODE_COMMON_GET_PORT_NAME			77
+#define OPCODE_COMMON_SET_LOGICAL_LINK_CONFIG		80
 #define OPCODE_COMMON_SET_INTERRUPT_ENABLE		89
 #define OPCODE_COMMON_SET_FN_PRIVILEGES			100
 #define OPCODE_COMMON_GET_PHY_DETAILS			102
@@ -1991,6 +1992,13 @@ struct be_cmd_resp_get_iface_list {
 	struct be_if_desc if_desc;
 };
 
+/*************** Set logical link ********************/
+#define PLINK_TRACK_SHIFT	8
+struct be_cmd_req_set_ll_link {
+	struct be_cmd_req_hdr hdr;
+	u32 link_config; /* Bit 0: UP_DOWN, Bit 9: PLINK */
+};
+
 int be_pci_fnum_get(struct be_adapter *adapter);
 int be_fw_wait_ready(struct be_adapter *adapter);
 int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr,
@@ -2112,3 +2120,5 @@ int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg,
 		     int vf_num);
 int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain);
 int be_cmd_intr_set(struct be_adapter *adapter, bool intr_enable);
+int be_cmd_set_logical_link_config(struct be_adapter *adapter,
+					  int link_state, u8 domain);
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 5ba1ea5..2f02bcb 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -652,7 +652,7 @@ void be_link_status_update(struct be_adapter *adapter, u8 link_status)
 		adapter->flags |= BE_FLAGS_LINK_STATUS_INIT;
 	}
 
-	if ((link_status & LINK_STATUS_MASK) == LINK_UP)
+	if (link_status)
 		netif_carrier_on(netdev);
 	else
 		netif_carrier_off(netdev);
@@ -1288,6 +1288,7 @@ static int be_get_vf_config(struct net_device *netdev, int vf,
 	vi->vlan = vf_cfg->vlan_tag & VLAN_VID_MASK;
 	vi->qos = vf_cfg->vlan_tag >> VLAN_PRIO_SHIFT;
 	memcpy(&vi->mac, vf_cfg->mac_addr, ETH_ALEN);
+	vi->linkstate = adapter->vf_cfg[vf].plink_tracking;
 
 	return 0;
 }
@@ -1354,6 +1355,24 @@ static int be_set_vf_tx_rate(struct net_device *netdev,
 		adapter->vf_cfg[vf].tx_rate = rate;
 	return status;
 }
+static int be_set_vf_link_state(struct net_device *netdev, int vf,
+				int link_state)
+{
+	struct be_adapter *adapter = netdev_priv(netdev);
+	int status;
+
+	if (!sriov_enabled(adapter))
+		return -EPERM;
+
+	if (vf >= adapter->num_vfs)
+		return -EINVAL;
+
+	status = be_cmd_set_logical_link_config(adapter, link_state, vf+1);
+	if (!status)
+		adapter->vf_cfg[vf].plink_tracking = link_state;
+
+	return status;
+}
 
 static void be_aic_update(struct be_aic_obj *aic, u64 rx_pkts, u64 tx_pkts,
 			  ulong now)
@@ -3109,8 +3128,12 @@ static int be_vf_setup(struct be_adapter *adapter)
 		if (!status)
 			vf_cfg->tx_rate = lnk_speed;
 
-		if (!old_vfs)
+		if (!old_vfs) {
 			be_cmd_enable_vf(adapter, vf + 1);
+			be_cmd_set_logical_link_config(adapter,
+						       IFLA_VF_LINK_STATE_AUTO,
+						       vf+1);
+		}
 	}
 
 	if (!old_vfs) {
@@ -3467,6 +3490,10 @@ static int be_setup(struct be_adapter *adapter)
 		be_cmd_set_flow_control(adapter, adapter->tx_fc,
 					adapter->rx_fc);
 
+	if (be_physfn(adapter))
+		be_cmd_set_logical_link_config(adapter,
+					       IFLA_VF_LINK_STATE_AUTO, 0);
+
 	if (sriov_want(adapter)) {
 		if (be_max_vfs(adapter))
 			be_vf_setup(adapter);
@@ -4106,6 +4133,7 @@ static const struct net_device_ops be_netdev_ops = {
 	.ndo_set_vf_vlan	= be_set_vf_vlan,
 	.ndo_set_vf_tx_rate	= be_set_vf_tx_rate,
 	.ndo_get_vf_config	= be_get_vf_config,
+	.ndo_set_vf_link_state  = be_set_vf_link_state,
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	.ndo_poll_controller	= be_netpoll,
 #endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 3/7] be2net: log LPVID used in multi-channel configs
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 1/7] be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 2/7] be2net: Add link state control for VFs Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 4/7] be2net: fix pmac_id[] allocation size Sathya Perla
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Ravikumar Nelavelli <ravikumar.nelavelli@emulex.com>

Signed-off-by: Ravikumar Nelavelli <ravikumar.nelavelli@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_cmds.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index ff353d7..cf5afe7 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -244,10 +244,12 @@ static void be_async_grp5_qos_speed_process(struct be_adapter *adapter,
 static void be_async_grp5_pvid_state_process(struct be_adapter *adapter,
 		struct be_async_event_grp5_pvid_state *evt)
 {
-	if (evt->enabled)
+	if (evt->enabled) {
 		adapter->pvid = le16_to_cpu(evt->tag) & VLAN_VID_MASK;
-	else
+		dev_info(&adapter->pdev->dev, "LPVID: %d\n", adapter->pvid);
+	} else {
 		adapter->pvid = 0;
+	}
 }
 
 static void be_async_grp5_evt_process(struct be_adapter *adapter,
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 4/7] be2net: fix pmac_id[] allocation size
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
                   ` (2 preceding siblings ...)
  2014-03-11 13:23 ` [PATCH net-next 3/7] be2net: log LPVID used in multi-channel configs Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 5/7] be2net: Create multiple TXQs on RSS capable multi-channel BE3-R interfaces Sathya Perla
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Ravikumar Nelavelli <ravikumar.nelavelli@emulex.com>

The allocation size must be be_max_uc() and not "be_max_uc() + 1"
Signed-off-by: Ravikumar Nelavelli <ravikumar.nelavelli@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 2f02bcb..eaf0891 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3314,9 +3314,8 @@ static int be_get_config(struct be_adapter *adapter)
 	if (status)
 		return status;
 
-	/* primary mac needs 1 pmac entry */
-	adapter->pmac_id = kcalloc(be_max_uc(adapter) + 1, sizeof(u32),
-				   GFP_KERNEL);
+	adapter->pmac_id = kcalloc(be_max_uc(adapter),
+				   sizeof(*adapter->pmac_id), GFP_KERNEL);
 	if (!adapter->pmac_id)
 		return -ENOMEM;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 5/7] be2net: Create multiple TXQs on RSS capable multi-channel BE3-R interfaces
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
                   ` (3 preceding siblings ...)
  2014-03-11 13:23 ` [PATCH net-next 4/7] be2net: fix pmac_id[] allocation size Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 6/7] be2net: Fix vlans_added counter Sathya Perla
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Vasundhara Volam <vasundhara.volam@emulex.com>

Currently the driver creates only a single TXQ on any BE3-R multi-channel
interface.
This patch changes this and creates multiple TXQs on RSS-capable multi-channel
BE3-R interfaces. This change helps improve the TX pps performance on the
affected interface.

Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index eaf0891..fc44bb3 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3209,9 +3209,13 @@ static void BEx_get_resources(struct be_adapter *adapter,
 
 	res->max_mcast_mac = BE_MAX_MC;
 
-	/* For BE3 1Gb ports, F/W does not properly support multiple TXQs */
-	if (BE2_chip(adapter) || use_sriov || be_is_mc(adapter) ||
-	    !be_physfn(adapter) || (adapter->port_num > 1))
+	/* 1) For BE3 1Gb ports, FW does not support multiple TXQs
+	 * 2) Create multiple TX rings on a BE3-R multi-channel interface
+	 *    *only* if it is RSS-capable.
+	 */
+	if (BE2_chip(adapter) || use_sriov ||  (adapter->port_num > 1) ||
+	    !be_physfn(adapter) || (be_is_mc(adapter) &&
+	    !(adapter->function_caps & BE_FUNCTION_CAPS_RSS)))
 		res->max_tx_qs = 1;
 	else
 		res->max_tx_qs = BE3_MAX_TX_QS;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 6/7] be2net: Fix vlans_added counter
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
                   ` (4 preceding siblings ...)
  2014-03-11 13:23 ` [PATCH net-next 5/7] be2net: Create multiple TXQs on RSS capable multi-channel BE3-R interfaces Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-11 13:23 ` [PATCH net-next 7/7] be2net: update driver version to 10.2 Sathya Perla
  2014-03-12 20:20 ` [PATCH net-next 0/7] be2net: patch set David Miller
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev

From: Vasundhara Volam <vasundhara.volam@emulex.com>

When a VLAN is added by user, adapter->vlans_added is incremented.
But if the VLAN is already programmed in HW, driver ends up
incrementing the counter wrongly.

Increment the counter only if VLAN is not already programmed in the HW.

Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be_main.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index fc44bb3..4173693 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -1138,7 +1138,10 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid)
 
 	/* Packets with VID 0 are always received by Lancer by default */
 	if (lancer_chip(adapter) && vid == 0)
-		goto ret;
+		return status;
+
+	if (adapter->vlan_tag[vid])
+		return status;
 
 	adapter->vlan_tag[vid] = 1;
 	adapter->vlans_added++;
@@ -1148,7 +1151,7 @@ static int be_vlan_add_vid(struct net_device *netdev, __be16 proto, u16 vid)
 		adapter->vlans_added--;
 		adapter->vlan_tag[vid] = 0;
 	}
-ret:
+
 	return status;
 }
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH net-next 7/7] be2net: update driver version to 10.2
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
                   ` (5 preceding siblings ...)
  2014-03-11 13:23 ` [PATCH net-next 6/7] be2net: Fix vlans_added counter Sathya Perla
@ 2014-03-11 13:23 ` Sathya Perla
  2014-03-12 20:20 ` [PATCH net-next 0/7] be2net: patch set David Miller
  7 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-11 13:23 UTC (permalink / raw)
  To: netdev


Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
 drivers/net/ethernet/emulex/benet/be.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index d08c707..a587c8a 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -34,7 +34,7 @@
 #include "be_hw.h"
 #include "be_roce.h"
 
-#define DRV_VER			"10.0.600.0u"
+#define DRV_VER			"10.2u"
 #define DRV_NAME		"be2net"
 #define BE_NAME			"Emulex BladeEngine2"
 #define BE3_NAME		"Emulex BladeEngine3"
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH net-next 0/7] be2net: patch set
  2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
                   ` (6 preceding siblings ...)
  2014-03-11 13:23 ` [PATCH net-next 7/7] be2net: update driver version to 10.2 Sathya Perla
@ 2014-03-12 20:20 ` David Miller
  2014-03-13  7:22   ` Sathya Perla
  7 siblings, 1 reply; 18+ messages in thread
From: David Miller @ 2014-03-12 20:20 UTC (permalink / raw)
  To: sathya.perla; +Cc: netdev

From: Sathya Perla <sathya.perla@emulex.com>
Date: Tue, 11 Mar 2014 18:53:02 +0530

> Pls apply. Thanks!

Series applied, but in the future could you please give a proper
high level description of your changes in this header posting?

Just providing the shortlog does not cut it.

Thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH net-next 0/7] be2net: patch set
  2014-03-12 20:20 ` [PATCH net-next 0/7] be2net: patch set David Miller
@ 2014-03-13  7:22   ` Sathya Perla
  0 siblings, 0 replies; 18+ messages in thread
From: Sathya Perla @ 2014-03-13  7:22 UTC (permalink / raw)
  To: David Miller; +Cc: netdev@vger.kernel.org

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> 
> From: Sathya Perla <sathya.perla@emulex.com>
> Date: Tue, 11 Mar 2014 18:53:02 +0530
> 
> > Pls apply. Thanks!
> 
> Series applied, but in the future could you please give a proper
> high level description of your changes in this header posting?
> 
> Just providing the shortlog does not cut it.
> 

Sure, will do. 

thanks,
-Sathya

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH net-next 0/7] be2net: patch set
@ 2014-05-09  7:59 Sathya Perla
  2014-05-09 17:16 ` David Miller
  0 siblings, 1 reply; 18+ messages in thread
From: Sathya Perla @ 2014-05-09  7:59 UTC (permalink / raw)
  To: netdev

This patch set contains the following modificatons:
* three patches (1/7 to 3/7) that fix indentation style issues
* convert the u8 vlan[] array to a bit-map to reduce memory usage
* use MCCQ instead of MBOX in be_cmd_rss_config() as the MCCQ is already
  created by that time
* include rx-comp-error counter in ethtool stats
* remove the unused promiscuous setting from be_cmd_vlan_config()

Pls apply to net-next tree. Thanks!

Kalesh AP (3):
  be2net: remove unused code in be_cmd_vlan_config()
  be2net: include rx-compl error counter in ethtool stats
  be2net: use MCCQ instead of MBOX in be_cmd_rss_config()

Ravikumar Nelavelli (1):
  be2net: covert vlan array to bit-map

Sathya Perla (3):
  be2net: fix line wrap and function call indentation in be_main.c
  be2net: fix function call indentation in be_cmds.c
  be2net: fix line wrap and function call indentation in be_ethtool.c

 drivers/net/ethernet/emulex/benet/be.h         |    2 +-
 drivers/net/ethernet/emulex/benet/be_cmds.c    |  365 +++++++++++++-----------
 drivers/net/ethernet/emulex/benet/be_cmds.h    |    2 +-
 drivers/net/ethernet/emulex/benet/be_ethtool.c |  101 +++----
 drivers/net/ethernet/emulex/benet/be_main.c    |  224 +++++++--------
 5 files changed, 346 insertions(+), 348 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH net-next 0/7] be2net: patch set
  2014-05-09  7:59 Sathya Perla
@ 2014-05-09 17:16 ` David Miller
  0 siblings, 0 replies; 18+ messages in thread
From: David Miller @ 2014-05-09 17:16 UTC (permalink / raw)
  To: sathya.perla; +Cc: netdev

From: Sathya Perla <sathya.perla@emulex.com>
Date: Fri, 9 May 2014 13:29:12 +0530

> This patch set contains the following modificatons:
> * three patches (1/7 to 3/7) that fix indentation style issues
> * convert the u8 vlan[] array to a bit-map to reduce memory usage
> * use MCCQ instead of MBOX in be_cmd_rss_config() as the MCCQ is already
>   created by that time
> * include rx-comp-error counter in ethtool stats
> * remove the unused promiscuous setting from be_cmd_vlan_config()
> 
> Pls apply to net-next tree. Thanks!

Series applied, thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH net-next 0/7] be2net: patch set
@ 2015-01-20  8:51 Sathya Perla
  2015-01-25  1:23 ` David Miller
  0 siblings, 1 reply; 18+ messages in thread
From: Sathya Perla @ 2015-01-20  8:51 UTC (permalink / raw)
  To: netdev

Hi David, as the below patch-set includes minor bug fixes and some
code re-org, pls consider applying it to the "net-next" tree. Thanks!

Patch 1 fixes a bit of code duplication involving interface object
creation code.

Patch 2 ensures that when a flow-control FW cmd fails, the adapter state
continues to reflect the old values. This allows for correct reporting
on subsequent ethtool "get".

Patch 3 returns proper error for link config change on BE3/Lancer

Patch 4 adds a kernel log message for FW boot error on Lancer

Patch 5 adds a function reset on Lancer as a part of the function init
sequence.

Patch 6 moves some FW-cmd definitions that belong in be_cmds.h, but
were placed in be_hw.h

Patch 7 resets the "bw_min" field while configuring "bw_max" needed
for TX rate limiting config.

Kalesh AP (6):
  be2net: move interface create code to a separate routine
  be2net: fix failure case in setting flow control
  be2net: fail VF link config change via ndo_set_vf_link_state() on
    BE3/Lancer
  be2net: add a log message for POST timeout in Lancer
  be2net: issue function reset cmd in resume path
  be2net: Fix TX rate limiting on Lancer/Skyhawk-R VFs

Vasundhara Volam (1):
  be2net: move definitions related to FW cmdsfrom be_hw.h to be_cmds.h

 drivers/net/ethernet/emulex/benet/be_cmds.c    |  20 ++-
 drivers/net/ethernet/emulex/benet/be_cmds.h    | 175 +++++++++++++++++++
 drivers/net/ethernet/emulex/benet/be_ethtool.c |  14 +-
 drivers/net/ethernet/emulex/benet/be_hw.h      | 223 -------------------------
 drivers/net/ethernet/emulex/benet/be_main.c    |  65 ++++---
 5 files changed, 236 insertions(+), 261 deletions(-)

-- 
2.2.0

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH net-next 0/7] be2net: patch set
  2015-01-20  8:51 Sathya Perla
@ 2015-01-25  1:23 ` David Miller
  0 siblings, 0 replies; 18+ messages in thread
From: David Miller @ 2015-01-25  1:23 UTC (permalink / raw)
  To: sathya.perla; +Cc: netdev

From: Sathya Perla <sathya.perla@emulex.com>
Date: Tue, 20 Jan 2015 03:51:42 -0500

> Hi David, as the below patch-set includes minor bug fixes and some
> code re-org, pls consider applying it to the "net-next" tree. Thanks!

Series applied, thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2015-01-25  1:23 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-11 13:23 [PATCH net-next 0/7] be2net: patch set Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 1/7] be2net: Use GET_PROFILE_CONFIG cmd for BE3-R to query max-vfs Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 2/7] be2net: Add link state control for VFs Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 3/7] be2net: log LPVID used in multi-channel configs Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 4/7] be2net: fix pmac_id[] allocation size Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 5/7] be2net: Create multiple TXQs on RSS capable multi-channel BE3-R interfaces Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 6/7] be2net: Fix vlans_added counter Sathya Perla
2014-03-11 13:23 ` [PATCH net-next 7/7] be2net: update driver version to 10.2 Sathya Perla
2014-03-12 20:20 ` [PATCH net-next 0/7] be2net: patch set David Miller
2014-03-13  7:22   ` Sathya Perla
  -- strict thread matches above, loose matches on Subject: below --
2015-01-20  8:51 Sathya Perla
2015-01-25  1:23 ` David Miller
2014-05-09  7:59 Sathya Perla
2014-05-09 17:16 ` David Miller
2013-08-06  3:57 [PATCH net-next 0/7] be2net " Sathya Perla
2013-08-07 17:40 ` David Miller
2012-11-07  3:48 [PATCH net-next 0/7] be2net: " Sathya Perla
2012-11-07 22:00 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).