All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/4] mlx4 misc fixes
@ 2017-08-01 13:43 Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 1/4] net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support Tariq Toukan
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-08-01 13:43 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Eran Ben Elisha, Tariq Toukan

Hi Dave,

This patchset contains misc bug fixes from the team
to the mlx4 Core and Eth drivers.

Patch 1 by Inbar fixes a wrong ethtool indication for Wake-on-LAN.
The other 3 patches by Jack add a missing capability description,
and fixes the off-by-1 misalignment for the following capabilities
descriptions.

Series generated against net commit:
cc75f8514db6 samples/bpf: fix bpf tunnel cleanup

Thanks,
Tariq.


Inbar Karmy (1):
  net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support

Jack Morgenstein (3):
  net/mlx4_core: Fix sl_to_vl_change bit offset in flags2 dump
  net/mlx4_core: Fix namespace misalignment in QinQ VST support commit
  net/mlx4_core: Fixes missing capability bit in flags2 capability dump

 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 15 ++++++++-------
 drivers/net/ethernet/mellanox/mlx4/fw.c         |  9 +++++++--
 drivers/net/ethernet/mellanox/mlx4/fw.h         |  1 +
 drivers/net/ethernet/mellanox/mlx4/main.c       |  2 ++
 include/linux/mlx4/device.h                     |  1 +
 5 files changed, 19 insertions(+), 9 deletions(-)

-- 
1.8.3.1

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

* [PATCH net 1/4] net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support
  2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
