* [PATCH net 0/3] Few mvneta fixes
@ 2016-03-08 12:57 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
Gregory CLEMENT, linux-arm-kernel, Lior Amsalem, Nadav Haklai,
Marcin Wojtas, Patrick Uiterwijk, Dimitri Epshtein, Ofer Heifetz
Hi David,
here is a patch set of few fixes. Without the first one, a kernel
configured with debug features ended to hang when the driver is built
as a module and is removed. This is quite is annoying for debugging!
The second patch fix a forgotten flag at the initial submission of the
driver.
The third patch is only really a cosmetic one so I have no problem to
not apply it for 4.5 and wait for 4.6.
I really would like to see the first one applied for 4.5 and for the
second I let you judge if it something needed for now or that should
wait the next release.
Thanks,
Gregory
Dmitri Epshtein (2):
net: mvneta: enable change MAC address when interface is up
net: mvneta: fix error messages in mvneta_port_down function
Gregory CLEMENT (1):
net: mvneta: Fix spinlock usage
drivers/net/ethernet/marvell/mvneta.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2016-03-08 12:57 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: linux-arm-kernel
Hi David,
here is a patch set of few fixes. Without the first one, a kernel
configured with debug features ended to hang when the driver is built
as a module and is removed. This is quite is annoying for debugging!
The second patch fix a forgotten flag at the initial submission of the
driver.
The third patch is only really a cosmetic one so I have no problem to
not apply it for 4.5 and wait for 4.6.
I really would like to see the first one applied for 4.5 and for the
second I let you judge if it something needed for now or that should
wait the next release.
Thanks,
Gregory
Dmitri Epshtein (2):
net: mvneta: enable change MAC address when interface is up
net: mvneta: fix error messages in mvneta_port_down function
Gregory CLEMENT (1):
net: mvneta: Fix spinlock usage
drivers/net/ethernet/marvell/mvneta.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 1/3] net: mvneta: Fix spinlock usage
2016-03-08 12:57 ` Gregory CLEMENT
@ 2016-03-08 12:57 ` Gregory CLEMENT
-1 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
Gregory CLEMENT, linux-arm-kernel, Lior Amsalem, Nadav Haklai,
Marcin Wojtas, Patrick Uiterwijk, Dimitri Epshtein, Ofer Heifetz
In the previous patch, the spinlock was not initialized. While it didn't
cause any trouble yet it could be a problem to use it uninitialized.
The most annoying part was the critical section protected by the spinlock
in mvneta_stop(). Some of the functions could sleep as pointed when
activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
need to protect the is_stopped flagged, indeed the code of the notifier
for CPU online is protected by the same spinlock, so when we get the
lock, the notifer work is done.
Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index b0ae69f84493..8dc7df2edff6 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
struct mvneta_port *pp = netdev_priv(dev);
/* Inform that we are stopping so we don't want to setup the
- * driver for new CPUs in the notifiers
+ * driver for new CPUs in the notifiers. The code of the
+ * notifier for CPU online is protected by the same spinlock,
+ * so when we get the lock, the notifer work is done.
*/
spin_lock(&pp->lock);
pp->is_stopped = true;
+ spin_unlock(&pp->lock);
+
mvneta_stop_dev(pp);
mvneta_mdio_remove(pp);
unregister_cpu_notifier(&pp->cpu_notifier);
- /* Now that the notifier are unregistered, we can release le
- * lock
- */
- spin_unlock(&pp->lock);
on_each_cpu(mvneta_percpu_disable, pp, true);
free_percpu_irq(dev->irq, pp->ports);
mvneta_cleanup_rxqs(pp);
@@ -3612,6 +3612,7 @@ static int mvneta_probe(struct platform_device *pdev)
dev->ethtool_ops = &mvneta_eth_tool_ops;
pp = netdev_priv(dev);
+ spin_lock_init(&pp->lock);
pp->phy_node = phy_node;
pp->phy_interface = phy_mode;
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH net 1/3] net: mvneta: Fix spinlock usage
@ 2016-03-08 12:57 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: linux-arm-kernel
In the previous patch, the spinlock was not initialized. While it didn't
cause any trouble yet it could be a problem to use it uninitialized.
The most annoying part was the critical section protected by the spinlock
in mvneta_stop(). Some of the functions could sleep as pointed when
activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
need to protect the is_stopped flagged, indeed the code of the notifier
for CPU online is protected by the same spinlock, so when we get the
lock, the notifer work is done.
Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index b0ae69f84493..8dc7df2edff6 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
struct mvneta_port *pp = netdev_priv(dev);
/* Inform that we are stopping so we don't want to setup the
- * driver for new CPUs in the notifiers
+ * driver for new CPUs in the notifiers. The code of the
+ * notifier for CPU online is protected by the same spinlock,
+ * so when we get the lock, the notifer work is done.
*/
spin_lock(&pp->lock);
pp->is_stopped = true;
+ spin_unlock(&pp->lock);
+
mvneta_stop_dev(pp);
mvneta_mdio_remove(pp);
unregister_cpu_notifier(&pp->cpu_notifier);
- /* Now that the notifier are unregistered, we can release le
- * lock
- */
- spin_unlock(&pp->lock);
on_each_cpu(mvneta_percpu_disable, pp, true);
free_percpu_irq(dev->irq, pp->ports);
mvneta_cleanup_rxqs(pp);
@@ -3612,6 +3612,7 @@ static int mvneta_probe(struct platform_device *pdev)
dev->ethtool_ops = &mvneta_eth_tool_ops;
pp = netdev_priv(dev);
+ spin_lock_init(&pp->lock);
pp->phy_node = phy_node;
pp->phy_interface = phy_mode;
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH net 2/3] net: mvneta: enable change MAC address when interface is up
2016-03-08 12:57 ` Gregory CLEMENT
@ 2016-03-08 12:57 ` Gregory CLEMENT
-1 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
Gregory CLEMENT, linux-arm-kernel, Lior Amsalem, Nadav Haklai,
Marcin Wojtas, Patrick Uiterwijk, Dimitri Epshtein, Ofer Heifetz,
stable
From: Dmitri Epshtein <dima@marvell.com>
Function eth_prepare_mac_addr_change() is called as part of MAC
address change. This function check if interface is running.
To enable change MAC address when interface is running:
IFF_LIVE_ADDR_CHANGE flag must be set to dev->priv_flags field
Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP
network unit")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 8dc7df2edff6..2ee05cebea75 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3721,7 +3721,7 @@ static int mvneta_probe(struct platform_device *pdev)
dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
dev->hw_features |= dev->features;
dev->vlan_features |= dev->features;
- dev->priv_flags |= IFF_UNICAST_FLT;
+ dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE;
dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
err = register_netdev(dev);
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH net 2/3] net: mvneta: enable change MAC address when interface is up
@ 2016-03-08 12:57 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: linux-arm-kernel
From: Dmitri Epshtein <dima@marvell.com>
Function eth_prepare_mac_addr_change() is called as part of MAC
address change. This function check if interface is running.
To enable change MAC address when interface is running:
IFF_LIVE_ADDR_CHANGE flag must be set to dev->priv_flags field
Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP
network unit")
Cc: stable at vger.kernel.org
Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 8dc7df2edff6..2ee05cebea75 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3721,7 +3721,7 @@ static int mvneta_probe(struct platform_device *pdev)
dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
dev->hw_features |= dev->features;
dev->vlan_features |= dev->features;
- dev->priv_flags |= IFF_UNICAST_FLT;
+ dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE;
dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
err = register_netdev(dev);
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH net 3/3] net: mvneta: fix error messages in mvneta_port_down function
2016-03-08 12:57 ` Gregory CLEMENT
@ 2016-03-08 12:57 ` Gregory CLEMENT
-1 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev, Thomas Petazzoni
Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
Gregory CLEMENT, linux-arm-kernel, Lior Amsalem, Nadav Haklai,
Marcin Wojtas, Patrick Uiterwijk, Dimitri Epshtein, Ofer Heifetz
From: Dmitri Epshtein <dima@marvell.com>
This commit corrects error printing when shutting down the port. Also
magic numbers are replaced by existing macros.
Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 2ee05cebea75..225d933259c0 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -873,14 +873,14 @@ static void mvneta_port_down(struct mvneta_port *pp)
do {
if (count++ >= MVNETA_RX_DISABLE_TIMEOUT_MSEC) {
netdev_warn(pp->dev,
- "TIMEOUT for RX stopped ! rx_queue_cmd: 0x08%x\n",
+ "TIMEOUT for RX stopped ! rx_queue_cmd: 0x%08x\n",
val);
break;
}
mdelay(1);
val = mvreg_read(pp, MVNETA_RXQ_CMD);
- } while (val & 0xff);
+ } while (val & MVNETA_RXQ_ENABLE_MASK);
/* Stop Tx port activity. Check port Tx activity. Issue stop
* command for active channels only
@@ -905,14 +905,14 @@ static void mvneta_port_down(struct mvneta_port *pp)
/* Check TX Command reg that all Txqs are stopped */
val = mvreg_read(pp, MVNETA_TXQ_CMD);
- } while (val & 0xff);
+ } while (val & MVNETA_TXQ_ENABLE_MASK);
/* Double check to verify that TX FIFO is empty */
count = 0;
do {
if (count++ >= MVNETA_TX_FIFO_EMPTY_TIMEOUT) {
netdev_warn(pp->dev,
- "TX FIFO empty timeout status=0x08%x\n",
+ "TX FIFO empty timeout status=0x%08x\n",
val);
break;
}
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH net 3/3] net: mvneta: fix error messages in mvneta_port_down function
@ 2016-03-08 12:57 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-08 12:57 UTC (permalink / raw)
To: linux-arm-kernel
From: Dmitri Epshtein <dima@marvell.com>
This commit corrects error printing when shutting down the port. Also
magic numbers are replaced by existing macros.
Signed-off-by: Dmitri Epshtein <dima@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
---
drivers/net/ethernet/marvell/mvneta.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 2ee05cebea75..225d933259c0 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -873,14 +873,14 @@ static void mvneta_port_down(struct mvneta_port *pp)
do {
if (count++ >= MVNETA_RX_DISABLE_TIMEOUT_MSEC) {
netdev_warn(pp->dev,
- "TIMEOUT for RX stopped ! rx_queue_cmd: 0x08%x\n",
+ "TIMEOUT for RX stopped ! rx_queue_cmd: 0x%08x\n",
val);
break;
}
mdelay(1);
val = mvreg_read(pp, MVNETA_RXQ_CMD);
- } while (val & 0xff);
+ } while (val & MVNETA_RXQ_ENABLE_MASK);
/* Stop Tx port activity. Check port Tx activity. Issue stop
* command for active channels only
@@ -905,14 +905,14 @@ static void mvneta_port_down(struct mvneta_port *pp)
/* Check TX Command reg that all Txqs are stopped */
val = mvreg_read(pp, MVNETA_TXQ_CMD);
- } while (val & 0xff);
+ } while (val & MVNETA_TXQ_ENABLE_MASK);
/* Double check to verify that TX FIFO is empty */
count = 0;
do {
if (count++ >= MVNETA_TX_FIFO_EMPTY_TIMEOUT) {
netdev_warn(pp->dev,
- "TX FIFO empty timeout status=0x08%x\n",
+ "TX FIFO empty timeout status=0x%08x\n",
val);
break;
}
--
2.5.0
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH net 1/3] net: mvneta: Fix spinlock usage
2016-03-08 12:57 ` Gregory CLEMENT
@ 2016-03-09 6:42 ` Jisheng Zhang
-1 siblings, 0 replies; 26+ messages in thread
From: Jisheng Zhang @ 2016-03-09 6:42 UTC (permalink / raw)
To: Gregory CLEMENT, David S. Miller, Thomas Petazzoni
Cc: linux-kernel, netdev, Lior Amsalem, Andrew Lunn, Jason Cooper,
Ofer Heifetz, Nadav Haklai, Patrick Uiterwijk, Marcin Wojtas,
Dimitri Epshtein, linux-arm-kernel, Sebastian Hesselbarth
Dear Gregory,
On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
> In the previous patch, the spinlock was not initialized. While it didn't
> cause any trouble yet it could be a problem to use it uninitialized.
>
> The most annoying part was the critical section protected by the spinlock
> in mvneta_stop(). Some of the functions could sleep as pointed when
> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
> need to protect the is_stopped flagged, indeed the code of the notifier
> for CPU online is protected by the same spinlock, so when we get the
> lock, the notifer work is done.
>
> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
> index b0ae69f84493..8dc7df2edff6 100644
> --- a/drivers/net/ethernet/marvell/mvneta.c
> +++ b/drivers/net/ethernet/marvell/mvneta.c
> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
> struct mvneta_port *pp = netdev_priv(dev);
>
> /* Inform that we are stopping so we don't want to setup the
> - * driver for new CPUs in the notifiers
> + * driver for new CPUs in the notifiers. The code of the
> + * notifier for CPU online is protected by the same spinlock,
> + * so when we get the lock, the notifer work is done.
> */
> spin_lock(&pp->lock);
> pp->is_stopped = true;
> + spin_unlock(&pp->lock);
This fix sleep in atomic issue. But
I see race here. Let's assume is_stopped is false.
cpu0: cpu1:
mvneta_percpu_notifier(): mvneta_stop():
if (pp->is_stopped) {
spin_unlock(&pp->lock);
break;
}
pp->is_stopped = true;
spin_unlock(&pp->lock);
netif_tx_stop_all_queues(pp->dev);
for_each_online_cpu(other_cpu) {
....
Thanks,
Jisheng
> +
> mvneta_stop_dev(pp);
> mvneta_mdio_remove(pp);
> unregister_cpu_notifier(&pp->cpu_notifier);
> - /* Now that the notifier are unregistered, we can release le
> - * lock
> - */
> - spin_unlock(&pp->lock);
> on_each_cpu(mvneta_percpu_disable, pp, true);
> free_percpu_irq(dev->irq, pp->ports);
> mvneta_cleanup_rxqs(pp);
> @@ -3612,6 +3612,7 @@ static int mvneta_probe(struct platform_device *pdev)
> dev->ethtool_ops = &mvneta_eth_tool_ops;
>
> pp = netdev_priv(dev);
> + spin_lock_init(&pp->lock);
> pp->phy_node = phy_node;
> pp->phy_interface = phy_mode;
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 1/3] net: mvneta: Fix spinlock usage
@ 2016-03-09 6:42 ` Jisheng Zhang
0 siblings, 0 replies; 26+ messages in thread
From: Jisheng Zhang @ 2016-03-09 6:42 UTC (permalink / raw)
To: linux-arm-kernel
Dear Gregory,
On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
> In the previous patch, the spinlock was not initialized. While it didn't
> cause any trouble yet it could be a problem to use it uninitialized.
>
> The most annoying part was the critical section protected by the spinlock
> in mvneta_stop(). Some of the functions could sleep as pointed when
> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
> need to protect the is_stopped flagged, indeed the code of the notifier
> for CPU online is protected by the same spinlock, so when we get the
> lock, the notifer work is done.
>
> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
> index b0ae69f84493..8dc7df2edff6 100644
> --- a/drivers/net/ethernet/marvell/mvneta.c
> +++ b/drivers/net/ethernet/marvell/mvneta.c
> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
> struct mvneta_port *pp = netdev_priv(dev);
>
> /* Inform that we are stopping so we don't want to setup the
> - * driver for new CPUs in the notifiers
> + * driver for new CPUs in the notifiers. The code of the
> + * notifier for CPU online is protected by the same spinlock,
> + * so when we get the lock, the notifer work is done.
> */
> spin_lock(&pp->lock);
> pp->is_stopped = true;
> + spin_unlock(&pp->lock);
This fix sleep in atomic issue. But
I see race here. Let's assume is_stopped is false.
cpu0: cpu1:
mvneta_percpu_notifier(): mvneta_stop():
if (pp->is_stopped) {
spin_unlock(&pp->lock);
break;
}
pp->is_stopped = true;
spin_unlock(&pp->lock);
netif_tx_stop_all_queues(pp->dev);
for_each_online_cpu(other_cpu) {
....
Thanks,
Jisheng
> +
> mvneta_stop_dev(pp);
> mvneta_mdio_remove(pp);
> unregister_cpu_notifier(&pp->cpu_notifier);
> - /* Now that the notifier are unregistered, we can release le
> - * lock
> - */
> - spin_unlock(&pp->lock);
> on_each_cpu(mvneta_percpu_disable, pp, true);
> free_percpu_irq(dev->irq, pp->ports);
> mvneta_cleanup_rxqs(pp);
> @@ -3612,6 +3612,7 @@ static int mvneta_probe(struct platform_device *pdev)
> dev->ethtool_ops = &mvneta_eth_tool_ops;
>
> pp = netdev_priv(dev);
> + spin_lock_init(&pp->lock);
> pp->phy_node = phy_node;
> pp->phy_interface = phy_mode;
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 1/3] net: mvneta: Fix spinlock usage
2016-03-09 6:42 ` Jisheng Zhang
@ 2016-03-09 7:49 ` Gregory CLEMENT
-1 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-09 7:49 UTC (permalink / raw)
To: Jisheng Zhang
Cc: David S. Miller, Thomas Petazzoni, linux-kernel, netdev,
Lior Amsalem, Andrew Lunn, Jason Cooper, Ofer Heifetz,
Nadav Haklai, Patrick Uiterwijk, Marcin Wojtas, Dimitri Epshtein,
linux-arm-kernel, Sebastian Hesselbarth
Hi Jisheng,
On mer., mars 09 2016, Jisheng Zhang <jszhang@marvell.com> wrote:
> Dear Gregory,
>
> On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
>
>> In the previous patch, the spinlock was not initialized. While it didn't
>> cause any trouble yet it could be a problem to use it uninitialized.
>>
>> The most annoying part was the critical section protected by the spinlock
>> in mvneta_stop(). Some of the functions could sleep as pointed when
>> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
>> need to protect the is_stopped flagged, indeed the code of the notifier
>> for CPU online is protected by the same spinlock, so when we get the
>> lock, the notifer work is done.
>>
>> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
>> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
>> ---
>> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
>> 1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
>> index b0ae69f84493..8dc7df2edff6 100644
>> --- a/drivers/net/ethernet/marvell/mvneta.c
>> +++ b/drivers/net/ethernet/marvell/mvneta.c
>> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
>> struct mvneta_port *pp = netdev_priv(dev);
>>
>> /* Inform that we are stopping so we don't want to setup the
>> - * driver for new CPUs in the notifiers
>> + * driver for new CPUs in the notifiers. The code of the
>> + * notifier for CPU online is protected by the same spinlock,
>> + * so when we get the lock, the notifer work is done.
>> */
>> spin_lock(&pp->lock);
>> pp->is_stopped = true;
>> + spin_unlock(&pp->lock);
>
> This fix sleep in atomic issue. But
> I see race here. Let's assume is_stopped is false.
You forgot that the lock was hold in the mvneta_percpu_notifier so your
scenario can't happen.
>
> cpu0: cpu1:
> mvneta_percpu_notifier(): mvneta_stop():
>
spin_lock(&pp->lock);
> if (pp->is_stopped) {
> spin_unlock(&pp->lock);
> break;
> }
>
the lock is hold in
mvneta_percpu_notifier(), so as
said in the comment this cpu is
waiting for on the following
line:
spin_lock(&pp->lock);
This code will be executed only
when the lock will be released
> pp->is_stopped = true;
> spin_unlock(&pp->lock);
>
>
> netif_tx_stop_all_queues(pp->dev);
> for_each_online_cpu(other_cpu) {
> ....
>
So what will happen is:
cpu0: cpu1:
mvneta_percpu_notifier(): mvneta_stop():
spin_lock(&pp->lock);
if (pp->is_stopped) {
spin_unlock(&pp->lock);
break;
}
spin_lock(&pp->lock);
netif_tx_stop_all_queues(pp->dev);
for_each_online_cpu(other_cpu) {
....
spin_unlock(&pp->lock);
pp->is_stopped = true;
spin_unlock(&pp->lock);
Gregory
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 1/3] net: mvneta: Fix spinlock usage
@ 2016-03-09 7:49 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2016-03-09 7:49 UTC (permalink / raw)
To: linux-arm-kernel
Hi Jisheng,
On mer., mars 09 2016, Jisheng Zhang <jszhang@marvell.com> wrote:
> Dear Gregory,
>
> On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
>
>> In the previous patch, the spinlock was not initialized. While it didn't
>> cause any trouble yet it could be a problem to use it uninitialized.
>>
>> The most annoying part was the critical section protected by the spinlock
>> in mvneta_stop(). Some of the functions could sleep as pointed when
>> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
>> need to protect the is_stopped flagged, indeed the code of the notifier
>> for CPU online is protected by the same spinlock, so when we get the
>> lock, the notifer work is done.
>>
>> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
>> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
>> ---
>> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
>> 1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
>> index b0ae69f84493..8dc7df2edff6 100644
>> --- a/drivers/net/ethernet/marvell/mvneta.c
>> +++ b/drivers/net/ethernet/marvell/mvneta.c
>> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
>> struct mvneta_port *pp = netdev_priv(dev);
>>
>> /* Inform that we are stopping so we don't want to setup the
>> - * driver for new CPUs in the notifiers
>> + * driver for new CPUs in the notifiers. The code of the
>> + * notifier for CPU online is protected by the same spinlock,
>> + * so when we get the lock, the notifer work is done.
>> */
>> spin_lock(&pp->lock);
>> pp->is_stopped = true;
>> + spin_unlock(&pp->lock);
>
> This fix sleep in atomic issue. But
> I see race here. Let's assume is_stopped is false.
You forgot that the lock was hold in the mvneta_percpu_notifier so your
scenario can't happen.
>
> cpu0: cpu1:
> mvneta_percpu_notifier(): mvneta_stop():
>
spin_lock(&pp->lock);
> if (pp->is_stopped) {
> spin_unlock(&pp->lock);
> break;
> }
>
the lock is hold in
mvneta_percpu_notifier(), so as
said in the comment this cpu is
waiting for on the following
line:
spin_lock(&pp->lock);
This code will be executed only
when the lock will be released
> pp->is_stopped = true;
> spin_unlock(&pp->lock);
>
>
> netif_tx_stop_all_queues(pp->dev);
> for_each_online_cpu(other_cpu) {
> ....
>
So what will happen is:
cpu0: cpu1:
mvneta_percpu_notifier(): mvneta_stop():
spin_lock(&pp->lock);
if (pp->is_stopped) {
spin_unlock(&pp->lock);
break;
}
spin_lock(&pp->lock);
netif_tx_stop_all_queues(pp->dev);
for_each_online_cpu(other_cpu) {
....
spin_unlock(&pp->lock);
pp->is_stopped = true;
spin_unlock(&pp->lock);
Gregory
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 1/3] net: mvneta: Fix spinlock usage
2016-03-09 7:49 ` Gregory CLEMENT
@ 2016-03-09 8:13 ` Jisheng Zhang
-1 siblings, 0 replies; 26+ messages in thread
From: Jisheng Zhang @ 2016-03-09 8:13 UTC (permalink / raw)
To: Gregory CLEMENT
Cc: David S. Miller, Thomas Petazzoni, linux-kernel, netdev,
Lior Amsalem, Andrew Lunn, Jason Cooper, Ofer Heifetz,
Nadav Haklai, Patrick Uiterwijk, Marcin Wojtas, Dimitri Epshtein,
linux-arm-kernel, Sebastian Hesselbarth
Dear Gregory,
On Wed, 9 Mar 2016 08:49:40 +0100 Gregory CLEMENT wrote:
> Hi Jisheng,
>
> On mer., mars 09 2016, Jisheng Zhang <jszhang@marvell.com> wrote:
>
> > Dear Gregory,
> >
> > On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
> >
> >> In the previous patch, the spinlock was not initialized. While it didn't
> >> cause any trouble yet it could be a problem to use it uninitialized.
> >>
> >> The most annoying part was the critical section protected by the spinlock
> >> in mvneta_stop(). Some of the functions could sleep as pointed when
> >> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
> >> need to protect the is_stopped flagged, indeed the code of the notifier
> >> for CPU online is protected by the same spinlock, so when we get the
> >> lock, the notifer work is done.
> >>
> >> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
> >> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> >> ---
> >> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
> >> 1 file changed, 6 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
> >> index b0ae69f84493..8dc7df2edff6 100644
> >> --- a/drivers/net/ethernet/marvell/mvneta.c
> >> +++ b/drivers/net/ethernet/marvell/mvneta.c
> >> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
> >> struct mvneta_port *pp = netdev_priv(dev);
> >>
> >> /* Inform that we are stopping so we don't want to setup the
> >> - * driver for new CPUs in the notifiers
> >> + * driver for new CPUs in the notifiers. The code of the
> >> + * notifier for CPU online is protected by the same spinlock,
> >> + * so when we get the lock, the notifer work is done.
> >> */
> >> spin_lock(&pp->lock);
> >> pp->is_stopped = true;
> >> + spin_unlock(&pp->lock);
> >
> > This fix sleep in atomic issue. But
> > I see race here. Let's assume is_stopped is false.
>
> You forgot that the lock was hold in the mvneta_percpu_notifier so your
> scenario can't happen.
>
> >
> > cpu0: cpu1:
> > mvneta_percpu_notifier(): mvneta_stop():
> >
>
> spin_lock(&pp->lock);
>
> > if (pp->is_stopped) {
> > spin_unlock(&pp->lock);
> > break;
> > }
OOPS, I misread the code here as "the lock will be unlocked" ;)
Sorry for noise.
If you want, feel free to add
Reviewed-by: Jisheng Zhang <jszhang@marvell.com>
> >
>
> the lock is hold in
> mvneta_percpu_notifier(), so as
> said in the comment this cpu is
> waiting for on the following
> line:
> spin_lock(&pp->lock);
>
> This code will be executed only
> when the lock will be released
> > pp->is_stopped = true;
> > spin_unlock(&pp->lock);
> >
> >
> > netif_tx_stop_all_queues(pp->dev);
> > for_each_online_cpu(other_cpu) {
> > ....
> >
> So what will happen is:
> cpu0: cpu1:
> mvneta_percpu_notifier(): mvneta_stop():
>
> spin_lock(&pp->lock);
> if (pp->is_stopped) {
> spin_unlock(&pp->lock);
> break;
> }
> spin_lock(&pp->lock);
>
> netif_tx_stop_all_queues(pp->dev);
> for_each_online_cpu(other_cpu) {
> ....
> spin_unlock(&pp->lock);
> pp->is_stopped = true;
> spin_unlock(&pp->lock);
>
>
> Gregory
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 1/3] net: mvneta: Fix spinlock usage
@ 2016-03-09 8:13 ` Jisheng Zhang
0 siblings, 0 replies; 26+ messages in thread
From: Jisheng Zhang @ 2016-03-09 8:13 UTC (permalink / raw)
To: linux-arm-kernel
Dear Gregory,
On Wed, 9 Mar 2016 08:49:40 +0100 Gregory CLEMENT wrote:
> Hi Jisheng,
>
> On mer., mars 09 2016, Jisheng Zhang <jszhang@marvell.com> wrote:
>
> > Dear Gregory,
> >
> > On Tue, 8 Mar 2016 13:57:04 +0100 Gregory CLEMENT wrote:
> >
> >> In the previous patch, the spinlock was not initialized. While it didn't
> >> cause any trouble yet it could be a problem to use it uninitialized.
> >>
> >> The most annoying part was the critical section protected by the spinlock
> >> in mvneta_stop(). Some of the functions could sleep as pointed when
> >> activated CONFIG_DEBUG_ATOMIC_SLEEP. Actually, in mvneta_stop() we only
> >> need to protect the is_stopped flagged, indeed the code of the notifier
> >> for CPU online is protected by the same spinlock, so when we get the
> >> lock, the notifer work is done.
> >>
> >> Reported-by: Patrick Uiterwijk <patrick@puiterwijk.org>
> >> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> >> ---
> >> drivers/net/ethernet/marvell/mvneta.c | 11 ++++++-----
> >> 1 file changed, 6 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
> >> index b0ae69f84493..8dc7df2edff6 100644
> >> --- a/drivers/net/ethernet/marvell/mvneta.c
> >> +++ b/drivers/net/ethernet/marvell/mvneta.c
> >> @@ -3070,17 +3070,17 @@ static int mvneta_stop(struct net_device *dev)
> >> struct mvneta_port *pp = netdev_priv(dev);
> >>
> >> /* Inform that we are stopping so we don't want to setup the
> >> - * driver for new CPUs in the notifiers
> >> + * driver for new CPUs in the notifiers. The code of the
> >> + * notifier for CPU online is protected by the same spinlock,
> >> + * so when we get the lock, the notifer work is done.
> >> */
> >> spin_lock(&pp->lock);
> >> pp->is_stopped = true;
> >> + spin_unlock(&pp->lock);
> >
> > This fix sleep in atomic issue. But
> > I see race here. Let's assume is_stopped is false.
>
> You forgot that the lock was hold in the mvneta_percpu_notifier so your
> scenario can't happen.
>
> >
> > cpu0: cpu1:
> > mvneta_percpu_notifier(): mvneta_stop():
> >
>
> spin_lock(&pp->lock);
>
> > if (pp->is_stopped) {
> > spin_unlock(&pp->lock);
> > break;
> > }
OOPS, I misread the code here as "the lock will be unlocked" ;)
Sorry for noise.
If you want, feel free to add
Reviewed-by: Jisheng Zhang <jszhang@marvell.com>
> >
>
> the lock is hold in
> mvneta_percpu_notifier(), so as
> said in the comment this cpu is
> waiting for on the following
> line:
> spin_lock(&pp->lock);
>
> This code will be executed only
> when the lock will be released
> > pp->is_stopped = true;
> > spin_unlock(&pp->lock);
> >
> >
> > netif_tx_stop_all_queues(pp->dev);
> > for_each_online_cpu(other_cpu) {
> > ....
> >
> So what will happen is:
> cpu0: cpu1:
> mvneta_percpu_notifier(): mvneta_stop():
>
> spin_lock(&pp->lock);
> if (pp->is_stopped) {
> spin_unlock(&pp->lock);
> break;
> }
> spin_lock(&pp->lock);
>
> netif_tx_stop_all_queues(pp->dev);
> for_each_online_cpu(other_cpu) {
> ....
> spin_unlock(&pp->lock);
> pp->is_stopped = true;
> spin_unlock(&pp->lock);
>
>
> Gregory
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 3/3] net: mvneta: fix error messages in mvneta_port_down function
2016-03-08 12:57 ` Gregory CLEMENT
@ 2016-03-11 19:20 ` David Miller
-1 siblings, 0 replies; 26+ messages in thread
From: David Miller @ 2016-03-11 19:20 UTC (permalink / raw)
To: gregory.clement
Cc: linux-kernel, netdev, thomas.petazzoni, jason, andrew,
sebastian.hesselbarth, linux-arm-kernel, alior, nadavh, mw,
patrick, dima, oferh
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
Date: Tue, 8 Mar 2016 13:57:06 +0100
> From: Dmitri Epshtein <dima@marvell.com>
>
> This commit corrects error printing when shutting down the port. Also
> magic numbers are replaced by existing macros.
>
> Signed-off-by: Dmitri Epshtein <dima@marvell.com>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Individual patches should do one thing, rather than several at once.
Please split this up into two changes, thanks.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 3/3] net: mvneta: fix error messages in mvneta_port_down function
@ 2016-03-11 19:20 ` David Miller
0 siblings, 0 replies; 26+ messages in thread
From: David Miller @ 2016-03-11 19:20 UTC (permalink / raw)
To: linux-arm-kernel
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
Date: Tue, 8 Mar 2016 13:57:06 +0100
> From: Dmitri Epshtein <dima@marvell.com>
>
> This commit corrects error printing when shutting down the port. Also
> magic numbers are replaced by existing macros.
>
> Signed-off-by: Dmitri Epshtein <dima@marvell.com>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Individual patches should do one thing, rather than several at once.
Please split this up into two changes, thanks.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 0/3] Few mvneta fixes
2017-12-19 16:59 ` Gregory CLEMENT
@ 2017-12-20 17:26 ` David Miller
-1 siblings, 0 replies; 26+ messages in thread
From: David Miller @ 2017-12-20 17:26 UTC (permalink / raw)
To: gregory.clement
Cc: linux-kernel, netdev, jason, andrew, sebastian.hesselbarth,
thomas.petazzoni, linux-arm-kernel, antoine.tenart,
miquel.raynal, nadavh, mw, alior, dima
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
Date: Tue, 19 Dec 2017 17:59:44 +0100
> here it is a small series of fixes found on the mvneta driver. They
> had been already used in the vendor kernel and are now ported to
> mainline.
Series applied, thanks Gregory.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-20 17:26 ` David Miller
0 siblings, 0 replies; 26+ messages in thread
From: David Miller @ 2017-12-20 17:26 UTC (permalink / raw)
To: linux-arm-kernel
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
Date: Tue, 19 Dec 2017 17:59:44 +0100
> here it is a small series of fixes found on the mvneta driver. They
> had been already used in the vendor kernel and are now ported to
> mainline.
Series applied, thanks Gregory.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 0/3] Few mvneta fixes
2017-12-19 20:18 ` Arnd Bergmann
(?)
@ 2017-12-20 5:19 ` Willy Tarreau
-1 siblings, 0 replies; 26+ messages in thread
From: Willy Tarreau @ 2017-12-20 5:19 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Gregory CLEMENT, David S. Miller, Linux Kernel Mailing List,
Networking, Thomas Petazzoni, Andrew Lunn, Jason Cooper,
Antoine Tenart, Nadav Haklai, Lior Amsalem, Miquèl Raynal,
Marcin Wojtas, Dmitri Epshtein, Linux ARM, Sebastian Hesselbarth
Hi Arnd,
On Tue, Dec 19, 2017 at 09:18:35PM +0100, Arnd Bergmann wrote:
> On Tue, Dec 19, 2017 at 5:59 PM, Gregory CLEMENT
> <gregory.clement@free-electrons.com> wrote:
> > Hello,
> >
> > here it is a small series of fixes found on the mvneta driver. They
> > had been already used in the vendor kernel and are now ported to
> > mainline.
>
> Does one of the patches look like it addresses the rare Oops we discussed on
> #kernelci this morning?
>
> https://storage.kernelci.org/stable/linux-4.9.y/v4.9.70/arm/mvebu_v7_defconfig/lab-free-electrons/boot-armada-375-db.html
I could be wrong but for me the 375 uses mvpp2, not mvneta, so this
should have no effect there.
Willy
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 0/3] Few mvneta fixes
@ 2017-12-20 5:19 ` Willy Tarreau
0 siblings, 0 replies; 26+ messages in thread
From: Willy Tarreau @ 2017-12-20 5:19 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Thomas Petazzoni, Andrew Lunn, Jason Cooper, Networking,
Antoine Tenart, Linux Kernel Mailing List, Dmitri Epshtein,
Nadav Haklai, Lior Amsalem, Miquèl Raynal, Gregory CLEMENT,
Marcin Wojtas, David S. Miller, Linux ARM, Sebastian Hesselbarth
Hi Arnd,
On Tue, Dec 19, 2017 at 09:18:35PM +0100, Arnd Bergmann wrote:
> On Tue, Dec 19, 2017 at 5:59 PM, Gregory CLEMENT
> <gregory.clement@free-electrons.com> wrote:
> > Hello,
> >
> > here it is a small series of fixes found on the mvneta driver. They
> > had been already used in the vendor kernel and are now ported to
> > mainline.
>
> Does one of the patches look like it addresses the rare Oops we discussed on
> #kernelci this morning?
>
> https://storage.kernelci.org/stable/linux-4.9.y/v4.9.70/arm/mvebu_v7_defconfig/lab-free-electrons/boot-armada-375-db.html
I could be wrong but for me the 375 uses mvpp2, not mvneta, so this
should have no effect there.
Willy
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-20 5:19 ` Willy Tarreau
0 siblings, 0 replies; 26+ messages in thread
From: Willy Tarreau @ 2017-12-20 5:19 UTC (permalink / raw)
To: linux-arm-kernel
Hi Arnd,
On Tue, Dec 19, 2017 at 09:18:35PM +0100, Arnd Bergmann wrote:
> On Tue, Dec 19, 2017 at 5:59 PM, Gregory CLEMENT
> <gregory.clement@free-electrons.com> wrote:
> > Hello,
> >
> > here it is a small series of fixes found on the mvneta driver. They
> > had been already used in the vendor kernel and are now ported to
> > mainline.
>
> Does one of the patches look like it addresses the rare Oops we discussed on
> #kernelci this morning?
>
> https://storage.kernelci.org/stable/linux-4.9.y/v4.9.70/arm/mvebu_v7_defconfig/lab-free-electrons/boot-armada-375-db.html
I could be wrong but for me the 375 uses mvpp2, not mvneta, so this
should have no effect there.
Willy
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH net 0/3] Few mvneta fixes
2017-12-19 16:59 ` Gregory CLEMENT
@ 2017-12-19 20:18 ` Arnd Bergmann
-1 siblings, 0 replies; 26+ messages in thread
From: Arnd Bergmann @ 2017-12-19 20:18 UTC (permalink / raw)
To: Gregory CLEMENT
Cc: David S. Miller, Linux Kernel Mailing List, Networking,
Thomas Petazzoni, Andrew Lunn, Jason Cooper, Antoine Tenart,
Nadav Haklai, Lior Amsalem, Miquèl Raynal, Marcin Wojtas,
Dmitri Epshtein, Linux ARM, Sebastian Hesselbarth
On Tue, Dec 19, 2017 at 5:59 PM, Gregory CLEMENT
<gregory.clement@free-electrons.com> wrote:
> Hello,
>
> here it is a small series of fixes found on the mvneta driver. They
> had been already used in the vendor kernel and are now ported to
> mainline.
Does one of the patches look like it addresses the rare Oops we discussed on
#kernelci this morning?
https://storage.kernelci.org/stable/linux-4.9.y/v4.9.70/arm/mvebu_v7_defconfig/lab-free-electrons/boot-armada-375-db.html
Arnd
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-19 20:18 ` Arnd Bergmann
0 siblings, 0 replies; 26+ messages in thread
From: Arnd Bergmann @ 2017-12-19 20:18 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 19, 2017 at 5:59 PM, Gregory CLEMENT
<gregory.clement@free-electrons.com> wrote:
> Hello,
>
> here it is a small series of fixes found on the mvneta driver. They
> had been already used in the vendor kernel and are now ported to
> mainline.
Does one of the patches look like it addresses the rare Oops we discussed on
#kernelci this morning?
https://storage.kernelci.org/stable/linux-4.9.y/v4.9.70/arm/mvebu_v7_defconfig/lab-free-electrons/boot-armada-375-db.html
Arnd
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-19 16:59 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2017-12-19 16:59 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev
Cc: Jason Cooper, Andrew Lunn, Sebastian Hesselbarth,
Gregory CLEMENT, Thomas Petazzoni, linux-arm-kernel,
Antoine Tenart, Miquèl Raynal, Nadav Haklai, Marcin Wojtas,
Lior Amsalem, Dmitri Epshtein
Hello,
here it is a small series of fixes found on the mvneta driver. They
had been already used in the vendor kernel and are now ported to
mainline.
Thanks,
Gregory
Yelena Krivosheev (3):
net: mvneta: clear interface link status on port disable
net: mvneta: use proper rxq_number in loop on rx queues
net: mvneta: eliminate wrong call to handle rx descriptor error
drivers/net/ethernet/marvell/mvneta.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--
2.15.1
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-19 16:59 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2017-12-19 16:59 UTC (permalink / raw)
To: David S. Miller, linux-kernel, netdev
Cc: Thomas Petazzoni, Andrew Lunn, Jason Cooper, Antoine Tenart,
Nadav Haklai, Lior Amsalem, Miquèl Raynal, Gregory CLEMENT,
Marcin Wojtas, Dmitri Epshtein, linux-arm-kernel,
Sebastian Hesselbarth
Hello,
here it is a small series of fixes found on the mvneta driver. They
had been already used in the vendor kernel and are now ported to
mainline.
Thanks,
Gregory
Yelena Krivosheev (3):
net: mvneta: clear interface link status on port disable
net: mvneta: use proper rxq_number in loop on rx queues
net: mvneta: eliminate wrong call to handle rx descriptor error
drivers/net/ethernet/marvell/mvneta.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--
2.15.1
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH net 0/3] Few mvneta fixes
@ 2017-12-19 16:59 ` Gregory CLEMENT
0 siblings, 0 replies; 26+ messages in thread
From: Gregory CLEMENT @ 2017-12-19 16:59 UTC (permalink / raw)
To: linux-arm-kernel
Hello,
here it is a small series of fixes found on the mvneta driver. They
had been already used in the vendor kernel and are now ported to
mainline.
Thanks,
Gregory
Yelena Krivosheev (3):
net: mvneta: clear interface link status on port disable
net: mvneta: use proper rxq_number in loop on rx queues
net: mvneta: eliminate wrong call to handle rx descriptor error
drivers/net/ethernet/marvell/mvneta.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--
2.15.1
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2017-12-20 17:26 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-08 12:57 [PATCH net 0/3] Few mvneta fixes Gregory CLEMENT
2016-03-08 12:57 ` Gregory CLEMENT
2016-03-08 12:57 ` [PATCH net 1/3] net: mvneta: Fix spinlock usage Gregory CLEMENT
2016-03-08 12:57 ` Gregory CLEMENT
2016-03-09 6:42 ` Jisheng Zhang
2016-03-09 6:42 ` Jisheng Zhang
2016-03-09 7:49 ` Gregory CLEMENT
2016-03-09 7:49 ` Gregory CLEMENT
2016-03-09 8:13 ` Jisheng Zhang
2016-03-09 8:13 ` Jisheng Zhang
2016-03-08 12:57 ` [PATCH net 2/3] net: mvneta: enable change MAC address when interface is up Gregory CLEMENT
2016-03-08 12:57 ` Gregory CLEMENT
2016-03-08 12:57 ` [PATCH net 3/3] net: mvneta: fix error messages in mvneta_port_down function Gregory CLEMENT
2016-03-08 12:57 ` Gregory CLEMENT
2016-03-11 19:20 ` David Miller
2016-03-11 19:20 ` David Miller
2017-12-19 16:59 [PATCH net 0/3] Few mvneta fixes Gregory CLEMENT
2017-12-19 16:59 ` Gregory CLEMENT
2017-12-19 16:59 ` Gregory CLEMENT
2017-12-19 20:18 ` Arnd Bergmann
2017-12-19 20:18 ` Arnd Bergmann
2017-12-20 5:19 ` Willy Tarreau
2017-12-20 5:19 ` Willy Tarreau
2017-12-20 5:19 ` Willy Tarreau
2017-12-20 17:26 ` David Miller
2017-12-20 17:26 ` 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.