]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
10 years agoMerge remote-tracking branch 'wireless-next/master'
Stephen Rothwell [Wed, 8 Jan 2014 01:19:02 +0000 (12:19 +1100)]
Merge remote-tracking branch 'wireless-next/master'

10 years agoMerge remote-tracking branch 'ipsec-next/master'
Stephen Rothwell [Wed, 8 Jan 2014 01:17:40 +0000 (12:17 +1100)]
Merge remote-tracking branch 'ipsec-next/master'

10 years agoMerge remote-tracking branch 'net-next/master'
Stephen Rothwell [Wed, 8 Jan 2014 01:07:12 +0000 (12:07 +1100)]
Merge remote-tracking branch 'net-next/master'

10 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Wed, 8 Jan 2014 01:02:07 +0000 (12:02 +1100)]
Merge remote-tracking branch 'slave-dma/next'

Conflicts:
arch/arm/boot/dts/imx51.dtsi
arch/arm/boot/dts/imx53.dtsi

10 years agoMerge remote-tracking branch 'swiotlb/linux-next'
Stephen Rothwell [Wed, 8 Jan 2014 01:00:56 +0000 (12:00 +1100)]
Merge remote-tracking branch 'swiotlb/linux-next'

10 years agoMerge remote-tracking branch 'dlm/next'
Stephen Rothwell [Wed, 8 Jan 2014 01:00:08 +0000 (12:00 +1100)]
Merge remote-tracking branch 'dlm/next'

10 years agoMerge remote-tracking branch 'thermal/next'
Stephen Rothwell [Wed, 8 Jan 2014 00:58:56 +0000 (11:58 +1100)]
Merge remote-tracking branch 'thermal/next'

Conflicts:
drivers/cpufreq/Kconfig

10 years agoMerge remote-tracking branch 'apm/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:50:39 +0000 (11:50 +1100)]
Merge remote-tracking branch 'apm/for-next'

10 years agoMerge remote-tracking branch 'idle/next'
Stephen Rothwell [Wed, 8 Jan 2014 00:49:50 +0000 (11:49 +1100)]
Merge remote-tracking branch 'idle/next'

10 years agoMerge remote-tracking branch 'pm/linux-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:39:45 +0000 (11:39 +1100)]
Merge remote-tracking branch 'pm/linux-next'

10 years agoMerge remote-tracking branch 'libata/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:38:44 +0000 (11:38 +1100)]
Merge remote-tracking branch 'libata/for-next'

10 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:37:53 +0000 (11:37 +1100)]
Merge remote-tracking branch 'kbuild/for-next'

10 years agoMerge remote-tracking branch 'v4l-dvb/master'
Stephen Rothwell [Wed, 8 Jan 2014 00:36:26 +0000 (11:36 +1100)]
Merge remote-tracking branch 'v4l-dvb/master'

10 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:35:36 +0000 (11:35 +1100)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

10 years agoMerge branch 'jdelvare-hwmon/master'
Stephen Rothwell [Wed, 8 Jan 2014 00:34:47 +0000 (11:34 +1100)]
Merge branch 'jdelvare-hwmon/master'

10 years agoMerge remote-tracking branch 'i2c/i2c/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:33:59 +0000 (11:33 +1100)]
Merge remote-tracking branch 'i2c/i2c/for-next'

10 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:32:57 +0000 (11:32 +1100)]
Merge remote-tracking branch 'hid/for-next'

10 years agoMerge remote-tracking branch 'pci/next'
Stephen Rothwell [Wed, 8 Jan 2014 00:24:03 +0000 (11:24 +1100)]
Merge remote-tracking branch 'pci/next'

10 years agoMerge remote-tracking branch 'xfs/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:22:40 +0000 (11:22 +1100)]
Merge remote-tracking branch 'xfs/for-next'

10 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:21:50 +0000 (11:21 +1100)]
Merge remote-tracking branch 'v9fs/for-next'

10 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:20:39 +0000 (11:20 +1100)]
Merge remote-tracking branch 'nfsd/nfsd-next'

10 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:19:15 +0000 (11:19 +1100)]
Merge remote-tracking branch 'nfs/linux-next'

10 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Wed, 8 Jan 2014 00:17:56 +0000 (11:17 +1100)]
Merge remote-tracking branch 'logfs/master'

10 years agoMerge remote-tracking branch 'jfs/jfs-next'
Stephen Rothwell [Wed, 8 Jan 2014 00:17:07 +0000 (11:17 +1100)]
Merge remote-tracking branch 'jfs/jfs-next'

10 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Wed, 8 Jan 2014 00:16:18 +0000 (11:16 +1100)]
Merge remote-tracking branch 'gfs2/master'

10 years agoMerge remote-tracking branch 'fscache/fscache'
Stephen Rothwell [Wed, 8 Jan 2014 00:15:27 +0000 (11:15 +1100)]
Merge remote-tracking branch 'fscache/fscache'

10 years agoMerge remote-tracking branch 'f2fs/dev'
Stephen Rothwell [Wed, 8 Jan 2014 00:14:38 +0000 (11:14 +1100)]
Merge remote-tracking branch 'f2fs/dev'

10 years agoMerge remote-tracking branch 'ext4/dev'
Stephen Rothwell [Wed, 8 Jan 2014 00:13:38 +0000 (11:13 +1100)]
Merge remote-tracking branch 'ext4/dev'

10 years agoMerge remote-tracking branch 'ext3/for_next'
Stephen Rothwell [Wed, 8 Jan 2014 00:12:43 +0000 (11:12 +1100)]
Merge remote-tracking branch 'ext3/for_next'

10 years agoMerge remote-tracking branch 'ecryptfs/next'
Stephen Rothwell [Wed, 8 Jan 2014 00:11:54 +0000 (11:11 +1100)]
Merge remote-tracking branch 'ecryptfs/next'

