2013-06-21 17:06:57

by Christoph Muellner

[permalink] [raw]
Subject: [PATCH] net: fec: Fix multicast list setup in fec_restart().

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


2013-06-21 17:15:43

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH] net: fec: Fix multicast list setup in fec_restart().

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);

2013-06-21 17:25:11

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] net: fec: Fix multicast list setup in fec_restart().

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) ?

2013-06-27 17:14:52

by Christoph Muellner

[permalink] [raw]
Subject: Re: [PATCH] net: fec: Fix multicast list setup in fec_restart().

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);


Attachments:
0001-net-fec-Fix-multicast-list-setup-in-fec_restart.patch (1.43 kB)

2013-06-27 17:21:39

by Fabio Estevam

[permalink] [raw]
Subject: Re: [PATCH] net: fec: Fix multicast list setup in fec_restart().

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

2013-06-27 19:18:49

by Christoph Muellner

[permalink] [raw]
Subject: [PATCH v2] net: fec: Fix multicast list setup in fec_restart().

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

2013-07-01 20:29:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v2] net: fec: Fix multicast list setup in fec_restart().

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.