Setup the multicast list of the net_device instead of
clearing it blindly. This restores the multicast groups
in case of a link down/up event.
Signed-off-by: Christoph Muellner <[email protected]>
---
drivers/net/ethernet/freescale/fec_main.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c
b/drivers/net/ethernet/freescale/fec_main.c
index a667015..8e8e743 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -60,6 +60,8 @@
#include "fec.h"
+static void set_multicast_list(struct net_device *ndev);
+
#if defined(CONFIG_ARM)
#define FEC_ALIGNMENT 0xf
#else
@@ -472,8 +474,7 @@ fec_restart(struct net_device *ndev, int duplex)
writel(0xffc00000, fep->hwp + FEC_IEVENT);
/* Reset all multicast. */
- writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
- writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
+ set_multicast_list(ndev);
#ifndef CONFIG_M5272
writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
writel(0, fep->hwp + FEC_HASH_TABLE_LOW);
--
1.7.4.1
On Fri, Jun 21, 2013 at 1:40 PM, Christoph Müllner
<[email protected]> wrote:
> @@ -472,8 +474,7 @@ fec_restart(struct net_device *ndev, int duplex)
> writel(0xffc00000, fep->hwp + FEC_IEVENT);
>
> /* Reset all multicast. */
Should this comment be removed/updated now?
> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
> + set_multicast_list(ndev);
On Fri, 2013-06-21 at 18:40 +0200, Christoph M?llner wrote:
> Setup the multicast list of the net_device instead of
> clearing it blindly. This restores the multicast groups
> in case of a link down/up event.
>
> Signed-off-by: Christoph Muellner <[email protected]>
Theobroma?
food of the gods or does your company just like chocolate?
> diff --git a/drivers/net/ethernet/freescale/fec_main.c
[]
> +static void set_multicast_list(struct net_device *ndev);
[]
> @@ -472,8 +474,7 @@ fec_restart(struct net_device *ndev, int duplex)
> writel(0xffc00000, fep->hwp + FEC_IEVENT);
>
> /* Reset all multicast. */
> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
> + set_multicast_list(ndev);
maybe dev_set_rx_mode(ndev) ?
On Jun 21, 2013, at 7:15 PM, Fabio Estevam <[email protected]> wrote:
> On Fri, Jun 21, 2013 at 1:40 PM, Christoph M?llner
> <[email protected]> wrote:
>
>> @@ -472,8 +474,7 @@ fec_restart(struct net_device *ndev, int duplex)
>> writel(0xffc00000, fep->hwp + FEC_IEVENT);
>>
>> /* Reset all multicast. */
>
> Should this comment be removed/updated now?
Is updated in the attached patch.
Thank you for the feedback!
>
>> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
>> - writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
>> + set_multicast_list(ndev);
On Thu, Jun 27, 2013 at 2:14 PM, Christoph Müllner
<[email protected]> wrote:
> Is updated in the attached patch.
> Thank you for the feedback!
Looks good. Some suggestions:
- Mark the patch as the second version:
Subject: [PATCH v2] net: fec: Fix multicast list setup in fec_restart().
- Add a comment below the --- line explaining what you changed in v2.
Something like:
---
Changes since v1:
- Adapt the comment to the code change
- Then re-send it via git send-email to the list instead of sending it
via attachment.
Thanks,
Fabio Estevam
Setup the multicast list of the net_device instead of
clearing it blindly. This restores the multicast groups
in case of a link down/up event or when resuming from
suspend.
Signed-off-by: Christoph Muellner <[email protected]>
---
Changes since v1:
- Adapt the comment to the code change
drivers/net/ethernet/freescale/fec_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index d48099f..4c32709 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -60,6 +60,8 @@
#include "fec.h"
+static void set_multicast_list(struct net_device *ndev);
+
#if defined(CONFIG_ARM)
#define FEC_ALIGNMENT 0xf
#else
@@ -471,9 +473,8 @@ fec_restart(struct net_device *ndev, int duplex)
/* Clear any outstanding interrupt. */
writel(0xffc00000, fep->hwp + FEC_IEVENT);
- /* Reset all multicast. */
- writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
- writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
+ /* Setup multicast filter. */
+ set_multicast_list(ndev);
#ifndef CONFIG_M5272
writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
writel(0, fep->hwp + FEC_HASH_TABLE_LOW);
--
1.8.3.1
From: Christoph Muellner <[email protected]>
Date: Thu, 27 Jun 2013 21:18:23 +0200
> Setup the multicast list of the net_device instead of
> clearing it blindly. This restores the multicast groups
> in case of a link down/up event or when resuming from
> suspend.
>
> Signed-off-by: Christoph Muellner <[email protected]>
Applied.