10 years agoMerge remote-tracking branch 'ceph/master'
Stephen Rothwell [Wed, 8 Jan 2014 00:11:02 +0000 (11:11 +1100)]
Merge remote-tracking branch 'ceph/master'

10 years agoMerge remote-tracking branch 'xtensa/for_next'
Stephen Rothwell [Wed, 8 Jan 2014 00:10:11 +0000 (11:10 +1100)]
Merge remote-tracking branch 'xtensa/for_next'

10 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Wed, 8 Jan 2014 00:08:54 +0000 (11:08 +1100)]
Merge remote-tracking branch 's390/features'

10 years agoMerge remote-tracking branch 'mpc5xxx/next'
Stephen Rothwell [Wed, 8 Jan 2014 00:07:38 +0000 (11:07 +1100)]
Merge remote-tracking branch 'mpc5xxx/next'

Conflicts:
arch/powerpc/boot/dts/mpc5125twr.dts

10 years agoMerge remote-tracking branch 'powerpc/next'
Stephen Rothwell [Tue, 7 Jan 2014 23:58:55 +0000 (10:58 +1100)]
Merge remote-tracking branch 'powerpc/next'

10 years agoMerge remote-tracking branch 'parisc-hd/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:58:07 +0000 (10:58 +1100)]
Merge remote-tracking branch 'parisc-hd/for-next'

10 years agoMerge remote-tracking branch 'openrisc/for-upstream'
Stephen Rothwell [Tue, 7 Jan 2014 23:57:17 +0000 (10:57 +1100)]
Merge remote-tracking branch 'openrisc/for-upstream'

10 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:56:28 +0000 (10:56 +1100)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

10 years agoMerge remote-tracking branch 'microblaze/next'
Stephen Rothwell [Tue, 7 Jan 2014 23:55:40 +0000 (10:55 +1100)]
Merge remote-tracking branch 'microblaze/next'

10 years agoMerge remote-tracking branch 'metag/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:54:51 +0000 (10:54 +1100)]
Merge remote-tracking branch 'metag/for-next'

10 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:54:03 +0000 (10:54 +1100)]
Merge remote-tracking branch 'm68knommu/for-next'

10 years agoMerge remote-tracking branch 'm68k/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:52:47 +0000 (10:52 +1100)]
Merge remote-tracking branch 'm68k/for-next'

10 years agoMerge remote-tracking branch 'ia64/next'
Stephen Rothwell [Tue, 7 Jan 2014 23:51:44 +0000 (10:51 +1100)]
Merge remote-tracking branch 'ia64/next'

10 years agoMerge remote-tracking branch 'c6x/for-linux-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:50:53 +0000 (10:50 +1100)]
Merge remote-tracking branch 'c6x/for-linux-next'

10 years agoMerge remote-tracking branch 'arm64/for-next/core'
Stephen Rothwell [Tue, 7 Jan 2014 23:41:59 +0000 (10:41 +1100)]
Merge remote-tracking branch 'arm64/for-next/core'

10 years agoMerge remote-tracking branch 'tegra/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:41:51 +0000 (10:41 +1100)]
Merge remote-tracking branch 'tegra/for-next'

10 years agoMerge remote-tracking branch 'samsung/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:41:44 +0000 (10:41 +1100)]
Merge remote-tracking branch 'samsung/for-next'

10 years agoMerge remote-tracking branch 'renesas/next'
Stephen Rothwell [Tue, 7 Jan 2014 23:40:48 +0000 (10:40 +1100)]
Merge remote-tracking branch 'renesas/next'

10 years agoMerge remote-tracking branch 'mvebu/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:39:51 +0000 (10:39 +1100)]
Merge remote-tracking branch 'mvebu/for-next'

10 years agoMerge remote-tracking branch 'imx-mxs/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:38:52 +0000 (10:38 +1100)]
Merge remote-tracking branch 'imx-mxs/for-next'

10 years agoMerge remote-tracking branch 'ep93xx/ep93xx-for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:38:49 +0000 (10:38 +1100)]
Merge remote-tracking branch 'ep93xx/ep93xx-for-next'

10 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:33:24 +0000 (10:33 +1100)]
Merge remote-tracking branch 'arm-soc/for-next'

Conflicts:
arch/arm/Kconfig.debug

10 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:32:06 +0000 (10:32 +1100)]
Merge remote-tracking branch 'arm/for-next'

10 years agoMerge remote-tracking branch 'arc/for-next'
Stephen Rothwell [Tue, 7 Jan 2014 23:31:20 +0000 (10:31 +1100)]
Merge remote-tracking branch 'arc/for-next'

10 years agoMerge remote-tracking branch 'drm-intel-fixes/for-linux-next-fixes'
Stephen Rothwell [Tue, 7 Jan 2014 23:30:30 +0000 (10:30 +1100)]
Merge remote-tracking branch 'drm-intel-fixes/for-linux-next-fixes'

10 years agoMerge remote-tracking branch 'mfd-fixes/master'
Stephen Rothwell [Tue, 7 Jan 2014 23:30:29 +0000 (10:30 +1100)]
Merge remote-tracking branch 'mfd-fixes/master'

10 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Tue, 7 Jan 2014 23:30:24 +0000 (10:30 +1100)]
Merge remote-tracking branch 'input-current/for-linus'

10 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Tue, 7 Jan 2014 23:30:23 +0000 (10:30 +1100)]
Merge remote-tracking branch 'wireless/master'

10 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Tue, 7 Jan 2014 23:30:22 +0000 (10:30 +1100)]
Merge remote-tracking branch 'sound-current/for-linus'

10 years agonet: Do not enable tx-nocache-copy by default
Benjamin Poirier [Tue, 7 Jan 2014 15:11:10 +0000 (10:11 -0500)]
net: Do not enable tx-nocache-copy by default

There are many cases where this feature does not improve performance or even
reduces it.

For example, here are the results from tests that I've run using 3.12.6 on one
Intel Xeon W3565 and one i7 920 connected by ixgbe adapters. The results are
from the Xeon, but they're similar on the i7. All numbers report the
mean±stddev over 10 runs of 10s.

1) latency tests similar to what is described in "c6e1a0d net: Allow no-cache
copy from user on transmit"
There is no statistically significant difference between tx-nocache-copy
on/off.
nic irqs spread out (one queue per cpu)

200x netperf -r 1400,1
tx-nocache-copy off
        692000±1000 tps
        50/90/95/99% latency (us): 275±2/643.8±0.4/799±1/2474.4±0.3
tx-nocache-copy on
        693000±1000 tps
        50/90/95/99% latency (us): 274±1/644.1±0.7/800±2/2474.5±0.7

200x netperf -r 14000,14000
tx-nocache-copy off
        86450±80 tps
        50/90/95/99% latency (us): 334.37±0.02/838±1/2100±20/3990±40
tx-nocache-copy on
        86110±60 tps
        50/90/95/99% latency (us): 334.28±0.01/837±2/2110±20/3990±20

2) single stream throughput tests
tx-nocache-copy leads to higher service demand

                        throughput  cpu0        cpu1        demand
                        (Gb/s)      (Gcycle)    (Gcycle)    (cycle/B)

nic irqs and netperf on cpu0 (1x netperf -T0,0 -t omni -- -d send)

tx-nocache-copy off     9402±5      9.4±0.2                 0.80±0.01
tx-nocache-copy on      9403±3      9.85±0.04               0.838±0.004

nic irqs on cpu0, netperf on cpu1 (1x netperf -T1,1 -t omni -- -d send)

tx-nocache-copy off     9401±5      5.83±0.03   5.0±0.1     0.923±0.007
tx-nocache-copy on      9404±2      5.74±0.03   5.523±0.009 0.958±0.002

As a second example, here are some results from Eric Dumazet with latest
net-next.
tx-nocache-copy also leads to higher service demand

(cpu is Intel(R) Xeon(R) CPU X5660  @ 2.80GHz)

lpq83:~# ./ethtool -K eth0 tx-nocache-copy on
lpq83:~# perf stat ./netperf -H lpq84 -c
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to lpq84.prod.google.com () port 0 AF_INET
Recv   Send    Send                          Utilization       Service Demand
Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
Size   Size    Size     Time     Throughput  local    remote   local   remote
bytes  bytes   bytes    secs.    10^6bits/s  % S      % U      us/KB   us/KB

 87380  16384  16384    10.00      9407.44   2.50     -1.00    0.522   -1.000

 Performance counter stats for './netperf -H lpq84 -c':

       4282.648396 task-clock                #    0.423 CPUs utilized
             9,348 context-switches          #    0.002 M/sec
                88 CPU-migrations            #    0.021 K/sec
               355 page-faults               #    0.083 K/sec
    11,812,797,651 cycles                    #    2.758 GHz                     [82.79%]
     9,020,522,817 stalled-cycles-frontend   #   76.36% frontend cycles idle    [82.54%]
     4,579,889,681 stalled-cycles-backend    #   38.77% backend  cycles idle    [67.33%]
     6,053,172,792 instructions              #    0.51  insns per cycle
                                             #    1.49  stalled cycles per insn [83.64%]
       597,275,583 branches                  #  139.464 M/sec                   [83.70%]
         8,960,541 branch-misses             #    1.50% of all branches         [83.65%]

      10.128990264 seconds time elapsed

lpq83:~# ./ethtool -K eth0 tx-nocache-copy off
lpq83:~# perf stat ./netperf -H lpq84 -c
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to lpq84.prod.google.com () port 0 AF_INET
Recv   Send    Send                          Utilization       Service Demand
Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
Size   Size    Size     Time     Throughput  local    remote   local   remote
bytes  bytes   bytes    secs.    10^6bits/s  % S      % U      us/KB   us/KB

 87380  16384  16384    10.00      9412.45   2.15     -1.00    0.449   -1.000

 Performance counter stats for './netperf -H lpq84 -c':

       2847.375441 task-clock                #    0.281 CPUs utilized
            11,632 context-switches          #    0.004 M/sec
                49 CPU-migrations            #    0.017 K/sec
               354 page-faults               #    0.124 K/sec
     7,646,889,749 cycles                    #    2.686 GHz                     [83.34%]
     6,115,050,032 stalled-cycles-frontend   #   79.97% frontend cycles idle    [83.31%]
     1,726,460,071 stalled-cycles-backend    #   22.58% backend  cycles idle    [66.55%]
     2,079,702,453 instructions              #    0.27  insns per cycle
                                             #    2.94  stalled cycles per insn [83.22%]
       363,773,213 branches                  #  127.757 M/sec                   [83.29%]
         4,242,732 branch-misses             #    1.17% of all branches         [83.51%]

      10.128449949 seconds time elapsed

CC: Tom Herbert <therbert@google.com>
Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agotipc: correctly unlink packets from deferred packet queue
Erik Hugne [Tue, 7 Jan 2014 20:51:36 +0000 (15:51 -0500)]
tipc: correctly unlink packets from deferred packet queue

