All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch net 0/2] mlxsw: couple of fixes
@ 2016-06-09  7:51 Jiri Pirko
  2016-06-09  7:51 ` [patch net 1/2] mlxsw: spectrum: Make split flow match firmware requirements Jiri Pirko
                   ` (2 more replies)
  0 siblings, 3 replies; 44+ messages in thread
From: Jiri Pirko @ 2016-06-09  7:51 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of fixes from Ido.

Ido Schimmel (2):
  mlxsw: spectrum: Make split flow match firmware requirements
  mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 203 ++++++++++++++-----------
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h |   5 +
 2 files changed, 117 insertions(+), 91 deletions(-)

-- 
2.5.5

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

* [patch net 1/2] mlxsw: spectrum: Make split flow match firmware requirements
  2016-06-09  7:51 [patch net 0/2] mlxsw: couple of fixes Jiri Pirko
@ 2016-06-09  7:51 ` Jiri Pirko
  2016-06-09  7:51 ` [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name() Jiri Pirko
  2016-06-09 18:21 ` [patch net 0/2] mlxsw: couple of fixes David Miller
  2 siblings, 0 replies; 44+ messages in thread
From: Jiri Pirko @ 2016-06-09  7:51 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Ido Schimmel <idosch@mellanox.com>

When a port is created following a split / unsplit we need to map it to
the correct module and lane, enable it and then continue to initialize
its various parameters such as MTU and VLAN filters.

Under certain conditions, such as trying to split ports at the bottom
row of the front panel by four, we get firmware errors.

After evaluating this with the firmware team it was decided to alter the
split / unsplit flow, so that first all the affected ports are mapped,
then enabled and finally each is initialized separately.

Fix the split / unsplit flow by first mapping and enabling all the
affected ports. Newer firmware versions will support both flows.

Fixes: 18f1e70c4137 ("mlxsw: spectrum: Introduce port splitting")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 147 ++++++++++++++++---------
 1 file changed, 95 insertions(+), 52 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 4a72737..cc62d4c 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -247,15 +247,23 @@ static int mlxsw_sp_port_mtu_set(struct mlxsw_sp_port *mlxsw_sp_port, u16 mtu)
 	return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(pmtu), pmtu_pl);
 }
 
-static int mlxsw_sp_port_swid_set(struct mlxsw_sp_port *mlxsw_sp_port, u8 swid)
+static int __mlxsw_sp_port_swid_set(struct mlxsw_sp *mlxsw_sp, u8 local_port,
+				    u8 swid)
 {
-	struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
 	char pspa_pl[MLXSW_REG_PSPA_LEN];
 
-	mlxsw_reg_pspa_pack(pspa_pl, swid, mlxsw_sp_port->local_port);
+	mlxsw_reg_pspa_pack(pspa_pl, swid, local_port);
 	return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(pspa), pspa_pl);
 }
 
+static int mlxsw_sp_port_swid_set(struct mlxsw_sp_port *mlxsw_sp_port, u8 swid)
+{
+	struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
+
+	return __mlxsw_sp_port_swid_set(mlxsw_sp, mlxsw_sp_port->local_port,
+					swid);
+}
+
 static int mlxsw_sp_port_vp_mode_set(struct mlxsw_sp_port *mlxsw_sp_port,
 				     bool enable)
 {
@@ -1681,8 +1689,8 @@ static int mlxsw_sp_port_ets_init(struct mlxsw_sp_port *mlxsw_sp_port)
 	return 0;
 }
 
-static int __mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
-				  bool split, u8 module, u8 width)
+static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
+				bool split, u8 module, u8 width)
 {
 	struct mlxsw_sp_port *mlxsw_sp_port;
 	struct net_device *dev;
@@ -1839,28 +1847,6 @@ err_port_active_vlans_alloc:
 	return err;
 }
 
-static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
-				bool split, u8 module, u8 width, u8 lane)
-{
-	int err;
-
-	err = mlxsw_sp_port_module_map(mlxsw_sp, local_port, module, width,
-				       lane);
-	if (err)
-		return err;
-
-	err = __mlxsw_sp_port_create(mlxsw_sp, local_port, split, module,
-				     width);
-	if (err)
-		goto err_port_create;
-
-	return 0;
-
-err_port_create:
-	mlxsw_sp_port_module_unmap(mlxsw_sp, local_port);
-	return err;
-}
-
 static void mlxsw_sp_port_vports_fini(struct mlxsw_sp_port *mlxsw_sp_port)
 {
 	struct net_device *dev = mlxsw_sp_port->dev;
@@ -1927,7 +1913,7 @@ static int mlxsw_sp_ports_create(struct mlxsw_sp *mlxsw_sp)
 		if (!width)
 			continue;
 		mlxsw_sp->port_to_module[i] = module;
-		err = __mlxsw_sp_port_create(mlxsw_sp, i, false, module, width);
+		err = mlxsw_sp_port_create(mlxsw_sp, i, false, module, width);
 		if (err)
 			goto err_port_create;
 	}
@@ -1948,12 +1934,85 @@ static u8 mlxsw_sp_cluster_base_port_get(u8 local_port)
 	return local_port - offset;
 }
 
+static int mlxsw_sp_port_split_create(struct mlxsw_sp *mlxsw_sp, u8 base_port,
+				      u8 module, unsigned int count)
+{
+	u8 width = MLXSW_PORT_MODULE_MAX_WIDTH / count;
+	int err, i;
+
+	for (i = 0; i < count; i++) {
+		err = mlxsw_sp_port_module_map(mlxsw_sp, base_port + i, module,
+					       width, i * width);
+		if (err)
+			goto err_port_module_map;
+	}
+
+	for (i = 0; i < count; i++) {
+		err = __mlxsw_sp_port_swid_set(mlxsw_sp, base_port + i, 0);
+		if (err)
+			goto err_port_swid_set;
+	}
+
+	for (i = 0; i < count; i++) {
+		err = mlxsw_sp_port_create(mlxsw_sp, base_port + i, true,
+					   module, width);
+		if (err)
+			goto err_port_create;
+	}
+
+	return 0;
+
+err_port_create:
+	for (i--; i >= 0; i--)
+		mlxsw_sp_port_remove(mlxsw_sp, base_port + i);
+	i = count;
+err_port_swid_set:
+	for (i--; i >= 0; i--)
+		__mlxsw_sp_port_swid_set(mlxsw_sp, base_port + i,
+					 MLXSW_PORT_SWID_DISABLED_PORT);
+	i = count;
+err_port_module_map:
+	for (i--; i >= 0; i--)
+		mlxsw_sp_port_module_unmap(mlxsw_sp, base_port + i);
+	return err;
+}
+
+static void mlxsw_sp_port_unsplit_create(struct mlxsw_sp *mlxsw_sp,
+					 u8 base_port, unsigned int count)
+{
+	u8 local_port, module, width = MLXSW_PORT_MODULE_MAX_WIDTH;
+	int i;
+
+	/* Split by four means we need to re-create two ports, otherwise
+	 * only one.
+	 */
+	count = count / 2;
+
+	for (i = 0; i < count; i++) {
+		local_port = base_port + i * 2;
+		module = mlxsw_sp->port_to_module[local_port];
+
+		mlxsw_sp_port_module_map(mlxsw_sp, local_port, module, width,
+					 0);
+	}
+
+	for (i = 0; i < count; i++)
+		__mlxsw_sp_port_swid_set(mlxsw_sp, base_port + i * 2, 0);
+
+	for (i = 0; i < count; i++) {
+		local_port = base_port + i * 2;
+		module = mlxsw_sp->port_to_module[local_port];
+
+		mlxsw_sp_port_create(mlxsw_sp, local_port, false, module,
+				     width);
+	}
+}
+
 static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
 			       unsigned int count)
 {
 	struct mlxsw_sp *mlxsw_sp = mlxsw_core_driver_priv(mlxsw_core);
 	struct mlxsw_sp_port *mlxsw_sp_port;
-	u8 width = MLXSW_PORT_MODULE_MAX_WIDTH / count;
 	u8 module, cur_width, base_port;
 	int i;
 	int err;
@@ -2001,25 +2060,16 @@ static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
 	for (i = 0; i < count; i++)
 		mlxsw_sp_port_remove(mlxsw_sp, base_port + i);
 
-	for (i = 0; i < count; i++) {
-		err = mlxsw_sp_port_create(mlxsw_sp, base_port + i, true,
-					   module, width, i * width);
-		if (err) {
-			dev_err(mlxsw_sp->bus_info->dev, "Failed to create split port\n");
-			goto err_port_create;
-		}
+	err = mlxsw_sp_port_split_create(mlxsw_sp, base_port, module, count);
+	if (err) {
+		dev_err(mlxsw_sp->bus_info->dev, "Failed to create split ports\n");
+		goto err_port_split_create;
 	}
 
 	return 0;
 
-err_port_create:
-	for (i--; i >= 0; i--)
-		mlxsw_sp_port_remove(mlxsw_sp, base_port + i);
-	for (i = 0; i < count / 2; i++) {
-		module = mlxsw_sp->port_to_module[base_port + i * 2];
-		mlxsw_sp_port_create(mlxsw_sp, base_port + i * 2, false,
-				     module, MLXSW_PORT_MODULE_MAX_WIDTH, 0);
-	}
+err_port_split_create:
+	mlxsw_sp_port_unsplit_create(mlxsw_sp, base_port, count);
 	return err;
 }
 
@@ -2061,14 +2111,7 @@ static int mlxsw_sp_port_unsplit(struct mlxsw_core *mlxsw_core, u8 local_port)
 	for (i = 0; i < count; i++)
 		mlxsw_sp_port_remove(mlxsw_sp, base_port + i);
 
-	for (i = 0; i < count / 2; i++) {
-		module = mlxsw_sp->port_to_module[base_port + i * 2];
-		err = mlxsw_sp_port_create(mlxsw_sp, base_port + i * 2, false,
-					   module, MLXSW_PORT_MODULE_MAX_WIDTH,
-					   0);
-		if (err)
-			dev_err(mlxsw_sp->bus_info->dev, "Failed to reinstantiate port\n");
-	}
+	mlxsw_sp_port_unsplit_create(mlxsw_sp, base_port, count);
 
 	return 0;
 }
-- 
2.5.5

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

* [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()
  2016-06-09  7:51 [patch net 0/2] mlxsw: couple of fixes Jiri Pirko
  2016-06-09  7:51 ` [patch net 1/2] mlxsw: spectrum: Make split flow match firmware requirements Jiri Pirko
@ 2016-06-09  7:51 ` Jiri Pirko
  2016-06-09  8:50   ` Yuval Mintz
  2016-06-09 18:21 ` [patch net 0/2] mlxsw: couple of fixes David Miller
  2 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-06-09  7:51 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Ido Schimmel <idosch@mellanox.com>

When rtnl_fill_ifinfo() is called for a certain netdevice it queries its
various parameters such as switch id and physical port name. The
function might get called in an atomic context, which means the
underlying driver must not sleep during the query operation.

Don't query the device and sleep during ndo_get_phys_port_name(), but
instead store the needed parameters in port creation time.

Fixes: 2bf9a58675c5 ("mlxsw: spectrum: Add support for physical port names")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 64 +++++++++-----------------
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h |  5 ++
 2 files changed, 26 insertions(+), 43 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index cc62d4c..6f9e3dd 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -313,9 +313,9 @@ mlxsw_sp_port_system_port_mapping_set(struct mlxsw_sp_port *mlxsw_sp_port)
 	return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sspr), sspr_pl);
 }
 
-static int __mlxsw_sp_port_module_info_get(struct mlxsw_sp *mlxsw_sp,
-					   u8 local_port, u8 *p_module,
-					   u8 *p_width, u8 *p_lane)
+static int mlxsw_sp_port_module_info_get(struct mlxsw_sp *mlxsw_sp,
+					 u8 local_port, u8 *p_module,
+					 u8 *p_width, u8 *p_lane)
 {
 	char pmlp_pl[MLXSW_REG_PMLP_LEN];
 	int err;
@@ -330,16 +330,6 @@ static int __mlxsw_sp_port_module_info_get(struct mlxsw_sp *mlxsw_sp,
 	return 0;
 }
 
-static int mlxsw_sp_port_module_info_get(struct mlxsw_sp *mlxsw_sp,
-					 u8 local_port, u8 *p_module,
-					 u8 *p_width)
-{
-	u8 lane;
-
-	return __mlxsw_sp_port_module_info_get(mlxsw_sp, local_port, p_module,
-					       p_width, &lane);
-}
-
 static int mlxsw_sp_port_module_map(struct mlxsw_sp *mlxsw_sp, u8 local_port,
 				    u8 module, u8 width, u8 lane)
 {
@@ -957,17 +947,11 @@ static int mlxsw_sp_port_get_phys_port_name(struct net_device *dev, char *name,
 					    size_t len)
 {
 	struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev);
-	u8 module, width, lane;
+	u8 module = mlxsw_sp_port->mapping.module;
+	u8 width = mlxsw_sp_port->mapping.width;
+	u8 lane = mlxsw_sp_port->mapping.lane;
 	int err;
 
-	err = __mlxsw_sp_port_module_info_get(mlxsw_sp_port->mlxsw_sp,
-					      mlxsw_sp_port->local_port,
-					      &module, &width, &lane);
-	if (err) {
-		netdev_err(dev, "Failed to retrieve module information\n");
-		return err;
-	}
-
 	if (!mlxsw_sp_port->split)
 		err = snprintf(name, len, "p%d", module + 1);
 	else
@@ -1690,7 +1674,7 @@ static int mlxsw_sp_port_ets_init(struct mlxsw_sp_port *mlxsw_sp_port)
 }
 
 static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
-				bool split, u8 module, u8 width)
+				bool split, u8 module, u8 width, u8 lane)
 {
 	struct mlxsw_sp_port *mlxsw_sp_port;
 	struct net_device *dev;
@@ -1705,6 +1689,9 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
 	mlxsw_sp_port->mlxsw_sp = mlxsw_sp;
 	mlxsw_sp_port->local_port = local_port;
 	mlxsw_sp_port->split = split;
+	mlxsw_sp_port->mapping.module = module;
+	mlxsw_sp_port->mapping.width = width;
+	mlxsw_sp_port->mapping.lane = lane;
 	bytes = DIV_ROUND_UP(VLAN_N_VID, BITS_PER_BYTE);
 	mlxsw_sp_port->active_vlans = kzalloc(bytes, GFP_KERNEL);
 	if (!mlxsw_sp_port->active_vlans) {
@@ -1895,8 +1882,8 @@ static void mlxsw_sp_ports_remove(struct mlxsw_sp *mlxsw_sp)
 
 static int mlxsw_sp_ports_create(struct mlxsw_sp *mlxsw_sp)
 {
+	u8 module, width, lane;
 	size_t alloc_size;
-	u8 module, width;
 	int i;
 	int err;
 
@@ -1907,13 +1894,14 @@ static int mlxsw_sp_ports_create(struct mlxsw_sp *mlxsw_sp)
 
 	for (i = 1; i < MLXSW_PORT_MAX_PORTS; i++) {
 		err = mlxsw_sp_port_module_info_get(mlxsw_sp, i, &module,
-						    &width);
+						    &width, &lane);
 		if (err)
 			goto err_port_module_info_get;
 		if (!width)
 			continue;
 		mlxsw_sp->port_to_module[i] = module;
-		err = mlxsw_sp_port_create(mlxsw_sp, i, false, module, width);
+		err = mlxsw_sp_port_create(mlxsw_sp, i, false, module, width,
+					   lane);
 		if (err)
 			goto err_port_create;
 	}
@@ -1955,7 +1943,7 @@ static int mlxsw_sp_port_split_create(struct mlxsw_sp *mlxsw_sp, u8 base_port,
 
 	for (i = 0; i < count; i++) {
 		err = mlxsw_sp_port_create(mlxsw_sp, base_port + i, true,
-					   module, width);
+					   module, width, i * width);
 		if (err)
 			goto err_port_create;
 	}
@@ -2004,7 +1992,7 @@ static void mlxsw_sp_port_unsplit_create(struct mlxsw_sp *mlxsw_sp,
 		module = mlxsw_sp->port_to_module[local_port];
 
 		mlxsw_sp_port_create(mlxsw_sp, local_port, false, module,
-				     width);
+				     width, 0);
 	}
 }
 
@@ -2024,18 +2012,14 @@ static int mlxsw_sp_port_split(struct mlxsw_core *mlxsw_core, u8 local_port,
 		return -EINVAL;
 	}
 
+	module = mlxsw_sp_port->mapping.module;
+	cur_width = mlxsw_sp_port->mapping.width;
+
 	if (count != 2 && count != 4) {
 		netdev_err(mlxsw_sp_port->dev, "Port can only be split into 2 or 4 ports\n");
 		return -EINVAL;
 	}
 
-	err = mlxsw_sp_port_module_info_get(mlxsw_sp, local_port, &module,
-					    &cur_width);
-	if (err) {
-		netdev_err(mlxsw_sp_port->dev, "Failed to get port's width\n");
-		return err;
-	}
-
 	if (cur_width != MLXSW_PORT_MODULE_MAX_WIDTH) {
 		netdev_err(mlxsw_sp_port->dev, "Port cannot be split further\n");
 		return -EINVAL;
@@ -2077,10 +2061,9 @@ static int mlxsw_sp_port_unsplit(struct mlxsw_core *mlxsw_core, u8 local_port)
 {
 	struct mlxsw_sp *mlxsw_sp = mlxsw_core_driver_priv(mlxsw_core);
 	struct mlxsw_sp_port *mlxsw_sp_port;
-	u8 module, cur_width, base_port;
+	u8 cur_width, base_port;
 	unsigned int count;
 	int i;
-	int err;
 
 	mlxsw_sp_port = mlxsw_sp->ports[local_port];
 	if (!mlxsw_sp_port) {
@@ -2094,12 +2077,7 @@ static int mlxsw_sp_port_unsplit(struct mlxsw_core *mlxsw_core, u8 local_port)
 		return -EINVAL;
 	}
 
-	err = mlxsw_sp_port_module_info_get(mlxsw_sp, local_port, &module,
-					    &cur_width);
-	if (err) {
-		netdev_err(mlxsw_sp_port->dev, "Failed to get port's width\n");
-		return err;
-	}
+	cur_width = mlxsw_sp_port->mapping.width;
 	count = cur_width == 1 ? 4 : 2;
 
 	base_port = mlxsw_sp_cluster_base_port_get(local_port);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
index e2c022d..13b30ea 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
@@ -229,6 +229,11 @@ struct mlxsw_sp_port {
 		struct ieee_maxrate *maxrate;
 		struct ieee_pfc *pfc;
 	} dcb;
+	struct {
+		u8 module;
+		u8 width;
+		u8 lane;
+	} mapping;
 	/* 802.1Q bridge VLANs */
 	unsigned long *active_vlans;
 	unsigned long *untagged_vlans;
-- 
2.5.5

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

* RE: [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()
  2016-06-09  7:51 ` [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name() Jiri Pirko
@ 2016-06-09  8:50   ` Yuval Mintz
  2016-06-09  9:16     ` Jiri Pirko
  0 siblings, 1 reply; 44+ messages in thread
From: Yuval Mintz @ 2016-06-09  8:50 UTC (permalink / raw)
  To: Jiri Pirko, netdev; +Cc: David Miller, idosch, eladr, yotamg, nogahf, ogerlitz

> When rtnl_fill_ifinfo() is called for a certain netdevice it queries its various
> parameters such as switch id and physical port name. The function might get
> called in an atomic context, which means the underlying driver must not sleep

Is Documentation/networking/netdevices.txt a deprecated file?
If not, perhaps we should update such information there; Otherwise its trial
and  error for everyone.

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

* Re: [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()
  2016-06-09  8:50   ` Yuval Mintz
@ 2016-06-09  9:16     ` Jiri Pirko
  0 siblings, 0 replies; 44+ messages in thread
From: Jiri Pirko @ 2016-06-09  9:16 UTC (permalink / raw)
  To: Yuval Mintz; +Cc: netdev, David Miller, idosch, eladr, yotamg, nogahf, ogerlitz

Thu, Jun 09, 2016 at 10:50:16AM CEST, Yuval.Mintz@qlogic.com wrote:
>> When rtnl_fill_ifinfo() is called for a certain netdevice it queries its various
>> parameters such as switch id and physical port name. The function might get
>> called in an atomic context, which means the underlying driver must not sleep
>
>Is Documentation/networking/netdevices.txt a deprecated file?
>If not, perhaps we should update such information there; Otherwise its trial
>and  error for everyone.

Looks like Documentation/networking/netdevices.txt needs a lot of work
to make it up to date. Would perhaps make sense to move this info
directly to the initial comment of struct net_device_ops.

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2016-06-09  7:51 [patch net 0/2] mlxsw: couple of fixes Jiri Pirko
  2016-06-09  7:51 ` [patch net 1/2] mlxsw: spectrum: Make split flow match firmware requirements Jiri Pirko
  2016-06-09  7:51 ` [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name() Jiri Pirko
@ 2016-06-09 18:21 ` David Miller
  2 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-06-09 18:21 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Thu,  9 Jun 2016 09:51:38 +0200

> Couple of fixes from Ido.

Series applied, thanks.

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

* Re: [PATCH net 0/2] mlxsw: Couple of fixes
  2020-11-17 17:33 [PATCH net 0/2] mlxsw: Couple " Ido Schimmel
@ 2020-11-18 19:09 ` Jakub Kicinski
  0 siblings, 0 replies; 44+ messages in thread
From: Jakub Kicinski @ 2020-11-18 19:09 UTC (permalink / raw)
  To: Ido Schimmel; +Cc: netdev, davem, jiri, mlxsw, Ido Schimmel

On Tue, 17 Nov 2020 19:33:50 +0200 Ido Schimmel wrote:
> This patch set contains two fixes for mlxsw.
> 
> Patch #1 fixes firmware flashing when CONFIG_MLXSW_CORE=y and
> CONFIG_MLXFW=m.
> 
> Patch #2 prevents EMAD transactions from needlessly failing when the
> system is under heavy load by using exponential backoff.
> 
> Please consider patch #2 for stable.

Applied, and queued, thanks!

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

* [PATCH net 0/2] mlxsw: Couple of fixes
@ 2020-11-17 17:33 Ido Schimmel
  2020-11-18 19:09 ` Jakub Kicinski
  0 siblings, 1 reply; 44+ messages in thread
From: Ido Schimmel @ 2020-11-17 17:33 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

This patch set contains two fixes for mlxsw.

Patch #1 fixes firmware flashing when CONFIG_MLXSW_CORE=y and
CONFIG_MLXFW=m.

Patch #2 prevents EMAD transactions from needlessly failing when the
system is under heavy load by using exponential backoff.

Please consider patch #2 for stable.

Ido Schimmel (2):
  mlxsw: Fix firmware flashing
  mlxsw: core: Use variable timeout for EMAD retries

 drivers/net/ethernet/mellanox/mlxsw/Kconfig | 2 +-
 drivers/net/ethernet/mellanox/mlxsw/core.c  | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

-- 
2.28.0


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

* Re: [PATCH net 0/2] mlxsw: Couple of fixes
  2019-12-29 11:40 Ido Schimmel
@ 2019-12-29 20:30 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2019-12-29 20:30 UTC (permalink / raw)
  To: idosch; +Cc: netdev, jiri, mlxsw, idosch

From: Ido Schimmel <idosch@idosch.org>
Date: Sun, 29 Dec 2019 13:40:21 +0200

> From: Ido Schimmel <idosch@mellanox.com>
> 
> This patch set contains two fixes for mlxsw. Please consider both for
> stable.
> 
> Patch #1 from Amit fixes a wrong check during MAC validation when
> creating router interfaces (RIFs). Given a particular order of
> configuration this can result in the driver refusing to create new RIFs.
> 
> Patch #2 fixes a wrong trap configuration in which VRRP packets and
> routing exceptions were policed by the same policer towards the CPU. In
> certain situations this can prevent VRRP packets from reaching the CPU.

Series applied and queued up for -stable.

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

* [PATCH net 0/2] mlxsw: Couple of fixes
@ 2019-12-29 11:40 Ido Schimmel
  2019-12-29 20:30 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Ido Schimmel @ 2019-12-29 11:40 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@mellanox.com>

This patch set contains two fixes for mlxsw. Please consider both for
stable.

Patch #1 from Amit fixes a wrong check during MAC validation when
creating router interfaces (RIFs). Given a particular order of
configuration this can result in the driver refusing to create new RIFs.

Patch #2 fixes a wrong trap configuration in which VRRP packets and
routing exceptions were policed by the same policer towards the CPU. In
certain situations this can prevent VRRP packets from reaching the CPU.

Amit Cohen (1):
  mlxsw: spectrum_router: Skip loopback RIFs during MAC validation

Ido Schimmel (1):
  mlxsw: spectrum: Use dedicated policer for VRRP packets

 drivers/net/ethernet/mellanox/mlxsw/reg.h             | 1 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c        | 9 +++++++--
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 3 +++
 3 files changed, 11 insertions(+), 2 deletions(-)

-- 
2.24.1


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

* Re: [PATCH net 0/2] mlxsw: Couple of fixes
  2018-10-29 14:26 Ido Schimmel
@ 2018-10-30  3:48 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2018-10-30  3:48 UTC (permalink / raw)
  To: idosch; +Cc: netdev, jiri, petrm, shalomt, alexpe, mlxsw

From: Ido Schimmel <idosch@mellanox.com>
Date: Mon, 29 Oct 2018 14:26:13 +0000

> First patch makes sure mlxsw does not ignore user requests to delete FDB
> entries that were learned by the device.
> 
> Second patch fixes a use-after-free that can be triggered by requesting
> a reload via devlink when the previous reload failed.
> 
> Please consider both patches for stable. They apply cleanly to both
> 4.18.y and 4.19.y.

Applied and queued up for -stable, thanks.

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

* [PATCH net 0/2] mlxsw: Couple of fixes
@ 2018-10-29 14:26 Ido Schimmel
  2018-10-30  3:48 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Ido Schimmel @ 2018-10-29 14:26 UTC (permalink / raw)
  To: netdev
  Cc: davem, Jiri Pirko, Petr Machata, Shalom Toledo,
	Alexander Petrovskiy, mlxsw, Ido Schimmel

First patch makes sure mlxsw does not ignore user requests to delete FDB
entries that were learned by the device.

Second patch fixes a use-after-free that can be triggered by requesting
a reload via devlink when the previous reload failed.

Please consider both patches for stable. They apply cleanly to both
4.18.y and 4.19.y.

Petr Machata (1):
  mlxsw: spectrum_switchdev: Don't ignore deletions of learned MACs

Shalom Toledo (1):
  mlxsw: core: Fix devlink unregister flow

 drivers/net/ethernet/mellanox/mlxsw/core.c    | 24 +++++++++++++------
 .../mellanox/mlxsw/spectrum_switchdev.c       |  2 --
 2 files changed, 17 insertions(+), 9 deletions(-)

-- 
2.17.2

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

* Re: [PATCH net 0/2] mlxsw: Couple of fixes
  2018-10-04 16:56 ` David Miller
@ 2018-10-04 17:05   ` Ido Schimmel
  0 siblings, 0 replies; 44+ messages in thread
From: Ido Schimmel @ 2018-10-04 17:05 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, jiri, mlxsw

On Thu, Oct 04, 2018 at 09:56:54AM -0700, David Miller wrote:
> Series applied, and patch #2 queued up for -stable.
> 
> I was thinking about Fixes tags for the situation in patch #2 a bit,
> and it's probably best to list two Fixes tags.  One for the original
> bug that wasn't fixed properly, and one for the incomplete fix.
> 
> It's nice that you mentioned the incomplete fix in the commit message
> but a backporter might miss this chain of commits and dependencies it
> if it isn't in the Fixes: tags.

Noted. Will do so in future submissions.

Thanks, David.

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

* Re: [PATCH net 0/2] mlxsw: Couple of fixes
  2018-10-04 15:48 Ido Schimmel
@ 2018-10-04 16:56 ` David Miller
  2018-10-04 17:05   ` Ido Schimmel
  0 siblings, 1 reply; 44+ messages in thread
From: David Miller @ 2018-10-04 16:56 UTC (permalink / raw)
  To: idosch; +Cc: netdev, jiri, mlxsw

From: Ido Schimmel <idosch@mellanox.com>
Date: Thu, 4 Oct 2018 15:48:00 +0000

> First patch works around an hardware issue in Spectrum-2 where a field
> indicating the event type is always set to the same value. Since there
> are only two event types and they are reported using different queues,
> we can use the queue number to derive the event type.
> 
> Second patch prevents a router interface (RIF) leakage when a VLAN
> device is deleted from on top a bridge device.

Series applied, and patch #2 queued up for -stable.

I was thinking about Fixes tags for the situation in patch #2 a bit,
and it's probably best to list two Fixes tags.  One for the original
bug that wasn't fixed properly, and one for the incomplete fix.

It's nice that you mentioned the incomplete fix in the commit message
but a backporter might miss this chain of commits and dependencies it
if it isn't in the Fixes: tags.

Thanks.

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

* [PATCH net 0/2] mlxsw: Couple of fixes
@ 2018-10-04 15:48 Ido Schimmel
  2018-10-04 16:56 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Ido Schimmel @ 2018-10-04 15:48 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, mlxsw, Ido Schimmel

First patch works around an hardware issue in Spectrum-2 where a field
indicating the event type is always set to the same value. Since there
are only two event types and they are reported using different queues,
we can use the queue number to derive the event type.

Second patch prevents a router interface (RIF) leakage when a VLAN
device is deleted from on top a bridge device.

Ido Schimmel (1):
  mlxsw: spectrum: Delete RIF when VLAN device is removed

Nir Dotan (1):
  mlxsw: pci: Derive event type from event queue number

 drivers/net/ethernet/mellanox/mlxsw/pci.c      | 11 +++++++----
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c |  2 ++
 2 files changed, 9 insertions(+), 4 deletions(-)

-- 
2.17.1

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2018-02-27 19:39 ` David Miller
@ 2018-02-28  7:09   ` Jiri Pirko
  0 siblings, 0 replies; 44+ messages in thread
From: Jiri Pirko @ 2018-02-28  7:09 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, idosch, mlxsw

Tue, Feb 27, 2018 at 08:39:06PM CET, davem@davemloft.net wrote:
>From: Jiri Pirko <jiri@resnulli.us>
>Date: Tue, 27 Feb 2018 12:56:12 +0100
>
>> From: Jiri Pirko <jiri@mellanox.com>
>> 
>> Couple of unrelated fixes for mlxsw.
>> 
>> ---
>> Please consider the first patch for -stable.
>> Thanks!
>
>Patch #2 doesn't apply cleanly, please respin.

Okay.

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2018-02-27 11:56 [patch net 0/2] mlxsw: couple " Jiri Pirko
@ 2018-02-27 19:39 ` David Miller
  2018-02-28  7:09   ` Jiri Pirko
  0 siblings, 1 reply; 44+ messages in thread
From: David Miller @ 2018-02-27 19:39 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Tue, 27 Feb 2018 12:56:12 +0100

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Couple of unrelated fixes for mlxsw.
> 
> ---
> Please consider the first patch for -stable.
> Thanks!

Patch #2 doesn't apply cleanly, please respin.

Thank you.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2018-02-27 11:56 Jiri Pirko
  2018-02-27 19:39 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2018-02-27 11:56 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Couple of unrelated fixes for mlxsw.

---
Please consider the first patch for -stable.
Thanks!

Jiri Pirko (2):
  mlxsw: core: Fix flex keys scratchpad offset conflict
  mlxsw: spectrum: Fix handling of resource_size_param

 .../ethernet/mellanox/mlxsw/core_acl_flex_keys.h   | 20 +++---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 76 +++++++++++-----------
 include/net/devlink.h                              | 18 ++++-
 net/core/devlink.c                                 |  7 +-
 4 files changed, 68 insertions(+), 53 deletions(-)

-- 
2.14.3

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2018-01-10 10:42 Jiri Pirko
@ 2018-01-10 20:58 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2018-01-10 20:58 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, yuvalm, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Wed, 10 Jan 2018 11:42:42 +0100

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Couple of small fixes for mlxsw driver.

Series applied, thanks.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2018-01-10 10:42 Jiri Pirko
  2018-01-10 20:58 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2018-01-10 10:42 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, yuvalm, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Couple of small fixes for mlxsw driver.

Jiri Pirko (1):
  mlxsw: spectrum_qdisc: Don't use variable array in
    mlxsw_sp_tclass_congestion_enable

Yuval Mintz (1):
  mlxsw: pci: Wait after reset before accessing HW

 drivers/net/ethernet/mellanox/mlxsw/pci.c            | 7 ++++++-
 drivers/net/ethernet/mellanox/mlxsw/pci_hw.h         | 1 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 7 ++++---
 3 files changed, 11 insertions(+), 4 deletions(-)

-- 
2.14.3

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2017-08-04 12:12 [patch net 0/2] mlxsw: Couple " Jiri Pirko
@ 2017-08-04 18:17 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2017-08-04 18:17 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Fri,  4 Aug 2017 14:12:28 +0200

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Ido says:
> 
> The first patch prevents us from warning about valid situations that can
> happen due to the fact that some operations in switchdev are deferred.
> 
> Second patch fixes a long standing problem in which we didn't correctly
> free resources upon module removal, resulting in a memory leak.

Series applied, thanks!

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2017-08-04 12:12 Jiri Pirko
  2017-08-04 18:17 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2017-08-04 12:12 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Ido says:

The first patch prevents us from warning about valid situations that can
happen due to the fact that some operations in switchdev are deferred.

Second patch fixes a long standing problem in which we didn't correctly
free resources upon module removal, resulting in a memory leak.

Ido Schimmel (2):
  mlxsw: spectrum_switchdev: Don't warn about valid situations
  mlxsw: spectrum_switchdev: Release multicast groups during fini

 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c   | 37 ++++++++++++++--------
 1 file changed, 24 insertions(+), 13 deletions(-)

-- 
2.9.3

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2017-05-18  7:18 [patch net 0/2] mlxsw: couple " Jiri Pirko
@ 2017-05-18 15:05 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2017-05-18 15:05 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, arkadis, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Thu, 18 May 2017 09:18:51 +0200

> Couple of fixes from Arkadi

Series applied.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2017-05-18  7:18 Jiri Pirko
  2017-05-18 15:05 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2017-05-18  7:18 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, arkadis, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Cuple of fixes from Arkadi

Arkadi Sharshevsky (2):
  mlxsw: spectrum_dpipe: Fix incorrect entry index
  mlxsw: spectrum_router: Fix rif counter freeing routine

 drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c  | 3 ++-
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.9.3

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2017-03-14 12:59 [patch net 0/2] mlxsw: Couple " Jiri Pirko
@ 2017-03-14 18:35 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2017-03-14 18:35 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Tue, 14 Mar 2017 13:59:59 +0100

> Couple or small fixes.

Series applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2017-03-14 12:59 Jiri Pirko
  2017-03-14 18:35 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2017-03-14 12:59 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Couple or small fixes.

Jiri Pirko (2):
  mlxsw: reg: Fix SPVM max record count
  mlxsw: reg: Fix SPVMLR max record count

 drivers/net/ethernet/mellanox/mlxsw/reg.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.7.4

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2016-11-11 10:20 Jiri Pirko
@ 2016-11-13 17:48 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-11-13 17:48 UTC (permalink / raw)
  To: jiri; +Cc: netdev, yotamg, arkadis, idosch, eladr, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Fri, 11 Nov 2016 11:20:40 +0100

> Please, queue-up both for stable. Thanks!

Series applied and queued up for -stable, thanks.

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2016-11-11 10:20 Jiri Pirko
  2016-11-13 17:48 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-11-11 10:20 UTC (permalink / raw)
  To: netdev; +Cc: davem, yotamg, arkadis, idosch, eladr, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Please, queue-up both for stable. Thanks!

Arkadi Sharshevsky (1):
  mlxsw: spectrum_router: Correctly dump neighbour activity

Yotam Gigi (1):
  mlxsw: spectrum: Fix refcount bug on span entries

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 11 ++++++-----
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  | 22 +++++++++++++++++++++-
 2 files changed, 27 insertions(+), 6 deletions(-)

-- 
2.7.4

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2016-10-25  9:25 Jiri Pirko
@ 2016-10-28 17:44 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-10-28 17:44 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Tue, 25 Oct 2016 11:25:55 +0200

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Couple of LPM tree management fixes.

Series applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2016-10-25  9:25 Jiri Pirko
  2016-10-28 17:44 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-10-25  9:25 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of LPM tree management fixes.

Jiri Pirko (2):
  mlxsw: spectrum_router: Save requested prefix bitlist when creating
    tree
  mlxsw: spectrum_router: Compare only trees which are in use during
    tree get

 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.5.5

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2016-10-05  0:29 ` David Miller
@ 2016-10-05 11:14   ` Jiri Pirko
  0 siblings, 0 replies; 44+ messages in thread
From: Jiri Pirko @ 2016-10-05 11:14 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, yotamg, idosch, eladr, nogahf, ogerlitz

Wed, Oct 05, 2016 at 02:29:27AM CEST, davem@davemloft.net wrote:
>From: Jiri Pirko <jiri@resnulli.us>
>Date: Tue,  4 Oct 2016 09:46:03 +0200
>
>> Couple of fixes from Yotam.
>
>Series applied, thanks.
>
>Note that needed_headroom is a request, rather than a guarantee, so you
>may in some rare cases need to realloc your headroom if the kernel was
>not able to meet your request.

We already do that: 

        if (unlikely(skb_headroom(skb) < MLXSW_TXHDR_LEN)) {
                struct sk_buff *skb_orig = skb;

                skb = skb_realloc_headroom(skb, MLXSW_TXHDR_LEN);
                if (!skb) {
                        this_cpu_inc(mlxsw_sp_port->pcpu_stats->tx_dropped);
                        dev_kfree_skb_any(skb_orig);
                        return NETDEV_TX_OK;
                }
        }

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2016-10-04  7:46 Jiri Pirko
@ 2016-10-05  0:29 ` David Miller
  2016-10-05 11:14   ` Jiri Pirko
  0 siblings, 1 reply; 44+ messages in thread
From: David Miller @ 2016-10-05  0:29 UTC (permalink / raw)
  To: jiri; +Cc: netdev, yotamg, idosch, eladr, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Tue,  4 Oct 2016 09:46:03 +0200

> Couple of fixes from Yotam.

Series applied, thanks.

Note that needed_headroom is a request, rather than a guarantee, so you
may in some rare cases need to realloc your headroom if the kernel was
not able to meet your request.

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2016-10-04  7:46 Jiri Pirko
  2016-10-05  0:29 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-10-04  7:46 UTC (permalink / raw)
  To: netdev; +Cc: davem, yotamg, idosch, eladr, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of fixes from Yotam.

Yotam Gigi (2):
  mlxsw: spectrum: Fix misuse of hard_header_len
  mlxsw: switchx2: Fix misuse of hard_header_len

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 +-
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.5.5

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2016-09-08  6:16 [patch net 0/2] mlxsw: couple " Jiri Pirko
@ 2016-09-09 23:57 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-09-09 23:57 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Thu,  8 Sep 2016 08:16:00 +0200

> Couple of fixes from Ido and myself.

Series applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2016-09-08  6:16 Jiri Pirko
  2016-09-09 23:57 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-09-08  6:16 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of fixes from Ido and myself.

Ido Schimmel (1):
  mlxsw: spectrum: Set port type before setting its address

Jiri Pirko (1):
  mlxsw: spectrum_router: Fix error path in mlxsw_sp_router_init

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c        | 18 +++++++++---------
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c |  9 ++++++++-
 2 files changed, 17 insertions(+), 10 deletions(-)

-- 
2.5.5

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2016-08-24  9:18 Jiri Pirko
@ 2016-08-24 16:39 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-08-24 16:39 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Wed, 24 Aug 2016 11:18:50 +0200

> Ido Schimmel (1):
>   mlxsw: spectrum: Add missing flood to router port
> 
> Yotam Gigi (1):
>   mlxsw: router: Enable neighbors to be created on stacked devices

Both applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2016-08-24  9:18 Jiri Pirko
  2016-08-24 16:39 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-08-24  9:18 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, nogahf, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Ido Schimmel (1):
  mlxsw: spectrum: Add missing flood to router port

Yotam Gigi (1):
  mlxsw: router: Enable neighbors to be created on stacked devices

 drivers/net/ethernet/mellanox/mlxsw/port.h         |  1 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 43 +++++++++++++++++++++-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |  2 +-
 3 files changed, 44 insertions(+), 2 deletions(-)

-- 
2.5.5

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2016-06-17 13:09 Jiri Pirko
@ 2016-06-18  4:58 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-06-18  4:58 UTC (permalink / raw)
  To: jiri; +Cc: netdev, nogahf, idosch, eladr, yotamg, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Fri, 17 Jun 2016 15:09:04 +0200

> Couple of slowpath tx stats fixes for Spectrum and SwitchX-2.

Series applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2016-06-17 13:09 Jiri Pirko
  2016-06-18  4:58 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-06-17 13:09 UTC (permalink / raw)
  To: netdev; +Cc: davem, nogahf, idosch, eladr, yotamg, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of slowpath tx stats fixes for Spectrum and SwitchX-2.

Nogah Frankel (2):
  mlxsw: spectrum: Don't count internal TX header bytes to stats
  mlxsw: switchx2: Don't count internal TX header bytes to stats

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 6 +++++-
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

-- 
2.5.5

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

* Re: [patch net 0/2] mlxsw: Couple of fixes
  2016-05-06 20:18 [patch net 0/2] mlxsw: Couple " Jiri Pirko
@ 2016-05-06 22:33 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2016-05-06 22:33 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr, yotamg, ogerlitz

From: Jiri Pirko <jiri@resnulli.us>
Date: Fri,  6 May 2016 22:18:38 +0200

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Ido Schimmel (2):
>   mlxsw: spectrum: Fix rollback order in LAG join failure
>   mlxsw: spectrum: Add missing rollback in flood configuration

Applied.

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

* [patch net 0/2] mlxsw: Couple of fixes
@ 2016-05-06 20:18 Jiri Pirko
  2016-05-06 22:33 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2016-05-06 20:18 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Ido Schimmel (2):
  mlxsw: spectrum: Fix rollback order in LAG join failure
  mlxsw: spectrum: Add missing rollback in flood configuration

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c           | 4 ++--
 drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

-- 
2.5.5

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2016-03-07  8:24 Jiri Pirko
  0 siblings, 0 replies; 44+ messages in thread
From: Jiri Pirko @ 2016-03-07  8:24 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr, yotamg, ogerlitz

From: Jiri Pirko <jiri@mellanox.com>

Couple of fixes from Ido.

Ido Schimmel (2):
  mlxsw: spectrum: Always decrement bridge's ref count
  mlxsw: pci: Correctly determine if descriptor queue is full

 drivers/net/ethernet/mellanox/mlxsw/pci.c      | 2 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

-- 
2.5.0

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

* Re: [patch net 0/2] mlxsw: couple of fixes
  2015-10-08 13:17 Jiri Pirko
@ 2015-10-11 12:08 ` David Miller
  0 siblings, 0 replies; 44+ messages in thread
From: David Miller @ 2015-10-11 12:08 UTC (permalink / raw)
  To: jiri; +Cc: netdev, idosch, eladr

From: Jiri Pirko <jiri@resnulli.us>
Date: Thu,  8 Oct 2015 15:17:36 +0200

> Just a couple of small fixes.

Series applied, thanks Jiri.

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

* [patch net 0/2] mlxsw: couple of fixes
@ 2015-10-08 13:17 Jiri Pirko
  2015-10-11 12:08 ` David Miller
  0 siblings, 1 reply; 44+ messages in thread
From: Jiri Pirko @ 2015-10-08 13:17 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, eladr

From: Jiri Pirko <jiri@mellanox.com>

Just a couple of small fixes.

Elad Raz (1):
  mlxsw: switchx2: changing order of exit fallbacks

Ido Schimmel (1):
  mlxsw: Fix bug in __mlxsw_item_bit_array_offset

 drivers/net/ethernet/mellanox/mlxsw/item.h     | 4 +++-
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

-- 
1.9.3

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

end of thread, other threads:[~2020-11-18 19:09 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-09  7:51 [patch net 0/2] mlxsw: couple of fixes Jiri Pirko
2016-06-09  7:51 ` [patch net 1/2] mlxsw: spectrum: Make split flow match firmware requirements Jiri Pirko
2016-06-09  7:51 ` [patch net 2/2] mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name() Jiri Pirko
2016-06-09  8:50   ` Yuval Mintz
2016-06-09  9:16     ` Jiri Pirko
2016-06-09 18:21 ` [patch net 0/2] mlxsw: couple of fixes David Miller
  -- strict thread matches above, loose matches on Subject: below --
2020-11-17 17:33 [PATCH net 0/2] mlxsw: Couple " Ido Schimmel
2020-11-18 19:09 ` Jakub Kicinski
2019-12-29 11:40 Ido Schimmel
2019-12-29 20:30 ` David Miller
2018-10-29 14:26 Ido Schimmel
2018-10-30  3:48 ` David Miller
2018-10-04 15:48 Ido Schimmel
2018-10-04 16:56 ` David Miller
2018-10-04 17:05   ` Ido Schimmel
2018-02-27 11:56 [patch net 0/2] mlxsw: couple " Jiri Pirko
2018-02-27 19:39 ` David Miller
2018-02-28  7:09   ` Jiri Pirko
2018-01-10 10:42 Jiri Pirko
2018-01-10 20:58 ` David Miller
2017-08-04 12:12 [patch net 0/2] mlxsw: Couple " Jiri Pirko
2017-08-04 18:17 ` David Miller
2017-05-18  7:18 [patch net 0/2] mlxsw: couple " Jiri Pirko
2017-05-18 15:05 ` David Miller
2017-03-14 12:59 [patch net 0/2] mlxsw: Couple " Jiri Pirko
2017-03-14 18:35 ` David Miller
2016-11-11 10:20 Jiri Pirko
2016-11-13 17:48 ` David Miller
2016-10-25  9:25 Jiri Pirko
2016-10-28 17:44 ` David Miller
2016-10-04  7:46 Jiri Pirko
2016-10-05  0:29 ` David Miller
2016-10-05 11:14   ` Jiri Pirko
2016-09-08  6:16 [patch net 0/2] mlxsw: couple " Jiri Pirko
2016-09-09 23:57 ` David Miller
2016-08-24  9:18 Jiri Pirko
2016-08-24 16:39 ` David Miller
2016-06-17 13:09 Jiri Pirko
2016-06-18  4:58 ` David Miller
2016-05-06 20:18 [patch net 0/2] mlxsw: Couple " Jiri Pirko
2016-05-06 22:33 ` David Miller
2016-03-07  8:24 [patch net 0/2] mlxsw: couple " Jiri Pirko
2015-10-08 13:17 Jiri Pirko
2015-10-11 12:08 ` David Miller

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.