@ 2017-08-01 13:43 ` Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 2/4] net/mlx4_core: Fix sl_to_vl_change bit offset in flags2 dump Tariq Toukan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-08-01 13:43 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Eran Ben Elisha, Inbar Karmy, Tariq Toukan

From: Inbar Karmy <inbark@mellanox.com>

Currently when WoL is supported but disabled, ethtool reports:
"Supports Wake-on: d".
Fix the indication of Wol support, so that the indication
remains "g" all the time if the NIC supports WoL.

Tested:
As accepted, when NIC supports WoL- ethtool reports:
	Supports Wake-on: g
	Wake-on: d
when NIC doesn't support WoL- ethtool reports:
        Supports Wake-on: d
        Wake-on: d

Fixes: 14c07b1358ed ("mlx4: Wake on LAN support")
Signed-off-by: Inbar Karmy <inbark@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 15 ++++++++-------
 drivers/net/ethernet/mellanox/mlx4/fw.c         |  4 ++++
 drivers/net/ethernet/mellanox/mlx4/fw.h         |  1 +
 drivers/net/ethernet/mellanox/mlx4/main.c       |  2 ++
 include/linux/mlx4/device.h                     |  1 +
 5 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index c751a1d434ad..3d4e4a5d00d1 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -223,6 +223,7 @@ static void mlx4_en_get_wol(struct net_device *netdev,
 			    struct ethtool_wolinfo *wol)
 {
 	struct mlx4_en_priv *priv = netdev_priv(netdev);
+	struct mlx4_caps *caps = &priv->mdev->dev->caps;
 	int err = 0;
 	u64 config = 0;
 	u64 mask;
@@ -235,24 +236,24 @@ static void mlx4_en_get_wol(struct net_device *netdev,
 	mask = (priv->port == 1) ? MLX4_DEV_CAP_FLAG_WOL_PORT1 :
 		MLX4_DEV_CAP_FLAG_WOL_PORT2;
 
-	if (!(priv->mdev->dev->caps.flags & mask)) {
+	if (!(caps->flags & mask)) {
 		wol->supported = 0;
 		wol->wolopts = 0;
 		return;
 	}
 
+	if (caps->wol_port[priv->port])
+		wol->supported = WAKE_MAGIC;
+	else
+		wol->supported = 0;
+
 	err = mlx4_wol_read(priv->mdev->dev, &config, priv->port);
 	if (err) {
 		en_err(priv, "Failed to get WoL information\n");
 		return;
 	}
 
-	if (config & MLX4_EN_WOL_MAGIC)
-		wol->supported = WAKE_MAGIC;
-	else
-		wol->supported = 0;
-
-	if (config & MLX4_EN_WOL_ENABLED)
+	if ((config & MLX4_EN_WOL_ENABLED) && (config & MLX4_EN_WOL_MAGIC))
 		wol->wolopts = WAKE_MAGIC;
 	else
 		wol->wolopts = 0;
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 37e84a59e751..c165f16623a9 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -764,6 +764,7 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
 #define QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET	0x3e
 #define QUERY_DEV_CAP_MAX_PKEY_OFFSET		0x3f
 #define QUERY_DEV_CAP_EXT_FLAGS_OFFSET		0x40
+#define QUERY_DEV_CAP_WOL_OFFSET		0x43
 #define QUERY_DEV_CAP_FLAGS_OFFSET		0x44
 #define QUERY_DEV_CAP_RSVD_UAR_OFFSET		0x48
 #define QUERY_DEV_CAP_UAR_SZ_OFFSET		0x49
@@ -920,6 +921,9 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
 	MLX4_GET(ext_flags, outbox, QUERY_DEV_CAP_EXT_FLAGS_OFFSET);
 	MLX4_GET(flags, outbox, QUERY_DEV_CAP_FLAGS_OFFSET);
 	dev_cap->flags = flags | (u64)ext_flags << 32;
+	MLX4_GET(field, outbox, QUERY_DEV_CAP_WOL_OFFSET);
+	dev_cap->wol_port[1] = !!(field & 0x20);
+	dev_cap->wol_port[2] = !!(field & 0x40);
 	MLX4_GET(field, outbox, QUERY_DEV_CAP_RSVD_UAR_OFFSET);
 	dev_cap->reserved_uars = field >> 4;
 	MLX4_GET(field, outbox, QUERY_DEV_CAP_UAR_SZ_OFFSET);
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.h b/drivers/net/ethernet/mellanox/mlx4/fw.h
index 5343a0599253..b52ba01aa486 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.h
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.h
@@ -129,6 +129,7 @@ struct mlx4_dev_cap {
 	u32 dmfs_high_rate_qpn_range;
 	struct mlx4_rate_limit_caps rl_caps;
 	struct mlx4_port_cap port_cap[MLX4_MAX_PORTS + 1];
+	bool wol_port[MLX4_MAX_PORTS + 1];
 };
 
 struct mlx4_func_cap {
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index a27c9c13a36e..09b9bc17bce9 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -424,6 +424,8 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
 	dev->caps.stat_rate_support  = dev_cap->stat_rate_support;
 	dev->caps.max_gso_sz	     = dev_cap->max_gso_sz;
 	dev->caps.max_rss_tbl_sz     = dev_cap->max_rss_tbl_sz;
+	dev->caps.wol_port[1]          = dev_cap->wol_port[1];
+	dev->caps.wol_port[2]          = dev_cap->wol_port[2];
 
 	/* Save uar page shift */
 	if (!mlx4_is_slave(dev)) {
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index aad5d81dfb44..b54517c05e9a 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -620,6 +620,7 @@ struct mlx4_caps {
 	u32			dmfs_high_rate_qpn_base;
 	u32			dmfs_high_rate_qpn_range;
 	u32			vf_caps;
+	bool			wol_port[MLX4_MAX_PORTS + 1];
 	struct mlx4_rate_limit_caps rl_caps;
 };
 
-- 
1.8.3.1

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

* [PATCH net 2/4] net/mlx4_core: Fix sl_to_vl_change bit offset in flags2 dump
  2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 1/4] net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support Tariq Toukan
@ 2017-08-01 13:43 ` Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 3/4] net/mlx4_core: Fix namespace misalignment in QinQ VST support commit Tariq Toukan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-08-01 13:43 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Eran Ben Elisha, Jack Morgenstein, Tariq Toukan

From: Jack Morgenstein <jackm@dev.mellanox.co.il>

The index value in function dump_dev_cap_flags2() for outputting
"sl to vl mapping table change event support" needs to be
consistent with the value of the enumerated constant
MLX4_DEV_CAP_FLAG2_SL_TO_VL_CHANGE_EVENT defined in file
include/linux/mlx4_device.h

The change here restores that consistency.

Fixes: fd10ed8e6f42 ("IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets")
Reported-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index c165f16623a9..009dd03466d6 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -160,7 +160,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
 		[33] = "RoCEv2 support",
 		[34] = "DMFS Sniffer support (UC & MC)",
 		[35] = "QinQ VST mode support",
