* [net-next PATCH] net/ethernet: remove useless is_valid_ether_addr from drivers ndo_open
From: Joachim Eastwood @ 2012-11-13 21:46 UTC (permalink / raw)
To: davem, pcnet32, nicolas.ferre, mlindner, shemminger, nico,
steve.glendinning, uclinux-dist-devel
Cc: netdev, Joachim Eastwood
If ndo_validate_addr is set in the driver netdev core will call
this validate function before calling ndo_open. So there is no
point in doing this again in driver ndo_open function.
With this change is_valid_ether_addr will be called from the
generic eth_validate_addr function. So there should be no change
in the actual behavior.
Signed-off-by: Joachim Eastwood <manabian@gmail.com>
---
Hi,
net/core/dev.c __dev_open does
1165 if (ops->ndo_validate_addr)
1166 ret = ops->ndo_validate_addr(dev);
1167
1168 if (!ret && ops->ndo_open)
1169 ret = ops->ndo_open(dev);
so I don't see the need for a is_valid_ether_addr in
ndo_open at all or am I missing something?
ndo_validate_addr is set to eth_validate_addr in all
changed drivers.
regards
Joachim Eastwood
drivers/net/ethernet/8390/etherh.c | 6 ------
drivers/net/ethernet/adi/bfin_mac.c | 10 ----------
drivers/net/ethernet/amd/pcnet32.c | 6 ------
drivers/net/ethernet/cadence/at91_ether.c | 3 ---
drivers/net/ethernet/cadence/macb.c | 3 ---
drivers/net/ethernet/calxeda/xgmac.c | 11 +----------
drivers/net/ethernet/dnet.c | 3 ---
drivers/net/ethernet/i825xx/ether1.c | 6 ------
drivers/net/ethernet/marvell/skge.c | 3 ---
drivers/net/ethernet/micrel/ks8695net.c | 3 ---
drivers/net/ethernet/microchip/enc28j60.c | 6 ------
drivers/net/ethernet/nxp/lpc_eth.c | 4 +---
drivers/net/ethernet/seeq/ether3.c | 6 ------
drivers/net/ethernet/smsc/smc911x.c | 10 ----------
drivers/net/ethernet/smsc/smc91x.c | 10 ----------
drivers/net/ethernet/smsc/smsc911x.c | 5 -----
drivers/net/ethernet/smsc/smsc9420.c | 6 ------
drivers/net/ethernet/wiznet/w5100.c | 2 --
drivers/net/ethernet/wiznet/w5300.c | 2 --
19 files changed, 2 insertions(+), 103 deletions(-)
diff --git a/drivers/net/ethernet/8390/etherh.c b/drivers/net/ethernet/8390/etherh.c
index 8322c54..6414e84 100644
--- a/drivers/net/ethernet/8390/etherh.c
+++ b/drivers/net/ethernet/8390/etherh.c
@@ -463,12 +463,6 @@ etherh_open(struct net_device *dev)
{
struct ei_device *ei_local = netdev_priv(dev);
- if (!is_valid_ether_addr(dev->dev_addr)) {
- printk(KERN_WARNING "%s: invalid ethernet MAC address\n",
- dev->name);
- return -EINVAL;
- }
-
if (request_irq(dev->irq, __ei_interrupt, 0, dev->name, dev))
return -EAGAIN;
diff --git a/drivers/net/ethernet/adi/bfin_mac.c b/drivers/net/ethernet/adi/bfin_mac.c
index f1c458d..3dd0349 100644
--- a/drivers/net/ethernet/adi/bfin_mac.c
+++ b/drivers/net/ethernet/adi/bfin_mac.c
@@ -1531,16 +1531,6 @@ static int bfin_mac_open(struct net_device *dev)
int ret;
pr_debug("%s: %s\n", dev->name, __func__);
- /*
- * Check that the address is valid. If its not, refuse
- * to bring the device up. The user must specify an
- * address using ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
- */
- if (!is_valid_ether_addr(dev->dev_addr)) {
- netdev_warn(dev, "no valid ethernet hw addr\n");
- return -EINVAL;
- }
-
/* initial rx and tx list */
ret = desc_list_init(dev);
if (ret)
diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c
index 86b6d8e..967fe28 100644
--- a/drivers/net/ethernet/amd/pcnet32.c
+++ b/drivers/net/ethernet/amd/pcnet32.c
@@ -2013,11 +2013,6 @@ static int pcnet32_open(struct net_device *dev)
}
spin_lock_irqsave(&lp->lock, flags);
- /* Check for a valid station address */
- if (!is_valid_ether_addr(dev->dev_addr)) {
- rc = -EINVAL;
- goto err_free_irq;
- }
/* Reset the PCNET32 */
lp->a->reset(ioaddr);
@@ -2220,7 +2215,6 @@ err_free_ring:
*/
lp->a->write_bcr(ioaddr, 20, 4);
-err_free_irq:
spin_unlock_irqrestore(&lp->lock, flags);
free_irq(dev->irq, dev);
return rc;
diff --git a/drivers/net/ethernet/cadence/at91_ether.c b/drivers/net/ethernet/cadence/at91_ether.c
index e7a476c..716cc01 100644
--- a/drivers/net/ethernet/cadence/at91_ether.c
+++ b/drivers/net/ethernet/cadence/at91_ether.c
@@ -97,9 +97,6 @@ static int at91ether_open(struct net_device *dev)
u32 ctl;
int ret;
- if (!is_valid_ether_addr(dev->dev_addr))
- return -EADDRNOTAVAIL;
-
/* Clear internal statistics */
ctl = macb_readl(lp, NCR);
macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 1fac769..f33107f 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -1200,9 +1200,6 @@ static int macb_open(struct net_device *dev)
if (!bp->phy_dev)
return -EAGAIN;
- if (!is_valid_ether_addr(dev->dev_addr))
- return -EADDRNOTAVAIL;
-
err = macb_alloc_consistent(bp);
if (err) {
netdev_err(dev, "Unable to allocate DMA memory (error %d)\n",
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index b407043..8bafe9d 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -992,16 +992,6 @@ static int xgmac_open(struct net_device *dev)
struct xgmac_priv *priv = netdev_priv(dev);
void __iomem *ioaddr = priv->base;
- /* Check that the MAC address is valid. If its not, refuse
- * to bring the device up. The user must specify an
- * address using the following linux command:
- * ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx */
- if (!is_valid_ether_addr(dev->dev_addr)) {
- eth_hw_addr_random(dev);
- netdev_dbg(priv->dev, "generated random MAC address %pM\n",
- dev->dev_addr);
- }
-
memset(&priv->xstats, 0, sizeof(struct xgmac_extra_stats));
/* Initialize the XGMAC and descriptors */
@@ -1499,6 +1489,7 @@ static const struct net_device_ops xgmac_netdev_ops = {
.ndo_poll_controller = xgmac_poll_controller,
#endif
.ndo_set_mac_address = xgmac_set_mac_address,
+ .ndo_validate_addr = eth_validate_addr,
.ndo_set_features = xgmac_set_features,
};
diff --git a/drivers/net/ethernet/dnet.c b/drivers/net/ethernet/dnet.c
index 290b26f..feb5095 100644
--- a/drivers/net/ethernet/dnet.c
+++ b/drivers/net/ethernet/dnet.c
@@ -664,9 +664,6 @@ static int dnet_open(struct net_device *dev)
if (!bp->phy_dev)
return -EAGAIN;
- if (!is_valid_ether_addr(dev->dev_addr))
- return -EADDRNOTAVAIL;
-
napi_enable(&bp->napi);
dnet_init_hw(bp);
diff --git a/drivers/net/ethernet/i825xx/ether1.c b/drivers/net/ethernet/i825xx/ether1.c
index 067db3f..7b9609d 100644
--- a/drivers/net/ethernet/i825xx/ether1.c
+++ b/drivers/net/ethernet/i825xx/ether1.c
@@ -638,12 +638,6 @@ ether1_txalloc (struct net_device *dev, int size)
static int
ether1_open (struct net_device *dev)
{
- if (!is_valid_ether_addr(dev->dev_addr)) {
- printk(KERN_WARNING "%s: invalid ethernet MAC address\n",
- dev->name);
- return -EINVAL;
- }
-
if (request_irq(dev->irq, ether1_interrupt, 0, "ether1", dev))
return -EAGAIN;
diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
index d19a143..ce8d053 100644
--- a/drivers/net/ethernet/marvell/skge.c
+++ b/drivers/net/ethernet/marvell/skge.c
@@ -2524,9 +2524,6 @@ static int skge_up(struct net_device *dev)
size_t rx_size, tx_size;
int err;
- if (!is_valid_ether_addr(dev->dev_addr))
- return -EINVAL;
-
netif_info(skge, ifup, skge->netdev, "enabling interface\n");
if (dev->mtu > RX_BUF_SIZE)
diff --git a/drivers/net/ethernet/micrel/ks8695net.c b/drivers/net/ethernet/micrel/ks8695net.c
index dccae1d..e62c312 100644
--- a/drivers/net/ethernet/micrel/ks8695net.c
+++ b/drivers/net/ethernet/micrel/ks8695net.c
@@ -1249,9 +1249,6 @@ ks8695_open(struct net_device *ndev)
struct ks8695_priv *ksp = netdev_priv(ndev);
int ret;
- if (!is_valid_ether_addr(ndev->dev_addr))
- return -EADDRNOTAVAIL;
-
ks8695_reset(ksp);
ks8695_update_mac(ksp);
diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
index 6118bda..306e609 100644
--- a/drivers/net/ethernet/microchip/enc28j60.c
+++ b/drivers/net/ethernet/microchip/enc28j60.c
@@ -1352,12 +1352,6 @@ static int enc28j60_net_open(struct net_device *dev)
if (netif_msg_drv(priv))
printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __func__);
- if (!is_valid_ether_addr(dev->dev_addr)) {
- if (netif_msg_ifup(priv))
- dev_err(&dev->dev, "invalid MAC address %pM\n",
- dev->dev_addr);
- return -EADDRNOTAVAIL;
- }
/* Reset the hardware here (and take it out of low power mode) */
enc28j60_lowpower(priv, false);
enc28j60_hw_disable(priv);
diff --git a/drivers/net/ethernet/nxp/lpc_eth.c b/drivers/net/ethernet/nxp/lpc_eth.c
index af8b414..db6e101 100644
--- a/drivers/net/ethernet/nxp/lpc_eth.c
+++ b/drivers/net/ethernet/nxp/lpc_eth.c
@@ -1219,9 +1219,6 @@ static int lpc_eth_open(struct net_device *ndev)
if (netif_msg_ifup(pldat))
dev_dbg(&pldat->pdev->dev, "enabling %s\n", ndev->name);
- if (!is_valid_ether_addr(ndev->dev_addr))
- return -EADDRNOTAVAIL;
-
__lpc_eth_clock_enable(pldat, true);
/* Reset and initialize */
@@ -1301,6 +1298,7 @@ static const struct net_device_ops lpc_netdev_ops = {
.ndo_set_rx_mode = lpc_eth_set_multicast_list,
.ndo_do_ioctl = lpc_eth_ioctl,
.ndo_set_mac_address = lpc_set_mac_address,
+ .ndo_validate_addr = eth_validate_addr,
.ndo_change_mtu = eth_change_mtu,
};
diff --git a/drivers/net/ethernet/seeq/ether3.c b/drivers/net/ethernet/seeq/ether3.c
index 6a40dd0..72a0174 100644
--- a/drivers/net/ethernet/seeq/ether3.c
+++ b/drivers/net/ethernet/seeq/ether3.c
@@ -399,12 +399,6 @@ ether3_probe_bus_16(struct net_device *dev, int val)
static int
ether3_open(struct net_device *dev)
{
- if (!is_valid_ether_addr(dev->dev_addr)) {
- printk(KERN_WARNING "%s: invalid ethernet MAC address\n",
- dev->name);
- return -EINVAL;
- }
-
if (request_irq(dev->irq, ether3_interrupt, 0, "ether3", dev))
return -EAGAIN;
diff --git a/drivers/net/ethernet/smsc/smc911x.c b/drivers/net/ethernet/smsc/smc911x.c
index 8d15f7a..990f574 100644
--- a/drivers/net/ethernet/smsc/smc911x.c
+++ b/drivers/net/ethernet/smsc/smc911x.c
@@ -1400,16 +1400,6 @@ smc911x_open(struct net_device *dev)
DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __func__);
- /*
- * Check that the address is valid. If its not, refuse
- * to bring the device up. The user must specify an
- * address using ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
- */
- if (!is_valid_ether_addr(dev->dev_addr)) {
- PRINTK("%s: no valid ethernet hw addr\n", __func__);
- return -EINVAL;
- }
-
/* reset the hardware */
smc911x_reset(dev);
diff --git a/drivers/net/ethernet/smsc/smc91x.c b/drivers/net/ethernet/smsc/smc91x.c
index 318adc9..f516e5a 100644
--- a/drivers/net/ethernet/smsc/smc91x.c
+++ b/drivers/net/ethernet/smsc/smc91x.c
@@ -1474,16 +1474,6 @@ smc_open(struct net_device *dev)
DBG(2, "%s: %s\n", dev->name, __func__);
- /*
- * Check that the address is valid. If its not, refuse
- * to bring the device up. The user must specify an
- * address using ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
- */
- if (!is_valid_ether_addr(dev->dev_addr)) {
- PRINTK("%s: no valid ethernet hw addr\n", __func__);
- return -EINVAL;
- }
-
/* Setup the default Register Modes */
lp->tcr_cur_mode = TCR_DEFAULT;
lp->rcr_cur_mode = RCR_DEFAULT;
diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
index 62d1baf..a088c4f 100644
--- a/drivers/net/ethernet/smsc/smsc911x.c
+++ b/drivers/net/ethernet/smsc/smsc911x.c
@@ -1463,11 +1463,6 @@ static int smsc911x_open(struct net_device *dev)
return -EAGAIN;
}
- if (!is_valid_ether_addr(dev->dev_addr)) {
- SMSC_WARN(pdata, hw, "dev_addr is not a valid MAC address");
- return -EADDRNOTAVAIL;
- }
-
/* Reset the LAN911x */
if (smsc911x_soft_reset(pdata)) {
SMSC_WARN(pdata, hw, "soft reset failed");
diff --git a/drivers/net/ethernet/smsc/smsc9420.c b/drivers/net/ethernet/smsc/smsc9420.c
index 1fcd914e..25dd288 100644
--- a/drivers/net/ethernet/smsc/smsc9420.c
+++ b/drivers/net/ethernet/smsc/smsc9420.c
@@ -1341,12 +1341,6 @@ static int smsc9420_open(struct net_device *dev)
unsigned long flags;
int result = 0, timeout;
- if (!is_valid_ether_addr(dev->dev_addr)) {
- smsc_warn(IFUP, "dev_addr is not a valid MAC address");
- result = -EADDRNOTAVAIL;
- goto out_0;
- }
-
netif_carrier_off(dev);
/* disable, mask and acknowledge all interrupts */
diff --git a/drivers/net/ethernet/wiznet/w5100.c b/drivers/net/ethernet/wiznet/w5100.c
index 2c08bf6..7daf92e 100644
--- a/drivers/net/ethernet/wiznet/w5100.c
+++ b/drivers/net/ethernet/wiznet/w5100.c
@@ -580,8 +580,6 @@ static int w5100_open(struct net_device *ndev)
struct w5100_priv *priv = netdev_priv(ndev);
netif_info(priv, ifup, ndev, "enabling\n");
- if (!is_valid_ether_addr(ndev->dev_addr))
- return -EINVAL;
w5100_hw_start(priv);
napi_enable(&priv->napi);
netif_start_queue(ndev);
diff --git a/drivers/net/ethernet/wiznet/w5300.c b/drivers/net/ethernet/wiznet/w5300.c
index 88943d9..bd9eec6 100644
--- a/drivers/net/ethernet/wiznet/w5300.c
+++ b/drivers/net/ethernet/wiznet/w5300.c
@@ -500,8 +500,6 @@ static int w5300_open(struct net_device *ndev)
struct w5300_priv *priv = netdev_priv(ndev);
netif_info(priv, ifup, ndev, "enabling\n");
- if (!is_valid_ether_addr(ndev->dev_addr))
- return -EINVAL;
w5300_hw_start(priv);
napi_enable(&priv->napi);
netif_start_queue(ndev);
--
1.8.0
^ permalink raw reply related
* Re: [PATCH] tilegx: request_irq with a non-null device name
From: Chris Metcalf @ 2012-11-13 21:37 UTC (permalink / raw)
To: Simon Marchi; +Cc: netdev, linux-kernel
In-Reply-To: <1352840300-27814-1-git-send-email-simon.marchi@polymtl.ca>
On 11/13/2012 3:58 PM, Simon Marchi wrote:
> This patch simply makes the tilegx net driver call request_irq with a
> non-null name. It makes the output in /proc/interrupts more obvious, but
> also helps tools that don't expect to find null there.
>
> Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
> ---
> drivers/net/ethernet/tile/tilegx.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/ethernet/tile/tilegx.c b/drivers/net/ethernet/tile/tilegx.c
> index 4e98100..66e025a 100644
> --- a/drivers/net/ethernet/tile/tilegx.c
> +++ b/drivers/net/ethernet/tile/tilegx.c
> @@ -917,7 +917,7 @@ static int tile_net_setup_interrupts(struct net_device *dev)
> ingress_irq = rc;
> tile_irq_activate(ingress_irq, TILE_IRQ_PERCPU);
> rc = request_irq(ingress_irq, tile_net_handle_ingress_irq,
> - 0, NULL, NULL);
> + 0, "tile_net", NULL);
Good catch. If you can change it to dev->name instead of "tile_net", feel
free to add my:
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
--
Chris Metcalf, Tilera Corp.
http://www.tilera.com
^ permalink raw reply
* Re: [PATCH] vxlan: Fix error that was resulting in VXLAN MTU size being 10 bytes too large
From: Stephen Hemminger @ 2012-11-13 21:33 UTC (permalink / raw)
To: David Miller; +Cc: alexander.h.duyck, netdev
In-Reply-To: <20121113.143719.1473223615602040380.davem@davemloft.net>
On Tue, 13 Nov 2012 14:37:19 -0500 (EST)
David Miller <davem@davemloft.net> wrote:
> From: Alexander Duyck <alexander.h.duyck@intel.com>
> Date: Fri, 09 Nov 2012 15:35:24 -0800
>
> > This change fixes an issue I found where VXLAN frames were fragmented when
> > they were up to the VXLAN MTU size. I root caused the issue to the fact that
> > the headroom was 4 + 20 + 8 + 8. This math doesn't appear to be correct
> > because we are not inserting a VLAN header, but instead a 2nd Ethernet header.
> > As such the math for the overhead should be 20 + 8 + 8 + 14 to account for the
> > extra headers that are inserted for VXLAN.
> >
> > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
>
> Applied, thanks for the detailed commit message.
Probably need smarter code there to look at header length requirement
of underlying device as well, maybe someone will be perverse and runn
vxlan over a tunnel or IPoIB.
^ permalink raw reply
* Re: [net-next patch] vxlan: fix a typo.
From: Stephen Hemminger @ 2012-11-13 21:32 UTC (permalink / raw)
To: Rami Rosen; +Cc: davem, netdev
In-Reply-To: <1352849355-5429-1-git-send-email-ramirose@gmail.com>
On Wed, 14 Nov 2012 01:29:15 +0200
Rami Rosen <ramirose@gmail.com> wrote:
> Use eXtensible and not eXtensiable in the comment on top.
>
> Signed-off-by: Rami Rosen <ramirose@gmail.com>
> ---
> drivers/net/vxlan.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
> index 8aca888..3204208 100644
> --- a/drivers/net/vxlan.c
> +++ b/drivers/net/vxlan.c
> @@ -1,5 +1,5 @@
> /*
> - * VXLAN: Virtual eXtensiable Local Area Network
> + * VXLAN: Virtual eXtensible Local Area Network
> *
> * Copyright (c) 2012 Vyatta Inc.
> *
This can go into net (3.7) if Linus is willing.
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
^ permalink raw reply
* [net-next patch] vxlan: fix a typo.
From: Rami Rosen @ 2012-11-13 23:29 UTC (permalink / raw)
To: davem; +Cc: netdev, shemminger, Rami Rosen
Use eXtensible and not eXtensiable in the comment on top.
Signed-off-by: Rami Rosen <ramirose@gmail.com>
---
drivers/net/vxlan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 8aca888..3204208 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1,5 +1,5 @@
/*
- * VXLAN: Virtual eXtensiable Local Area Network
+ * VXLAN: Virtual eXtensible Local Area Network
*
* Copyright (c) 2012 Vyatta Inc.
*
--
1.7.11.7
^ permalink raw reply related
* Re: [PATCH net-next] add DOVE extensions for VXLAN
From: Stephen Hemminger @ 2012-11-13 21:28 UTC (permalink / raw)
To: David L Stevens; +Cc: David Miller, netdev
In-Reply-To: <201211132022.qADKLMrT018535@lab1.dls>
On Tue, 13 Nov 2012 15:21:22 -0500
David L Stevens <dlstevens@us.ibm.com> wrote:
>
> This patch provides extensions to VXLAN for supporting Distributed
> Overlay Virtual Ethernet (DOVE) networks. The patch includes:
>
> + a dove flag per VXLAN device to enable DOVE extensions
> + ARP reduction, whereby a bridge-connected VXLAN tunnel endpoint
> answers ARP requests from the local bridge on behalf of
> remote DOVE clients
> + route short-circuiting (aka L3 switching). Known destination IP
> addresses use the corresponding destination MAC address for
> switching rather than going to a (possibly remote) router first.
> + netlink notification messages for forwarding table and L3 switching
> misses
>
> Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
I am happy to see VXLAN getting real traction.
There are some issues with this.
1. DOVE flag is mixing multiple functions (arp and route) together,
users may want one without the other.
2. There is an implicit assumption that IP stack has valid IP address
in the tenant network (vxlan). This is rarely the case. For security
and other reasons, in my opinion the best practice is not to have
the bridge as part of the tenant network.
3. Misses might be common and this could easily be used to DoS the host
from a malicious guest.
^ permalink raw reply
* [PATCH] tilegx: request_irq with a non-null device name
From: Simon Marchi @ 2012-11-13 20:58 UTC (permalink / raw)
To: cmetcalf; +Cc: netdev, linux-kernel, Simon Marchi
This patch simply makes the tilegx net driver call request_irq with a
non-null name. It makes the output in /proc/interrupts more obvious, but
also helps tools that don't expect to find null there.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
---
drivers/net/ethernet/tile/tilegx.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/tile/tilegx.c b/drivers/net/ethernet/tile/tilegx.c
index 4e98100..66e025a 100644
--- a/drivers/net/ethernet/tile/tilegx.c
+++ b/drivers/net/ethernet/tile/tilegx.c
@@ -917,7 +917,7 @@ static int tile_net_setup_interrupts(struct net_device *dev)
ingress_irq = rc;
tile_irq_activate(ingress_irq, TILE_IRQ_PERCPU);
rc = request_irq(ingress_irq, tile_net_handle_ingress_irq,
- 0, NULL, NULL);
+ 0, "tile_net", NULL);
if (rc != 0) {
netdev_err(dev, "request_irq failed: %d\n", rc);
destroy_irq(ingress_irq);
--
1.7.1
^ permalink raw reply related
* net/usb device additions for -stable
From: Bjørn Mork @ 2012-11-13 20:25 UTC (permalink / raw)
To: David Miller
Cc: netdev, Jay Purohit, Valdis Kletnieks, Jan Ceuleers, Olof Ermis,
Tommy Cheng
I looked quickly through the list of added devices in the range
v3.6..net/master and tried to cherry-pick them into the current 3.0,
3.2, 3.4 and 3.6 stable trees. There weren't really that many. The
result was:
# for stable-3.6:
af1b85e usb/ipheth: Add iPhone 5 support
c6846ee net: qmi_wwan: adding more ZTE devices
bbc8d92 net: cdc_ncm: add Huawei devices
# for stable-3.4:
af1b85e usb/ipheth: Add iPhone 5 support
# for stable-3.2:
af1b85e usb/ipheth: Add iPhone 5 support
# for stable-3.0:
af1b85e usb/ipheth: Add iPhone 5 support
For completeness, these three patches were also applied after 3.6 but are
not in the list above for the given reasons:
42d94dc net: qmi_wwan: adding Huawei E367, ZTE MF683 and Pantech P4200
- does not apply cleanly to any stable relase. I'll send a backport
if/when I get around to it.
66dc81e asix: Adds support for Lenovo 10/100 USB dongle.
- already applied to stable-3.6 and does not apply to anything earlier
f8295ec qmi_wwan/cdc_ether: move Novatel 551 and E362 to qmi_wwan
- already applied to stable-3.6 and does not apply to anything earlier
Bjørn
^ permalink raw reply
* [PATCH iproute2] add DOVE extensions for iproute2
From: David L Stevens @ 2012-11-13 20:25 UTC (permalink / raw)
To: David Miller, Stephen Hemminger; +Cc: netdev
This patch adds a new flag to iproute2 for vxlan devices to enable
DOVE features. It also adds support for L2 and L3 switch lookup miss
netlink messages to "ip monitor".
Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 012d95a..cbfe1fd 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -283,6 +283,7 @@ enum {
IFLA_VXLAN_AGEING,
IFLA_VXLAN_LIMIT,
IFLA_VXLAN_PORT_RANGE,
+ IFLA_VXLAN_DOVE,
__IFLA_VXLAN_MAX
};
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
diff --git a/ip/iplink_vxlan.c b/ip/iplink_vxlan.c
index ba5c4ab..b7a987a 100644
--- a/ip/iplink_vxlan.c
+++ b/ip/iplink_vxlan.c
@@ -26,6 +26,7 @@ static void explain(void)
fprintf(stderr, "Usage: ... vxlan id VNI [ group ADDR ] [ local ADDR ]\n");
fprintf(stderr, " [ ttl TTL ] [ tos TOS ] [ dev PHYS_DEV ]\n");
fprintf(stderr, " [ port MIN MAX ] [ [no]learning ]\n");
+ fprintf(stderr, " [ [no]dove]\n");
fprintf(stderr, "\n");
fprintf(stderr, "Where: VNI := 0-16777215\n");
fprintf(stderr, " ADDR := { IP_ADDRESS | any }\n");
@@ -44,6 +45,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
__u8 tos = 0;
__u8 ttl = 0;
__u8 learning = 1;
+ __u8 dove = 0;
__u8 noage = 0;
__u32 age = 0;
__u32 maxaddr = 0;
@@ -123,6 +125,10 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
learning = 0;
} else if (!matches(*argv, "learning")) {
learning = 1;
+ } else if (!matches(*argv, "nodove")) {
+ dove = 0;
+ } else if (!matches(*argv, "dove")) {
+ dove = 1;
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -148,6 +154,7 @@ static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
addattr8(n, 1024, IFLA_VXLAN_TTL, ttl);
addattr8(n, 1024, IFLA_VXLAN_TOS, tos);
addattr8(n, 1024, IFLA_VXLAN_LEARNING, learning);
+ addattr8(n, 1024, IFLA_VXLAN_DOVE, dove);
if (noage)
addattr32(n, 1024, IFLA_VXLAN_AGEING, 0);
else if (age)
@@ -213,6 +220,10 @@ static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_VXLAN_LEARNING] &&
!rta_getattr_u8(tb[IFLA_VXLAN_LEARNING]))
fputs("nolearning ", f);
+
+ if (tb[IFLA_VXLAN_DOVE] &&
+ rta_getattr_u8(tb[IFLA_VXLAN_DOVE]))
+ fputs("dove ", f);
if (tb[IFLA_VXLAN_TOS] &&
(tos = rta_getattr_u8(tb[IFLA_VXLAN_TOS]))) {
diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c
index 4b1d469..7a7cc88 100644
--- a/ip/ipmonitor.c
+++ b/ip/ipmonitor.c
@@ -67,7 +67,8 @@ int accept_msg(const struct sockaddr_nl *who,
print_addrlabel(who, n, arg);
return 0;
}
- if (n->nlmsg_type == RTM_NEWNEIGH || n->nlmsg_type == RTM_DELNEIGH) {
+ if (n->nlmsg_type == RTM_NEWNEIGH || n->nlmsg_type == RTM_DELNEIGH ||
+ n->nlmsg_type == RTM_GETNEIGH) {
if (prefix_banner)
fprintf(fp, "[NEIGH]");
print_neigh(who, n, arg);
diff --git a/ip/ipneigh.c b/ip/ipneigh.c
index 56e56b2..1b7600b 100644
--- a/ip/ipneigh.c
+++ b/ip/ipneigh.c
@@ -189,7 +189,8 @@ int print_neigh(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
struct rtattr * tb[NDA_MAX+1];
char abuf[256];
- if (n->nlmsg_type != RTM_NEWNEIGH && n->nlmsg_type != RTM_DELNEIGH) {
+ if (n->nlmsg_type != RTM_NEWNEIGH && n->nlmsg_type != RTM_DELNEIGH &&
+ n->nlmsg_type != RTM_GETNEIGH) {
fprintf(stderr, "Not RTM_NEWNEIGH: %08x %08x %08x\n",
n->nlmsg_len, n->nlmsg_type, n->nlmsg_flags);
@@ -251,6 +252,8 @@ int print_neigh(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
if (n->nlmsg_type == RTM_DELNEIGH)
fprintf(fp, "delete ");
+ else if (n->nlmsg_type == RTM_GETNEIGH)
+ fprintf(fp, "miss ");
if (tb[NDA_DST]) {
fprintf(fp, "%s ",
format_host(r->ndm_family,
^ permalink raw reply related
* [PATCH net-next] add DOVE extensions for VXLAN
From: David L Stevens @ 2012-11-13 20:21 UTC (permalink / raw)
To: David Miller, Stephen Hemminger; +Cc: netdev
This patch provides extensions to VXLAN for supporting Distributed
Overlay Virtual Ethernet (DOVE) networks. The patch includes:
+ a dove flag per VXLAN device to enable DOVE extensions
+ ARP reduction, whereby a bridge-connected VXLAN tunnel endpoint
answers ARP requests from the local bridge on behalf of
remote DOVE clients
+ route short-circuiting (aka L3 switching). Known destination IP
addresses use the corresponding destination MAC address for
switching rather than going to a (possibly remote) router first.
+ netlink notification messages for forwarding table and L3 switching
misses
Signed-off-by: David L Stevens <dlstevens@us.ibm.com>
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 8aca888..42ccd54 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -29,6 +29,8 @@
#include <linux/etherdevice.h>
#include <linux/if_ether.h>
#include <linux/hash.h>
+#include <net/arp.h>
+#include <net/ndisc.h>
#include <net/ip.h>
#include <net/icmp.h>
#include <net/udp.h>
@@ -111,6 +113,7 @@ struct vxlan_dev {
__u8 tos; /* TOS override */
__u8 ttl;
bool learn;
+ bool dove;
unsigned long age_interval;
struct timer_list age_timer;
@@ -155,6 +158,7 @@ static int vxlan_fdb_info(struct sk_buff *skb, struct vxlan_dev *vxlan,
struct nda_cacheinfo ci;
struct nlmsghdr *nlh;
struct ndmsg *ndm;
+ bool send_ip, send_eth;
nlh = nlmsg_put(skb, portid, seq, type, sizeof(*ndm), flags);
if (nlh == NULL)
@@ -162,16 +166,28 @@ static int vxlan_fdb_info(struct sk_buff *skb, struct vxlan_dev *vxlan,
ndm = nlmsg_data(nlh);
memset(ndm, 0, sizeof(*ndm));
- ndm->ndm_family = AF_BRIDGE;
+
+ send_eth = send_ip = true;
+
+ if (type == RTM_GETNEIGH) {
+ int i;
+
+ ndm->ndm_family = AF_INET;
+ send_ip = fdb->remote_ip != 0;
+ send_eth = 0;
+ for (i=0; i<ETH_ALEN; ++i)
+ send_eth |= !!fdb->eth_addr[i];
+ } else
+ ndm->ndm_family = AF_BRIDGE;
ndm->ndm_state = fdb->state;
ndm->ndm_ifindex = vxlan->dev->ifindex;
ndm->ndm_flags = NTF_SELF;
ndm->ndm_type = NDA_DST;
- if (nla_put(skb, NDA_LLADDR, ETH_ALEN, &fdb->eth_addr))
+ if (send_eth && nla_put(skb, NDA_LLADDR, ETH_ALEN, &fdb->eth_addr))
goto nla_put_failure;
- if (nla_put_be32(skb, NDA_DST, fdb->remote_ip))
+ if (send_ip && nla_put_be32(skb, NDA_DST, fdb->remote_ip))
goto nla_put_failure;
ci.ndm_used = jiffies_to_clock_t(now - fdb->used);
@@ -223,6 +239,29 @@ errout:
rtnl_set_sk_err(net, RTNLGRP_NEIGH, err);
}
+static void vxlan_ip_miss(struct net_device *dev, __be32 ipa)
+{
+ struct vxlan_dev *vxlan = netdev_priv(dev);
+ struct vxlan_fdb f;
+
+ memset(&f, 0, sizeof f);
+ f.state = NUD_STALE;
+ f.remote_ip = ipa; /* goes to NDA_DST */
+
+ vxlan_fdb_notify(vxlan, &f, RTM_GETNEIGH);
+}
+
+static void vxlan_fdb_miss(struct vxlan_dev *vxlan, const u8 eth_addr[ETH_ALEN])
+{
+ struct vxlan_fdb f;
+
+ memset(&f, 0, sizeof f);
+ f.state = NUD_STALE;
+ memcpy(f.eth_addr, eth_addr, ETH_ALEN);
+
+ vxlan_fdb_notify(vxlan, &f, RTM_GETNEIGH);
+}
+
/* Hash Ethernet address */
static u32 eth_hash(const unsigned char *addr)
{
@@ -552,6 +591,8 @@ static int vxlan_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
goto drop;
}
+ skb_reset_mac_header(skb);
+
/* Re-examine inner Ethernet packet */
oip = ip_hdr(skb);
skb->protocol = eth_type_trans(skb, vxlan->dev);
@@ -600,6 +641,115 @@ drop:
return 0;
}
+static int arp_reduce(struct net_device *dev, struct sk_buff *skb)
+{
+ struct arphdr *parp;
+ u8 *arpptr, *sha;
+ __be32 sip, tip;
+ struct neighbour *n;
+
+ if (dev->flags & IFF_NOARP)
+ goto out;
+
+ if (!pskb_may_pull(skb, arp_hdr_len(dev))) {
+ dev->stats.tx_dropped++;
+ goto out;
+ }
+ parp = arp_hdr(skb);
+
+ if ((parp->ar_hrd != htons(ARPHRD_ETHER) &&
+ parp->ar_hrd != htons(ARPHRD_IEEE802)) ||
+ parp->ar_pro != htons(ETH_P_IP) ||
+ parp->ar_op != htons(ARPOP_REQUEST) ||
+ parp->ar_hln != dev->addr_len ||
+ parp->ar_pln != 4)
+ goto out;
+ arpptr = (u8 *)parp + sizeof(struct arphdr);
+ sha = arpptr;
+ arpptr += dev->addr_len; /* sha */
+ memcpy(&sip, arpptr, sizeof(sip));
+ arpptr += sizeof(sip);
+ arpptr += dev->addr_len; /* tha */
+ memcpy(&tip, arpptr, sizeof(tip));
+
+ if (ipv4_is_loopback(tip) ||
+ ipv4_is_multicast(tip))
+ goto out;
+
+ n = neigh_lookup(&arp_tbl, &tip, dev);
+
+ if (n) {
+ struct vxlan_dev *vxlan = netdev_priv(dev);
+ struct vxlan_fdb *f;
+ struct sk_buff *reply;
+
+ if (!(n->nud_state & NUD_CONNECTED)) {
+ neigh_release(n);
+ goto out;
+ }
+
+ f = vxlan_find_mac(vxlan, n->ha);
+ if (f && f->remote_ip == 0) {
+ /* bridge-local neighbor */
+ neigh_release(n);
+ goto out;
+ }
+
+ reply = arp_create(ARPOP_REPLY, ETH_P_ARP, sip, dev, tip, sha,
+ n->ha, sha);
+
+ neigh_release(n);
+
+ skb_reset_mac_header(reply);
+ __skb_pull(reply, skb_network_offset(reply));
+ reply->ip_summed = CHECKSUM_UNNECESSARY;
+ reply->pkt_type = PACKET_HOST;
+
+ if (netif_rx_ni(reply) == NET_RX_DROP)
+ dev->stats.rx_dropped++;
+ } else
+ vxlan_ip_miss(dev, tip);
+out:
+ consume_skb(skb);
+ return NETDEV_TX_OK;
+}
+
+static bool route_shortcircuit(struct net_device *dev, struct sk_buff *skb)
+{
+ struct neighbour *n;
+ struct iphdr *pip;
+
+ if (is_multicast_ether_addr(eth_hdr(skb)->h_dest))
+ return false;
+
+ n = NULL;
+ switch (ntohs(eth_hdr(skb)->h_proto)) {
+ case ETH_P_IP:
+ if (!pskb_may_pull(skb, sizeof(struct iphdr)))
+ return false;
+ pip = ip_hdr(skb);
+ n = neigh_lookup(&arp_tbl, &pip->daddr, dev);
+ break;
+ default:
+ return false;
+ }
+
+ if (n) {
+ bool diff;
+
+ diff = compare_ether_addr(eth_hdr(skb)->h_dest, n->ha) != 0;
+ if (diff) {
+ memcpy(eth_hdr(skb)->h_source, eth_hdr(skb)->h_dest,
+ dev->addr_len);
+ memcpy(eth_hdr(skb)->h_dest, n->ha, dev->addr_len);
+ }
+ neigh_release(n);
+ return diff;
+ } else
+ vxlan_ip_miss(dev, pip->daddr);
+ return false;
+}
+
/* Extract dsfield from inner protocol */
static inline u8 vxlan_get_dsfield(const struct iphdr *iph,
const struct sk_buff *skb)
@@ -622,22 +772,6 @@ static inline u8 vxlan_ecn_encap(u8 tos,
return INET_ECN_encapsulate(tos, inner);
}
-static __be32 vxlan_find_dst(struct vxlan_dev *vxlan, struct sk_buff *skb)
-{
- const struct ethhdr *eth = (struct ethhdr *) skb->data;
- const struct vxlan_fdb *f;
-
- if (is_multicast_ether_addr(eth->h_dest))
- return vxlan->gaddr;
-
- f = vxlan_find_mac(vxlan, eth->h_dest);
- if (f)
- return f->remote_ip;
- else
- return vxlan->gaddr;
-
-}
-
static void vxlan_sock_free(struct sk_buff *skb)
{
sock_put(skb->sk);
@@ -684,6 +818,7 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct net_device *dev)
struct vxlan_dev *vxlan = netdev_priv(dev);
struct rtable *rt;
const struct iphdr *old_iph;
+ struct ethhdr *eth;
struct iphdr *iph;
struct vxlanhdr *vxh;
struct udphdr *uh;
@@ -694,10 +829,57 @@ static netdev_tx_t vxlan_xmit(struct sk_buff *skb, struct net_device *dev)
__be16 df = 0;
__u8 tos, ttl;
int err;
+ bool rsc = false;
+ const struct vxlan_fdb *f;
- dst = vxlan_find_dst(vxlan, skb);
- if (!dst)
+ skb_reset_mac_header(skb);
+ eth = eth_hdr(skb);
+
+ if (vxlan->dove) {
+ switch (ntohs(eth->h_proto)) {
+ case ETH_P_ARP:
+ return arp_reduce(dev, skb);
+ case ETH_P_IP:
+ rsc = route_shortcircuit(dev, skb);
+ break;
+ default:
+ break;
+ }
+ }
+
+ f = vxlan_find_mac(vxlan, eth->h_dest);
+ if (f == NULL) {
+ rsc = false;
+ dst = vxlan->gaddr;
+ if (!dst && vxlan->dove &&
+ !is_multicast_ether_addr(eth->h_dest))
+ vxlan_fdb_miss(vxlan, eth->h_dest);
+ } else
+ dst = f->remote_ip;
+
+ if (!dst) {
+ if (rsc) {
+ __skb_pull(skb, skb_network_offset(skb));
+ skb->ip_summed = CHECKSUM_NONE;
+ skb->pkt_type = PACKET_HOST;
+
+ /* short-circuited back to local bridge */
+ if (netif_rx(skb) == NET_RX_SUCCESS) {
+ struct vxlan_stats *stats =
+ this_cpu_ptr(vxlan->stats);
+
+ u64_stats_update_begin(&stats->syncp);
+ stats->tx_packets++;
+ stats->tx_bytes += pkt_len;
+ u64_stats_update_end(&stats->syncp);
+ } else {
+ dev->stats.tx_errors++;
+ dev->stats.tx_aborted_errors++;
+ }
+ return NETDEV_TX_OK;
+ }
goto drop;
+ }
/* Need space for new headers (invalidates iph ptr) */
if (skb_cow_head(skb, VXLAN_HEADROOM))
@@ -1020,6 +1202,7 @@ static const struct nla_policy vxlan_policy[IFLA_VXLAN_MAX + 1] = {
[IFLA_VXLAN_AGEING] = { .type = NLA_U32 },
[IFLA_VXLAN_LIMIT] = { .type = NLA_U32 },
[IFLA_VXLAN_PORT_RANGE] = { .len = sizeof(struct ifla_vxlan_port_range) },
+ [IFLA_VXLAN_DOVE] = { .type = NLA_U8 },
};
static int vxlan_validate(struct nlattr *tb[], struct nlattr *data[])
@@ -1118,6 +1301,9 @@ static int vxlan_newlink(struct net *net, struct net_device *dev,
else
vxlan->age_interval = FDB_AGE_DEFAULT;
+ if (data[IFLA_VXLAN_DOVE] && nla_get_u8(data[IFLA_VXLAN_DOVE]))
+ vxlan->dove = true;
+
if (data[IFLA_VXLAN_LIMIT])
vxlan->addrmax = nla_get_u32(data[IFLA_VXLAN_LIMIT]);
@@ -1154,6 +1340,7 @@ static size_t vxlan_get_size(const struct net_device *dev)
nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_TTL */
nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_TOS */
nla_total_size(sizeof(__u8)) + /* IFLA_VXLAN_LEARNING */
+ nla_total_size(sizeof(__u32)) + /* IFLA_VXLAN_DOVE */
nla_total_size(sizeof(__u32)) + /* IFLA_VXLAN_AGEING */
nla_total_size(sizeof(__u32)) + /* IFLA_VXLAN_LIMIT */
nla_total_size(sizeof(struct ifla_vxlan_port_range)) +
@@ -1183,6 +1370,7 @@ static int vxlan_fill_info(struct sk_buff *skb, const struct net_device *dev)
if (nla_put_u8(skb, IFLA_VXLAN_TTL, vxlan->ttl) ||
nla_put_u8(skb, IFLA_VXLAN_TOS, vxlan->tos) ||
nla_put_u8(skb, IFLA_VXLAN_LEARNING, vxlan->learn) ||
+ nla_put_u8(skb, IFLA_VXLAN_DOVE, vxlan->dove) ||
nla_put_u32(skb, IFLA_VXLAN_AGEING, vxlan->age_interval) ||
nla_put_u32(skb, IFLA_VXLAN_LIMIT, vxlan->addrmax))
goto nla_put_failure;
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 5c80cb1..740b636 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -285,6 +285,7 @@ enum {
IFLA_VXLAN_AGEING,
IFLA_VXLAN_LIMIT,
IFLA_VXLAN_PORT_RANGE,
+ IFLA_VXLAN_DOVE,
__IFLA_VXLAN_MAX
};
#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
^ permalink raw reply related
* Re: [3.0.y, 3.2.y, 3.4.y] Re: [PATCH v2] r8169: Fix WoL on RTL8168d/8111d.
From: Ben Hutchings @ 2012-11-13 20:24 UTC (permalink / raw)
To: David Miller, romieu
Cc: jrnieder, stable, kibi, netdev, nic_swsd, hayeswang, linux-kernel,
florent.fourcot
In-Reply-To: <20121112.182754.384199300061351360.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 1072 bytes --]
On Mon, 2012-11-12 at 18:27 -0500, David Miller wrote:
> From: Francois Romieu <romieu@fr.zoreil.com>
> Date: Tue, 13 Nov 2012 00:03:39 +0100
>
> > Jonathan Nieder <jrnieder@gmail.com> :
> > [...]
> >> This has been applied as commit b00e69dee4cc in mainline; thanks!
> >>
> >> Fran??ois and David, would this be a candidate for inclusion in
> >> 3.0- and newer stable kernels?
> >
> > - 3.0.51
> > b00e69dee4ccbb3a19989e3d4f1385bc2e3406cd
> > aee77e4accbeb2c86b1d294cd84fec4a12dde3bd
> >
> > - 3.4.18
> > 0481776b7a70f09acf7d9d97c288c3a8403fbfe4
> > b00e69dee4ccbb3a19989e3d4f1385bc2e3406cd
> > aee77e4accbeb2c86b1d294cd84fec4a12dde3bd
> >
> > - 3.6.6
> > 0481776b7a70f09acf7d9d97c288c3a8403fbfe4
> > b00e69dee4ccbb3a19989e3d4f1385bc2e3406cd
> > aee77e4accbeb2c86b1d294cd84fec4a12dde3bd
> >
> > I'll cook the patches.
>
> Thank you, these all look fine for -stable to me.
I've queued up all three for 3.2.
Ben.
--
Ben Hutchings
For every complex problem
there is a solution that is simple, neat, and wrong.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* [PATCH V2] wanrouter: Remove it and the drivers that depend on it
From: Joe Perches @ 2012-11-13 20:17 UTC (permalink / raw)
To: David Miller
Cc: rob, harryxiyou, jdike, richard, linux, ralf, benh, paulus, chris,
jcmvbkbc, isdn, linux-doc, linux-kernel, xiyoulinuxkernelgroup,
linux-kernel, linux-arm-kernel, linux-mips, linuxppc-dev,
user-mode-linux-devel, user-mode-linux-user, linux-xtensa, netdev
In-Reply-To: <20121113.144406.1610017702502358739.davem@davemloft.net>
Remove wanrouter as it's obsolete and has not been updated
by sangoma since 2.4.3 or so and it's not used anymore.
Remove obsolete cyclomx drivers.
Update files that include now deleted wanrouter bits.
Signed-off-by: Joe Perches <joe@perches.com>
---
On Tue, 2012-11-13 at 14:44 -0500, David Miller wrote:
> Remove wanrouter as it's obsolete and has not been updated
> > by sangoma since 2.4.3 or so and it's not used anymore.
> >
> > Remove obsolete cyclomx drivers.
> > Update defconfig files that enable wanrouter.
> > Update files that include now deleted wanrouter bits.
> []
> I'm fine with this change, except the arch defconfig bits.
>
> We've been leaving those alone, and letting the arch maintainers
> do the updates themselves periodically.
>
> Please resubmit this with those parts removed.
That seems an odd workflow as it leaves dangling CONFIG_<foo>
options set, but I guess it doesn't hurt so here it is.
I just removed the modified arch/.../<foo>defconfig files.
Documentation/ioctl/ioctl-number.txt | 1 -
Documentation/magic-number.txt | 1 -
Documentation/zh_CN/magic-number.txt | 1 -
drivers/isdn/i4l/isdn_x25iface.c | 1 -
drivers/isdn/i4l/isdn_x25iface.h | 1 -
drivers/net/wan/Kconfig | 54 --
drivers/net/wan/Makefile | 5 -
drivers/net/wan/cycx_drv.c | 569 ------------
drivers/net/wan/cycx_main.c | 346 --------
drivers/net/wan/cycx_x25.c | 1602 ----------------------------------
include/linux/cyclomx.h | 77 --
include/linux/cycx_drv.h | 64 --
include/linux/wanrouter.h | 129 ---
include/uapi/linux/Kbuild | 1 -
include/uapi/linux/wanrouter.h | 452 ----------
net/Kconfig | 1 -
net/Makefile | 1 -
net/socket.c | 1 -
net/wanrouter/Kconfig | 27 -
net/wanrouter/Makefile | 7 -
net/wanrouter/patchlevel | 1 -
net/wanrouter/wanmain.c | 782 -----------------
net/wanrouter/wanproc.c | 380 --------
23 files changed, 0 insertions(+), 4504 deletions(-)
delete mode 100644 drivers/net/wan/cycx_drv.c
delete mode 100644 drivers/net/wan/cycx_main.c
delete mode 100644 drivers/net/wan/cycx_x25.c
delete mode 100644 include/linux/cyclomx.h
delete mode 100644 include/linux/cycx_drv.h
delete mode 100644 include/linux/wanrouter.h
delete mode 100644 include/uapi/linux/wanrouter.h
delete mode 100644 net/wanrouter/Kconfig
delete mode 100644 net/wanrouter/Makefile
delete mode 100644 net/wanrouter/patchlevel
delete mode 100644 net/wanrouter/wanmain.c
delete mode 100644 net/wanrouter/wanproc.c
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt
index 2152b0e..028a034 100644
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@ -179,7 +179,6 @@ Code Seq#(hex) Include File Comments
'V' C0 media/davinci/vpfe_capture.h conflict!
'V' C0 media/si4713.h conflict!
'W' 00-1F linux/watchdog.h conflict!
-'W' 00-1F linux/wanrouter.h conflict!
'W' 00-3F sound/asound.h conflict!
'X' all fs/xfs/xfs_fs.h conflict!
and fs/xfs/linux-2.6/xfs_ioctl32.h
diff --git a/Documentation/magic-number.txt b/Documentation/magic-number.txt
index 82761a3..0c39e72 100644
--- a/Documentation/magic-number.txt
+++ b/Documentation/magic-number.txt
@@ -122,7 +122,6 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c
COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
-ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h
SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h
diff --git a/Documentation/zh_CN/magic-number.txt b/Documentation/zh_CN/magic-number.txt
index 4263022..51b7e15 100644
--- a/Documentation/zh_CN/magic-number.txt
+++ b/Documentation/zh_CN/magic-number.txt
@@ -122,7 +122,6 @@ SLAB_C_MAGIC 0x4f17a36d kmem_cache mm/slab.c
COW_MAGIC 0x4f4f4f4d cow_header_v1 arch/um/drivers/ubd_user.c
I810_CARD_MAGIC 0x5072696E i810_card sound/oss/i810_audio.c
TRIDENT_CARD_MAGIC 0x5072696E trident_card sound/oss/trident.c
-ROUTER_MAGIC 0x524d4157 wan_device include/linux/wanrouter.h
SCC_MAGIC 0x52696368 gs_port drivers/char/scc.h
SAVEKMSG_MAGIC1 0x53415645 savekmsg arch/*/amiga/config.c
GDA_MAGIC 0x58464552 gda arch/mips/include/asm/sn/gda.h
diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
index e2d4e58..d00c86d 100644
--- a/drivers/isdn/i4l/isdn_x25iface.c
+++ b/drivers/isdn/i4l/isdn_x25iface.c
@@ -21,7 +21,6 @@
#include <linux/netdevice.h>
#include <linux/concap.h>
#include <linux/slab.h>
-#include <linux/wanrouter.h>
#include <net/x25device.h>
#include "isdn_x25iface.h"
diff --git a/drivers/isdn/i4l/isdn_x25iface.h b/drivers/isdn/i4l/isdn_x25iface.h
index 0b26e3b..ca08e08 100644
--- a/drivers/isdn/i4l/isdn_x25iface.h
+++ b/drivers/isdn/i4l/isdn_x25iface.h
@@ -19,7 +19,6 @@
#endif
#include <linux/skbuff.h>
-#include <linux/wanrouter.h>
#include <linux/isdn.h>
#include <linux/concap.h>
diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig
index d58431e..0c077b0 100644
--- a/drivers/net/wan/Kconfig
+++ b/drivers/net/wan/Kconfig
@@ -356,60 +356,6 @@ config SDLA
To compile this driver as a module, choose M here: the
module will be called sdla.
-# Wan router core.
-config WAN_ROUTER_DRIVERS
- tristate "WAN router drivers"
- depends on WAN_ROUTER
- ---help---
- Connect LAN to WAN via Linux box.
-
- Select driver your card and remember to say Y to "Wan Router."
- You will need the wan-tools package which is available from
- <ftp://ftp.sangoma.com/>.
-
- Note that the answer to this question won't directly affect the
- kernel except for how subordinate drivers may be built:
- saying N will just cause the configurator to skip all
- the questions about WAN router drivers.
-
- If unsure, say N.
-
-config CYCLADES_SYNC
- tristate "Cyclom 2X(tm) cards (EXPERIMENTAL)"
- depends on WAN_ROUTER_DRIVERS && (PCI || ISA)
- ---help---
- Cyclom 2X from Cyclades Corporation <http://www.avocent.com/> is an
- intelligent multiprotocol WAN adapter with data transfer rates up to
- 512 Kbps. These cards support the X.25 and SNA related protocols.
-
- While no documentation is available at this time please grab the
- wanconfig tarball in
- <http://www.conectiva.com.br/~acme/cycsyn-devel/> (with minor changes
- to make it compile with the current wanrouter include files; efforts
- are being made to use the original package available at
- <ftp://ftp.sangoma.com/>).
-
- Feel free to contact me or the cycsyn-devel mailing list at
- <acme@conectiva.com.br> and <cycsyn-devel@bazar.conectiva.com.br> for
- additional details, I hope to have documentation available as soon as
- possible. (Cyclades Brazil is writing the Documentation).
-
- The next questions will ask you about the protocols you want the
- driver to support (for now only X.25 is supported).
-
- If you have one or more of these cards, say Y to this option.
-
- To compile this driver as a module, choose M here: the
- module will be called cyclomx.
-
-config CYCLOMX_X25
- bool "Cyclom 2X X.25 support (EXPERIMENTAL)"
- depends on CYCLADES_SYNC
- help
- Connect a Cyclom 2X card to an X.25 network.
-
- Enabling X.25 support will enlarge your kernel by about 11 kB.
-
# X.25 network drivers
config LAPBETHER
tristate "LAPB over Ethernet driver (EXPERIMENTAL)"
diff --git a/drivers/net/wan/Makefile b/drivers/net/wan/Makefile
index df70248..c135ef4 100644
--- a/drivers/net/wan/Makefile
+++ b/drivers/net/wan/Makefile
@@ -5,10 +5,6 @@
# Rewritten to use lists instead of if-statements.
#
-cyclomx-y := cycx_main.o
-cyclomx-$(CONFIG_CYCLOMX_X25) += cycx_x25.o
-cyclomx-objs := $(cyclomx-y)
-
obj-$(CONFIG_HDLC) += hdlc.o
obj-$(CONFIG_HDLC_RAW) += hdlc_raw.o
obj-$(CONFIG_HDLC_RAW_ETH) += hdlc_raw_eth.o
@@ -28,7 +24,6 @@ obj-$(CONFIG_LANMEDIA) += lmc/
obj-$(CONFIG_DLCI) += dlci.o
obj-$(CONFIG_SDLA) += sdla.o
-obj-$(CONFIG_CYCLADES_SYNC) += cycx_drv.o cyclomx.o
obj-$(CONFIG_LAPBETHER) += lapbether.o
obj-$(CONFIG_SBNI) += sbni.o
obj-$(CONFIG_N2) += n2.o
diff --git a/drivers/net/wan/cycx_drv.c b/drivers/net/wan/cycx_drv.c
deleted file mode 100644
index 2a3ecae..0000000
diff --git a/drivers/net/wan/cycx_main.c b/drivers/net/wan/cycx_main.c
deleted file mode 100644
index 81fbbad..0000000
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
deleted file mode 100644
index 06f3f63..0000000
diff --git a/include/linux/cyclomx.h b/include/linux/cyclomx.h
deleted file mode 100644
index b88f7f4..0000000
diff --git a/include/linux/cycx_drv.h b/include/linux/cycx_drv.h
deleted file mode 100644
index 12fe6b0..0000000
diff --git a/include/linux/wanrouter.h b/include/linux/wanrouter.h
deleted file mode 100644
index cec4b41..0000000
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index e194387..c54b7e7 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -408,7 +408,6 @@ header-y += virtio_ring.h
header-y += virtio_rng.h
header-y += vt.h
header-y += wait.h
-header-y += wanrouter.h
header-y += watchdog.h
header-y += wimax.h
header-y += wireless.h
diff --git a/include/uapi/linux/wanrouter.h b/include/uapi/linux/wanrouter.h
deleted file mode 100644
index 7617df2..0000000
diff --git a/net/Kconfig b/net/Kconfig
index 30b48f5..4cf4bb5 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -209,7 +209,6 @@ source "net/ipx/Kconfig"
source "drivers/net/appletalk/Kconfig"
source "net/x25/Kconfig"
source "net/lapb/Kconfig"
-source "net/wanrouter/Kconfig"
source "net/phonet/Kconfig"
source "net/ieee802154/Kconfig"
source "net/mac802154/Kconfig"
diff --git a/net/Makefile b/net/Makefile
index 4f4ee08..c5aa8b3 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -26,7 +26,6 @@ obj-$(CONFIG_BRIDGE) += bridge/
obj-$(CONFIG_NET_DSA) += dsa/
obj-$(CONFIG_IPX) += ipx/
obj-$(CONFIG_ATALK) += appletalk/
-obj-$(CONFIG_WAN_ROUTER) += wanrouter/
obj-$(CONFIG_X25) += x25/
obj-$(CONFIG_LAPB) += lapb/
obj-$(CONFIG_NETROM) += netrom/
diff --git a/net/socket.c b/net/socket.c
index 2ca51c7..5c4d82c 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -69,7 +69,6 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/mutex.h>
-#include <linux/wanrouter.h>
#include <linux/if_bridge.h>
#include <linux/if_frad.h>
#include <linux/if_vlan.h>
diff --git a/net/wanrouter/Kconfig b/net/wanrouter/Kconfig
deleted file mode 100644
index a157a2e..0000000
diff --git a/net/wanrouter/Makefile b/net/wanrouter/Makefile
deleted file mode 100644
index 4da14bc..0000000
diff --git a/net/wanrouter/patchlevel b/net/wanrouter/patchlevel
deleted file mode 100644
index c043eea..0000000
diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c
deleted file mode 100644
index 2ab7850..0000000
diff --git a/net/wanrouter/wanproc.c b/net/wanrouter/wanproc.c
deleted file mode 100644
index c43612e..0000000
--
1.7.8.112.g3fd21
^ permalink raw reply related
* Re: [PATCH v3 00/11] rename random32 to prandom and introduce prandom_bytes()
From: Andrew Morton @ 2012-11-13 19:55 UTC (permalink / raw)
To: Akinobu Mita
Cc: linux-kernel, Theodore Ts'o, Artem Bityutskiy, Adrian Hunter,
David Woodhouse, linux-mtd, Eilon Greenstein, netdev, Robert Love,
devel, Michel Lespinasse
In-Reply-To: <1352813830-4624-1-git-send-email-akinobu.mita@gmail.com>
On Tue, 13 Nov 2012 22:36:59 +0900
Akinobu Mita <akinobu.mita@gmail.com> wrote:
> This patchset introduces new functions into random32 library for
> getting the requested number of pseudo-random bytes.
>
> Before introducing these new functions into random32 library,
> rename all random32 functions to have 'prandom_' prefix. As a result
> the function prototypes are as follows:
>
> void prandom_seed(u32 seed); /* rename from srandom32() */
> u32 prandom_u32(void); /* rename from random32() */
> void prandom_bytes(void *buf, int nbytes);
>
> void prandom_seed_state(struct rnd_state *state, u64 seed);
> /* rename from prandom32_seed() */
> u32 prandom_u32_state(struct rnd_state *state);
> /* rename from prandom32() */
> void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes);
>
> The purpose of this renaming is to prevent some kernel developers
> from assuming that prandom32() and random32() might imply that only
> prandom32() was the one using a pseudo-random number generator by
> prandom32's "p", and the result may be a very embarassing security
> exposure. This concern was expressed by Theodore Ts'o.
There were a large number of rejects in MTD code, due to pending
changes in linux-next. It's all quite mechanical stuff which I
fixed up. Please check the result.
^ permalink raw reply
* Re: [PATCHES] Networking fixes for -stable.
From: Ben Hutchings @ 2012-11-13 19:51 UTC (permalink / raw)
To: David Miller, Greg Kroah-Hartman, Peter Senna Tschudin; +Cc: stable, netdev
In-Reply-To: <20121112.002558.46179003870204789.davem@davemloft.net>
[-- Attachment #1: Type: text/plain, Size: 1129 bytes --]
On Mon, 2012-11-12 at 00:25 -0500, David Miller wrote:
> Please queue up the following networking bug fixes for
> 3.0.x, 3.2.x, 3.4.x, and 3.6.x, respectively.
[...]
> From 2204849a85383fbde75680aa199142abe504adbb Mon Sep 17 00:00:00 2001
> From: Peter Senna Tschudin <peter.senna@gmail.com>
> Date: Sun, 28 Oct 2012 06:12:01 +0000
> Subject: [PATCH 7/9] drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister
> before mdiobus_free
>
> [ Upstream commit aa731872f7d33dcb8b54dad0cfb82d4e4d195d7e ]
>
> Based on commit b27393aecf66199f5ddad37c302d3e0cfadbe6c0
>
> Calling mdiobus_free without calling mdiobus_unregister causes
> BUG_ON(). This patch fixes the issue.
[...]
This introduces a regresssion, as mdiobus_unregister() is not safe to
call if the bus isn't registered. Registration is controlled by the
drivers that use mdio-bitbang, and they should take care of
unregistration too - and most of them do.
This should be reverted in mainline and not applied to any stable
series.
Ben.
--
Ben Hutchings
For every complex problem
there is a solution that is simple, neat, and wrong.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* Re: [PATCH] wanrouter: Remove it and the drivers that depend on it
From: David Miller @ 2012-11-13 19:44 UTC (permalink / raw)
To: joe
Cc: rob, harryxiyou, jdike, richard, linux, ralf, benh, paulus, chris,
jcmvbkbc, isdn, linux-doc, linux-kernel, xiyoulinuxkernelgroup,
linux-kernel, linux-arm-kernel, linux-mips, linuxppc-dev,
user-mode-linux-devel, user-mode-linux-user, linux-xtensa, netdev
In-Reply-To: <67fe0c5701a8c7cfe06b178cf04b1c5c06592714.1352548454.git.joe@perches.com>
From: Joe Perches <joe@perches.com>
Date: Sat, 10 Nov 2012 06:20:55 -0800
> Remove wanrouter as it's obsolete and has not been updated
> by sangoma since 2.4.3 or so and it's not used anymore.
>
> Remove obsolete cyclomx drivers.
> Update defconfig files that enable wanrouter.
> Update files that include now deleted wanrouter bits.
>
> Signed-off-by: Joe Perches <joe@perches.com>
I'm fine with this change, except the arch defconfig bits.
We've been leaving those alone, and letting the arch maintainers
do the updates themselves periodically.
Please resubmit this with those parts removed.
Thanks.
^ permalink raw reply
* Re: [net-next patch] bnx2x: Add static declaration to several functions
From: David Miller @ 2012-11-13 19:42 UTC (permalink / raw)
To: meravs; +Cc: netdev, eilong
In-Reply-To: <1352642168-22759-1-git-send-email-meravs@broadcom.com>
From: "Merav Sicron" <meravs@broadcom.com>
Date: Sun, 11 Nov 2012 15:56:08 +0200
> This patch adds static declaration to several functions in bnx2x. It eliminates
> newly introduced sparse warnings reported by Fengguang Wu.
>
> Reported-by: Fengguang Wu <fengguang.wu@intel.com>
> Signed-off-by: Merav Sicron <meravs@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Applied, thanks.
^ permalink raw reply
* RE: e1000e on DH55HC stalling and kernel panic in 3.6.6
From: Dave, Tushar N @ 2012-11-13 19:41 UTC (permalink / raw)
To: Denys Fedoryshchenko, Kirsher, Jeffrey T, Brandeburg, Jesse,
Allan, Bruce W, Wyborny, Carolyn, Skidmore, Donald C,
Rose, Gregory V, Waskiewicz Jr, Peter P, Duyck, Alexander H,
Ronciak, John, e1000-devel@lists.sourceforge.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <46948b0ae98fcae5d08fd9fe61fd2e47@visp.net.lb>
>-----Original Message-----
>From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
>On Behalf Of Denys Fedoryshchenko
>Sent: Tuesday, November 13, 2012 5:59 AM
>To: Kirsher, Jeffrey T; Brandeburg, Jesse; Allan, Bruce W; Wyborny,
>Carolyn; Skidmore, Donald C; Rose, Gregory V; Waskiewicz Jr, Peter P;
>Duyck, Alexander H; Ronciak, John; e1000-devel@lists.sourceforge.net;
>netdev@vger.kernel.org; linux-kernel@vger.kernel.org
>Subject: e1000e on DH55HC stalling and kernel panic in 3.6.6
>
>Hi
>
>I just tried to run latest kernel on my DH55HC motherboard latest kernel
>3.6.6 and got various network problems, such as network traffic are
>stopping, and sometimes i am getting kernel panic.
>When traffic are stopping, ethtool -r eth0 sometimes helps.
>When i do ethtool -G eth0 rx NNN , sometimes it will give kernel panic,
>but it is hard to reproduce.
>
>I tried to capture panic on pictures, so will try to decode on what i got
>photo, it is a nightmare, but sadly i dont have serial in hands to get
>data over it.
>
>skbuff: skb_over_panic: text:f86fc769 len:25807 put:25807 head:c1da1800
>data:c1da1840 tail:0xc1da7d0f end:c1da1f40 dev:eth0 kernel BUG at
>net/core/skbuff.c:127
>opcode: 0000 [#1] SMP
>Pid: 0 comm: swapper/6 Not tained 3.6.6-build-0063 #23
>EIP: 0060:[<c02e7980>] EFLAGS: 00010296 CPU:6 EIP is at skb_put+0x83/0x8e
>
>There is registers and stack, let me know if you need specific fields
>
>Call trace:
>f86fc769 ? e1000_clean_rx_irq+0x1e1/0x2af [e1000e]
>f86fc769 e1000_clean_rx_irq+0x1e1/0x2af [e1000e]
>f86fcc73 e1000e_poll+0x6a/0x209 [e1000e]
>c02f1630 net_rx_action+0x90/0x15d
>c01302d5 __do_softirq+0x8a/-x13b
>c013024b ? local_bh_enable+0xd/0xd
><IRQ>
>c0130504 irq_exit+0x41/0x91
>c0102c37 do_IRQ+0x79/0x8d
>
>There is also more data, let me know if you need it.
Yes, please send us the full dmesg log with error.
Have you tried out-of-tree e1000e driver?
-Tushar
^ permalink raw reply
* Re: [PATCH] ipv6: setsockopt(IPIPPROTO_IPV6,IPV6_MINHOPCOUNT) forgot to set return value
From: David Miller @ 2012-11-13 19:39 UTC (permalink / raw)
To: hannes; +Cc: netdev, shemminger
In-Reply-To: <20121111055234.GA28043@order.stressinduktion.org>
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date: Sun, 11 Nov 2012 06:52:34 +0100
> Cc: Stephen Hemminger <shemminger@vyatta.com>
> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Applied and queued up for -stable, thanks.
^ permalink raw reply
* Re: [PATCH] doc/net: Fix typo in netdev-features.txt
From: David Miller @ 2012-11-13 19:38 UTC (permalink / raw)
To: kirr; +Cc: netdev
In-Reply-To: <1352567556-23326-1-git-send-email-kirr@mns.spb.ru>
From: Kirill Smelkov <kirr@mns.spb.ru>
Date: Sat, 10 Nov 2012 21:12:36 +0400
> Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Applied, thanks.
^ permalink raw reply
* Re: [PATCH] vxlan: Fix error that was resulting in VXLAN MTU size being 10 bytes too large
From: David Miller @ 2012-11-13 19:37 UTC (permalink / raw)
To: alexander.h.duyck; +Cc: netdev, shemminger
In-Reply-To: <20121109233354.17208.36271.stgit@gitlad.jf.intel.com>
From: Alexander Duyck <alexander.h.duyck@intel.com>
Date: Fri, 09 Nov 2012 15:35:24 -0800
> This change fixes an issue I found where VXLAN frames were fragmented when
> they were up to the VXLAN MTU size. I root caused the issue to the fact that
> the headroom was 4 + 20 + 8 + 8. This math doesn't appear to be correct
> because we are not inserting a VLAN header, but instead a 2nd Ethernet header.
> As such the math for the overhead should be 20 + 8 + 8 + 14 to account for the
> extra headers that are inserted for VXLAN.
>
> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Applied, thanks for the detailed commit message.
^ permalink raw reply
* Re: [PATCH v2] tcp: tcp_replace_ts_recent() should not be called from tcp_validate_incoming()
From: David Miller @ 2012-11-13 19:35 UTC (permalink / raw)
To: eric.dumazet; +Cc: romain, netdev, ncardwell, ycheng, nanditad, hkchu
In-Reply-To: <1352821038.6185.38.camel@edumazet-glaptop>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Tue, 13 Nov 2012 07:37:18 -0800
> From: Eric Dumazet <edumazet@google.com>
>
> We added support for RFC 5961 in latest kernels but TCP fails
> to perform exhaustive check of ACK sequence.
>
> We can update our view of peer tsval from a frame that is
> later discarded by tcp_ack()
>
> This makes timestamps enabled sessions vulnerable to injection of
> a high tsval : peers start an ACK storm, since the victim
> sends a dupack each time it receives an ACK from the other peer.
>
> As tcp_validate_incoming() is called before tcp_ack(), we should
> not peform tcp_replace_ts_recent() from it, and let callers do it
> at the right time.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied, thanks a lot.
^ permalink raw reply
* Re: [PATCH] net: cdc_ncm: add Huawei devices
From: David Miller @ 2012-11-13 19:34 UTC (permalink / raw)
To: bjorn-yOkvZcmFvRU
Cc: netdev-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA,
oliver-GvhC2dPhHPQdnm+yROfE0A,
alexey.orishko-0IS4wlFg1OjSUeElwK9/Pw,
tommy7765-/E1597aS9LQAvxtiuMwx3w,
olof.ermis-Re5JQEeQqe8AvxtiuMwx3w
In-Reply-To: <1352812783-741-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
From: Bjørn Mork <bjorn-yOkvZcmFvRU@public.gmane.org>
Date: Tue, 13 Nov 2012 14:19:43 +0100
> A number of Huawei 3G and LTE modems implement a CDC NCM function,
> including the necessary functional descriptors, but using a non
> standard interface layout and class/subclass/protocol codes.
>
> These devices can be handled by this driver with only a minor
> change to the probing logic, allowing a single combined control
> and data interface. This works because the devices
> - include a CDC Union descriptor labelling the combined
> interface as both master and slave, and
> - have an alternate setting #1 for the bulk endpoints on the
> combined interface.
>
> The 3G/LTE network connection is managed by vendor specific AT
> commands on a serial function in the same composite device.
> Handling the managment function is out of the scope of this
> driver. It will be handled by an appropriate USB serial
> driver.
>
> Reported-and-Tested-by: Olof Ermis <olof.ermis-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> Reported-and-Tested-by: Tommy Cheng <tommy7765-/E1597aS9LQAvxtiuMwx3w@public.gmane.org>
> Signed-off-by: Bjørn Mork <bjorn-yOkvZcmFvRU@public.gmane.org>
Applied to net, thanks.
> I am therefore requesting that this patch is put in the stable
> queue like other device additons.
>
> I guess it may be too late for v3.7, but FWIW I have verified
> that the patch applies cleanly to both the current net-next/master
> and to net/master, and will not cause merge conflicts either way.
> I have also verified that it applies cleanly to the v3.6.6 stable
> release.
There were quite a few ID additions and I don't think most of them
were actually queued up for -stable submission.
Can you make a list of patches that still need to be submitted to
-stable, including this one?
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [patch 0/2] s390: network bug fixes for net
From: David Miller @ 2012-11-13 19:31 UTC (permalink / raw)
To: frank.blaschka; +Cc: netdev, linux-s390
In-Reply-To: <20121113090515.223638702@de.ibm.com>
From: frank.blaschka@de.ibm.com
Date: Tue, 13 Nov 2012 10:05:15 +0100
> Hi Dave,
>
> here are 2 bug fixes for net.
>
> shortlog:
>
> Ursula Braun (1)
> qeth: set new mac even if old mac is gone
>
> Stefan Raspl (1)
> qeth: Fix IPA_CMD_QIPASSIST return code handling
All applied, thanks.
^ permalink raw reply
* Re: [PATCH] ipv6: add knob to send unsolicited ND on link-layer address change
From: David Miller @ 2012-11-13 19:29 UTC (permalink / raw)
To: hannes; +Cc: netdev
In-Reply-To: <20121107024620.GD26398@order.stressinduktion.org>
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date: Wed, 7 Nov 2012 03:46:20 +0100
> This patch introduces a new knob ndisc_notify. If enabled, the kernel
> will transmit an unsolicited neighbour advertisement on link-layer address
> change to update the neighbour tables of the corresponding hosts more quickly.
>
> This is the equivalent to arp_notify in ipv4 world.
>
> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Applied to net-next, with the empty line removed.
Thanks.
^ permalink raw reply
* Re: [PATCH 2/2] smsc95xx: set MII_BUSY bit to read/write PHY regs
From: David Miller @ 2012-11-13 19:26 UTC (permalink / raw)
To: steve; +Cc: netdev
In-Reply-To: <CAKh2mn4Hm0R5vgOtx+kjjVXh9ucF649cdrXb_VVbRBN47WGr2A@mail.gmail.com>
From: Steve Glendinning <steve@shawell.net>
Date: Tue, 13 Nov 2012 17:44:39 +0000
>> Steve please let me know why you only submitted patch #2
>> of an apparent 2 part series.
>
> My bad being sloppy when formatting the patch for submission, sorry.
> The first patch in my rebased tree was one you've already accepted
> into net but hadn't pulled into net-next yet. I just sent the second
> one, and I forgot to remove the 2/2 from it.
>
> They don't depend on each other, they're independent bugfixes.
>
> Sorry again for the sloppyness.
Thanks for the clarification, applied, thanks.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox