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

10 years agoMerge remote-tracking branch 'device-mapper/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 02:23:04 +0000 (13:23 +1100)]
Merge remote-tracking branch 'device-mapper/for-next'

Conflicts:
drivers/md/dm-thin.c

10 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 02:14:04 +0000 (13:14 +1100)]
Merge remote-tracking branch 'block/for-next'

Conflicts:
fs/f2fs/data.c
fs/f2fs/segment.c
include/trace/events/f2fs.h

10 years agoMerge remote-tracking branch 'cgroup/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 02:08:25 +0000 (13:08 +1100)]
Merge remote-tracking branch 'cgroup/for-next'

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

10 years agoMerge remote-tracking branch 'virtio/virtio-next'
Stephen Rothwell [Wed, 8 Jan 2014 02:06:17 +0000 (13:06 +1100)]
Merge remote-tracking branch 'virtio/virtio-next'

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

Conflicts:
Documentation/module-signing.txt

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

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

Conflicts:
sound/soc/fsl/fsl_ssi.c

10 years agoMerge remote-tracking branch 'drm-tegra/drm/for-next'
Stephen Rothwell [Wed, 8 Jan 2014 01:53:59 +0000 (12:53 +1100)]
Merge remote-tracking branch 'drm-tegra/drm/for-next'

10 years agoMerge remote-tracking branch 'drm-intel/for-linux-next'
Stephen Rothwell [Wed, 8 Jan 2014 01:52:41 +0000 (12:52 +1100)]
Merge remote-tracking branch 'drm-intel/for-linux-next'

Conflicts:
drivers/gpu/drm/i915/intel_ddi.c
drivers/gpu/drm/i915/intel_pm.c

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

Conflicts:
drivers/gpu/drm/drm_stub.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_pm.c
drivers/staging/imx-drm/imx-drm-core.c

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

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

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

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

Conflicts:
net/ieee802154/6lowpan.c

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 agodrm/i915: Simplify watermark/init_clock_gating setup
Ville Syrjälä [Tue, 7 Jan 2014 14:14:10 +0000 (16:14 +0200)]
drm/i915: Simplify watermark/init_clock_gating setup

Avoid duplicating the same piece of code several times by separating
the watemark vfunc setup from the init_clock_gating vfunc setup on PCH
platforms.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
10 years agodrm/i915: Enable watermarks for BDW
Ville Syrjälä [Tue, 7 Jan 2014 14:14:09 +0000 (16:14 +0200)]
drm/i915: Enable watermarks for BDW

We forgot to intialize the watermark vfuncs for BDW, and hence the
watermarks were never updated.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
10 years agodrm/i915: Fix watermark code for BDW
Ville Syrjälä [Tue, 7 Jan 2014 14:14:08 +0000 (16:14 +0200)]
drm/i915: Fix watermark code for BDW

Looks like I forgot to update the ILK/SNB/IVB watermark patches to deal
with BDW. Add the relevant BDW checks to make sure we take the HSW
codepaths on BDW as well.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
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 agodm space map metadata: fix extending the space map
Joe Thornber [Tue, 7 Jan 2014 15:49:02 +0000 (15:49 +0000)]
dm space map metadata: fix extending the space map

When extending a metadata space map we should do the first commit whilst
still in bootstrap mode -- a mode where all blocks get allocated in the
new area.

That way the commit overhead is allocated from the newly added space.
Otherwise we risk running out of space.

With this fix, and the previous commit "dm space map common: make sure
new space is used during extend", the following device mapper testsuite
test passes:
 dmtest run --suite thin-provisioning -n /resize_metadata_no_io/

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
10 years agodm space map common: make sure new space is used during extend
Joe Thornber [Tue, 7 Jan 2014 15:47:59 +0000 (15:47 +0000)]
dm space map common: make sure new space is used during extend

When extending a low level space map we should update nr_blocks at
the start so the new space is used for the index entries.

Otherwise extend can fail, e.g.: sm_metadata_extend call sequence
that fails:
 -> sm_ll_extend
    -> dm_tm_new_block -> dm_sm_new_block -> sm_bootstrap_new_block
    => returns -ENOSPC because smm->begin == smm->ll.nr_blocks

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
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 agodm: wait until embedded kobject is released before destroying a device
Mikulas Patocka [Tue, 7 Jan 2014 04:01:22 +0000 (23:01 -0500)]
dm: wait until embedded kobject is released before destroying a device

There may be other parts of the kernel taking reference to the dm kobject.
We must wait until they drop the references before deallocating the md
structure.

The dm_kobject_release method doesn't free the kobject (which is
embedded in the mapped_device structure).  dm_kobject_release just
signals the completion and returns.

This is the sequence of operations:
* when destroying a DM device, call kobject_put from dm_sysfs_exit
* wait until all users stop using the kobject, when it happens the
  release method is called