When we pull a received packet from a link's 'deferred packets' queue
for processing, its 'next' pointer is not cleared, and still refers to
the next packet in that queue, if any. This is incorrect, but caused
no harm before commit 40ba3cdf542a469aaa9083fa041656e59b109b90 ("tipc:
message reassembly using fragment chain") was introduced. After that
commit, it may sometimes lead to the following oops:

general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
Modules linked in: tipc
CPU: 4 PID: 0 Comm: swapper/4 Tainted: G        W 3.13.0-rc2+ #6
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
task: ffff880017af4880 ti: ffff880017aee000 task.ti: ffff880017aee000
RIP: 0010:[<ffffffff81710694>]  [<ffffffff81710694>] skb_try_coalesce+0x44/0x3d0
RSP: 0018:ffff880016603a78  EFLAGS: 00010212
RAX: 6b6b6b6bd6d6d6d6 RBX: ffff880013106ac0 RCX: ffff880016603ad0
RDX: ffff880016603ad7 RSI: ffff88001223ed00 RDI: ffff880013106ac0
RBP: ffff880016603ab8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffff88001223ed00
R13: ffff880016603ad0 R14: 000000000000058c R15: ffff880012297650
FS:  0000000000000000(0000) GS:ffff880016600000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 000000000805b000 CR3: 0000000011f5d000 CR4: 00000000000006e0
Stack:
 ffff880016603a88 ffffffff810a38ed ffff880016603aa8 ffff88001223ed00
 0000000000000001 ffff880012297648 ffff880016603b68 ffff880012297650
 ffff880016603b08 ffffffffa0006c51 ffff880016603b08 00ffffffa00005fc
Call Trace:
 <IRQ>
 [<ffffffff810a38ed>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffffa0006c51>] tipc_link_recv_fragment+0xd1/0x1b0 [tipc]
 [<ffffffffa0007214>] tipc_recv_msg+0x4e4/0x920 [tipc]
 [<ffffffffa00016f0>] ? tipc_l2_rcv_msg+0x40/0x250 [tipc]
 [<ffffffffa000177c>] tipc_l2_rcv_msg+0xcc/0x250 [tipc]
 [<ffffffffa00016f0>] ? tipc_l2_rcv_msg+0x40/0x250 [tipc]
 [<ffffffff8171e65b>] __netif_receive_skb_core+0x80b/0xd00
 [<ffffffff8171df94>] ? __netif_receive_skb_core+0x144/0xd00
 [<ffffffff8171eb76>] __netif_receive_skb+0x26/0x70
 [<ffffffff8171ed6d>] netif_receive_skb+0x2d/0x200
 [<ffffffff8171fe70>] napi_gro_receive+0xb0/0x130
 [<ffffffff815647c2>] e1000_clean_rx_irq+0x2c2/0x530
 [<ffffffff81565986>] e1000_clean+0x266/0x9c0
 [<ffffffff81985f7b>] ? notifier_call_chain+0x2b/0x160
 [<ffffffff8171f971>] net_rx_action+0x141/0x310
 [<ffffffff81051c1b>] __do_softirq+0xeb/0x480
 [<ffffffff819817bb>] ? _raw_spin_unlock+0x2b/0x40
 [<ffffffff810b8c42>] ? handle_fasteoi_irq+0x72/0x100
 [<ffffffff81052346>] irq_exit+0x96/0xc0
 [<ffffffff8198cbc3>] do_IRQ+0x63/0xe0
 [<ffffffff81981def>] common_interrupt+0x6f/0x6f
 <EOI>

This happens when the last fragment of a message has passed through the
the receiving link's 'deferred packets' queue, and at least one other
packet was added to that queue while it was there. After the fragment
chain with the complete message has been successfully delivered to the
receiving socket, it is released. Since 'next' pointer of the last
fragment in the released chain now is non-NULL, we get the crash shown
above.

We fix this by clearing the 'next' pointer of all received packets,
including those being pulled from the 'deferred' queue, before they
undergo any further processing.

Fixes: 40ba3cdf542a4 ("tipc: message reassembly using fragment chain")
Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Reported-by: Ying Xue <ying.xue@windriver.com>
Reviewed-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: loopback device: ignore value changes after device is upped
Jiri Pirko [Tue, 7 Jan 2014 14:55:45 +0000 (15:55 +0100)]
ipv4: loopback device: ignore value changes after device is upped

When lo is brought up, new ifa is created. Then, devconf and neigh values
bitfield should be set so later changes of default values would not
affect lo values.

Note that the same behaviour is in ipv6. Also note that this is likely
not an issue in many distros (for example Fedora 19) because userspace
sets address to lo manually before bringing it up.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoIPv6: add the option to use anycast addresses as source addresses in echo reply
FX Le Bail [Tue, 7 Jan 2014 13:57:27 +0000 (14:57 +0100)]
IPv6: add the option to use anycast addresses as source addresses in echo reply

This change allows to follow a recommandation of RFC4942.

- Add "anycast_src_echo_reply" sysctl to control the use of anycast addresses
  as source addresses for ICMPv6 echo reply. This sysctl is false by default
  to preserve existing behavior.
- Add inline check ipv6_anycast_destination().
- Use them in icmpv6_echo_reply().

Reference:
RFC4942 - IPv6 Transition/Coexistence Security Considerations
   (http://tools.ietf.org/html/rfc4942#section-2.1.6)

2.1.6. Anycast Traffic Identification and Security

   [...]
   To avoid exposing knowledge about the internal structure of the
   network, it is recommended that anycast servers now take advantage of
   the ability to return responses with the anycast address as the
   source address if possible.

Signed-off-by: Francois-Xavier Le Bail <fx.lebail@yahoo.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet/mlx4_en: fix error return code in mlx4_en_get_qp()
Wei Yongjun [Tue, 7 Jan 2014 08:56:07 +0000 (16:56 +0800)]
net/mlx4_en: fix error return code in mlx4_en_get_qp()

Fix to return a negative error code from the error handling
case instead of 0.

Fixes: 837052d0ccc5 ('net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling')
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv6: pcpu_tstats.syncp should be initialised in ip6_vti.c
Li RongQing [Tue, 7 Jan 2014 07:39:43 +0000 (15:39 +0800)]
ipv6: pcpu_tstats.syncp should be initialised in ip6_vti.c

initialise pcpu_tstats.syncp to kill the calltrace
[   11.973950] Call Trace:
[   11.973950]  [<819bbaff>] dump_stack+0x48/0x60
[   11.973950]  [<819bbaff>] dump_stack+0x48/0x60
[   11.973950]  [<81078dcf>] __lock_acquire.isra.22+0x1bf/0xc10
[   11.973950]  [<81078dcf>] __lock_acquire.isra.22+0x1bf/0xc10
[   11.973950]  [<81079fa7>] lock_acquire+0x77/0xa0
[   11.973950]  [<81079fa7>] lock_acquire+0x77/0xa0
[   11.973950]  [<817ca7ab>] ? dev_get_stats+0xcb/0x130
[   11.973950]  [<817ca7ab>] ? dev_get_stats+0xcb/0x130
[   11.973950]  [<8183862d>] ip_tunnel_get_stats64+0x6d/0x230
[   11.973950]  [<8183862d>] ip_tunnel_get_stats64+0x6d/0x230
[   11.973950]  [<817ca7ab>] ? dev_get_stats+0xcb/0x130
[   11.973950]  [<817ca7ab>] ? dev_get_stats+0xcb/0x130
[   11.973950]  [<811cf8c1>] ? __nla_reserve+0x21/0xd0
[   11.973950]  [<811cf8c1>] ? __nla_reserve+0x21/0xd0
[   11.973950]  [<817ca7ab>] dev_get_stats+0xcb/0x130
[   11.973950]  [<817ca7ab>] dev_get_stats+0xcb/0x130
[   11.973950]  [<817d5409>] rtnl_fill_ifinfo+0x569/0xe20
[   11.973950]  [<817d5409>] rtnl_fill_ifinfo+0x569/0xe20
[   11.973950]  [<810352e0>] ? kvm_clock_read+0x20/0x30
[   11.973950]  [<810352e0>] ? kvm_clock_read+0x20/0x30
[   11.973950]  [<81008e38>] ? sched_clock+0x8/0x10
[   11.973950]  [<81008e38>] ? sched_clock+0x8/0x10
[   11.973950]  [<8106ba45>] ? sched_clock_local+0x25/0x170
[   11.973950]  [<8106ba45>] ? sched_clock_local+0x25/0x170
[   11.973950]  [<810da6bd>] ? __kmalloc+0x3d/0x90
[   11.973950]  [<810da6bd>] ? __kmalloc+0x3d/0x90
[   11.973950]  [<817b8c10>] ? __kmalloc_reserve.isra.41+0x20/0x70
[   11.973950]  [<817b8c10>] ? __kmalloc_reserve.isra.41+0x20/0x70
[   11.973950]  [<810da81a>] ? slob_alloc_node+0x2a/0x60
[   11.973950]  [<810da81a>] ? slob_alloc_node+0x2a/0x60
[   11.973950]  [<817b919a>] ? __alloc_skb+0x6a/0x2b0
[   11.973950]  [<817b919a>] ? __alloc_skb+0x6a/0x2b0
[   11.973950]  [<817d8795>] rtmsg_ifinfo+0x65/0xe0
[   11.973950]  [<817d8795>] rtmsg_ifinfo+0x65/0xe0
[   11.973950]  [<817cbd31>] register_netdevice+0x531/0x5a0
[   11.973950]  [<817cbd31>] register_netdevice+0x531/0x5a0
[   11.973950]  [<81892b87>] ? ip6_tnl_get_cap+0x27/0x90
[   11.973950]  [<81892b87>] ? ip6_tnl_get_cap+0x27/0x90
[   11.973950]  [<817cbdb6>] register_netdev+0x16/0x30
[   11.973950]  [<817cbdb6>] register_netdev+0x16/0x30
[   11.973950]  [<81f574a6>] vti6_init_net+0x1c4/0x1d4
[   11.973950]  [<81f574a6>] vti6_init_net+0x1c4/0x1d4
[   11.973950]  [<81f573af>] ? vti6_init_net+0xcd/0x1d4
[   11.973950]  [<81f573af>] ? vti6_init_net+0xcd/0x1d4
[   11.973950]  [<817c16df>] ops_init.constprop.11+0x17f/0x1c0
[   11.973950]  [<817c16df>] ops_init.constprop.11+0x17f/0x1c0
[   11.973950]  [<817c1779>] register_pernet_operations.isra.9+0x59/0x90
[   11.973950]  [<817c1779>] register_pernet_operations.isra.9+0x59/0x90
[   11.973950]  [<817c18d1>] register_pernet_device+0x21/0x60
[   11.973950]  [<817c18d1>] register_pernet_device+0x21/0x60
[   11.973950]  [<81f574b6>] ? vti6_init_net+0x1d4/0x1d4
[   11.973950]  [<81f574b6>] ? vti6_init_net+0x1d4/0x1d4
[   11.973950]  [<81f574c7>] vti6_tunnel_init+0x11/0x68
[   11.973950]  [<81f574c7>] vti6_tunnel_init+0x11/0x68
[   11.973950]  [<81f572a1>] ? mip6_init+0x73/0xb4
[   11.973950]  [<81f572a1>] ? mip6_init+0x73/0xb4
[   11.973950]  [<81f0cba4>] do_one_initcall+0xbb/0x15b
[   11.973950]  [<81f0cba4>] do_one_initcall+0xbb/0x15b
[   11.973950]  [<811a00d8>] ? sha_transform+0x528/0x1150
[   11.973950]  [<811a00d8>] ? sha_transform+0x528/0x1150
[   11.973950]  [<81f0c544>] ? repair_env_string+0x12/0x51
[   11.973950]  [<81f0c544>] ? repair_env_string+0x12/0x51
[   11.973950]  [<8105c30d>] ? parse_args+0x2ad/0x440
[   11.973950]  [<8105c30d>] ? parse_args+0x2ad/0x440
[   11.973950]  [<810546be>] ? __usermodehelper_set_disable_depth+0x3e/0x50
[   11.973950]  [<810546be>] ? __usermodehelper_set_disable_depth+0x3e/0x50
[   11.973950]  [<81f0cd27>] kernel_init_freeable+0xe3/0x182
[   11.973950]  [<81f0cd27>] kernel_init_freeable+0xe3/0x182
[   11.973950]  [<81f0c532>] ? do_early_param+0x7a/0x7a
[   11.973950]  [<81f0c532>] ? do_early_param+0x7a/0x7a
[   11.973950]  [<819b5b1b>] kernel_init+0xb/0x100
[   11.973950]  [<819b5b1b>] kernel_init+0xb/0x100
[   11.973950]  [<819cebf7>] ret_from_kernel_thread+0x1b/0x28
[   11.973950]  [<819cebf7>] ret_from_kernel_thread+0x1b/0x28
[   11.973950]  [<819b5b10>] ? rest_init+0xc0/0xc0
[   11.973950]  [<819b5b10>] ? rest_init+0xc0/0xc0

Before 469bdcefdc ("ipv6: fix the use of pcpu_tstats in ip6_vti.c"),
the pcpu_tstats.syncp is not used to pretect the 64bit elements of
pcpu_tstats, so not appear this calltrace.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'for-linus' into next
Vinod Koul [Tue, 7 Jan 2014 16:17:41 +0000 (21:47 +0530)]
Merge branch 'for-linus' into next

10 years agodmaengine: Add support for BCM2835
Florian Meier [Mon, 6 Jan 2014 19:18:24 +0000 (20:18 +0100)]
dmaengine: Add support for BCM2835

Add support for DMA controller of BCM2835 as used in the Raspberry Pi.
Currently it only supports cyclic DMA.

Signed-off-by: Florian Meier <florian.meier@koalo.de>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agoMerge branch 'topic/of' into for-linus
Vinod Koul [Tue, 7 Jan 2014 16:06:24 +0000 (21:36 +0530)]
Merge branch 'topic/of' into for-linus

Conflicts:
drivers/dma/mmp_pdma.c

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agoMerge branch 'topic/defer_probe' into for-linus
Vinod Koul [Tue, 7 Jan 2014 16:02:28 +0000 (21:32 +0530)]
Merge branch 'topic/defer_probe' into for-linus

10 years agoswiotlb: Don't DoS us with 'swiotlb buffer is full' (v2)
Konrad Rzeszutek Wilk [Mon, 16 Dec 2013 19:05:01 +0000 (14:05 -0500)]
swiotlb: Don't DoS us with 'swiotlb buffer is full' (v2)

There is no need for that so lets use ratelimiting.
Also add some extra information to be helpful.

Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
[v2: s/ld/zs on the printk]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
10 years agoMerge branches 'imx/soc' and 'imx/dt' into for-next
Shawn Guo [Tue, 7 Jan 2014 14:04:23 +0000 (22:04 +0800)]
Merge branches 'imx/soc' and 'imx/dt' into for-next

10 years agoARM: imx: Use INT_MEM_CLK_LPM as the bit name
Fabio Estevam [Tue, 7 Jan 2014 10:00:40 +0000 (08:00 -0200)]
ARM: imx: Use INT_MEM_CLK_LPM as the bit name

Bit 17 of register CCM_CGPR is called INT_MEM_CLK_LPM as per the mx6
reference manual, so use this name instead.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoARM: dts: imx6sl: add ocram device support
Anson Huang [Mon, 6 Jan 2014 20:57:37 +0000 (15:57 -0500)]
ARM: dts: imx6sl: add ocram device support

Add ocram device support on i.MX6SL.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoARM: dts: vf610: use the interrupt macros
Huang Shijie [Wed, 25 Dec 2013 06:19:27 +0000 (14:19 +0800)]
ARM: dts: vf610: use the interrupt macros

This patch uses the IRQ_TYPE_LEVEL_HIGH/IRQ_TYPE_NONE to replace
the hardcode.

[shawn.guo: While at it, we also fix the typo in uart0 interrupts
property, where the 0x00 should 0x04.  Hense, it should also be
IRQ_TYPE_LEVEL_HIGH just like other UART instances.]

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agoapm-emulation: add hibernation APM events to support suspend2disk
Bin Shi [Fri, 3 Jan 2014 06:08:54 +0000 (14:08 +0800)]
apm-emulation: add hibernation APM events to support suspend2disk

Some embedded systems use hibernation for fast boot. and in it,
some software components need to handle specific things before
hibernation and after restore. So it needs to capture the apm
status about these pm events.

Currently apm just supports suspend to ram, but not suspend to disk,
so here add logic about hibernation apm events.

Signed-off-by: Bin Shi <Bin.Shi@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
10 years agoARM: dts: imx53: Add gpio and input dt includes.
Denis Carikli [Mon, 6 Jan 2014 16:16:07 +0000 (17:16 +0100)]
ARM: dts: imx53: Add gpio and input dt includes.

This is to permit to use of the includes in the boards dts.

Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: devicetree@vger.kernel.org
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Eric BĂ©nard <eric@eukrea.com>
Signed-off-by: Denis Carikli <denis@eukrea.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
10 years agomicroblaze: Simplify fcpu helper function
Michal Simek [Tue, 7 Jan 2014 10:45:07 +0000 (11:45 +0100)]
microblaze: Simplify fcpu helper function

Use of_property_read_u32() instead of all of_get_property
with big endian conversion.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
10 years agomicroblaze/uapi: Use Kbuild logic to include <asm-generic/types.h>
Geert Uytterhoeven [Mon, 25 Nov 2013 08:55:16 +0000 (09:55 +0100)]
microblaze/uapi: Use Kbuild logic to include <asm-generic/types.h>

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: microblaze-uclinux@itee.uq.edu.au
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
10 years agomicroblaze: Remove duplicate declarations of _stext[] and _etext[]
Geert Uytterhoeven [Tue, 12 Nov 2013 19:42:19 +0000 (20:42 +0100)]
microblaze: Remove duplicate declarations of _stext[] and _etext[]

They're already provided by <asm/sections.h>.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: microblaze-uclinux@itee.uq.edu.au
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
10 years agomicroblaze: Remove _fdt_start casts
Geert Uytterhoeven [Tue, 12 Nov 2013 19:42:18 +0000 (20:42 +0100)]
microblaze: Remove _fdt_start casts

_fdt_start is an array, i.e. a pointer.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: microblaze-uclinux@itee.uq.edu.au
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
10 years agomicroblaze: Wire up defconfig to mmu_defconfig
Geert Uytterhoeven [Tue, 12 Nov 2013 19:22:44 +0000 (20:22 +0100)]
microblaze: Wire up defconfig to mmu_defconfig

Without this, "make defconfig" fails with

*** Can't find default configuration "arch/microblaze/defconfig"!

All other architectures either set KBUILD_DEFCONFIG, or provide
arch/*/defconfig.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
10 years agoGFS2: Increase i_writecount during gfs2_setattr_chown
Bob Peterson [Mon, 6 Jan 2014 22:16:01 +0000 (17:16 -0500)]
GFS2: Increase i_writecount during gfs2_setattr_chown

This patch calls get_write_access in function gfs2_setattr_chown,
which merely increases inode->i_writecount for the duration of the
function. That will ensure that any file closes won't delete the
inode's multi-block reservation while the function is running.
It also ensures that a multi-block reservation exists when needed
for quota change operations during the chown.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
10 years agoMAINTAINERS: Updates for drm/i915
Daniel Vetter [Tue, 7 Jan 2014 08:24:31 +0000 (09:24 +0100)]
MAINTAINERS: Updates for drm/i915

Jani for co-maintainer!

Jani has been a really active bug-scrubber in the past few months.
I've asked him whether he wants to do this in a more official capacity
and he agreed. I've already chatted with Dave and Jesse and they
support this.

Note that everyone can't now just relax because "Jani will do all the
bug scrubbing" - au contraire expect more nagging and poking now that
we have more bandwidth.

Longer-term the plan is to share more of the maintainer duties, but we
need to fix up the infrastructure a bit first (like moving the git
repo to a common location).

While at it also add the newly set-up patchwork instance.

Cc: Dave Airlie <airlied@gmail.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
10 years agor8152: correct some messages
Hayes Wang [Tue, 7 Jan 2014 03:18:22 +0000 (11:18 +0800)]
r8152: correct some messages

 - Replace pr_warn_ratelimited() with net_ratelimit() and netdev_warn().
 - Adjust the algnment of some messages.
 - Remove the peroid.
 - Fix some messages don't have terminating newline.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobna: Fix build due to missing use of dma_unmap_len_set()
David S. Miller [Tue, 7 Jan 2014 01:37:41 +0000 (20:37 -0500)]
bna: Fix build due to missing use of dma_unmap_len_set()

> as reported for linux-next of Dec.20, 2013
> when CONFIG_NEED_DMA_MAP_STATE is not enabled:
>
> drivers/net/ethernet/brocade/bna/bnad.c: In function 'bnad_start_xmit':
> drivers/net/ethernet/brocade/bna/bnad.c:3074:26: error: 'struct bnad_tx_vector' has no member named 'dma_len'

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agogre_offload: statically build GRE offloading support
Eric Dumazet [Mon, 6 Jan 2014 22:03:07 +0000 (14:03 -0800)]
gre_offload: statically build GRE offloading support

GRO/GSO layers can be enabled on a node, even if said
node is only forwarding packets.

This patch permits GSO (and upcoming GRO) support for GRE
encapsulated packets, even if the host has no GRE tunnel setup.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: H.K. Jerry Chu <hkchu@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobgmac: fix typos
Hauke Mehrtens [Mon, 6 Jan 2014 22:24:29 +0000 (23:24 +0100)]
bgmac: fix typos

This fixes some typos found by Sergei.

Reported-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch
David S. Miller [Tue, 7 Jan 2014 00:48:38 +0000 (19:48 -0500)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch

Jesse Gross says:

====================
[GIT net-next] Open vSwitch

Open vSwitch changes for net-next/3.14. Highlights are:
 * Performance improvements in the mechanism to get packets to userspace
   using memory mapped netlink and skb zero copy where appropriate.
 * Per-cpu flow stats in situations where flows are likely to be shared
   across CPUs. Standard flow stats are used in other situations to save
   memory and allocation time.
 * A handful of code cleanups and rationalization.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Tue, 7 Jan 2014 00:22:42 +0000 (08:22 +0800)]
Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull ext4 bugfix from Ted Ts'o:
 "Fix a regression introduced in v3.13-rc6"

* tag 'ext4_for_linus_stable' of http://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  ext4: fix bigalloc regression

10 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Linus Torvalds [Tue, 7 Jan 2014 00:16:28 +0000 (08:16 +0800)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Pull networking fixes from David Miller:
 "I'm hoping this is the very last batch of networking fixes for 3.13,
  here goes nothing:

   1) Fix crashes in VLAN's header_ops passthru.

   2) Bridge multicast code needs to use BH spinlocks to prevent
      deadlocks with timers.  From Curt Brune.

   3) ipv6 tunnels lack proper synchornization when updating percpu
      statistics.  From Li RongQing.

   4) Fixes to bnx2x driver from Yaniv Rosner, Dmitry Kravkov and Michal
      Kalderon.

   5) Avoid undefined operator evaluation order in llc code, from Daniel
      Borkmann.

   6) Error paths in various GSO offload paths do not unwind properly,
      in particular they must undo any modifications they have made to
      the SKB.  From Wei-Chun Chao.

   7) Fix RX refill races during restore in virtio-net, from Jason Wang.

   8) Fix SKB use after free in LLC code, from Daniel Borkmann.

   9) Missing unlock and OOPS in netpoll code when VLAN tag handling
      fails.

  10) Fix vxlan device attachment wrt ipv6, from Fan Du.

  11) Don't allow creating infiniband links to non-infiniband devices,
      from Hangbin Liu.

  12) Revert FEC phy reset active low change, it breaks things.  From
      Fabio Estevam.

  13) Fix header pointer handling in 6lowpan header building code, from
      Daniel Borkmann.

  14) Fix RSS handling in be2net driver, from Vasundhara Volam.

  15) Fix modem port indexing in HSO driver, from Dan Williams"

* http://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)
  bridge: use spin_lock_bh() in br_multicast_set_hash_max
  ipv6: don't install anycast address for /128 addresses on routers
  hso: fix handling of modem port SERIAL_STATE notifications
  isdn: Drop big endian cpp checks from telespci and hfc_pci drivers
  be2net: fix max_evt_qs calculation for BE3 in SR-IOV config
  be2net: increase the timeout value for loopback-test FW cmd
  be2net: disable RSS when number of RXQs is reduced to 1 via set-channels
  xen-netback: Include header for vmalloc
  net: 6lowpan: fix lowpan_header_create non-compression memcpy call
  fec: Revert "fec: Do not assume that PHY reset is active low"
  bnx2x: fix VLAN configuration for VFs.
  bnx2x: fix AFEX memory overflow
  bnx2x: Clean before update RSS arrives
  bnx2x: Correct number of MSI-X vectors for VFs
  bnx2x: limit number of interrupt vectors for 57711
  qlcnic: Fix bug in Tx completion path
  infiniband: make sure the src net is infiniband when create new link
  {vxlan, inet6} Mark vxlan_dev flags with VXLAN_F_IPV6 properly
  cxgb4: allow large buffer size to have page size
  netpoll: Fix missing TXQ unlock and and OOPS.
  ...

10 years agoovs: make functions local
Stephen Hemminger [Tue, 17 Dec 2013 19:22:48 +0000 (19:22 +0000)]
ovs: make functions local

Several functions and datastructures could be local
Found with 'make namespacecheck'

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Compute checksum in skb_gso_segment() if needed
Thomas Graf [Fri, 13 Dec 2013 14:22:22 +0000 (15:22 +0100)]
openvswitch: Compute checksum in skb_gso_segment() if needed

The copy & csum optimization is no longer present with zerocopy
enabled. Compute the checksum in skb_gso_segment() directly by
dropping the HW CSUM capability from the features passed in.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Use skb_zerocopy() for upcall
Thomas Graf [Fri, 13 Dec 2013 14:22:21 +0000 (15:22 +0100)]
openvswitch: Use skb_zerocopy() for upcall

Use of skb_zerocopy() can avoid the expensive call to memcpy()
when copying the packet data into the Netlink skb. Completes
checksum through skb_checksum_help() if not already done in
GSO segmentation.

Zerocopy is only performed if user space supported unaligned
Netlink messages. memory mapped netlink i/o is preferred over
zerocopy if it is set up.

Cost of upcall is significantly reduced from:
+   7.48%       vhost-8471  [k] memcpy
+   5.57%     ovs-vswitchd  [k] memcpy
+   2.81%       vhost-8471  [k] csum_partial_copy_generic

to:
+   5.72%     ovs-vswitchd  [k] memcpy
+   3.32%       vhost-5153  [k] memcpy
+   0.68%       vhost-5153  [k] skb_zerocopy

(megaflows disabled)

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Pass datapath into userspace queue functions
Thomas Graf [Fri, 13 Dec 2013 14:22:20 +0000 (15:22 +0100)]
openvswitch: Pass datapath into userspace queue functions

Allows removing the net and dp_ifindex argument and simplify the
code.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Drop user features if old user space attempted to create datapath
Thomas Graf [Fri, 13 Dec 2013 14:22:19 +0000 (15:22 +0100)]
openvswitch: Drop user features if old user space attempted to create datapath

Drop user features if an outdated user space instance that does not
understand the concept of user_features attempted to create a new
datapath.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Allow user space to announce ability to accept unaligned Netlink messages
Thomas Graf [Fri, 13 Dec 2013 14:22:18 +0000 (15:22 +0100)]
openvswitch: Allow user space to announce ability to accept unaligned Netlink messages

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Reviewed-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agonet: Export skb_zerocopy() to zerocopy from one skb to another
Thomas Graf [Fri, 13 Dec 2013 14:22:17 +0000 (15:22 +0100)]
net: Export skb_zerocopy() to zerocopy from one skb to another

Make the skb zerocopy logic written for nfnetlink queue available for
use by other modules.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Reviewed-by: Daniel Borkmann <dborkman@redhat.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: remove duplicated include from flow_table.c
Wei Yongjun [Mon, 16 Dec 2013 06:06:15 +0000 (14:06 +0800)]
openvswitch: remove duplicated include from flow_table.c

Remove duplicated include.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agonet: ovs: use kfree_rcu instead of rcu_free_{sw_flow_mask_cb,acts_callback}
Daniel Borkmann [Tue, 10 Dec 2013 11:02:03 +0000 (12:02 +0100)]
net: ovs: use kfree_rcu instead of rcu_free_{sw_flow_mask_cb,acts_callback}

As we're only doing a kfree() anyway in the RCU callback, we can
simply use kfree_rcu, which does the same job, and remove the
function rcu_free_sw_flow_mask_cb() and rcu_free_acts_callback().

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
10 years agoopenvswitch: Per cpu flow stats.
Pravin B Shelar [Wed, 30 Oct 2013 00:22:21 +0000 (17:22 -0700)]
openvswitch: Per cpu flow stats.

With mega flow implementation ovs flow can be shared between
multiple CPUs which makes stats updates highly contended
operation. This patch uses per-CPU stats in cases where a flow
is likely to be shared (if there is a wildcard in the 5-tuple
and therefore likely to be spread by RSS). In other situations,
it uses the current strategy, saving memory and allocation time.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>