-		[36] = "sl to vl mapping table change event support"
+		[37] = "sl to vl mapping table change event support",
 	};
 	int i;
 
-- 
1.8.3.1

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

* [PATCH net 3/4] net/mlx4_core: Fix namespace misalignment in QinQ VST support commit
  2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 1/4] net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 2/4] net/mlx4_core: Fix sl_to_vl_change bit offset in flags2 dump Tariq Toukan
@ 2017-08-01 13:43 ` Tariq Toukan
  2017-08-01 13:43 ` [PATCH net 4/4] net/mlx4_core: Fixes missing capability bit in flags2 capability dump Tariq Toukan
  2017-08-02 17:44 ` [PATCH net 0/4] mlx4 misc fixes David Miller
  4 siblings, 0 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-08-01 13:43 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Eran Ben Elisha, Jack Morgenstein, Tariq Toukan

From: Jack Morgenstein <jackm@dev.mellanox.co.il>

The cited commit introduced the following new enum value in file
include/linux/mlx4/device.h:

    MLX4_DEV_CAP_FLAG2_SVLAN_BY_QP

However the value of MLX4_DEV_CAP_FLAG2_SVLAN_BY_QP needs to stay
consistent with the value used in another namespace in
function dump_dev_cap_flags2(), which is manually kept in sync.
The change here restores that consistency.

Fixes: 7c3d21c8153c ("net/mlx4_core: Preparation for VF vlan protocol 802.1ad")
Reported-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 009dd03466d6..7c9502bae1cc 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -159,7 +159,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
 		[32] = "Loopback source checks support",
 		[33] = "RoCEv2 support",
 		[34] = "DMFS Sniffer support (UC & MC)",
-		[35] = "QinQ VST mode support",
+		[36] = "QinQ VST mode support",
 		[37] = "sl to vl mapping table change event support",
 	};
 	int i;
-- 
1.8.3.1

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

* [PATCH net 4/4] net/mlx4_core: Fixes missing capability bit in flags2 capability dump
  2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
                   ` (2 preceding siblings ...)
  2017-08-01 13:43 ` [PATCH net 3/4] net/mlx4_core: Fix namespace misalignment in QinQ VST support commit Tariq Toukan
@ 2017-08-01 13:43 ` Tariq Toukan
  2017-08-02 17:44 ` [PATCH net 0/4] mlx4 misc fixes David Miller
  4 siblings, 0 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-08-01 13:43 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev, Eran Ben Elisha, Jack Morgenstein, Tariq Toukan

From: Jack Morgenstein <jackm@dev.mellanox.co.il>

The cited commit introduced the following new enum value in file
include/linux/mlx4/device.h:

    QUERY_DEV_CAP_DIAG_RPRT_PER_PORT

However, it failed to introduce a corresponding entry in function
dump_dev_cap_flags2() for outputting a line in the message log
when this capability bit is set.

The change here fixes that omission.

Fixes: c7c122ed67e4 ("net/mlx4: Add diagnostic counters capability bit")
Reported-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/fw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 7c9502bae1cc..041c0ed65929 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -159,6 +159,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
 		[32] = "Loopback source checks support",
 		[33] = "RoCEv2 support",
 		[34] = "DMFS Sniffer support (UC & MC)",
+		[35] = "Diag counters per port",
 		[36] = "QinQ VST mode support",
 		[37] = "sl to vl mapping table change event support",
 	};
-- 
1.8.3.1

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

* Re: [PATCH net 0/4] mlx4 misc fixes
  2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
                   ` (3 preceding siblings ...)
  2017-08-01 13:43 ` [PATCH net 4/4] net/mlx4_core: Fixes missing capability bit in flags2 capability dump Tariq Toukan
@ 2017-08-02 17:44 ` David Miller
  4 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2017-08-02 17:44 UTC (permalink / raw)
  To: tariqt; +Cc: netdev, eranbe

From: Tariq Toukan <tariqt@mellanox.com>
Date: Tue,  1 Aug 2017 16:43:42 +0300

> This patchset contains misc bug fixes from the team
> to the mlx4 Core and Eth drivers.
> 
> Patch 1 by Inbar fixes a wrong ethtool indication for Wake-on-LAN.
> The other 3 patches by Jack add a missing capability description,
> and fixes the off-by-1 misalignment for the following capabilities
> descriptions.
> 
> Series generated against net commit:
> cc75f8514db6 samples/bpf: fix bpf tunnel cleanup

