* Re: [PATCH iproute2 v2 1/2] ip link: fix display of interface groups
From: Stephen Hemminger @ 2013-08-04 18:52 UTC (permalink / raw)
To: Stefan Tomanek; +Cc: netdev
In-Reply-To: <20130803122053.GM21970@zirkel.wertarbyte.de>
Applied.
Since this doesn't depend on anything new, it goes into master for 3.11
^ permalink raw reply
* Re: [patch iproute2] ip: show physical port id
From: Stephen Hemminger @ 2013-08-04 18:48 UTC (permalink / raw)
To: Jiri Pirko; +Cc: netdev, davem, Narendra_K, bhutchings, john.r.fastabend
In-Reply-To: <1374242152-10325-5-git-send-email-jiri@resnulli.us>
On Fri, 19 Jul 2013 15:55:52 +0200
Jiri Pirko <jiri@resnulli.us> wrote:
> Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Applied to net-next-3.11 branch to go into the matching release
^ permalink raw reply
* Re: ax25_recvmsg lockup
From: Dave Jones @ 2013-08-04 16:04 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <20130803.134604.508965748339486186.davem@davemloft.net>
On Sat, Aug 03, 2013 at 01:46:04PM -0700, David Miller wrote:
> From: Dave Jones <davej@redhat.com>
> Date: Mon, 17 Jun 2013 10:28:03 -0400
>
> > With the right arguments from userspace, reading from an ax25 socket
> > can spend long enough in the kernel that it triggers the softlockup
> > detector. I hit a bunch of these traces in a trinity run that I
> > left running over the weekend.
>
> I looked at this a bunch of times and am still mystified how this
> can happen.
>
> It should be simple to diagnose since I doubt there is any real
> AX25 traffic going to these sockets.
>
> Any chance you can figure out what the arguments are that cause
> this problem? That'll probably help a lot, thanks!
thinking about this some more, I wonder if it was related to the problems
I was seeing where a bunch of concurrent sync()'s would trip up the
soft-lockup detector. Perhaps the ax25 code got preempted and
the syncs starved the cpu for a while, so when we eventually got back
to the ax25 code, the detector decided it hadn't made progress..
I don't know, it sounds a bit far-fetched, but it's all I can think of.
Dave
^ permalink raw reply
* Re: bonding + arp monitoring fails if interface is a vlan
From: Santiago Garcia Mantinan @ 2013-08-04 10:45 UTC (permalink / raw)
To: Nikolay Aleksandrov; +Cc: netdev
In-Reply-To: <51FB9EE5.3040907@redhat.com>
2013/8/2 Nikolay Aleksandrov <nikolay@redhat.com>:
> I believe that it is because dev_trans_start() returns 0 for 8021q devices and
> so the calculations if the slave has transmitted are wrong, and the flip-flop
> happens.
> Please try the attached patch, it should resolve your issue (basically it gets
> the dev_trans_start of the vlan's underlying device if a vlan is found).
Thanks, patched and compiling, I'll try today with my laptops and
tomorrow at the lab I had setup and then at the original machine.
I'll let you know how things go.
Regards.
--
Manty/BestiaTester -> http://manty.net
^ permalink raw reply
* [PATCH net] busy_poll: cleanup do-nothing placeholders
From: Eliezer Tamir @ 2013-08-04 9:55 UTC (permalink / raw)
To: David Miller; +Cc: linux-kernel, netdev, Eliezer Tamir, Eliezer Tamir
When renaming ll_poll to busy poll, I introduced a typo
in the name of the do-nothing placeholder for sk_busy_loop
and called it sk_busy_poll.
This broke compile when busy poll was not configured.
Cong Wang submitted a patch to fixed that.
This patch removes the now redundant, misspelled placeholder.
Signed-off-by: Eliezer Tamir <eliezer.tamir@linux.intel.com>
---
include/net/busy_poll.h | 5 -----
1 files changed, 0 insertions(+), 5 deletions(-)
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h
index f18b919..8e2dfc1 100644
--- a/include/net/busy_poll.h
+++ b/include/net/busy_poll.h
@@ -162,11 +162,6 @@ static inline bool sk_can_busy_loop(struct sock *sk)
return false;
}
-static inline bool sk_busy_poll(struct sock *sk, int nonblock)
-{
- return false;
-}
-
static inline void skb_mark_napi_id(struct sk_buff *skb,
struct napi_struct *napi)
{
^ permalink raw reply related
* Re: [PATCH v3] net/phy: micrel: Add OF configuration support for ksz9021
From: David Miller @ 2013-08-04 4:56 UTC (permalink / raw)
To: xobs; +Cc: s.hauer, B38611, netdev, devicetree, stephen, rostedt
In-Reply-To: <1375348757-12856-2-git-send-email-xobs@kosagi.com>
From: Sean Cross <xobs@kosagi.com>
Date: Thu, 1 Aug 2013 09:19:17 +0000
> Some boards require custom PHY configuration, for example due to trace
> length differences. Add the ability to configure these registers in
> order to get the PHY to function on boards that need it.
>
> Because PHYs are auto-detected based on MDIO device IDs, allow PHY
> configuration to be specified in the parent Ethernet device node if no
> PHY device node is present.
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
Can someone knowledgable in this area please review this patch?
Thanks.
^ permalink raw reply
* Re: [PATCH net-next] ax88179_178a: avoid copy of tx tcp packets
From: David Miller @ 2013-08-04 4:56 UTC (permalink / raw)
To: eric.dumazet
Cc: ming.lei, gregkh, oneukum, freddy, bhutchings, grundler, netdev,
linux-usb
In-Reply-To: <1375365165.10515.143.camel@edumazet-glaptop>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 01 Aug 2013 06:52:45 -0700
> On Thu, 2013-08-01 at 06:49 -0700, Eric Dumazet wrote:
>> From: Eric Dumazet <edumazet@google.com>
>>
>> ax88179_tx_fixup() has quite complex code trying to push 8 bytes
>> of control data (len/mss), but fails to do it properly for TCP packets,
>> incurring an extra copy and point of memory allocation failure.
>
> I forgot to say this patch is for net-next, but depends on following fix
> from net tree being applied.
>
> commit 20f0170377264e8449b6987041f0bcc4d746d3ed
> ("usbnet: do not pretend to support SG/TSO")
Thanks for letting me know.
Applied, thanks Eric.
^ permalink raw reply
* net merged into net-next
From: David Miller @ 2013-08-04 4:55 UTC (permalink / raw)
To: netdev
Just FYI, I've merged 'net' into 'net-next'.
^ permalink raw reply
* Re: [PATCH net 1/2] vlan: make vlan_dev_real_dev work over stacked vlans
From: Nikolay Aleksandrov @ 2013-08-04 2:17 UTC (permalink / raw)
To: netdev; +Cc: davem, vfalico, fubar, jhs
In-Reply-To: <1375560467-1604-1-git-send-email-nikolay@redhat.com>
On 08/03/2013 10:07 PM, Nikolay Aleksandrov wrote:
> From: Nikolay Aleksandrov <Nikolay Aleksandrov nikolay@redhat.com>
>
> Sometimes we might have stacked vlans on top of each other, and we're
> interested in the first non-vlan real device on the path, so transform
> vlan_dev_real_dev to go over the stacked vlans and extract the first
> non-vlan device.
>
> Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
> ---
> net/8021q/vlan_core.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
> index 4a78c4d..6ee48aa 100644
> --- a/net/8021q/vlan_core.c
> +++ b/net/8021q/vlan_core.c
> @@ -91,7 +91,12 @@ EXPORT_SYMBOL(__vlan_find_dev_deep);
>
> struct net_device *vlan_dev_real_dev(const struct net_device *dev)
> {
> - return vlan_dev_priv(dev)->real_dev;
> + struct net_device *ret = vlan_dev_priv(dev)->real_dev;
> +
> + while (is_vlan_dev(ret))
> + ret = vlan_dev_priv(ret)->real_dev;
> +
> + return ret;
> }
> EXPORT_SYMBOL(vlan_dev_real_dev);
>
>
I have one question - why not make it possible to call vlan_dev_real_dev()
with any device (vlan/non-vlan) and make it return a real device in all
cases (e.g. if it's a non-vlan device simply return it) ?
In the terms of the code above - simply change:
struct net_device *ret = vlan_dev_priv(dev)->real_dev;
with
struct net_device *ret = dev;
This way we'll be able to simplify calls like if (is_vlan_dev(dev)) (or the
flag check alternative of this) to just vlan_dev_real_dev(). The old call
sites of this function will still work properly.
Nik
^ permalink raw reply
* Re: [PATCH v1 0/4] USB & USBNET: loose SG check and support usbnet DMA SG
From: Ming Lei @ 2013-08-04 0:28 UTC (permalink / raw)
To: David S. Miller, Greg Kroah-Hartman
Cc: Oliver Neukum, Sarah Sharp, netdev, linux-usb
In-Reply-To: <1375497998-7424-1-git-send-email-ming.lei@canonical.com>
On Sat, Aug 3, 2013 at 10:46 AM, Ming Lei <ming.lei@canonical.com> wrote:
> Hi,
>
> This patchset allows drivers to pass sg buffers which size can't be divided
> by max packet size of endpoint if the host controllers(such ax xHCI) support
> this kind of sg buffers.
>
> Previously we added check[1] on the situation and don't allow these sg buffers
> passed to USB HCD, looks the check is too strict to make use of new feature of
> new hardware(xHCI) for some applications(such as network stack) which can't
> provide this kind of sg buffers to usbnet driver, so the patch looses the check
> in case that the host controller supports it.
>
> Patch 3/4 implements DMA SG on usbnet driver, and patch 4/4 uses it on ax88179_178a
> USB3 NIC for supporting TSO, so both CPU utilization and tx throughput can be
> improved with TSO and DMA SG in case of the USB NIC is attached to xHCI controller.
>
> This patchset is against Eric Dumazet's patch(ax88179_178a: avoid copy of tx
> tcp packets), so maybe it is better to merge via net-next tree.
Looks it is a bit complicated, so it can't work via net-next.
- patch 1/4 depends on current usb-next tree
- patch 2/4 depends on patch 1/4
- patch 4/4 depends on both patch 1/4 and Eric's patch
Thanks,
--
Ming Lei
^ permalink raw reply
* Re: ax25_recvmsg lockup
From: Dave Jones @ 2013-08-04 0:25 UTC (permalink / raw)
To: David Miller; +Cc: netdev
In-Reply-To: <20130803.134604.508965748339486186.davem@davemloft.net>
On Sat, Aug 03, 2013 at 01:46:04PM -0700, David Miller wrote:
> From: Dave Jones <davej@redhat.com>
> Date: Mon, 17 Jun 2013 10:28:03 -0400
>
> > With the right arguments from userspace, reading from an ax25 socket
> > can spend long enough in the kernel that it triggers the softlockup
> > detector. I hit a bunch of these traces in a trinity run that I
> > left running over the weekend.
>
> I looked at this a bunch of times and am still mystified how this
> can happen.
>
> It should be simple to diagnose since I doubt there is any real
> AX25 traffic going to these sockets.
>
> Any chance you can figure out what the arguments are that cause
> this problem? That'll probably help a lot, thanks!
I've not seen it in a while, I'll have a think about what I can
do to try and provoke it more reliably on Monday.
Dave
^ permalink raw reply
* Re: [PATCH v1 1/4] USB: introduce usb_device_no_sg_limit() helper
From: Ming Lei @ 2013-08-04 0:22 UTC (permalink / raw)
To: Alan Stern
Cc: David S. Miller, Greg Kroah-Hartman, Oliver Neukum, Sarah Sharp,
netdev, linux-usb
In-Reply-To: <Pine.LNX.4.44L0.1308031149110.29946-100000@netrider.rowland.org>
On Sat, Aug 3, 2013 at 11:53 PM, Alan Stern <stern@rowland.harvard.edu> wrote:
> On Sat, 3 Aug 2013, Ming Lei wrote:
>
>> Some host controllers(such as xHCI) can support building
>> packet from discontinuous buffers, so introduce one flag
>> and helper for this kind of host controllers, then the
>> feature can help some applications(such as, usbnet) by
>> supporting arbitrary length of sg buffers.
>
>> diff --git a/include/linux/usb.h b/include/linux/usb.h
>> index 84f14e2..5d03074 100644
>> --- a/include/linux/usb.h
>> +++ b/include/linux/usb.h
>> @@ -337,6 +337,7 @@ struct usb_bus {
>> * the ep queue on a short transfer
>> * with the URB_SHORT_NOT_OK flag set.
>> */
>> + unsigned no_sg_limit:1; /* no sg list limit */
>
> Why do you call this "no_sg_limit"? It isn't a limit on the SG list;
> the list can be arbitrarily long, provided all the entries except the
> last are divisible by the maxpacket size.
>
> You could call it "no_sg_constraint" if you want. Or
> "allow_arbitrary_sg", to put a more positive spin on it.
OK, I prefer no_sg_constraint, and will do it in v2.
Thanks,
--
Ming Lei
^ permalink raw reply
* Re: [PATCH v1 3/4] USBNET: support DMA SG
From: Ming Lei @ 2013-08-04 0:19 UTC (permalink / raw)
To: David Miller
Cc: oneukum, gregkh, sarah.a.sharp, netdev, linux-usb, eric.dumazet,
bhutchings, grundler, freddy, stern
In-Reply-To: <20130803.120731.1813304058291781420.davem@davemloft.net>
On Sun, Aug 4, 2013 at 3:07 AM, David Miller <davem@davemloft.net> wrote:
> From: Oliver Neukum <oneukum@suse.de>
> Date: Sat, 03 Aug 2013 07:56:53 +0200
>
>> On Sat, 2013-08-03 at 10:46 +0800, Ming Lei wrote:
>>
>>> @@ -1268,10 +1298,14 @@ netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
>>> entry = (struct skb_data *) skb->cb;
>>> entry->urb = urb;
>>> entry->dev = dev;
>>> - entry->length = length;
>>>
>>> usb_fill_bulk_urb (urb, dev->udev, dev->out,
>>> skb->data, skb->len, tx_complete, skb);
>>> + if (dev->can_dma_sg) {
>>> + if (build_dma_sg(skb, urb) < 0)
>>> + goto drop;
>>
>> Where do you free urb->sg?
>
> Indeed, this appears to leak.
>
> The devio.c code in the USB layer takes care to manage freeing of
> the urb->sg, so this usbnet code will have to as well.
Hamm, kfree(urb->sg) is removed carelessly in v1, sorry for that.
Will fix it in -v2.
Thanks,
--
Ming Lei
^ permalink raw reply
* Alcatel X220S HSDPA modem
From: Enrico Mioso @ 2013-08-03 23:59 UTC (permalink / raw)
To: netdev, linux-usb
Hello everybody!
I'm going to investigate a little bit on an obscure Alcatel device - the
Alcatel X220s, manifactured by TCT Mobile Phones.
It supports a NDIS network interface, as you will be able to discover looking
at the driver package, still: don't know what's the protocol used.
At a first glance, I would just like to avoid option.ko binding to non-serial
interface as it happens now. So I would appreciate it a lot if you help me
distinguish non-serial interfaces from serial ones, looking at this lsusb
listing and the driver package (see link below).
Another strange thing is - the device interface referred as the WAN one is "06"
but here we ave from 0 to 5 interfaces!
Looking at this msdn article, it seems Windows does no elaboration regarding
the InterfaceNumber field. So - am I missing an interface or does Windows start
numbering interfaces from 1?
Driver package link:
http://www.gstorm.eu/dgm/alcdrv.tar.xz
(I simply decompressed the Innosetup installer to let you browse these files
with no major issues!)
Any help and documentation would be greatly apreciated!!
Bus 001 Device 002: ID 1bbb:0017 T & A Mobile Phones
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1bbb T & A Mobile Phones
idProduct 0x0017
bcdDevice 0.00
iManufacturer 3 USBModem
iProduct 2 HSPA Data Card
iSerial 4 1234567890ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 154
bNumInterfaces 6
bConfigurationValue 1
iConfiguration 1 USBModem Configuration
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
^ permalink raw reply
* Re: [PATCH net] net: mlx5: fix sizeof usage in health_care's reg_handler
From: Or Gerlitz @ 2013-08-03 21:42 UTC (permalink / raw)
To: Daniel Borkmann, Eli Cohen; +Cc: ogerlitz, netdev, David Miller, Eli Cohen
In-Reply-To: <51FC3620.3020401@redhat.com>
On Sat, Aug 3, 2013 at 1:43 AM, Daniel Borkmann <dborkman@redhat.com> wrote:
> On 08/03/2013 12:11 AM, David Miller wrote:
>>
>> From: Daniel Borkmann <dborkman@redhat.com>
>> Date: Fri, 2 Aug 2013 12:16:17 +0200
>>
>>> Therefore, I strongly assume sizeof(*health->health) is being meant
>>> to be passed as an argument. Interestingly, there are actually no
>>> in-tree users of mlx5_[un]register_health_report_handler(), but some
>>> debugging modules might want to know the correct size instead.
>>
>>
>> I want these hooks and infrastructure removed immediately.
>>
>> If there are no in-tree users there is no reason for them to
>> exist at all.
>
>
> Ok, I let Or handle that. Maybe he wants to add a user of it, instead.
>
> I also noticed that coverty scanner found a couple of other issues,
> e.g. outlen_write() in mlx5/core/cmd.c does a kzalloc() without
> doing sanity checks on the user-passed allocation size, e.g. it
> could even be a negative value passed to it.
Hi Daniel,
As listed in the kernel maintainers file, Eli Cohen (copied) is the
upstream maintainer for the mlx5 driver, please make sure to send/copy him
on patches/questions you have on mlx5. I will let Eli answer/handle your
findings/questions.
Or.
^ permalink raw reply
* Re: ax25_recvmsg lockup
From: David Miller @ 2013-08-03 20:46 UTC (permalink / raw)
To: davej; +Cc: netdev
In-Reply-To: <20130617142803.GB16732@redhat.com>
From: Dave Jones <davej@redhat.com>
Date: Mon, 17 Jun 2013 10:28:03 -0400
> With the right arguments from userspace, reading from an ax25 socket
> can spend long enough in the kernel that it triggers the softlockup
> detector. I hit a bunch of these traces in a trinity run that I
> left running over the weekend.
I looked at this a bunch of times and am still mystified how this
can happen.
It should be simple to diagnose since I doubt there is any real
AX25 traffic going to these sockets.
Any chance you can figure out what the arguments are that cause
this problem? That'll probably help a lot, thanks!
^ permalink raw reply
* Re: [PATCH net v2 2/2] net_sched: make dev_trans_start return vlan's real dev trans_start
From: Veaceslav Falico @ 2013-08-03 20:12 UTC (permalink / raw)
To: Nikolay Aleksandrov; +Cc: netdev, davem, fubar, jhs
In-Reply-To: <1375560467-1604-2-git-send-email-nikolay@redhat.com>
On Sat, Aug 03, 2013 at 10:07:47PM +0200, Nikolay Aleksandrov wrote:
>From: Nikolay Aleksandrov <Nikolay Aleksandrov nikolay@redhat.com>
>
>Vlan devices are LLTX and don't update their own trans_start, so if
>dev_trans_start has to be called with a vlan device then 0 or a stale
>value will be returned. Currently the bonding is the only such user, and
>it's needed for proper arp monitoring when the slaves are vlans.
>Fix this by extracting the vlan's real device trans_start.
>
>Suggested-by: David Miller <davem@davemloft.net>
>Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Acked-by: Veaceslav Falico <vfalico@redhat.com>
>---
>v2: drop the while, since vlan_dev_real_dev now does it for us
>
> net/sched/sch_generic.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
>index 4626cef..eeb8276 100644
>--- a/net/sched/sch_generic.c
>+++ b/net/sched/sch_generic.c
>@@ -25,6 +25,7 @@
> #include <linux/rcupdate.h>
> #include <linux/list.h>
> #include <linux/slab.h>
>+#include <linux/if_vlan.h>
> #include <net/sch_generic.h>
> #include <net/pkt_sched.h>
> #include <net/dst.h>
>@@ -207,15 +208,19 @@ void __qdisc_run(struct Qdisc *q)
>
> unsigned long dev_trans_start(struct net_device *dev)
> {
>- unsigned long val, res = dev->trans_start;
>+ unsigned long val, res;
> unsigned int i;
>
>+ if (is_vlan_dev(dev))
>+ dev = vlan_dev_real_dev(dev);
>+ res = dev->trans_start;
> for (i = 0; i < dev->num_tx_queues; i++) {
> val = netdev_get_tx_queue(dev, i)->trans_start;
> if (val && time_after(val, res))
> res = val;
> }
> dev->trans_start = res;
>+
> return res;
> }
> EXPORT_SYMBOL(dev_trans_start);
>--
>1.8.1.4
>
^ permalink raw reply
* Re: [PATCH net 1/2] vlan: make vlan_dev_real_dev work over stacked vlans
From: Veaceslav Falico @ 2013-08-03 20:11 UTC (permalink / raw)
To: Nikolay Aleksandrov; +Cc: netdev, davem, fubar, jhs
In-Reply-To: <1375560467-1604-1-git-send-email-nikolay@redhat.com>
On Sat, Aug 03, 2013 at 10:07:46PM +0200, Nikolay Aleksandrov wrote:
>From: Nikolay Aleksandrov <Nikolay Aleksandrov nikolay@redhat.com>
>
>Sometimes we might have stacked vlans on top of each other, and we're
>interested in the first non-vlan real device on the path, so transform
>vlan_dev_real_dev to go over the stacked vlans and extract the first
>non-vlan device.
>
>Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
>---
> net/8021q/vlan_core.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
>index 4a78c4d..6ee48aa 100644
>--- a/net/8021q/vlan_core.c
>+++ b/net/8021q/vlan_core.c
>@@ -91,7 +91,12 @@ EXPORT_SYMBOL(__vlan_find_dev_deep);
>
> struct net_device *vlan_dev_real_dev(const struct net_device *dev)
> {
>- return vlan_dev_priv(dev)->real_dev;
>+ struct net_device *ret = vlan_dev_priv(dev)->real_dev;
>+
>+ while (is_vlan_dev(ret))
>+ ret = vlan_dev_priv(ret)->real_dev;
>+
>+ return ret;
> }
> EXPORT_SYMBOL(vlan_dev_real_dev);
>
>--
>1.8.1.4
>
^ permalink raw reply
* [PATCH net v2 2/2] net_sched: make dev_trans_start return vlan's real dev trans_start
From: Nikolay Aleksandrov @ 2013-08-03 20:07 UTC (permalink / raw)
To: netdev; +Cc: davem, vfalico, fubar, jhs
In-Reply-To: <1375560467-1604-1-git-send-email-nikolay@redhat.com>
From: Nikolay Aleksandrov <Nikolay Aleksandrov nikolay@redhat.com>
Vlan devices are LLTX and don't update their own trans_start, so if
dev_trans_start has to be called with a vlan device then 0 or a stale
value will be returned. Currently the bonding is the only such user, and
it's needed for proper arp monitoring when the slaves are vlans.
Fix this by extracting the vlan's real device trans_start.
Suggested-by: David Miller <davem@davemloft.net>
Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
---
v2: drop the while, since vlan_dev_real_dev now does it for us
net/sched/sch_generic.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 4626cef..eeb8276 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -25,6 +25,7 @@
#include <linux/rcupdate.h>
#include <linux/list.h>
#include <linux/slab.h>
+#include <linux/if_vlan.h>
#include <net/sch_generic.h>
#include <net/pkt_sched.h>
#include <net/dst.h>
@@ -207,15 +208,19 @@ void __qdisc_run(struct Qdisc *q)
unsigned long dev_trans_start(struct net_device *dev)
{
- unsigned long val, res = dev->trans_start;
+ unsigned long val, res;
unsigned int i;
+ if (is_vlan_dev(dev))
+ dev = vlan_dev_real_dev(dev);
+ res = dev->trans_start;
for (i = 0; i < dev->num_tx_queues; i++) {
val = netdev_get_tx_queue(dev, i)->trans_start;
if (val && time_after(val, res))
res = val;
}
dev->trans_start = res;
+
return res;
}
EXPORT_SYMBOL(dev_trans_start);
--
1.8.1.4
^ permalink raw reply related
* [PATCH net 1/2] vlan: make vlan_dev_real_dev work over stacked vlans
From: Nikolay Aleksandrov @ 2013-08-03 20:07 UTC (permalink / raw)
To: netdev; +Cc: davem, vfalico, fubar, jhs
From: Nikolay Aleksandrov <Nikolay Aleksandrov nikolay@redhat.com>
Sometimes we might have stacked vlans on top of each other, and we're
interested in the first non-vlan real device on the path, so transform
vlan_dev_real_dev to go over the stacked vlans and extract the first
non-vlan device.
Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
---
net/8021q/vlan_core.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 4a78c4d..6ee48aa 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -91,7 +91,12 @@ EXPORT_SYMBOL(__vlan_find_dev_deep);
struct net_device *vlan_dev_real_dev(const struct net_device *dev)
{
- return vlan_dev_priv(dev)->real_dev;
+ struct net_device *ret = vlan_dev_priv(dev)->real_dev;
+
+ while (is_vlan_dev(ret))
+ ret = vlan_dev_priv(ret)->real_dev;
+
+ return ret;
}
EXPORT_SYMBOL(vlan_dev_real_dev);
--
1.8.1.4
^ permalink raw reply related
* [GIT] Networking
From: David Miller @ 2013-08-03 19:38 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
1) Don't ignore user initiated wireless regulatory settings on cards
with custom regulatory domains, from Arik Nemtsov.
2) Fix length check of bluetooth information responses, from Jaganath
Kanakkassery.
3) Fix misuse of PTR_ERR in btusb, from Adam Lee.
4) Handle rfkill properly while iwlwifi devices are offline,
from Emmanuel Grumbach.
5) Fix r815x devices DMA'ing to stack buffers, from Hayes Wang.
6) Kernel info leak in ATM packet scheduler, from Dan Carpenter.
7) 8139cp doesn't check for DMA mapping errors, from Neil Horman.
8) Fix bridge multicast code to not snoop when no querier exists,
otherwise mutlicast traffic is lost. From Linus Lüssing.
9) Avoid soft lockups in fib6_run_gc(), from Michal Kubecek.
10) Fix races in automatic address asignment on ipv6, which can
result in incorrect lifetime assignments. From Jiri Benc.
11) Cure build bustage when CONFIG_NET_LL_RX_POLL is not set and
rename it CONFIG_NET_RX_BUSY_POLL to eliminate the last reference
to the original naming of this feature. From Cong Wang.
12) Fix crash in TIPC when server socket creation fails, from Ying
Xue.
13) macvlan_changelink() silently succeeds when it shouldn't, from
Michael S. Tsirkin.
14) HTB packet scheduler can crash due to sign extension, fix from
Stephen Hemminger.
15) With the cable unplugged, r8169 prints out a message every 10
seconds, make it netif_dbg() instead of netif_warn(). From
Peter Wu.
16) Fix memory leak in rtm_to_ifaddr(), from Daniel Borkmann.
17) sis900 gets spurious TX queue timeouts due to mismanagement of
link carrier state, from Denis Kirjanov.
18) Validate somaxconn sysctl to make sure it fits inside of a
u16. From Roman Gushchin.
19) Fix MAC address filtering on qlcnic, from Shahed Shaikh.
Please pull, thanks a lot!
The following changes since commit 06693f305e60202d2795a10bee7fb7da23bc2acc:
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (2013-07-31 12:56:18 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net master
for you to fetch changes up to 4bd8e7385961932d863ea976a67f384c3a8302cb:
qlcnic: Fix for flash update failure on 83xx adapter (2013-08-03 12:03:04 -0700)
----------------------------------------------------------------
AceLan Kao (2):
Bluetooth: Add support for Atheros [0cf3:3121]
Bluetooth: Add support for Atheros [0cf3:e003]
Adam Lee (1):
Bluetooth: fix wrong use of PTR_ERR() in btusb
Arend van Spriel (1):
brcmfmac: inform cfg80211 about disconnect when device is unplugged
Arik Nemtsov (1):
regulatory: use correct regulatory initiator on wiphy register
Avinash Patil (2):
mwifiex: check for bss_role instead of bss_mode for STA operations
mwifiex: fix wrong data rates in P2P client
Chun-Yeow Yeoh (1):
mac80211: prevent the buffering or frame transmission to non-assoc mesh STA
Cong Wang (2):
net: fix a compile error when CONFIG_NET_LL_RX_POLL is not set
net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL
Dan Carpenter (1):
net_sched: info leak in atm_tc_dump_class()
Daniel Borkmann (1):
net: rtm_to_ifaddr: free ifa if ifa_cacheinfo processing fails
David S. Miller (1):
Merge branch 'for-davem' of git://git.kernel.org/.../linville/wireless
David Spinadel (1):
iwlwifi: mvm: set SSID bits for passive channels
Denis Kirjanov (1):
sis900: Fix the tx queue timeout issue
Emmanuel Grumbach (3):
iwlwifi: add DELL SKU for 5150 HMC
iwlwifi: pcie: reset the NIC before the bring up
iwlwifi: pcie: clear RFKILL interrupt in AMPG
Felipe Balbi (1):
net: ethernet: cpsw: drop IRQF_DISABLED
Frederic Danis (1):
NFC: Fix NCI over SPI build
Geert Uytterhoeven (1):
ath10k: ATH10K should depend on HAS_DMA
Gustavo Padovan (1):
Bluetooth: Fix race between hci_register_dev() and hci_dev_open()
Himanshu Madhani (2):
qlcnic: Free up memory in error path.
qlcnic: Fix for flash update failure on 83xx adapter
Ilan Peer (1):
iwlwifi: mvm: Disable managed PS when GO is added
Jack Morgenstein (1):
net/mlx4_core: VFs must ignore the enable_64b_cqe_eqe module param
Jaganath Kanakkassery (1):
Bluetooth: Fix invalid length check in l2cap_information_rsp()
Jiri Benc (1):
ipv6: prevent race between address creation and removal
Jiri Pirko (1):
ipv6: move peer_addr init into ipv6_add_addr()
Joe Perches (1):
ndisc: Add missing inline to ndisc_addr_option_pad
Johan Hedberg (2):
Bluetooth: Fix HCI init for BlueFRITZ! devices
Bluetooth: Fix calling request callback more than once
Johannes Berg (2):
iwlwifi: mvm: use only a single GTK in D3
iwlwifi: mvm: fix flushing not started aggregation sessions
John W. Linville (6):
Merge branch 'for-linville-current' of git://github.com/kvalo/ath
Merge branch 'for-john' of git://git.kernel.org/.../iwlwifi/iwlwifi-fixes
Merge branch 'for-john' of git://git.kernel.org/.../jberg/mac80211
Merge branch 'master' of git://git.kernel.org/.../bluetooth/bluetooth
Merge tag 'nfc-fixes-3.11-2' of git://git.kernel.org/.../sameo/nfc-fixes
Merge branch 'master' of git://git.kernel.org/.../linville/wireless into for-davem
Kalle Valo (2):
MAINTAINERS: add ath10k
MAINTAINERS: update ath6kl git location
Lekensteyn (1):
r8169: remove "PHY reset until link up" log spam
Linus Lüssing (1):
bridge: disable snooping if there is no querier
Luciano Coelho (1):
MAINTAINERS: change email of TI WiLink drivers' maintainer
Michael S. Tsirkin (2):
macvlan: better mode validation
macvlan: handle set_promiscuity failures
Michal Kubeček (2):
ipv6: prevent fib6_run_gc() contention
ipv6: update ip6_rt_last_gc every time GC is run
Mugunthan V N (1):
net: ethernet: davinci_emac: drop IRQF_DISABLED
Neil Horman (1):
8139cp: Add dma_mapping_error checking
Or Gerlitz (1):
net/mlx4_core: Don't give VFs MAC addresses which are derived from the PF MAC
Paul Moore (1):
netlabel: use domain based selectors when address based selectors are not available
Pratik Pujar (1):
qlcnic: Removed adapter series name from warning messages.
Rajesh Borundia (2):
qlcnic: Fix link speed display for 82xx adapter
qlcnic: Fix link speed and duplex display for 83xx adapter
Roman Gushchin (1):
net: check net.core.somaxconn sysctl values
Samuel Ortiz (1):
NFC: netlink: Rename CMD_FW_UPLOAD to CMD_FW_DOWNLOAD
Shahed Shaikh (3):
qlcnic: Fix MAC address filter issue on 82xx adapter
qlcnic: Fix ingress MAC learning
qlcnic: Fix external loopback test.
Stanislaw Gruszka (3):
mac80211: fix monitor interface suspend crash regression
Bluetooth: ath3k: don't use stack memory for DMA
rt2x00: fix stop queue
Stone Piao (1):
mwifiex: fix command 0x2c timeout during p2p_find or p2p_connect
Sujith Manoharan (1):
Bluetooth: ath3k: Add support for ID 0x13d3/0x3402
Thomas Loo (1):
Bluetooth: ath3k: Add support for Fujitsu Lifebook UH5x2 [04c5:1330]
Tomasz Moń (1):
mwifiex: Add missing endian conversion.
Ying Xue (1):
tipc: fix oops when creating server socket fails
hayeswang (5):
net/usb/r815x: replace USB buffer from stack to DMA-able
net/usb/r815x: avoid to call mdio functions for runtime-suspended device
net/usb/r815x: change the return value for bind functions
net/usb/r8152: make sure the USB buffer is DMA-able
net/usb/r8152: adjust relative ocp function
stephen hemminger (1):
htb: fix sign extension bug
Documentation/sysctl/net.txt | 4 +-
MAINTAINERS | 12 +++++-
drivers/bluetooth/ath3k.c | 46 +++++++++++++++++-----
drivers/bluetooth/btusb.c | 18 +++++----
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 8 ++--
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 12 +++---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 6 +--
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 6 +--
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 6 +--
drivers/net/ethernet/mellanox/mlx4/fw.c | 11 +-----
drivers/net/ethernet/mellanox/mlx4/main.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 10 ++---
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 12 ++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 126 +++++++++++++++++++++++++++++++++++------------------------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 2 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 91 ++++++++++++++++++++++++++++--------------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 16 ++++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 83 +++++++++++++++++++++++++++++----------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 40 +++++++++++++------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h | 2 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c | 25 ++++++++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 101 +++++++++++++++++++++++++++++++----------------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 19 +++++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 2 +-
drivers/net/ethernet/realtek/8139cp.c | 48 +++++++++++++++++++++--
drivers/net/ethernet/realtek/r8169.c | 2 +-
drivers/net/ethernet/sis/sis900.c | 12 +-----
drivers/net/ethernet/ti/cpsw.c | 2 +-
drivers/net/ethernet/ti/davinci_emac.c | 3 +-
drivers/net/macvlan.c | 23 +++++++++--
drivers/net/usb/r8152.c | 126 +++++++++++++++++++++++++++--------------------------------
drivers/net/usb/r815x.c | 62 +++++++++++++++++++----------
drivers/net/wireless/ath/ath10k/Kconfig | 2 +-
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 5 ++-
drivers/net/wireless/iwlwifi/iwl-prph.h | 2 +
drivers/net/wireless/iwlwifi/mvm/d3.c | 15 ++++---
drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 1 -
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 42 ++++++++++----------
drivers/net/wireless/iwlwifi/mvm/scan.c | 11 +-----
drivers/net/wireless/iwlwifi/mvm/sta.c | 11 ++++--
drivers/net/wireless/iwlwifi/pcie/drv.c | 1 +
drivers/net/wireless/iwlwifi/pcie/rx.c | 8 ++++
drivers/net/wireless/iwlwifi/pcie/trans.c | 5 +++
drivers/net/wireless/mwifiex/cfg80211.c | 4 +-
drivers/net/wireless/mwifiex/cfp.c | 3 +-
drivers/net/wireless/mwifiex/join.c | 6 ++-
drivers/net/wireless/mwifiex/sdio.c | 4 +-
drivers/net/wireless/mwifiex/sta_ioctl.c | 4 +-
drivers/net/wireless/rt2x00/rt2x00queue.c | 18 +++++----
include/linux/netdevice.h | 2 +-
include/linux/skbuff.h | 2 +-
include/net/busy_poll.h | 11 ++++--
include/net/ip6_fib.h | 2 +-
include/net/ndisc.h | 2 +-
include/net/nfc/hci.h | 2 +-
include/net/nfc/nfc.h | 4 +-
include/net/sock.h | 2 +-
include/uapi/linux/nfc.h | 6 +--
net/Kconfig | 2 +-
net/bluetooth/hci_core.c | 26 +++++++-----
net/bridge/br_device.c | 3 +-
net/bridge/br_input.c | 3 +-
net/bridge/br_multicast.c | 39 +++++++++++++-----
net/bridge/br_private.h | 12 ++++++
net/core/skbuff.c | 2 +-
net/core/sock.c | 6 +--
net/core/sysctl_net_core.c | 8 +++-
net/ipv4/devinet.c | 4 +-
net/ipv6/addrconf.c | 43 ++++++++++----------
net/ipv6/ip6_fib.c | 25 ++++++------
net/ipv6/ndisc.c | 4 +-
net/ipv6/route.c | 8 ++--
net/mac80211/mesh_ps.c | 4 ++
net/mac80211/pm.c | 7 +++-
net/netlabel/netlabel_cipso_v4.c | 4 +-
net/netlabel/netlabel_domainhash.c | 104 +++++++++++++++++++++++-------------------------
net/netlabel/netlabel_domainhash.h | 46 +++++++++++-----------
net/netlabel/netlabel_kapi.c | 88 +++++++++++++++++------------------------
net/netlabel/netlabel_mgmt.c | 44 ++++++++++-----------
net/netlabel/netlabel_unlabeled.c | 2 +-
net/nfc/core.c | 20 +++++-----
net/nfc/hci/core.c | 8 ++--
net/nfc/nci/Kconfig | 1 +
net/nfc/netlink.c | 12 +++---
net/nfc/nfc.h | 6 +--
net/sched/sch_atm.c | 1 +
net/sched/sch_htb.c | 2 +-
net/socket.c | 2 +-
net/tipc/server.c | 15 +++++--
net/wireless/reg.c | 5 ++-
92 files changed, 995 insertions(+), 678 deletions(-)
^ permalink raw reply
* Re: [net] net_sched: make dev_trans_start return vlan's real dev trans_start
From: David Miller @ 2013-08-03 19:37 UTC (permalink / raw)
To: vfalico; +Cc: nikolay, netdev, fubar, jhs
In-Reply-To: <20130803190918.GA11976@redhat.com>
From: Veaceslav Falico <vfalico@redhat.com>
Date: Sat, 3 Aug 2013 21:09:18 +0200
> I haven't found any usage for it, tbh. Only the vlan code itself
> might benefit from it, but it already uses the
> vlan_dev_priv(dev)->real_dev, and not the vlan_dev_real_dev(), which
> is used by drivers.
Agreed.
^ permalink raw reply
* Re: [net] net_sched: make dev_trans_start return vlan's real dev trans_start
From: David Miller @ 2013-08-03 19:37 UTC (permalink / raw)
To: nikolay; +Cc: vfalico, netdev, fubar, jhs
In-Reply-To: <51FD5B78.6000208@redhat.com>
From: Nikolay Aleksandrov <nikolay@redhat.com>
Date: Sat, 03 Aug 2013 21:35:20 +0200
> Dave should I queue the patches (vlan change & net_sched's dev_trans_start)
> for net-next or net would be fine ?
I think these are bugs to 'net' is better.
^ permalink raw reply
* Re: [net] net_sched: make dev_trans_start return vlan's real dev trans_start
From: Nikolay Aleksandrov @ 2013-08-03 19:35 UTC (permalink / raw)
To: Veaceslav Falico; +Cc: David Miller, netdev, fubar, jhs
In-Reply-To: <20130803190918.GA11976@redhat.com>
On 08/03/2013 09:09 PM, Veaceslav Falico wrote:
> On Sat, Aug 03, 2013 at 11:52:28AM -0700, David Miller wrote:
>> From: Veaceslav Falico <vfalico@redhat.com>
>> Date: Sat, 3 Aug 2013 19:07:33 +0200
>>
>>> On Sat, Aug 03, 2013 at 05:07:51PM +0200, nikolay@redhat.com wrote:
>>> ...snip...
>>>> + while (is_vlan_dev(dev))
>>>> + dev = vlan_dev_real_dev(dev);
>>>
>>> While at it - I've checked a few users (mainly network drivers) of
>>> vlan_dev_real_dev(dev) and they all rely on that the return device
>>> would be the *real* device, but not another vlan.
>>
>> Did you find any cases that want the device under the VLAN,
>> whether it is a non-vlan device or not?
>
> Not really. All of the cases seem to explicitly call it to get a non-vlan
> device, and not the purely 'underlying' one.
>
> Another point is that they won't work properly with QinQ... cause the
> majority of callers are searching for their own device. Or bonding, as in
> netxen that Nik mentioned. And they will find yet another vlan device.
>
> So either QinQ isn't really that used or I'm missing something...
>
>>
>>> So maybe we should move this while loop to vlan_dev_real_dev()
>>> instead?
>>
>> Perhaps. As per above, we may also need the one-level demux
>> helper too, something like "vlan_dev_slave(dev)".
>
> I haven't found any usage for it, tbh. Only the vlan code itself might
> benefit from it, but it already uses the vlan_dev_priv(dev)->real_dev, and
> not the vlan_dev_real_dev(), which is used by drivers.
I agree with this. I also can't find users of the one-level variant, so I
think it'd be safe to go ahead and do it.
Just one question in case that we all agree -
Dave should I queue the patches (vlan change & net_sched's dev_trans_start)
for net-next or net would be fine ?
Thanks,
Nik
^ permalink raw reply
* Re: [net] net_sched: make dev_trans_start return vlan's real dev trans_start
From: Veaceslav Falico @ 2013-08-03 19:09 UTC (permalink / raw)
To: David Miller; +Cc: nikolay, netdev, fubar, jhs
In-Reply-To: <20130803.115228.1509916868029010372.davem@davemloft.net>
On Sat, Aug 03, 2013 at 11:52:28AM -0700, David Miller wrote:
>From: Veaceslav Falico <vfalico@redhat.com>
>Date: Sat, 3 Aug 2013 19:07:33 +0200
>
>> On Sat, Aug 03, 2013 at 05:07:51PM +0200, nikolay@redhat.com wrote:
>> ...snip...
>>>+ while (is_vlan_dev(dev))
>>>+ dev = vlan_dev_real_dev(dev);
>>
>> While at it - I've checked a few users (mainly network drivers) of
>> vlan_dev_real_dev(dev) and they all rely on that the return device
>> would be the *real* device, but not another vlan.
>
>Did you find any cases that want the device under the VLAN,
>whether it is a non-vlan device or not?
Not really. All of the cases seem to explicitly call it to get a non-vlan
device, and not the purely 'underlying' one.
Another point is that they won't work properly with QinQ... cause the
majority of callers are searching for their own device. Or bonding, as in
netxen that Nik mentioned. And they will find yet another vlan device.
So either QinQ isn't really that used or I'm missing something...
>
>> So maybe we should move this while loop to vlan_dev_real_dev()
>> instead?
>
>Perhaps. As per above, we may also need the one-level demux
>helper too, something like "vlan_dev_slave(dev)".
I haven't found any usage for it, tbh. Only the vlan code itself might
benefit from it, but it already uses the vlan_dev_priv(dev)->real_dev, and
not the vlan_dev_real_dev(), which is used by drivers.
^ 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