2013-05-05 02:42:29

by David Miller

[permalink] [raw]
Subject: [GIT] Networking


1) Several routines do not use netdev_features_t to hold such bitmasks,
fixes from Patrick McHardy and Bj?rn Mork.

2) Update cpsw IRQ software state and the actual HW irq enabling in
the correct order. From Mugunthan V N.

3) When sending tipc packets to multiple bearers, we have to make copies
of the SKB rather than just giving the original SKB directly. Fix
from Gerlando Falauto.

4) Fix race with bridging topology change timer, from Stephen
Hemminger.

5) Fix TCPv6 segmentation handling in GRE and VXLAN, from Pravin B
Shelar.

6) Endian bug in USB pegasus driver, from Dan Carpenter.

7) Fix crashes on MTU reduction in USB asix driver, from Holger
Eitzenberger.

8) Don't allow the kernel to BUG() just because the user puts some
crap in an AF_PACKET mmap() ring descriptor. Fix from Daniel
Borkmann.

9) Don't use variable sized arrays on the stack in xen-netback, from
Wei Liu.

10) Fix stats reporting and an unbalanced napi_disable() in be2net
driver. From Somnath Kotur and Ajit Khaparde.

Please pull, thanks a lot!

The following changes since commit 99c6bcf46d2233d33e441834e958ed0bc22b190a:

Merge tag 'multiplatform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc (2013-05-02 09:38:16 -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 777c2300865cb9b1b1791862ed23da677abfe6dc:

cxgb4: fix error recovery when t4_fw_hello returns a positive value (2013-05-03 16:10:34 -0400)

----------------------------------------------------------------
Ajit Khaparde (4):
be2net: Fix to use version 2 of cq_create for SkyHawk-R devices
be2net: Fix to use 32-bit stats to report rx_drops_no_fragment
be2net: Fix to show tx priority pause counter in ethtool -S
be2net: Fix to receive Multicast Packets when Promiscuous mode is enabled on certain devices

Bj?rn Mork (1):
net: vlan,ethtool: netdev_features_t is more than 32 bit

Dan Carpenter (1):
usbnet: pegasus: endian bug in write_mii_word()

Daniel Borkmann (1):
packet: tpacket_v3: do not trigger bug() on wrong header status

Gerlando Falauto (3):
tipc: cosmetic: clean up comments and break a long line
tipc: tipc_bcbearer_send(): simplify bearer selection
tipc: pskb_copy() buffers when sending on more than one bearer

Kirill Smelkov (1):
sky2: Fix crash on receiving VLAN frames

Mugunthan V N (1):
drivers: net: cpsw: irq not disabled in cpsw isr in particular sequence

Patrick McHardy (1):
net: use netdev_features_t in skb_needs_linearize()

Pravin B Shelar (2):
gre: Fix GREv4 TCPv6 segmentation.
vxlan: Fix TCPv6 segmentation.

Somnath Kotur (3):
be2net: Fix firmware download for Lancer
be2net: avoid napi_disable() when it has not been enabled
be2net: Fix to fail probe if MSI-X enable fails for a VF

Teppo Kotilainen (1):
net: qmi_wwan: Add Telewell TW-LTE 4G

Thadeu Lima de Souza Cascardo (1):
cxgb4: fix error recovery when t4_fw_hello returns a positive value

Wei Liu (3):
xen-netback: remove redundent parameter in netbk_count_requests
xen-netback: avoid allocating variable size array on stack
xen-netback: better names for thresholds

[email protected] (1):
asix: fix BUG in receive path when lowering MTU

stephen hemminger (1):
bridge: fix race with topology change timer

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
drivers/net/ethernet/emulex/benet/be.h | 1 +
drivers/net/ethernet/emulex/benet/be_cmds.c | 35 +++++++++++++++++---------------
drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 1 +
drivers/net/ethernet/emulex/benet/be_main.c | 54 +++++++++++++++++++++++++++++++++++--------------
drivers/net/ethernet/marvell/sky2.c | 2 ++
drivers/net/ethernet/ti/cpsw.c | 2 +-
drivers/net/usb/asix_common.c | 3 +++
drivers/net/usb/pegasus.c | 3 ++-
drivers/net/usb/qmi_wwan.c | 1 +
drivers/net/xen-netback/netback.c | 69 ++++++++++++++++++++++++++++++++++++++++-----------------------
net/8021q/vlan_dev.c | 2 +-
net/bridge/br_stp_timer.c | 2 +-
net/core/dev.c | 2 +-
net/core/ethtool.c | 2 +-
net/ipv4/af_inet.c | 1 +
net/ipv4/gre.c | 4 +++-
net/ipv4/udp.c | 7 ++++++-
net/packet/af_packet.c | 53 +++++++++++++++++++++---------------------------
net/tipc/bcast.c | 40 +++++++++++++++++++++++-------------
21 files changed, 178 insertions(+), 110 deletions(-)


