| Submitter | Richard Cochran |
|---|---|
| Date | May 31, 2010, 1:11 p.m. |
| Message ID | <20100531131102.GA15870@riccoc20.at.omicron.at> |
| Download | mbox | patch |
| Permalink | /patch/54094/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
Richard Cochran <richardcochran@gmail.com> writes: > This patch adds support for the IFF_ALLMULTI flag. Previously only the > IFF_PROMISC flag was supported. > > Signed-off-by: Richard Cochran <richard.cochran@omicron.at> > --- > drivers/net/arm/ixp4xx_eth.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c > index 6be8b09..5d35064 100644 > --- a/drivers/net/arm/ixp4xx_eth.c > +++ b/drivers/net/arm/ixp4xx_eth.c > @@ -739,6 +739,17 @@ static void eth_set_mcast_list(struct net_device *dev) > struct dev_mc_list *mclist; > u8 diffs[ETH_ALEN], *addr; > int i; > + u8 allmulti[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }; > + > + if (dev->flags & IFF_ALLMULTI) { > + for (i = 0; i < ETH_ALEN; i++) { > + __raw_writel(allmulti[i], &port->regs->mcast_addr[i]); > + __raw_writel(allmulti[i], &port->regs->mcast_mask[i]); > + } > + __raw_writel(DEFAULT_RX_CNTRL0 | RX_CNTRL0_ADDR_FLTR_EN, > + &port->regs->rx_control[0]); > + return; > + } Looks good, though I'd prefer a bit of "const" and "static" in the allmulti[] declaration. Would you please repost? TIA.
Patch
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c index 6be8b09..5d35064 100644 --- a/drivers/net/arm/ixp4xx_eth.c +++ b/drivers/net/arm/ixp4xx_eth.c @@ -739,6 +739,17 @@ static void eth_set_mcast_list(struct net_device *dev) struct dev_mc_list *mclist; u8 diffs[ETH_ALEN], *addr; int i; + u8 allmulti[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }; + + if (dev->flags & IFF_ALLMULTI) { + for (i = 0; i < ETH_ALEN; i++) { + __raw_writel(allmulti[i], &port->regs->mcast_addr[i]); + __raw_writel(allmulti[i], &port->regs->mcast_mask[i]); + } + __raw_writel(DEFAULT_RX_CNTRL0 | RX_CNTRL0_ADDR_FLTR_EN, + &port->regs->rx_control[0]); + return; + } if ((dev->flags & IFF_PROMISC) || netdev_mc_empty(dev)) { __raw_writel(DEFAULT_RX_CNTRL0 & ~RX_CNTRL0_ADDR_FLTR_EN,
This patch adds support for the IFF_ALLMULTI flag. Previously only the IFF_PROMISC flag was supported. Signed-off-by: Richard Cochran <richard.cochran@omicron.at> --- drivers/net/arm/ixp4xx_eth.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)