* [PATCH] bonding: remove already created master sysfs link on failure
From: Veaceslav Falico @ 2013-03-26 16:43 UTC (permalink / raw)
To: netdev; +Cc: vfalico, andy, fubar
If slave sysfs symlink failes to be created - we end up without removing
the master sysfs symlink. Remove it in case of failure.
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
---
drivers/net/bonding/bond_sysfs.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 1c9e09f..db103e0 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -183,6 +183,11 @@ int bond_create_slave_symlinks(struct net_device *master,
sprintf(linkname, "slave_%s", slave->name);
ret = sysfs_create_link(&(master->dev.kobj), &(slave->dev.kobj),
linkname);
+
+ /* free the master link created earlier in case of error */
+ if (ret)
+ sysfs_remove_link(&(slave->dev.kobj), "master");
+
return ret;
}
--
1.7.1
^ permalink raw reply related
* Re: [PATCH net-next] MAINTAINERS: Update qlge maintainers list
From: David Miller @ 2013-03-26 16:55 UTC (permalink / raw)
To: shahed.shaikh; +Cc: netdev, ron.mercer, Dept_NX_Linux_NIC_Driver
In-Reply-To: <1364312095-21886-1-git-send-email-shahed.shaikh@qlogic.com>
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Tue, 26 Mar 2013 11:34:55 -0400
> From: Shahed Shaikh <shahed.shaikh@qlogic.com>
>
> Add myself to qlge maintainers list.
>
> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Applied.
^ permalink raw reply
* Re: [PATCH net-next 1/1] net: fec: TX Buffer incorrectly initialized
From: David Miller @ 2013-03-26 16:56 UTC (permalink / raw)
To: jim_baxter; +Cc: Frank.Li, fabio.estevam, netdev
In-Reply-To: <1364311507-7489-1-git-send-email-jim_baxter@mentor.com>
From: Jim Baxter <jim_baxter@mentor.com>
Date: Tue, 26 Mar 2013 15:25:07 +0000
> The TX Buffer in fec_enet_alloc_buffers was being initialized
> with the receive register define BD_ENET_RX_INT instead of
> the transmit register define BD_ENET_TX_INT
>
> Signed-off-by: Jim Baxter <jim_baxter@mentor.com>
Applied.
^ permalink raw reply
* Re: [PATCH 0/2] sky2: Bug fixes
From: David Miller @ 2013-03-26 16:57 UTC (permalink / raw)
To: mlindner; +Cc: netdev, shemminger
In-Reply-To: <6676087.yBMeFJ6grC@mlindner-lin>
From: Mirko Lindner <mlindner@marvell.com>
Date: Tue, 26 Mar 2013 17:38:28 +0100
> Please find here 2 bug fixes related to the sky2 driver
>
> These are both patches against net-next but should be
> applied to -stable as well.
>
> Mirko Lindner (2):
> Receive Overflows not counted
> Threshold for Pause Packet is set wrong
Stephen, these look very straight-forward and correct, please
review.
^ permalink raw reply
* Re: [PATCH] phy: Elimination the forced speed reduction algorithm.
From: David Miller @ 2013-03-26 16:59 UTC (permalink / raw)
To: kapranoff
Cc: netdev, bhutchings, peppe.cavallaro, joe, bruce.w.allan,
linux-kernel
In-Reply-To: <1364304872-6408-1-git-send-email-kapranoff@inbox.ru>
From: Kirill Kapranov <kapranoff@inbox.ru>
Date: Tue, 26 Mar 2013 17:34:32 +0400
> - phy_force_reduction(phydev);
> + if (0 == phydev->link_timeout--)
^^^^
Trailing whitespace, please remove.
Also, for whatever reason this patch didn't make it to the mailing
list, that's critical because we automate the tracking of patches by
catching the patch postings made to the list.
^ permalink raw reply
* Re: [PATCH] bonding: remove already created master sysfs link on failure
From: David Miller @ 2013-03-26 17:00 UTC (permalink / raw)
To: vfalico; +Cc: netdev, andy, fubar
In-Reply-To: <1364316208-1068-1-git-send-email-vfalico@redhat.com>
From: Veaceslav Falico <vfalico@redhat.com>
Date: Tue, 26 Mar 2013 17:43:28 +0100
> If slave sysfs symlink failes to be created - we end up without removing
> the master sysfs symlink. Remove it in case of failure.
>
> Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Applied and queued up for -stable, thanks.
^ permalink raw reply
* Re: Active URB submitted twice in pegasus driver
From: Sarah Sharp @ 2013-03-26 17:01 UTC (permalink / raw)
To: Petko Manolov
Cc: Petko Manolov, linux-usb, Greg KH, netdev, Stephen Hemminger
In-Reply-To: <alpine.DEB.2.02.1303261655450.3724@fry.nucleusys.com>
On Tue, Mar 26, 2013 at 05:22:07PM +0200, Petko Manolov wrote:
> On Mon, 25 Mar 2013, Sarah Sharp wrote:
>
> >Hi Petko,
> >
> >I'm testing a USB to ethernet adapter with Greg's usb-linus branch (based
> >on 3.9-rc4). I'm seeing an odd behavior, and I'm suspicious that a
> >second behavior found by Stephen Hemminger may also be related:
> >
> >http://marc.info/?l=linux-usb&m=136364625519235&w=2
> >
> >When I load the pegasus driver for this adapter (without an ethernet
> >cable hooked to it), and this is on a cold system boot or a complete
> >unloading and reloading of the usbcore, I get the following warning:
>
> Unfortunately the machine i ran my tests on does not have xHCI nor i
> used Greg's tree. I did not observe this warning on both 3.8.4 and
> Linus' 3.9-rc4. It looks like to me that the issue is outside the
> driver code.
Or it could be a race condition that's only triggered by the xHCI driver
(or me having xHCI debugging turned on). Control transfer completions
may be delayed when I have debug turned on.
> However, i am curious whether you experience the same problem with
> other (non-ADMtek based) usb-to-lan adapters which support
> xxx_set_multicast().
The only other USB to ethernet adapter I have is also an ADMteck device:
Bus 001 Device 008: ID 07a6:8513 ADMtek, Inc. AN8513 Ethernet
> These calls are asynchronous by nature and should also trigger this
> warning. Please let me know if this is not the case so i start
> digging into pegasus.c.
What do you mean by an asynchronous call? Do you mean that
xxx_set_multicast() could be called at any time?
After taking a brief glance at the pegasus code, pegasus_set_multicast
looks broken. It sets the control URB status to zero and calls
ctrl_callback(), which does some stuff if the URB status is zero. It
doesn't look like pegasus_set_multicast() is an URB callback function,
so why in the world is it touching a control URB that could possibly be
in flight else where?
It looks like the control URB is used to do things like get or set
registers, so what's stopping the upper layers from calling get
registers (which will submit the control URB and schedule a wait queue),
and then pegasus_set_multicast(), which will go overwrite the active URB
status? USB device drivers should not be writing or reading fields in
a submitted URB until the completion handler's callback function is
called.
Sarah Sharp
^ permalink raw reply
* [PATCH 02/86] batman-adv: fix random jitter calculation
From: Steven Rostedt @ 2013-03-26 17:21 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
stable-u79uwXL29TY76Z2rM5mHXA
Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r, Akinobu Mita,
Simon Wunderlich, Marek Lindner, David S. Miller
In-Reply-To: <20130326172059.136127374@goodmis.org>
[-- Attachment #1: 0002-batman-adv-fix-random-jitter-calculation.patch --]
[-- Type: text/plain, Size: 1968 bytes --]
3.6.11.1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Akinobu Mita <akinobu.mita-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
[ Upstream commit 143cdd8f33909ff5a153e3f02048738c5964ba26 ]
batadv_iv_ogm_emit_send_time() attempts to calculates a random integer
in the range of 'orig_interval +- BATADV_JITTER' by the below lines.
msecs = atomic_read(&bat_priv->orig_interval) - BATADV_JITTER;
msecs += (random32() % 2 * BATADV_JITTER);
But it actually gets 'orig_interval' or 'orig_interval - BATADV_JITTER'
because '%' and '*' have same precedence and associativity is
left-to-right.
This adds the parentheses at the appropriate position so that it matches
original intension.
Signed-off-by: Akinobu Mita <akinobu.mita-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Acked-by: Antonio Quartulli <ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org>
Cc: Marek Lindner <lindner_marek-LWAfsSFWpa4@public.gmane.org>
Cc: Simon Wunderlich <siwu-MaAgPAbsBIVS8oHt8HbXEIQuADTiUCJX@public.gmane.org>
Cc: Antonio Quartulli <ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org>
Cc: b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r@public.gmane.org
Cc: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Signed-off-by: David S. Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
---
net/batman-adv/bat_iv_ogm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index 469daab..1476f26 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -119,7 +119,7 @@ batadv_iv_ogm_emit_send_time(const struct batadv_priv *bat_priv)
unsigned int msecs;
msecs = atomic_read(&bat_priv->orig_interval) - BATADV_JITTER;
- msecs += (random32() % 2 * BATADV_JITTER);
+ msecs += random32() % (2 * BATADV_JITTER);
return jiffies + msecs_to_jiffies(msecs);
}
--
1.7.10.4
^ permalink raw reply related
* [PATCH 12/86] net: calxedaxgmac: throw away overrun frames
From: Steven Rostedt @ 2013-03-26 17:21 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Rob Herring, netdev, David S. Miller
In-Reply-To: <20130326172059.136127374@goodmis.org>
[-- Attachment #1: 0012-net-calxedaxgmac-throw-away-overrun-frames.patch --]
[-- Type: text/plain, Size: 1404 bytes --]
3.6.11.1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Rob Herring <rob.herring@calxeda.com>
[ Upstream commit d6fb3be544b46a7611a3373fcaa62b5b0be01888 ]
The xgmac driver assumes 1 frame per descriptor. If a frame larger than
the descriptor's buffer size is received, the frame will spill over into
the next descriptor. So check for received frames that span more than one
descriptor and discard them. This prevents a crash if we receive erroneous
large packets.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/ethernet/calxeda/xgmac.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c
index 16814b3..e29c1b6 100644
--- a/drivers/net/ethernet/calxeda/xgmac.c
+++ b/drivers/net/ethernet/calxeda/xgmac.c
@@ -546,6 +546,10 @@ static int desc_get_rx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p)
return -1;
}
+ /* All frames should fit into a single buffer */
+ if (!(status & RXDESC_FIRST_SEG) || !(status & RXDESC_LAST_SEG))
+ return -1;
+
/* Check if packet has checksum already */
if ((status & RXDESC_FRAME_TYPE) && (status & RXDESC_EXT_STATUS) &&
!(ext_status & RXDESC_IP_PAYLOAD_MASK))
--
1.7.10.4
^ permalink raw reply related
* Re: Active URB submitted twice in pegasus driver
From: Petko Manolov @ 2013-03-26 17:28 UTC (permalink / raw)
To: Sarah Sharp; +Cc: linux-usb, Greg KH, netdev, Stephen Hemminger
In-Reply-To: <20130326170140.GC10317@xanatos>
On Tue, 26 Mar 2013, Sarah Sharp wrote:
> On Tue, Mar 26, 2013 at 05:22:07PM +0200, Petko Manolov wrote:
>> On Mon, 25 Mar 2013, Sarah Sharp wrote:
>>
>>> Hi Petko,
>>>
>>> I'm testing a USB to ethernet adapter with Greg's usb-linus branch (based
>>> on 3.9-rc4). I'm seeing an odd behavior, and I'm suspicious that a
>>> second behavior found by Stephen Hemminger may also be related:
>>>
>>> http://marc.info/?l=linux-usb&m=136364625519235&w=2
>>>
>>> When I load the pegasus driver for this adapter (without an ethernet
>>> cable hooked to it), and this is on a cold system boot or a complete
>>> unloading and reloading of the usbcore, I get the following warning:
>>
>> Unfortunately the machine i ran my tests on does not have xHCI nor i
>> used Greg's tree. I did not observe this warning on both 3.8.4 and
>> Linus' 3.9-rc4. It looks like to me that the issue is outside the
>> driver code.
>
> Or it could be a race condition that's only triggered by the xHCI driver
> (or me having xHCI debugging turned on). Control transfer completions
> may be delayed when I have debug turned on.
They most likely are. However, considering the stuff below these delays
may not be the real cause.
> The only other USB to ethernet adapter I have is also an ADMteck device:
>
> Bus 001 Device 008: ID 07a6:8513 ADMtek, Inc. AN8513 Ethernet
I've got another one, rtl8150 based adapter. The way things look i'll
have to do some testing on my own.
> What do you mean by an asynchronous call? Do you mean that
> xxx_set_multicast() could be called at any time?
Yep. The first call to pegasus_set_multicast() is done by the network
layer upon device insertion and those often happen outside process
context.
> After taking a brief glance at the pegasus code, pegasus_set_multicast
> looks broken. It sets the control URB status to zero and calls
> ctrl_callback(), which does some stuff if the URB status is zero. It
> doesn't look like pegasus_set_multicast() is an URB callback function,
> so why in the world is it touching a control URB that could possibly be
> in flight else where?
Beats me, i've got nothing to do with this driver. :-P
Anyway, playing with the URB status looks rather stupid and is definitely
a bug. I'll make a patch that fixes the problem.
> It looks like the control URB is used to do things like get or set
> registers, so what's stopping the upper layers from calling get
> registers (which will submit the control URB and schedule a wait queue),
> and then pegasus_set_multicast(), which will go overwrite the active URB
> status? USB device drivers should not be writing or reading fields in a
> submitted URB until the completion handler's callback function is
> called.
Err, see my previous comment. It can't be me. Maybe i've been too drunk.
Or stupid. Or both... :-)
^ permalink raw reply
* Re: [PATCH net 3/3] ipv4: Fix ip-header identification for gso packets.
From: Pravin Shelar @ 2013-03-26 17:34 UTC (permalink / raw)
To: davem, netdev; +Cc: amwang
In-Reply-To: <1364182589-1766-1-git-send-email-pshelar@nicira.com>
This issue is present in net-tree. Can you apply this patch net-tree?
Thanks.
On Sun, Mar 24, 2013 at 8:36 PM, Pravin B Shelar <pshelar@nicira.com> wrote:
> ip-header id needs to be incremented even if IP_DF flag is set.
> This behaviour was changed in commit 490ab08127cebc25e3a26
> (IP_GRE: Fix IP-Identification).
>
> Following patch fixes it so that identification is always
> incremented.
>
> Reported-by: Cong Wang <amwang@redhat.com>
> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
> ---
> include/net/ipip.h | 16 ++++++----------
> net/ipv4/af_inet.c | 3 +--
> 2 files changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/include/net/ipip.h b/include/net/ipip.h
> index 0c046e3..483b91a 100644
> --- a/include/net/ipip.h
> +++ b/include/net/ipip.h
> @@ -74,15 +74,11 @@ static inline void tunnel_ip_select_ident(struct sk_buff *skb,
> {
> struct iphdr *iph = ip_hdr(skb);
>
> - if (iph->frag_off & htons(IP_DF))
> - iph->id = 0;
> - else {
> - /* Use inner packet iph-id if possible. */
> - if (skb->protocol == htons(ETH_P_IP) && old_iph->id)
> - iph->id = old_iph->id;
> - else
> - __ip_select_ident(iph, dst,
> - (skb_shinfo(skb)->gso_segs ?: 1) - 1);
> - }
> + /* Use inner packet iph-id if possible. */
> + if (skb->protocol == htons(ETH_P_IP) && old_iph->id)
> + iph->id = old_iph->id;
> + else
> + __ip_select_ident(iph, dst,
> + (skb_shinfo(skb)->gso_segs ?: 1) - 1);
> }
> #endif
> diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
> index 9e5882c..70b2d4c 100644
> --- a/net/ipv4/af_inet.c
> +++ b/net/ipv4/af_inet.c
> @@ -1334,8 +1334,7 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb,
> iph->frag_off |= htons(IP_MF);
> offset += (skb->len - skb->mac_len - iph->ihl * 4);
> } else {
> - if (!(iph->frag_off & htons(IP_DF)))
> - iph->id = htons(id++);
> + iph->id = htons(id++);
> }
> iph->tot_len = htons(skb->len - skb->mac_len);
> iph->check = 0;
> --
> 1.7.1
>
^ permalink raw reply
* Re: [PATCH net 3/3] ipv4: Fix ip-header identification for gso packets.
From: David Miller @ 2013-03-26 17:50 UTC (permalink / raw)
To: pshelar; +Cc: netdev, amwang
In-Reply-To: <CALnjE+qAo5GsnTP=EU87N7KHWXE8UWnhn4HtV16tDJ00SnsKzw@mail.gmail.com>
From: Pravin Shelar <pshelar@nicira.com>
Date: Tue, 26 Mar 2013 10:34:17 -0700
> This issue is present in net-tree. Can you apply this patch net-tree?
Good point, applied to 'net', thanks.
^ permalink raw reply
* Re: [PATCH 5/6] xen-netback: coalesce slots before copying
From: David Vrabel @ 2013-03-26 18:02 UTC (permalink / raw)
To: Wei Liu
Cc: xen-devel@lists.xen.org, netdev@vger.kernel.org, Ian Campbell,
annie.li@oracle.com, konrad.wilk@oracle.com
In-Reply-To: <1364209702-12437-6-git-send-email-wei.liu2@citrix.com>
On 25/03/13 11:08, Wei Liu wrote:
> This patch tries to coalesce tx requests when constructing grant copy
> structures. It enables netback to deal with situation when frontend's
> MAX_SKB_FRAGS is larger than backend's MAX_SKB_FRAGS.
>
> It defines max_skb_slots, which is a estimation of the maximum number of slots
> a guest can send, anything bigger than that is considered malicious. Now it is
> set to 20, which should be enough to accommodate Linux (16 to 19).
>
> Also change variable name from "frags" to "slots" in netbk_count_requests.
It it worth summarizing an (off-line) discussion I had with Wei on this
patch.
There are two regression that need to be addressed here.
1. The reduction of the number of supported ring entries (slots) per
packet (from 18 to 17).
2. The XSA-39 security fix turning "too many frags" errors from just
dropping the packet to a fatal error and disabling the VIF.
The key root cause of the problem is that the protocol is poorly
specified using a property external to the netback/netfront drivers
(i.e., MAX_SKB_FRAGS).
A secondary problem is some frontends have used a max slots per packet
value that is larger than netback as supported. e.g., the Windows GPLPV
drivers use up to 19. These packets have always been dropped.
The first step is to properly specify the maximum slots per-packet as
part of the interface. This should be specified as 18 (the historical
value).
The second step is to define a threshold for slots per packet, above
which the guest is considered to be malicious and the error is fatal.
20 seems a sensible value here.
The behavior of netback for packet is thus:
1-18 slots: valid
19-20 slots: drop and respond with an error
21+ slots: fatal error
Note that we do not make 19-20 valid as this is a change to the protocol
and guests may end up relying on this which would then break the guests
if they migrate or start on host with a limit of 18.
A third (and future) step would be to investigate whether increasing the
slots per-packet limit is sensible. There would then need to be a
mechanism to negotiate this limit between the front and back ends.
David
^ permalink raw reply
* [PATCH net] ipv6: don't accept node local multicast traffic from the wire
From: Hannes Frederic Sowa @ 2013-03-26 18:13 UTC (permalink / raw)
To: netdev; +Cc: erik.hugne, yoshfuji
Erik Hugne's errata proposal (Errata ID: 3480) to RFC4291 has been
verified: http://www.rfc-editor.org/errata_search.php?eid=3480
We have to check for pkt_type and loopback flag because either the
packets are allowed to travel over the loopback interface (in which case
pkt_type is PACKET_HOST and IFF_LOOPBACK flag is set) or they travel
over a non-loopback interface back to us (in which case PACKET_TYPE is
PACKET_LOOPBACK and IFF_LOOPBACK flag is not set).
Cc: Erik Hugne <erik.hugne@ericsson.com>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
---
net/ipv6/ip6_input.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index e33fe0a..2bab2aa 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c
@@ -118,6 +118,18 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
ipv6_addr_loopback(&hdr->daddr))
goto err;
+ /* RFC4291 Errata ID: 3480
+ * Interface-Local scope spans only a single interface on a
+ * node and is useful only for loopback transmission of
+ * multicast. Packets with interface-local scope received
+ * from another node must be discarded.
+ */
+ if (!(skb->pkt_type == PACKET_LOOPBACK ||
+ dev->flags & IFF_LOOPBACK) &&
+ ipv6_addr_is_multicast(&hdr->daddr) &&
+ IPV6_ADDR_MC_SCOPE(&hdr->daddr) == 1)
+ goto err;
+
/* RFC4291 2.7
* Nodes must not originate a packet to a multicast address whose scope
* field contains the reserved value 0; if such a packet is received, it
--
1.8.1.4
^ permalink raw reply related
* [PATCH net-next] VXLAN: Precompute vin for VXLAN header.
From: Pravin B Shelar @ 2013-03-26 18:28 UTC (permalink / raw)
To: netdev; +Cc: davem, jesse, Pravin B Shelar, Stephen Hemminger
Compute VXLAN vin at time of device create so that there is no need
to translate it on packet send and receive.
This patch do not change userspace interface.
CC: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
---
drivers/net/vxlan.c | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 7624ab1..8faebf7 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -105,7 +105,7 @@ struct vxlan_fdb {
struct vxlan_dev {
struct hlist_node hlist;
struct net_device *dev;
- __u32 vni; /* virtual network id */
+ __be32 vni; /* virtual network id */
__be32 gaddr; /* multicast group */
__be32 saddr; /* source address */
unsigned int link; /* link to multicast over */
@@ -133,15 +133,15 @@ struct vxlan_dev {
/* salt for hash table */
static u32 vxlan_salt __read_mostly;
-static inline struct hlist_head *vni_head(struct net *net, u32 id)
+static inline struct hlist_head *vni_head(struct net *net, __be32 id)
{
struct vxlan_net *vn = net_generic(net, vxlan_net_id);
- return &vn->vni_list[hash_32(id, VNI_HASH_BITS)];
+ return &vn->vni_list[hash_32((__force u32)id, VNI_HASH_BITS)];
}
/* Look up VNI in a per net namespace table */
-static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id)
+static struct vxlan_dev *vxlan_find_vni(struct net *net, __be32 id)
{
struct vxlan_dev *vxlan;
@@ -658,7 +658,6 @@ static int vxlan_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
struct vxlanhdr *vxh;
struct vxlan_dev *vxlan;
struct pcpu_tstats *stats;
- __u32 vni;
int err;
/* pop off outer UDP header */
@@ -680,10 +679,10 @@ static int vxlan_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
__skb_pull(skb, sizeof(struct vxlanhdr));
/* Is this VNI defined? */
- vni = ntohl(vxh->vx_vni) >> 8;
- vxlan = vxlan_find_vni(sock_net(sk), vni);
+ vxlan = vxlan_find_vni(sock_net(sk), vxh->vx_vni);
if (!vxlan) {
- netdev_dbg(skb->dev, "unknown vni %d\n", vni);
+ netdev_dbg(skb->dev, "unknown vni %d\n",
+ (ntohl(vxh->vx_vni) >> 8));
goto drop;
}
@@ -1006,7 +1004,7 @@ static netdev_tx_t vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
vxh->vx_flags = htonl(VXLAN_FLAGS);
- vxh->vx_vni = htonl(vni << 8);
+ vxh->vx_vni = vxlan->vni;
__skb_push(skb, sizeof(*uh));
skb_reset_transport_header(skb);
@@ -1359,15 +1357,17 @@ static int vxlan_newlink(struct net *net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[])
{
struct vxlan_dev *vxlan = netdev_priv(dev);
- __u32 vni;
+ __u32 id;
+ __be32 vni;
int err;
if (!data[IFLA_VXLAN_ID])
return -EINVAL;
- vni = nla_get_u32(data[IFLA_VXLAN_ID]);
+ id = nla_get_u32(data[IFLA_VXLAN_ID]);
+ vni = htonl(id << 8);
if (vxlan_find_vni(net, vni)) {
- pr_info("duplicate VNI %u\n", vni);
+ pr_info("duplicate VNI %u\n", id);
return -EEXIST;
}
vxlan->vni = vni;
@@ -1478,7 +1478,7 @@ static int vxlan_fill_info(struct sk_buff *skb, const struct net_device *dev)
.high = htons(vxlan->port_max),
};
- if (nla_put_u32(skb, IFLA_VXLAN_ID, vxlan->vni))
+ if (nla_put_u32(skb, IFLA_VXLAN_ID, (ntohl(vxlan->vni) >> 8)))
goto nla_put_failure;
if (vxlan->gaddr && nla_put_be32(skb, IFLA_VXLAN_GROUP, vxlan->gaddr))
--
1.7.1
^ permalink raw reply related
* [PATCH net-next] VXLAN: Fix sparse warnings.
From: Pravin B Shelar @ 2013-03-26 18:29 UTC (permalink / raw)
To: netdev; +Cc: davem, jesse, Pravin B Shelar, Stephen Hemminger
Fixes following warning:-
drivers/net/vxlan.c:471:35: warning: symbol 'dev' shadows an earlier one
drivers/net/vxlan.c:433:26: originally declared here
drivers/net/vxlan.c:794:34: warning: symbol 'vxlan' shadows an earlier one
drivers/net/vxlan.c:757:26: originally declared here
CC: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
---
drivers/net/vxlan.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 7624ab1..62a4438 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -468,15 +468,15 @@ static int vxlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
vni = vxlan->vni;
if (tb[NDA_IFINDEX]) {
- struct net_device *dev;
+ struct net_device *tdev;
if (nla_len(tb[NDA_IFINDEX]) != sizeof(u32))
return -EINVAL;
ifindex = nla_get_u32(tb[NDA_IFINDEX]);
- dev = dev_get_by_index(net, ifindex);
- if (!dev)
+ tdev = dev_get_by_index(net, ifindex);
+ if (!tdev)
return -EADDRNOTAVAIL;
- dev_put(dev);
+ dev_put(tdev);
} else
ifindex = 0;
@@ -792,7 +792,6 @@ static int arp_reduce(struct net_device *dev, struct sk_buff *skb)
n = neigh_lookup(&arp_tbl, &tip, dev);
if (n) {
- struct vxlan_dev *vxlan = netdev_priv(dev);
struct vxlan_fdb *f;
struct sk_buff *reply;
--
1.7.1
^ permalink raw reply related
* Re: [PATCH net-next] ptp: increase the maximum number of clocks
From: Richard Cochran @ 2013-03-26 18:44 UTC (permalink / raw)
To: Jiri Benc; +Cc: David Miller, netdev, Ben Hutchings
In-Reply-To: <20130326104836.1379592f@griffin>
On Tue, Mar 26, 2013 at 10:48:36AM +0100, Jiri Benc wrote:
> On Mon, 25 Mar 2013 19:51:20 +0100, Richard Cochran wrote:
> > While that might work for the PTP ioctls, it won't for the main
> > clock_gettime/settime/adjtime call. As you wrote below, these take a
> > dynamic clockid_t (which comes from a file descriptor), and so each
> > device needs its own, unique file system node.
>
> They need an unique file descriptor, not an unique file. There's nothing
> preventing you from opening the same file multiple times, using each
> obtained file descriptor to access a different PHC. Sure, there is
> currently no place to store a per-fd data in posix-clock implementation
> but that could be added.
Assume you have multiple clocks in the system. You open /dev/ptp, and
you get a FD to be passed to clock_gettime. But *which* clock's time
should be read?
(An extra ioctl to choose the active clock seems a bit gross to me.)
> > For better or worse, we are stuck with char devs, unless we want to
> > redo the clock_xyz API. I certainly don't want to. We can have over a
> > million PTP clocks on a single major number. That should be enough.
> >
> > IIRC, it is possible to grow the range of minor numbers
> > incrementally. Perhaps you could take a look at that?
>
> That was what I was originally thinking about. But I don't like it much
> - the overhead will increase significantly with increasing number of
> devices, as the chrdev allocations for a given major are kept in a
> linked list which has to be completely traversed on each allocation.
> We'd also need to replace the ptp_clocks_map with a different data
> structure (e.g. a linked list of bitmaps if we allocate minors in
> chunks to alleviate the chrdev allocation overhead), not helping the
> overhead.
How about using idr and then, at each clock registration, just
increase the range of minors to include the new number?
I wouldn't worry about the overhead at allocation time. It is one time
only, during device registration, and so is not performance critical.
Thanks,
Richard
^ permalink raw reply
* Re: defxx: skb_push() failing?
From: David Oostdyk @ 2013-03-26 18:45 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev@vger.kernel.org, macro@linux-mips.org
In-Reply-To: <1364315410.1716.40.camel@edumazet-glaptop>
[-- Attachment #1: Type: text/plain, Size: 5964 bytes --]
On 03/26/13 12:30, Eric Dumazet wrote:
> On Tue, 2013-03-26 at 12:03 -0400, David Oostdyk wrote:
>> On 03/26/13 11:15, Eric Dumazet wrote:
>>> On Tue, 2013-03-26 at 10:29 -0400, David Oostdyk wrote:
>>>> Hello,
>>>>
>>>> In dfx_xmt_queue_pkt() in defxx.c, there is a skb_push(3) call which
>>>> makes room for 3 packet request header bytes. There is some discussion
>>>> in the driver explaining why those three bytes will be available. I
>>>> have an old FDDI card that I'm trying to bring up:
>>>>
>>>> 05:05.0 FDDI network controller: Digital Equipment Corporation
>>>> PCI-to-PDQ Interface Chip [PFI] (rev 02)
>>>>
>>>> Most skbuffs that come through dfx_xmit_queue_pkt() have 11 bytes
>>>> between skb->head and skb->data. On the other hand, at almost exactly
>>>> 60-second intervals, an skb arrives that has zero bytes between
>>>> skb->head and skb->data. This normally causes a kernel panic, and for
>>>> the time I just skip over such skb's.
>>>>
>>>> Does anyone have advice on where I should start digging to find the
>>>> cause of this?
>>>>
>>> Have you read comments in defxx.c file around line 151 ?
>>>
>>> If one skb arrives with not enough headroom, you could add a
>>>
>>> WARN_ON_ONCE(skb_headroom(skb) < 3);
>>>
>>> and report stack trace so that we can identify and fix the caller.
>>>
>>>
>>>
>> I have read the comments, and alloc_fddidev() seems to set the
>> hard_header_len as described.
>>
>> As for the stack trace, thanks for the tip! Here is the output
>> (including various defxx debug statements):
>>
>> [ 350.312482] defxx: v1.10 2006/12/14 Lawrence V. Stefani and others
>> [ 350.312582] In dfx_driver_init...
>> [ 350.312583] In dfx_bus_init...
>> [ 350.312585] In dfx_bus_config_check...
>> [ 351.699416] 0000:05:05.0: DEFPA at addr = 0xf9eeff80, IRQ = 26,
>> Hardware addr = 00-60-b0-58-48-53
>> [ 351.699425] 0000:05:05.0: Descriptor block virt = FFFF8800CB834000,
>> phys = CB834000
>> [ 351.699426] 0000:05:05.0: Command Request buffer virt =
>> FFFF8800CB835380, phys = CB835380
>> [ 351.699427] 0000:05:05.0: Command Response buffer virt =
>> FFFF8800CB835580, phys = CB835580
>> [ 351.699428] 0000:05:05.0: Receive buffer block virt =
>> FFFF8800CB835780, phys = CB835780
>> [ 351.699429] 0000:05:05.0: Consumer block virt = FFFF8800CB835780,
>> phys = CB835780
>> [ 351.700049] 0000:05:05.0: registered as fddi0
>> [ 351.756194] In dfx_open...
>> [ 351.756215] In dfx_adap_init...
>> [ 353.927747] fddi0: Multicast address table updated! Added 1 addresses.
>> [ 353.930352] fddi0: Adapter filters updated!
>> [ 353.975887] fddi0: Multicast address table updated! Added 1 addresses.
>> [ 353.978492] fddi0: Adapter filters updated!
>> [ 354.043455] fddi0: Multicast address table updated! Added 2 addresses.
>> [ 354.046359] fddi0: Adapter filters updated!
>> [ 354.097315] fddi0: Multicast address table updated! Added 3 addresses.
>> [ 354.099919] fddi0: Adapter filters updated!
>> [ 354.204301] fddi0: Multicast address table updated! Added 3 addresses.
>> [ 354.207107] fddi0: Adapter filters updated!
>> [ 354.257972] fddi0: Multicast address table updated! Added 3 addresses.
>> [ 354.261577] fddi0: Adapter filters updated!
>> [ 362.976038] ------------[ cut here ]------------
>> [ 362.976044] WARNING: at drivers/net/fddi/defxx.c:3202
>> dfx_xmt_queue_pkt+0xa2/0x2f2 [defxx]()
>> [ 362.976046] Hardware name: Precision WorkStation 490
>> [ 362.976047] Modules linked in: defxx snd_hda_codec_idt snd_hda_intel
>> snd_hda_codec snd_hwdep snd_pcm iTCO_wdt snd_page_alloc lpc_ich
>> snd_timer mfd_core i5000_edac rng_core i2c_i801 fddi rtc_cmos [last
>> unloaded: defxx]
>> [ 362.976066] Pid: 1773, comm: aoe_tx Tainted: G I
>> 3.7.10-hippi+ #6
>> [ 362.976068] Call Trace:
>> [ 362.976076] [<ffffffff810357e7>] warn_slowpath_common+0x7e/0x96
>> [ 362.976080] [<ffffffff81035814>] warn_slowpath_null+0x15/0x17
>> [ 362.976083] [<ffffffffa0063213>] dfx_xmt_queue_pkt+0xa2/0x2f2 [defxx]
>> [ 362.976088] [<ffffffff813c3401>] ? map_single+0x45/0x45
>> [ 362.976093] [<ffffffff819175a8>] dev_hard_start_xmit+0x288/0x398
>> [ 362.976097] [<ffffffff81929d1c>] sch_direct_xmit+0x72/0x19b
>> [ 362.976100] [<ffffffff819179ec>] dev_queue_xmit+0x145/0x339
>> [ 362.976105] [<ffffffff8184ab20>] tx+0x1c/0x42
>> [ 362.976108] [<ffffffff818489a2>] kthread+0x5e/0xbf
>> [ 362.976113] [<ffffffff81056451>] ? try_to_wake_up+0x239/0x239
>> [ 362.976116] [<ffffffff81848944>] ? rexmit_timer+0x349/0x349
>> [ 362.976119] [<ffffffff8104c678>] kthread+0xb5/0xbd
>> [ 362.976122] [<ffffffff8104c5c3>] ? __kthread_parkme+0x67/0x67
>> [ 362.976127] [<ffffffff81a314ec>] ret_from_fork+0x7c/0xb0
>> [ 362.976129] [<ffffffff8104c5c3>] ? __kthread_parkme+0x67/0x67
>> [ 362.976131] ---[ end trace ce553e95611628f3 ]---
>>
>>
>> Thanks again for any help!
> Are you really using AOE ?
>
> drivers/block/aoe/aoenet.c can apparently call dev_queue_xmit() with non
> compliant skbs.
>
> Please try following patch :
>
> diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
> index 25ef5c0..92b6d7c 100644
> --- a/drivers/block/aoe/aoecmd.c
> +++ b/drivers/block/aoe/aoecmd.c
> @@ -51,8 +51,9 @@ new_skb(ulong len)
> {
> struct sk_buff *skb;
>
> - skb = alloc_skb(len, GFP_ATOMIC);
> + skb = alloc_skb(len + MAX_HEADER, GFP_ATOMIC);
> if (skb) {
> + skb_reserve(skb, MAX_HEADER);
> skb_reset_mac_header(skb);
> skb_reset_network_header(skb);
> skb->protocol = __constant_htons(ETH_P_AOE);
>
>
>
Hi Eric,
This patch did remove the offending skb's. (I'm not using AOE - not
intentionally, anyway - so I'm not sure why this was being called.)
(Now if I could only figure out why these FDDI cards don't want to talk
to each other... I was hoping that was it.)
Thanks for the help!
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4567 bytes --]
^ permalink raw reply
* Re: [PATCH net-next] VXLAN: Precompute vin for VXLAN header.
From: David Stevens @ 2013-03-26 18:43 UTC (permalink / raw)
To: Pravin B Shelar
Cc: davem, jesse, netdev, netdev-owner, Pravin B Shelar,
Stephen Hemminger
In-Reply-To: <1364322539-27141-1-git-send-email-pshelar@nicira.com>
netdev-owner@vger.kernel.org wrote on 03/26/2013 02:28:59 PM:
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
> @@ -1006,7 +1004,7 @@ static netdev_tx_t vxlan_xmit_one(struct
> sk_buff *skb, struct net_device *dev,
>
> vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
> vxh->vx_flags = htonl(VXLAN_FLAGS);
> - vxh->vx_vni = htonl(vni << 8);
> + vxh->vx_vni = vxlan->vni;
This is not correct since vni != vxlan->vni if an alternate
vni is specified via the fdb entry. You would need to also store
the fdb vni's as htonl(vni<<<8) and translate those back for netlink
dump operations, too.
+-DLS
^ permalink raw reply
* Re: Active URB submitted twice in pegasus driver
From: Sarah Sharp @ 2013-03-26 18:52 UTC (permalink / raw)
To: Petko Manolov; +Cc: linux-usb, Greg KH, netdev, Stephen Hemminger
In-Reply-To: <alpine.DEB.2.02.1303261909260.4226@fry.nucleusys.com>
On Tue, Mar 26, 2013 at 07:28:53PM +0200, Petko Manolov wrote:
> On Tue, 26 Mar 2013, Sarah Sharp wrote:
>
> >On Tue, Mar 26, 2013 at 05:22:07PM +0200, Petko Manolov wrote:
> >>On Mon, 25 Mar 2013, Sarah Sharp wrote:
> >After taking a brief glance at the pegasus code,
> >pegasus_set_multicast looks broken. It sets the control URB
> >status to zero and calls ctrl_callback(), which does some stuff if
> >the URB status is zero. It doesn't look like
> >pegasus_set_multicast() is an URB callback function, so why in the
> >world is it touching a control URB that could possibly be in
> >flight else where?
>
> Beats me, i've got nothing to do with this driver. :-P
>
> Anyway, playing with the URB status looks rather stupid and is
> definitely a bug. I'll make a patch that fixes the problem.
>
> >It looks like the control URB is used to do things like get or set
> >registers, so what's stopping the upper layers from calling get
> >registers (which will submit the control URB and schedule a wait
> >queue), and then pegasus_set_multicast(), which will go overwrite
> >the active URB status? USB device drivers should not be writing
> >or reading fields in a submitted URB until the completion
> >handler's callback function is called.
>
> Err, see my previous comment. It can't be me. Maybe i've been too
> drunk. Or stupid. Or both... :-)
Nah, everybody makes silly coding mistakes. I was just trying to
clarify, since I don't know the driver. Send me a patch and I'll see if
it fixes the warning.
But considering the multicast code is pretty old, I bet I'm running into
a different bug...
Sarah Sharp
^ permalink raw reply
* Re: [PATCH net-next] VXLAN: Precompute vin for VXLAN header.
From: Pravin Shelar @ 2013-03-26 19:02 UTC (permalink / raw)
To: David Stevens; +Cc: davem, jesse, netdev, netdev-owner, Stephen Hemminger
In-Reply-To: <OF112514D1.BA5AC352-ON85257B3A.00666CE7-85257B3A.0066D5ED@us.ibm.com>
On Tue, Mar 26, 2013 at 11:43 AM, David Stevens <dlstevens@us.ibm.com> wrote:
> netdev-owner@vger.kernel.org wrote on 03/26/2013 02:28:59 PM:
> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
>
>> @@ -1006,7 +1004,7 @@ static netdev_tx_t vxlan_xmit_one(struct
>> sk_buff *skb, struct net_device *dev,
>>
>> vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
>> vxh->vx_flags = htonl(VXLAN_FLAGS);
>> - vxh->vx_vni = htonl(vni << 8);
>> + vxh->vx_vni = vxlan->vni;
>
> This is not correct since vni != vxlan->vni if an alternate
> vni is specified via the fdb entry. You would need to also store
> the fdb vni's as htonl(vni<<<8) and translate those back for netlink
> dump operations, too.
>
> +-DLS
>
Right I missed fdb vin , Let me send updated patch.
Thanks.
^ permalink raw reply
* Re: defxx: skb_push() failing?
From: Maciej W. Rozycki @ 2013-03-26 19:00 UTC (permalink / raw)
To: David Oostdyk; +Cc: Eric Dumazet, netdev@vger.kernel.org
In-Reply-To: <5151ECAC.9040404@ll.mit.edu>
On Tue, 26 Mar 2013, David Oostdyk wrote:
> (Now if I could only figure out why these FDDI cards don't want to talk to
> each other... I was hoping that was it.)
I saw 64-bit addresses in your log -- the driver is known not to be
64-bit-clean, I've had an initial look into it recently and will be
addressing it shortly.
Maciej
^ permalink raw reply
* [GIT] Networking
From: David Miller @ 2013-03-26 19:31 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
1) Always increment IPV4 ID field in encapsulated GSO packets, even when DF
is set. Regression fix from Pravin B Shelar.
2) Fix per-net subsystem initialization in netfilter conntrack, otherwise
we may access dynamically allocated memory before it is actually
allocated. From Gao Feng.
3) Fix DMA buffer lengths in iwl3945 driver, from Stanislaw Gruszka.
4) Fix race between submission of sync vs. async commands in mwifiex
driver, from Amitkumar Karwar.
5) Add missing cancel of command timer in mwifiex driver, from Bing
Zhao.
6) Missing SKB free in rtlwifi USB driver, from Jussi Kivilinna.
7) Thermal layer tries to use a genetlink multicast string that is
longer than the 16 character limit. Fix it and add a BUG check
to prevent this kind of thing from happening in the future.
From Masatake YAMATO.
8) Fix many bugs in the handling of the teardown of L2TP connections,
UDP encapsulation instances, and sockets. From Tom Parkin.
9) Missing socket release in IRDA, from Kees Cook.
10) Fix fec driver modular build, from Fabio Estevam.
11) Erroneous use of kfree() instead of free_netdev() in lantiq_etop, from
Wei Yongjun.
12) Fix bugs in handling of queue numbers and steering rules in mlx4 driver,
from Moshe Lazer, Hadar Hen Zion, and Or Gerlitz.
13) Some FOO_DIAG_MAX constants were defined off by one, fix from Andrey Vagin.
14) TCP segmentation deferral is unintentionally done too strongly, breaking
ACK clocking. Fix from Eric Dumazet.
15) net_enable_timestamp() can legitimately be invoked from software
interrupts, and in a way that is safe, so remove the WARN_ON().
Also from Eric Dumazet.
16) Fix use after free in VLANs, from Cong Wang.
17) Fix TCP slow start retransmit storms after SACK reneging, from
Yuchung Cheng.
18) Unix socket release should mark a socket dead before NULL'ing
out sock->sk, otherwise we can race. Fix from Paul Moore.
19) IPV6 addrconf code can try to free static memory, from Hong Zhiguo.
20) Fix register mis-programming, NULL pointer derefs, and wrong PHC clock
frequency in IGB driver. From Lior LevyAlex Williamson, Jiri Benc, and
Jeff Kirsher.
21) skb->ip_summed logic in pch_gbe driver is reversed, breaking packet
forwarding. Fix from Veaceslav Falico.
22) Bonding driver leaks 'master' sysfs file on slave sysfs file creation
failure. Fix also from Veaceslav Falico.
The following changes since commit 10b38669d64c757cfd927e3820292c580ed70aae:
Merge tag 'for-linus-v3.9-rc4' of git://oss.sgi.com/xfs/xfs (2013-03-19 15:17:40 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master
for you to fetch changes up to 330305cc4a6b0cb75c22fc01b8826f0ad755550f:
ipv4: Fix ip-header identification for gso packets. (2013-03-26 13:50:05 -0400)
----------------------------------------------------------------
Alex Williamson (2):
igb: Fix null pointer dereference
igb: SR-IOV init reordering
Amitkumar Karwar (1):
mwifiex: fix race when queuing commands
Andrey Vagin (1):
net: fix *_DIAG_MAX constants
Bing Zhao (2):
mwifiex: skip pending commands after function shutdown
mwifiex: cancel cmd timer and free curr_cmd in shutdown process
Cong Wang (1):
8021q: fix a potential use-after-free
Daniel Borkmann (1):
flow_keys: include thoff into flow_keys for later usage
David S. Miller (5):
Merge branch 'master' of git://1984.lsi.us.es/nf
Merge branch 'l2tp'
Merge branch 'for-davem' of git://git.kernel.org/.../linville/wireless
Merge branch 'mlx4'
Merge branch 'master' of git://git.kernel.org/.../jkirsher/net
Eric Dumazet (2):
tcp: preserve ACK clocking in TSO
net: remove a WARN_ON() in net_enable_timestamp()
Fabio Estevam (2):
net: fec: Define indexes as 'unsigned int'
fec: Fix the build as module
Felix Fietkau (2):
ath9k_hw: revert chainmask to user configuration after calibration
ath9k: limit tx path hang check to normal data queues
Florian Westphal (1):
netfilter: ip6t_NPT: restrict to mangle table
Gao feng (1):
netfilter: nf_conntrack: register pernet subsystem before register L4 proto
Hadar Hen Zion (4):
net/mlx4_core: Fix wrong order of flow steering resources removal
net/mlx4_en: Remove ethtool flow steering rules before releasing QPs
net/mlx4_core: Always use 64 bit resource ID when doing lookup
net/mlx4_core: Disallow releasing VF QPs which have steering rules
Hong Zhiguo (1):
ipv6: fix bad free of addrconf_init_net
Hong zhi guo (1):
bridge: fix crash when set mac address of br interface
Jiri Benc (1):
igb: fix PHC stopping on max freq
John W. Linville (2):
Merge branch 'master' of git://git.kernel.org/.../bluetooth/bluetooth
Merge branch 'master' of git://git.kernel.org/.../linville/wireless into for-davem
Julian Anastasov (3):
ipvs: fix sctp chunk length order
ipvs: add backup_only flag to avoid loops
ipvs: remove extra rcu lock
Jussi Kivilinna (1):
rtlwifi: usb: add missing freeing of skbuff
Kees Cook (1):
net/irda: add missing error path release_sock call
Kumar Amit Mehta (1):
bnx2x: fix assignment of signed expression to unsigned variable
Lior Levy (1):
igb: fix i350 anti spoofing config
Lothar Waßmann (1):
net: ethernet: cpsw: fix erroneous condition in error check
Martin Fuzzey (1):
ipconfig: Fix newline handling in log message.
Masatake YAMATO (2):
genetlink: trigger BUG_ON if a group name is too long
thermal: shorten too long mcast group name
Ming Lei (2):
Bluetooth: Add support for Dell[QCA 0cf3:0036]
Bluetooth: Add support for Dell[QCA 0cf3:817a]
Moshe Lazer (1):
net/mlx4_core: Fix wrong mask applied on EQ numbers in the wrapper
Pablo Neira Ayuso (1):
netfilter: nfnetlink_queue: fix incorrect initialization of copy range field
Paul Bolle (1):
netfilter: remove unused "config IP_NF_QUEUE"
Paul Moore (1):
unix: fix a race condition in unix_release()
Pravin B Shelar (1):
ipv4: Fix ip-header identification for gso packets.
Sergei Shtylyov (2):
sh_eth: fix bitbang memory leak
sh_eth: check TSU registers ioremap() error
Stanislaw Gruszka (1):
iwl3945: fix length of dma buffers
Stephen Hemminger (1):
igb: make sensor info static
Tom Parkin (12):
udp: add encap_destroy callback
l2tp: add udp encap socket destroy handler
l2tp: export l2tp_tunnel_closeall
l2tp: close sessions in ip socket destroy callback
l2tp: close sessions before initiating tunnel delete
l2tp: take a reference for kernel sockets in l2tp_tunnel_sock_lookup
l2tp: don't BUG_ON sk_socket being NULL
l2tp: add session reorder queue purge function to core
l2tp: purge session reorder queue on delete
l2tp: push all ppp pseudowire shutdown through .release handler
l2tp: avoid deadlock in l2tp stats update
l2tp: unhash l2tp sessions on delete, not on free
Veaceslav Falico (2):
pch_gbe: fix ip_summed checksum reporting on rx
bonding: remove already created master sysfs link on failure
Vinicius Costa Gomes (1):
Bluetooth: Fix not closing SCO sockets in the BT_CONNECT2 state
Wei Yongjun (2):
lpc_eth: fix error return code in lpc_eth_drv_probe()
lantiq_etop: use free_netdev(netdev) instead of kfree()
Yuchung Cheng (1):
tcp: undo spurious timeout after SACK reneging
dingtianhong (1):
af_unix: dont send SCM_CREDENTIAL when dest socket is NULL
xunleer (1):
ixgbevf: don't release the soft entries
Documentation/networking/ipvs-sysctl.txt | 7 +++
drivers/bluetooth/ath3k.c | 4 ++
drivers/bluetooth/btusb.c | 2 +
drivers/net/bonding/bond_sysfs.c | 5 ++
drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 18 +++---
drivers/net/ethernet/freescale/fec.c | 6 +-
drivers/net/ethernet/freescale/fec_ptp.c | 3 +
drivers/net/ethernet/intel/igb/e1000_82575.c | 33 +++++-----
drivers/net/ethernet/intel/igb/igb_hwmon.c | 2 +-
drivers/net/ethernet/intel/igb/igb_main.c | 4 +-
drivers/net/ethernet/intel/igb/igb_ptp.c | 2 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 24 +++++--
drivers/net/ethernet/lantiq_etop.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 22 +++----
drivers/net/ethernet/mellanox/mlx4/eq.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 45 ++++++++++---
drivers/net/ethernet/nxp/lpc_eth.c | 3 +-
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 4 +-
drivers/net/ethernet/renesas/sh_eth.c | 10 +++
drivers/net/ethernet/renesas/sh_eth.h | 1 +
drivers/net/ethernet/ti/cpsw.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_calib.c | 4 ++
drivers/net/wireless/ath/ath9k/link.c | 26 ++++----
drivers/net/wireless/iwlegacy/3945-mac.c | 22 ++++---
drivers/net/wireless/mwifiex/cmdevt.c | 22 +++++--
drivers/net/wireless/mwifiex/init.c | 8 +++
drivers/net/wireless/mwifiex/main.h | 4 +-
drivers/net/wireless/mwifiex/scan.c | 8 +--
drivers/net/wireless/mwifiex/sta_ioctl.c | 10 +--
drivers/net/wireless/rtlwifi/usb.c | 1 +
include/linux/thermal.h | 2 +-
include/linux/udp.h | 1 +
include/net/flow_keys.h | 1 +
include/net/ip_vs.h | 12 ++++
include/net/ipip.h | 16 ++---
include/uapi/linux/packet_diag.h | 4 +-
include/uapi/linux/unix_diag.h | 4 +-
net/8021q/vlan.c | 14 ++---
net/bluetooth/sco.c | 1 +
net/bridge/br_fdb.c | 2 +-
net/core/dev.c | 1 -
net/core/flow_dissector.c | 2 +
net/ipv4/af_inet.c | 3 +-
net/ipv4/ipconfig.c | 3 +-
net/ipv4/netfilter/Kconfig | 13 ----
net/ipv4/tcp_input.c | 7 +--
net/ipv4/tcp_output.c | 7 ++-
net/ipv4/udp.c | 7 +++
net/ipv6/addrconf.c | 26 +++-----
net/ipv6/netfilter/ip6t_NPT.c | 2 +
net/ipv6/udp.c | 8 +++
net/irda/af_irda.c | 6 +-
net/l2tp/l2tp_core.c | 206 +++++++++++++++++++++++++++++-------------------------------
net/l2tp/l2tp_core.h | 22 ++++---
net/l2tp/l2tp_debugfs.c | 28 ++++-----
net/l2tp/l2tp_ip.c | 6 ++
net/l2tp/l2tp_ip6.c | 7 +++
net/l2tp/l2tp_netlink.c | 72 +++++++++------------
net/l2tp/l2tp_ppp.c | 111 +++++++++++---------------------
net/netfilter/ipvs/ip_vs_core.c | 14 +++--
net/netfilter/ipvs/ip_vs_ctl.c | 7 +++
net/netfilter/ipvs/ip_vs_proto_sctp.c | 16 ++---
net/netfilter/nf_conntrack_proto_dccp.c | 12 ++--
net/netfilter/nf_conntrack_proto_gre.c | 12 ++--
net/netfilter/nf_conntrack_proto_sctp.c | 12 ++--
net/netfilter/nf_conntrack_proto_udplite.c | 12 ++--
net/netfilter/nfnetlink_queue_core.c | 2 +-
net/netlink/genetlink.c | 1 +
net/unix/af_unix.c | 11 ++--
69 files changed, 540 insertions(+), 459 deletions(-)
^ permalink raw reply
* [PATCH v2] libertas: drop maintainership
From: Dan Williams @ 2013-03-26 19:40 UTC (permalink / raw)
To: netdev; +Cc: linux-wireless, Daniel Drake, Bing Zhao, John W. Linville
Would be better maintained by somebody who actualy has time for it.
Signed-off-by: Dan Williams <dcbw@redhat.com>
---
I'm quite happy to ACK somebody else picking libertas up, and I'm also
happy to investigate how to send my hardware cache to the new
maintainer. (usb8388 dev modules, some CF8385s, some sd8686s, etc).
Also happy to forward along the libertas-dev moderator password.
diff --git a/MAINTAINERS b/MAINTAINERS
index c08411b..e2e32d9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5043,9 +5043,8 @@ S: Maintained
F: drivers/net/ethernet/marvell/sk*
MARVELL LIBERTAS WIRELESS DRIVER
-M: Dan Williams <dcbw@redhat.com>
L: libertas-dev@lists.infradead.org
-S: Maintained
+S: Orphan
F: drivers/net/wireless/libertas/
MARVELL MV643XX ETHERNET DRIVER
^ permalink raw reply related
* Re: Active URB submitted twice in pegasus driver
From: Petko Manolov @ 2013-03-26 20:54 UTC (permalink / raw)
To: Sarah Sharp; +Cc: linux-usb, Greg KH, netdev, Stephen Hemminger
In-Reply-To: <20130326185218.GD10317@xanatos>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 343 bytes --]
On Tue, 26 Mar 2013, Sarah Sharp wrote:
> But considering the multicast code is pretty old, I bet I'm running into
> a different bug...
The fix is rather small. Approximately one gigabyte was transferred while
alternating in and out of promiscuous mode. No issues.
I guess this should move the driver out of the equation.
cheers,
Petko
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: TEXT/x-diff; name=pegasus.diff, Size: 422 bytes --]
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 73051d1..879da39 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -1220,8 +1220,6 @@ static void pegasus_set_multicast(struct net_device *net)
pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
}
- pegasus->ctrl_urb->status = 0;
-
pegasus->flags |= ETH_REGS_CHANGE;
ctrl_callback(pegasus->ctrl_urb);
}
^ permalink raw reply related
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