2013-05-05 10:24:17

by Maarten Lankhorst

[permalink] [raw]
Subject: Re: [GIT] Networking

Hey,

Op 05-05-13 04:42, David Miller schreef:
> 1) Several routines do not use netdev_features_t to hold such bitmasks,
> fixes from Patrick McHardy and Bj?rn Mork.
>
> 2) Update cpsw IRQ software state and the actual HW irq enabling in
> the correct order. From Mugunthan V N.
>
> 3) When sending tipc packets to multiple bearers, we have to make copies
> of the SKB rather than just giving the original SKB directly. Fix
> from Gerlando Falauto.
>
> 4) Fix race with bridging topology change timer, from Stephen
> Hemminger.
>
> 5) Fix TCPv6 segmentation handling in GRE and VXLAN, from Pravin B
> Shelar.
>
> 6) Endian bug in USB pegasus driver, from Dan Carpenter.
>
> 7) Fix crashes on MTU reduction in USB asix driver, from Holger
> Eitzenberger.
>
> 8) Don't allow the kernel to BUG() just because the user puts some
> crap in an AF_PACKET mmap() ring descriptor. Fix from Daniel
> Borkmann.
>
> 9) Don't use variable sized arrays on the stack in xen-netback, from
> Wei Liu.
>
> 10) Fix stats reporting and an unbalanced napi_disable() in be2net
> driver. From Somnath Kotur and Ajit Khaparde.
>
I finally decided to try 3.10rc0, but I'm getting a lot of this:

BUG: scheduling while atomic: irq/43-eth1/1465/0x00000102
Modules linked in: adt7475 ebtable_nat ebtables nouveau ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat xt_CHECKSUM iptable_mangle bridge snd_hda_codec_hdmi stp llc ttm drm_kms_helper drm snd_hda_codec_realtek mxm_wmi intel_powerclamp kvm_intel kvm snd_hda_intel snd_hda_codec snd_hwdep e1000e snd_pcm video parport_pc snd_page_alloc ptp ppdev pps_core parport nfsd lockd nfs_acl auth_rpcgss sunrpc oid_registry(P)
CPU: 0 PID: 1465 Comm: irq/43-eth1 Tainted: P W 3.10.0-rc0-patser+ #70
Hardware name: Acer Aspire M3985/Aspire M3985, BIOS P01-A1 03/12/2012
0000000000000000 ffff88041dc03cc8 ffffffff8165ea16 ffff88041dc03cd8
ffffffff8165a84a ffff88041dc03d58 ffffffff8166200d 000000000000c350
000000000000c350 ffff8803f827a180 ffff8803f8275fd8 ffff8803f8275fd8
Call Trace:
<IRQ> [<ffffffff8165ea16>] dump_stack+0x19/0x1b
[<ffffffff8165a84a>] __schedule_bug+0x48/0x56
[<ffffffff8166200d>] __schedule+0x7fa/0x832
[<ffffffff81662154>] schedule+0x29/0x59
[<ffffffff81660aa0>] schedule_hrtimeout_range_clock+0xeb/0x129
[<ffffffff81078c5f>] ? update_rmtp+0x65/0x65
[<ffffffff81660af1>] schedule_hrtimeout_range+0x13/0x15
[<ffffffff8106140a>] usleep_range+0x40/0x42
[<ffffffffa012a39a>] e1000_irq_enable+0x18b/0x202 [e1000e]
[<ffffffffa012e022>] e1000e_poll+0x1d1/0x2e2 [e1000e]
[<ffffffff81535e1b>] net_rx_action+0xaa/0x1f3
[<ffffffff8105b055>] __do_softirq+0xcc/0x2a9
[<ffffffff810d49e1>] ? irq_thread_fn+0x48/0x48
[<ffffffff8166b3cc>] call_softirq+0x1c/0x30
<EOI> [<ffffffff810042d3>] do_softirq+0x4d/0x8a
[<ffffffff8105ad57>] local_bh_enable+0xa0/0xa2
[<ffffffff810d4a2a>] irq_forced_thread_fn+0x49/0x5a
[<ffffffff810d467d>] irq_thread+0x122/0x145
[<ffffffff810d48e9>] ? irq_finalize_oneshot.part.33+0xe7/0xe7
[<ffffffff810d455b>] ? wake_threads_waitq+0x44/0x44
[<ffffffff81075fe5>] kthread+0xc0/0xc5
[<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c
[<ffffffff8166a16c>] ret_from_fork+0x7c/0xb0
[<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c

BUG: scheduling while atomic: Socket Thread/3163/0x00000402

etc, from various places..

I was using CONFIG_RCU_NOCB_CPU_ALL=y and threadirqs, I'm not sure if it's related or not..
Looking at e1000e there has been a few commits to change everything to usleep_range, maybe
it was a bit too much?

~Maarten

2013-05-06 16:46:52

by Allan, Bruce W

[permalink] [raw]
Subject: RE: [GIT] Networking

> -----Original Message-----
> From: Maarten Lankhorst [mailto:[email protected]]
> Sent: Sunday, May 05, 2013 3:24 AM
> To: David Miller; Allan, Bruce W
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: [GIT] Networking
>
> Hey,
>
[snip]
> I finally decided to try 3.10rc0, but I'm getting a lot of this:
>
> BUG: scheduling while atomic: irq/43-eth1/1465/0x00000102
> Modules linked in: adt7475 ebtable_nat ebtables nouveau
> ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat xt_CHECKSUM
> iptable_mangle bridge snd_hda_codec_hdmi stp llc ttm drm_kms_helper
> drm snd_hda_codec_realtek mxm_wmi intel_powerclamp kvm_intel kvm
> snd_hda_intel snd_hda_codec snd_hwdep e1000e snd_pcm video
> parport_pc snd_page_alloc ptp ppdev pps_core parport nfsd lockd nfs_acl
> auth_rpcgss sunrpc oid_registry(P)
> CPU: 0 PID: 1465 Comm: irq/43-eth1 Tainted: P W 3.10.0-rc0-patser+
> #70
> Hardware name: Acer Aspire M3985/Aspire M3985, BIOS P01-A1 03/12/2012
> 0000000000000000 ffff88041dc03cc8 ffffffff8165ea16 ffff88041dc03cd8
> ffffffff8165a84a ffff88041dc03d58 ffffffff8166200d 000000000000c350
> 000000000000c350 ffff8803f827a180 ffff8803f8275fd8 ffff8803f8275fd8
> Call Trace:
> <IRQ> [<ffffffff8165ea16>] dump_stack+0x19/0x1b
> [<ffffffff8165a84a>] __schedule_bug+0x48/0x56
> [<ffffffff8166200d>] __schedule+0x7fa/0x832
> [<ffffffff81662154>] schedule+0x29/0x59
> [<ffffffff81660aa0>] schedule_hrtimeout_range_clock+0xeb/0x129
> [<ffffffff81078c5f>] ? update_rmtp+0x65/0x65
> [<ffffffff81660af1>] schedule_hrtimeout_range+0x13/0x15
> [<ffffffff8106140a>] usleep_range+0x40/0x42
> [<ffffffffa012a39a>] e1000_irq_enable+0x18b/0x202 [e1000e]
> [<ffffffffa012e022>] e1000e_poll+0x1d1/0x2e2 [e1000e]
> [<ffffffff81535e1b>] net_rx_action+0xaa/0x1f3
> [<ffffffff8105b055>] __do_softirq+0xcc/0x2a9
> [<ffffffff810d49e1>] ? irq_thread_fn+0x48/0x48
> [<ffffffff8166b3cc>] call_softirq+0x1c/0x30
> <EOI> [<ffffffff810042d3>] do_softirq+0x4d/0x8a
> [<ffffffff8105ad57>] local_bh_enable+0xa0/0xa2
> [<ffffffff810d4a2a>] irq_forced_thread_fn+0x49/0x5a
> [<ffffffff810d467d>] irq_thread+0x122/0x145
> [<ffffffff810d48e9>] ? irq_finalize_oneshot.part.33+0xe7/0xe7
> [<ffffffff810d455b>] ? wake_threads_waitq+0x44/0x44
> [<ffffffff81075fe5>] kthread+0xc0/0xc5
> [<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c
> [<ffffffff8166a16c>] ret_from_fork+0x7c/0xb0
> [<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c
>
> BUG: scheduling while atomic: Socket Thread/3163/0x00000402
>
> etc, from various places..
>
> I was using CONFIG_RCU_NOCB_CPU_ALL=y and threadirqs, I'm not sure if
> it's related or not..
> Looking at e1000e there has been a few commits to change everything to
> usleep_range, maybe
> it was a bit too much?
>
> ~Maarten

Yup, my bad (commit ce43a216 e1000e: cleanup USLEEP_RANGE checkpatch checks).
I'll send along a patch to fix this shortly.

Bruce.