Series applied, thanks!

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

* Re: [PATCH net 0/4] mlx4 misc fixes
  2017-02-22 12:33 Tariq Toukan
@ 2017-02-22 16:24 ` Tariq Toukan
  0 siblings, 0 replies; 8+ messages in thread
From: Tariq Toukan @ 2017-02-22 16:24 UTC (permalink / raw)
  To: Tariq Toukan, David S. Miller
  Cc: netdev, Eran Ben Elisha, Yotam Gigi, Dexuan Cui



On 22/02/2017 2:33 PM, Tariq Toukan wrote:
> Hi Dave,
>
> This patchset contains misc bug fixes from the team
> to the mlx4 Core and Eth drivers.
>
> Series generated against net commit:
> 00ea1ceebe0d ipv6: release dst on error in ip6_dst_lookup_tail
>
> Thanks,
> Tariq.
>

Please ignore this one.
I am submitting V2 with an additional patch.

Thanks,
Tariq

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

* [PATCH net 0/4] mlx4 misc fixes
@ 2017-02-22 12:33 Tariq Toukan
  2017-02-22 16:24 ` Tariq Toukan
  0 siblings, 1 reply; 8+ messages in thread
From: Tariq Toukan @ 2017-02-22 12:33 UTC (permalink / raw)
  To: David S. Miller
  Cc: netdev, Eran Ben Elisha, Yotam Gigi, Dexuan Cui, Tariq Toukan

Hi Dave,

This patchset contains misc bug fixes from the team
to the mlx4 Core and Eth drivers.

Series generated against net commit:
00ea1ceebe0d ipv6: release dst on error in ip6_dst_lookup_tail

Thanks,
Tariq.

Eugenia Emantayev (1):
  net/mlx4: Spoofcheck and zero MAC can't coexist

Jack Morgenstein (1):
  net/mlx4_core: Use cq quota in SRIOV when creating completion EQs

Majd Dibbiny (1):
  net/mlx4_core: Fix VF overwrite of module param which disables DMFS on
    new probed PFs

Or Gerlitz (1):
  net/mlx4: Change ENOTSUPP to EOPNOTSUPP

 drivers/net/ethernet/mellanox/mlx4/cmd.c           | 22 ++++++++++++++++++++--
 drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c     |  2 +-
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |  6 +-----
 drivers/net/ethernet/mellanox/mlx4/eq.c            |  5 ++---
 drivers/net/ethernet/mellanox/mlx4/fw.c            |  2 +-
 drivers/net/ethernet/mellanox/mlx4/intf.c          |  2 +-
 drivers/net/ethernet/mellanox/mlx4/main.c          | 11 +++++------
 drivers/net/ethernet/mellanox/mlx4/mr.c            |  2 +-
 drivers/net/ethernet/mellanox/mlx4/qp.c            |  2 +-
 .../net/ethernet/mellanox/mlx4/resource_tracker.c  |  2 +-
 include/linux/mlx4/cmd.h                           |  2 +-
 include/linux/mlx4/driver.h                        | 10 ++++++++++
 12 files changed, 45 insertions(+), 23 deletions(-)

-- 
1.8.3.1

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

end of thread, other threads:[~2017-08-02 17:44 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-01 13:43 [PATCH net 0/4] mlx4 misc fixes Tariq Toukan
2017-08-01 13:43 ` [PATCH net 1/4] net/mlx4_en: Fix wrong indication of Wake-on-LAN (WoL) support Tariq Toukan
2017-08-01 13:43 ` [PATCH net 2/4] net/mlx4_core: Fix sl_to_vl_change bit offset in flags2 dump Tariq Toukan
2017-08-01 13:43 ` [PATCH net 3/4] net/mlx4_core: Fix namespace misalignment in QinQ VST support commit Tariq Toukan
2017-08-01 13:43 ` [PATCH net 4/4] net/mlx4_core: Fixes missing capability bit in flags2 capability dump Tariq Toukan
2017-08-02 17:44 ` [PATCH net 0/4] mlx4 misc fixes David Miller
  -- strict thread matches above, loose matches on Subject: below --
2017-02-22 12:33 Tariq Toukan
2017-02-22 16:24 ` Tariq Toukan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.