* the release method signals the completion and returns
* the dm_mod unload code that waits on the completion continues
* the dm_mod unload code frees the mapped_device structure that contains
  the kobject

Using kobject this way avoids the module unload race that was mentioned
at the beginning of this thread: https://lkml.org/lkml/2014/1/4/83

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org
10 years agodm: remove pointless kobject comparison in dm_get_from_kobject
Mikulas Patocka [Tue, 7 Jan 2014 03:53:28 +0000 (22:53 -0500)]
dm: remove pointless kobject comparison in dm_get_from_kobject

The comparison is always true and the compiler optimizes it out anyway.

Milan offered additional context relative to the original commit
784aae735d ("dm: add name and uuid to sysfs") which introduced the code:
"I think it is just relict of some experiments before I committed this
simple embedded sysfs kobj handling".

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Acked-by: Milan Broz <gmazyland@gmail.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
10 years agomtd: bcm47xxpart: alternative MAGIC for board_data partition
Rafał Miłecki [Sat, 21 Dec 2013 18:39:12 +0000 (19:39 +0100)]
mtd: bcm47xxpart: alternative MAGIC for board_data partition

Some devices (like WNDR3700v3) have board_data without MPFR magic, some
extra header or extra NVRAM around 0x100. In such case we have to look
for another magic which is BD 0B 0D BD (BD probably stands for Board
Data). It's located "far far away", so instead of extending buffer add
another mtd_read.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: bcm47xxpart: find boot partition by CFE magic
Rafał Miłecki [Sat, 21 Dec 2013 18:39:11 +0000 (19:39 +0100)]
mtd: bcm47xxpart: find boot partition by CFE magic

Some devices have even nicer-to-recognize CFE thanks to the magic.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: Hide CONFIG_MTD_BLKDEVS from the menu
Ezequiel Garcia [Fri, 13 Dec 2013 13:58:44 +0000 (10:58 -0300)]
mtd: Hide CONFIG_MTD_BLKDEVS from the menu

Make this option a hidden one and get a cleaner configuration.
This option just selects a common infrastructure for MTD-based devices
to expose a block interface. There is no point in allowing a separate
enable/disable.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
[Brian: keep symbol as tristate]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: onenand: fix warning (integer used as pointer)
Brian Norris [Fri, 20 Sep 2013 19:44:26 +0000 (12:44 -0700)]
mtd: onenand: fix warning (integer used as pointer)

Fixes this sparse warning:

    CHECK   drivers/mtd/onenand/generic.c
  drivers/mtd/onenand/generic.c:61:62: warning: Using plain integer as NULL pointer

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: omap2: use nand_base defaults for polled I/O
Brian Norris [Wed, 30 Oct 2013 23:39:51 +0000 (19:39 -0400)]
mtd: omap2: use nand_base defaults for polled I/O

The omap_{read,write}_buf{8,16}() functions are identical to the default
nand_base versions. Just let nand_base assign them in the
NAND_OMAP_POLLED case.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Tested-by: Pekon Gupta <pekon@ti.com>
10 years agomtd: nand-gpio: don't waste memory for OF failure
Brian Norris [Sat, 14 Dec 2013 05:19:58 +0000 (21:19 -0800)]
mtd: nand-gpio: don't waste memory for OF failure

We shouldn't try to allocate a resource until we're sure the
of_property_read_u64() call didn't fail. This is especially important if
we use this code for both CONFIG_OF and !CONFIG_OF builds, since
of_property_read_u64() will always return -ENOSYS for !CONFIG_OF.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: plat_nand: Remove unnecessary OOM messages
Jingoo Han [Fri, 3 Jan 2014 02:17:29 +0000 (11:17 +0900)]
mtd: plat_nand: Remove unnecessary OOM messages

The site-specific OOM messages are unnecessary, because they
duplicate the MM subsystem generic OOM message.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: plat_nand: Use devm_*() functions
Jingoo Han [Fri, 3 Jan 2014 02:16:28 +0000 (11:16 +0900)]
mtd: plat_nand: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: ixp4xx: Use devm_*() functions
Jingoo Han [Fri, 3 Jan 2014 02:15:04 +0000 (11:15 +0900)]
mtd: ixp4xx: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: sharpsl: use dev_err() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:32:29 +0000 (12:32 +0900)]
mtd: sharpsl: use dev_err() instead of printk()

Use dev_err() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: orion_nand: use dev_err() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:31:52 +0000 (12:31 +0900)]
mtd: orion_nand: use dev_err() instead of printk()

Use dev_err() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
10 years agomtd: fsmc_nand: use dev_warn() instead of printk()
Jingoo Han [Thu, 26 Dec 2013 03:31:25 +0000 (12:31 +0900)]
mtd: fsmc_nand: use dev_warn() instead of printk()

Use dev_warn() instead of printk() to provide a better message
to userspace.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>