]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
9 years agoMerge remote-tracking branch 'arm64-acpi/for-next/acpi'
Stephen Rothwell [Thu, 9 Apr 2015 00:49:43 +0000 (10:49 +1000)]
Merge remote-tracking branch 'arm64-acpi/for-next/acpi'

9 years agoMerge remote-tracking branch 'arm64/for-next/core'
Stephen Rothwell [Thu, 9 Apr 2015 00:48:37 +0000 (10:48 +1000)]
Merge remote-tracking branch 'arm64/for-next/core'

Conflicts:
arch/arm64/configs/defconfig

9 years agoMerge remote-tracking branch 'tegra/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:47:01 +0000 (10:47 +1000)]
Merge remote-tracking branch 'tegra/for-next'

9 years agoMerge remote-tracking branch 'sunxi/sunxi/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:45:54 +0000 (10:45 +1000)]
Merge remote-tracking branch 'sunxi/sunxi/for-next'

9 years agoMerge remote-tracking branch 'samsung/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:44:52 +0000 (10:44 +1000)]
Merge remote-tracking branch 'samsung/for-next'

Conflicts:
arch/arm/mach-exynos/platsmp.c

9 years agoMerge remote-tracking branch 'renesas/next'
Stephen Rothwell [Thu, 9 Apr 2015 00:44:30 +0000 (10:44 +1000)]
Merge remote-tracking branch 'renesas/next'

9 years agoMerge remote-tracking branch 'omap-pending/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:44:29 +0000 (10:44 +1000)]
Merge remote-tracking branch 'omap-pending/for-next'

Conflicts:
arch/arm/mach-omap2/omap_hwmod_43xx_data.c

9 years agoMerge remote-tracking branch 'omap/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:43:09 +0000 (10:43 +1000)]
Merge remote-tracking branch 'omap/for-next'

9 years agoMerge remote-tracking branch 'mvebu/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:41:52 +0000 (10:41 +1000)]
Merge remote-tracking branch 'mvebu/for-next'

9 years agoMerge remote-tracking branch 'keystone/next'
Stephen Rothwell [Thu, 9 Apr 2015 00:41:46 +0000 (10:41 +1000)]
Merge remote-tracking branch 'keystone/next'

9 years agoMerge remote-tracking branch 'imx-mxs/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:40:30 +0000 (10:40 +1000)]
Merge remote-tracking branch 'imx-mxs/for-next'

9 years agoMerge remote-tracking branch 'cortex-m/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:40:28 +0000 (10:40 +1000)]
Merge remote-tracking branch 'cortex-m/for-next'

9 years agoMerge remote-tracking branch 'rpi/for-rpi-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:39:27 +0000 (10:39 +1000)]
Merge remote-tracking branch 'rpi/for-rpi-next'

9 years agoMerge remote-tracking branch 'at91/at91-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:38:17 +0000 (10:38 +1000)]
Merge remote-tracking branch 'at91/at91-next'

9 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:36:44 +0000 (10:36 +1000)]
Merge remote-tracking branch 'arm-soc/for-next'

9 years agoMerge remote-tracking branch 'arm-perf/for-next/perf'
Stephen Rothwell [Thu, 9 Apr 2015 00:35:38 +0000 (10:35 +1000)]
Merge remote-tracking branch 'arm-perf/for-next/perf'

9 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:33:02 +0000 (10:33 +1000)]
Merge remote-tracking branch 'arm/for-next'

9 years agoMerge remote-tracking branch 'arc/for-next'
Stephen Rothwell [Thu, 9 Apr 2015 00:32:01 +0000 (10:32 +1000)]
Merge remote-tracking branch 'arc/for-next'

9 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:40 +0000 (10:29 +1000)]
Merge remote-tracking branch 'input-current/for-linus'

9 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:38 +0000 (10:29 +1000)]
Merge remote-tracking branch 'pci-current/for-linus'

9 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:37 +0000 (10:29 +1000)]
Merge remote-tracking branch 'sound-current/for-linus'

9 years agoMerge remote-tracking branch 'ipsec/master'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:36 +0000 (10:29 +1000)]
Merge remote-tracking branch 'ipsec/master'

9 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:35 +0000 (10:29 +1000)]
Merge remote-tracking branch 'net/master'

9 years agoMerge remote-tracking branch 'arm-current/fixes'
Stephen Rothwell [Thu, 9 Apr 2015 00:29:32 +0000 (10:29 +1000)]
Merge remote-tracking branch 'arm-current/fixes'

9 years agoMerge branch 'next-sriov' into next
Benjamin Herrenschmidt [Wed, 8 Apr 2015 23:14:38 +0000 (09:14 +1000)]
Merge branch 'next-sriov' into next

Merge Richard's work to support SR-IOV on PowerNV. All generic PCI
patches acked by Bjorn.

9 years agoMerge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Linus Torvalds [Wed, 8 Apr 2015 22:12:25 +0000 (15:12 -0700)]
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

Pull drm fixes from Dave Airlie:
 "Final drm fixes: one core locking imbalance regression, and a bunch of
  i915 baytrail s/r fixes"

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  drm: fix drm_mode_getconnector() locking imbalance regression
  drm/i915/vlv: remove wait for previous GFX clk disable request
  drm/i915/chv: Remove Wait for a previous gfx force-off
  drm/i915/vlv: save/restore the power context base reg

9 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph...
Linus Torvalds [Wed, 8 Apr 2015 21:51:56 +0000 (14:51 -0700)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client

Pull ceph revert from Sage Weil:
 "This corrects a recent misadventure with __GFP_MEMALLOC and
  PF_MEMALLOC; it turns out it's not a good fit for RBD and we're better
  off relying on dirty page throttling"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
  Revert "libceph: use memalloc flags for net IO"

9 years agoMerge tag 'v4.0-rc7' into drm-next
Dave Airlie [Wed, 8 Apr 2015 21:48:27 +0000 (07:48 +1000)]
Merge tag 'v4.0-rc7' into drm-next

Linux 4.0-rc7

Requested by Alex for fixes -next needs.

Conflicts:
drivers/gpu/drm/i915/intel_sprite.c

9 years agoMerge branch 'akpm' (patches from Andrew)
Linus Torvalds [Wed, 8 Apr 2015 21:42:49 +0000 (14:42 -0700)]
Merge branch 'akpm' (patches from Andrew)

Merge misc fixes from Andrew Morton:
 "Three fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
  mm: numa: disable change protection for vma(VM_HUGETLB)
  include/linux/dmapool.h: declare struct device
  mm: move zone lock to a different cache line than order-0 free page lists

9 years agoCopy the kernel module data from user space in chunks
Linus Torvalds [Tue, 7 Apr 2015 17:33:49 +0000 (10:33 -0700)]
Copy the kernel module data from user space in chunks

Unlike most (all?) other copies from user space, kernel module loading
is almost unlimited in size.  So we do a potentially huge
"copy_from_user()" when we copy the module data from user space to the
kernel buffer, which can be a latency concern when preemption is
disabled (or voluntary).

Also, because 'copy_from_user()' clears the tail of the kernel buffer on
failures, even a *failed* copy can end up wasting a lot of time.

Normally neither of these are concerns in real life, but they do trigger
when doing stress-testing with trinity.  Running in a VM seems to add
its own overheadm causing trinity module load testing to even trigger
the watchdog.

The simple fix is to just chunk up the module loading, so that it never
tries to copy insanely big areas in one go.  That bounds the latency,
and also the amount of (unnecessarily, in this case) cleared memory for
the failure case.

Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9 years agox86: clean up/fix 'copy_in_user()' tail zeroing
Linus Torvalds [Mon, 6 Apr 2015 17:26:17 +0000 (10:26 -0700)]
x86: clean up/fix 'copy_in_user()' tail zeroing

The rule for 'copy_from_user()' is that it zeroes the remaining kernel
buffer even when the copy fails halfway, just to make sure that we don't
leave uninitialized kernel memory around.  Because even if we check for
errors, some kernel buffers stay around after thge copy (think page
cache).

However, the x86-64 logic for user copies uses a copy_user_generic()
function for all the cases, that set the "zerorest" flag for any fault
on the source buffer.  Which meant that it didn't just try to clear the
kernel buffer after a failure in copy_from_user(), it also tried to
clear the destination user buffer for the "copy_in_user()" case.

Not only is that pointless, it also means that the clearing code has to
worry about the tail clearing taking page faults for the user buffer
case.  Which is just stupid, since that case shouldn't happen in the
first place.

Get rid of the whole "zerorest" thing entirely, and instead just check
if the destination is in kernel space or not.  And then just use
memset() to clear the tail of the kernel buffer if necessary.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9 years agoMerge tag 'drm-intel-fixes-2015-04-08' of git://anongit.freedesktop.org/drm-intel...
Dave Airlie [Wed, 8 Apr 2015 20:59:50 +0000 (06:59 +1000)]
Merge tag 'drm-intel-fixes-2015-04-08' of git://anongit.freedesktop.org/drm-intel into drm-fixes

three commits, all cc: stable, to address Baytrail
suspend/resume issues.

* tag 'drm-intel-fixes-2015-04-08' of git://anongit.freedesktop.org/drm-intel:
  drm/i915/vlv: remove wait for previous GFX clk disable request
  drm/i915/chv: Remove Wait for a previous gfx force-off
  drm/i915/vlv: save/restore the power context base reg

9 years agosfc: Revert SRIOV changes.
David S. Miller [Wed, 8 Apr 2015 20:30:01 +0000 (16:30 -0400)]
sfc: Revert SRIOV changes.

This reverts commits:

d92916f71a57582ce7276547510cedb2c10b6bd6 ("sfc: Own header for nic-specific sriov functions,")
25672dba9535b804331145379c79f835ba2205c5 ("sfc: Enable VF's via a write to the sysfs file
 sriov_numvfs")

As they break the build with SRIOV disabled and there is no
easy way to fix it the way things are arranged.

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge remote-tracking branches 'spi/topic/spidev' and 'spi/topic/spidev-test' into...
Mark Brown [Wed, 8 Apr 2015 20:13:18 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/spidev' and 'spi/topic/spidev-test' into spi-next

9 years agoMerge remote-tracking branches 'spi/topic/qup', 'spi/topic/rockchip', 'spi/topic...
Mark Brown [Wed, 8 Apr 2015 20:13:16 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/qup', 'spi/topic/rockchip', 'spi/topic/rspi', 'spi/topic/s3c64xx' and 'spi/topic/sc18is602' into spi-next

9 years agoMerge remote-tracking branches 'spi/topic/omap-100k', 'spi/topic/omap-uwire', 'spi...
Mark Brown [Wed, 8 Apr 2015 20:13:13 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/omap-100k', 'spi/topic/omap-uwire', 'spi/topic/pl022', 'spi/topic/pm' and 'spi/topic/pxa2xx' into spi-next

9 years agoMerge remote-tracking branches 'spi/topic/fsl-cspi', 'spi/topic/fsl-dspi', 'spi/topic...
Mark Brown [Wed, 8 Apr 2015 20:13:12 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/fsl-cspi', 'spi/topic/fsl-dspi', 'spi/topic/imx' and 'spi/topic/of-id' into spi-next

9 years agoMerge remote-tracking branches 'spi/topic/blackfin', 'spi/topic/cadence', 'spi/topic...
Mark Brown [Wed, 8 Apr 2015 20:13:10 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/blackfin', 'spi/topic/cadence', 'spi/topic/dw' and 'spi/topic/err' into spi-next

9 years agoMerge remote-tracking branches 'spi/topic/atmel', 'spi/topic/bcm2385', 'spi/topic...
Mark Brown [Wed, 8 Apr 2015 20:13:08 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/topic/atmel', 'spi/topic/bcm2385', 'spi/topic/bcm2835', 'spi/topic/bcm53xx' and 'spi/topic/bitbang' into spi-next

9 years agoMerge remote-tracking branch 'spi/topic/img-spfi' into spi-next
Mark Brown [Wed, 8 Apr 2015 20:13:07 +0000 (21:13 +0100)]
Merge remote-tracking branch 'spi/topic/img-spfi' into spi-next

9 years agoMerge remote-tracking branch 'spi/topic/core' into spi-next
Mark Brown [Wed, 8 Apr 2015 20:13:06 +0000 (21:13 +0100)]
Merge remote-tracking branch 'spi/topic/core' into spi-next

9 years agoMerge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/imx' and 'spi/fix/rockchi...
Mark Brown [Wed, 8 Apr 2015 20:13:05 +0000 (21:13 +0100)]
Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/imx' and 'spi/fix/rockchip' into spi-linus

9 years agoMerge remote-tracking branch 'spi/fix/img-spfi' into spi-linus
Mark Brown [Wed, 8 Apr 2015 20:13:04 +0000 (21:13 +0100)]
Merge remote-tracking branch 'spi/fix/img-spfi' into spi-linus

9 years agoMerge remote-tracking branches 'regulator/topic/stw481x' and 'regulator/topic/wm8350...
Mark Brown [Wed, 8 Apr 2015 20:12:09 +0000 (21:12 +0100)]
Merge remote-tracking branches 'regulator/topic/stw481x' and 'regulator/topic/wm8350' into regulator-next

9 years agoMerge remote-tracking branches 'regulator/topic/max8660', 'regulator/topic/mode'...
Mark Brown [Wed, 8 Apr 2015 20:12:07 +0000 (21:12 +0100)]
Merge remote-tracking branches 'regulator/topic/max8660', 'regulator/topic/mode', 'regulator/topic/notifier', 'regulator/topic/palmas' and 'regulator/topic/qcom' into regulator-next

9 years agoMerge remote-tracking branches 'regulator/topic/dbx500', 'regulator/topic/debug'...
Mark Brown [Wed, 8 Apr 2015 20:12:05 +0000 (21:12 +0100)]
Merge remote-tracking branches 'regulator/topic/dbx500', 'regulator/topic/debug', 'regulator/topic/debugfs', 'regulator/topic/load-op' and 'regulator/topic/max77693' into regulator-next

9 years agoMerge remote-tracking branches 'regulator/topic/act8865', 'regulator/topic/arizona...
Mark Brown [Wed, 8 Apr 2015 20:12:03 +0000 (21:12 +0100)]
Merge remote-tracking branches 'regulator/topic/act8865', 'regulator/topic/arizona-ldo1', 'regulator/topic/arizona-micsupp' and 'regulator/topic/da9211' into regulator-next

9 years agoMerge remote-tracking branch 'regulator/topic/core' into regulator-next
Mark Brown [Wed, 8 Apr 2015 20:12:02 +0000 (21:12 +0100)]
Merge remote-tracking branch 'regulator/topic/core' into regulator-next

9 years agoMerge remote-tracking branches 'asoc/topic/wm8731', 'asoc/topic/wm8804' and 'asoc...
Mark Brown [Wed, 8 Apr 2015 20:11:35 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/wm8731', 'asoc/topic/wm8804' and 'asoc/topic/wm8996' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/tlv320aic23', 'asoc...
Mark Brown [Wed, 8 Apr 2015 20:11:33 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/tlv320aic23', 'asoc/topic/wm2200' and 'asoc/topic/wm5100' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/rt5677' and 'asoc/topic/sh-cleanup' into...
Mark Brown [Wed, 8 Apr 2015 20:11:32 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/rt5677' and 'asoc/topic/sh-cleanup' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/qcom', 'asoc/topic/rcar', 'asoc/topic...
Mark Brown [Wed, 8 Apr 2015 20:11:30 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/qcom', 'asoc/topic/rcar', 'asoc/topic/rt286' and 'asoc/topic/rt5641' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/max98090', 'asoc/topic/max98925', 'asoc...
Mark Brown [Wed, 8 Apr 2015 20:11:28 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/max98090', 'asoc/topic/max98925', 'asoc/topic/nuc900' and 'asoc/topic/omap' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/jz4740', 'asoc/topic/kirkwood' and 'asoc...
Mark Brown [Wed, 8 Apr 2015 20:11:26 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/jz4740', 'asoc/topic/kirkwood' and 'asoc/topic/link-param' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/delay', 'asoc/topic/fsi' and 'asoc/topic...
Mark Brown [Wed, 8 Apr 2015 20:11:25 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/delay', 'asoc/topic/fsi' and 'asoc/topic/fsl' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/cx20442' and 'asoc/topic/davinci' into...
Mark Brown [Wed, 8 Apr 2015 20:11:24 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/cx20442' and 'asoc/topic/davinci' into asoc-next

9 years agoMerge remote-tracking branches 'asoc/topic/4554', 'asoc/topic/ab8500', 'asoc/topic...
Mark Brown [Wed, 8 Apr 2015 20:11:21 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/topic/4554', 'asoc/topic/ab8500', 'asoc/topic/ak4642', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/rt5645' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:21 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/intel' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:15 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/topic/intel' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:14 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/dapm' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:14 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next

9 years agoMerge remote-tracking branch 'asoc/topic/core' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:13 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/topic/core' into asoc-next

9 years agoMerge tag 'asoc-v4.1' into asoc-next
Mark Brown [Wed, 8 Apr 2015 20:11:13 +0000 (21:11 +0100)]
Merge tag 'asoc-v4.1' into asoc-next

ASoC: Changes for v4.1

A selection of changes for v4.1 so far.  The main things are:

 - Move of jack registration to the card where it belongs.
 - Support for DAPM routes specified by both the machine driver and DT.

# gpg: Signature made Thu 05 Mar 2015 01:10:27 GMT using RSA key ID 5D5487D0
# gpg: Oops: keyid_from_fingerprint: no pubkey
# gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
# gpg:                 aka "Mark Brown <broonie@debian.org>"
# gpg:                 aka "Mark Brown <broonie@kernel.org>"
# gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
# gpg:                 aka "Mark Brown <broonie@linaro.org>"
# gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"

9 years agoMerge remote-tracking branch 'asoc/fix/wm8741' into asoc-linus
Mark Brown [Wed, 8 Apr 2015 20:11:12 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/fix/wm8741' into asoc-linus

9 years agoMerge remote-tracking branches 'asoc/fix/atmel', 'asoc/fix/cs4271', 'asoc/fix/davinci...
Mark Brown [Wed, 8 Apr 2015 20:11:10 +0000 (21:11 +0100)]
Merge remote-tracking branches 'asoc/fix/atmel', 'asoc/fix/cs4271', 'asoc/fix/davinci' and 'asoc/fix/rcar' into asoc-linus

9 years agoMerge remote-tracking branch 'asoc/fix/pcm512x' into asoc-linus
Mark Brown [Wed, 8 Apr 2015 20:11:10 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/fix/pcm512x' into asoc-linus

9 years agoMerge remote-tracking branch 'asoc/fix/intel' into asoc-linus
Mark Brown [Wed, 8 Apr 2015 20:11:09 +0000 (21:11 +0100)]
Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus

9 years agoASoC: tegra_wm9712: Use card DAPM context to access widgets
Lars-Peter Clausen [Fri, 3 Apr 2015 11:04:08 +0000 (13:04 +0200)]
ASoC: tegra_wm9712: Use card DAPM context to access widgets

The dapm field of the snd_soc_codec struct will eventually be removed
(replaced with the DAPM context from the component embedded inside the
CODEC). Replace its usage with the card's DAPM context. The idea is that
DAPM is hierarchical and with the card at the root it is possible to access
widgets from other contexts through the card context.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: tegra_wm8903: Use card DAPM context to access widgets
Lars-Peter Clausen [Fri, 3 Apr 2015 11:04:07 +0000 (13:04 +0200)]
ASoC: tegra_wm8903: Use card DAPM context to access widgets

The dapm field of the snd_soc_codec struct will eventually be removed
(replaced with the DAPM context from the component embedded inside the
CODEC). Replace its usage with the card's DAPM context. The idea is that
DAPM is hierarchical and with the card at the root it is possible to access
widgets from other contexts through the card context.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: tegra_rt5677: Use card DAPM context to access widgets
Lars-Peter Clausen [Fri, 3 Apr 2015 11:04:06 +0000 (13:04 +0200)]
ASoC: tegra_rt5677: Use card DAPM context to access widgets

The dapm field of the snd_soc_codec struct will eventually be removed
(replaced with the DAPM context from the component embedded inside the
CODEC). Replace its usage with the card's DAPM context. The idea is that
DAPM is hierarchical and with the card at the root it is possible to access
widgets from other contexts through the card context.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: tegra_alc5632: Use card DAPM context to access widgets
Lars-Peter Clausen [Fri, 3 Apr 2015 11:04:05 +0000 (13:04 +0200)]
ASoC: tegra_alc5632: Use card DAPM context to access widgets

The dapm field of the snd_soc_codec struct will eventually be removed
(replaced with the DAPM context from the component embedded inside the
CODEC). Replace its usage with the card's DAPM context. The idea is that
DAPM is hierarchical and with the card at the root it is possible to access
widgets from other contexts through the card context.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge branch 'topic/jack' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Mark Brown [Wed, 8 Apr 2015 20:09:54 +0000 (21:09 +0100)]
Merge branch 'topic/jack' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-tegra

9 years agospi: img-spfi: Control CS lines with GPIO
Ezequiel Garcia [Wed, 8 Apr 2015 17:03:16 +0000 (10:03 -0700)]
spi: img-spfi: Control CS lines with GPIO

When the CONTINUE bit is set, the interrupt status we are polling to
identify if a transaction has finished can be sporadic.  Even though
the transfer has finished, the interrupt status may erroneously
indicate that there is still data in the FIFO.  This behaviour causes
random timeouts in large PIO transfers.

Instead of using the CONTINUE bit to control the CS lines, use the SPI
core's CS GPIO handling.  Also, now that the CONTINUE bit is not being
used, we can poll for the ALLDONE interrupt to indicate transfer
completion.

Signed-off-by: Sifan Naeem <sifan.naeem@imgtec.com>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge branch 'fix/img-spfi' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Mark Brown [Wed, 8 Apr 2015 20:04:43 +0000 (21:04 +0100)]
Merge branch 'fix/img-spfi' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-img-spfi

9 years agospi: img-spfi: Reset controller after each message
Andrew Bresticker [Wed, 8 Apr 2015 17:03:15 +0000 (10:03 -0700)]
spi: img-spfi: Reset controller after each message

Imagination has recommended that the SPFI controller be reset after
each message, regardless of success or failure.  Do this in an
unprepare_message() callback.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agospi: img-spfi: Implement a handle_err() callback
Ezequiel Garcia [Wed, 8 Apr 2015 17:03:14 +0000 (10:03 -0700)]
spi: img-spfi: Implement a handle_err() callback

The driver can be greatly simplified by moving the transfer timeout
handling to a handle_err() callback.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge tag 'v4.0-rc7' into spi-img-spfi
Mark Brown [Wed, 8 Apr 2015 20:04:25 +0000 (21:04 +0100)]
Merge tag 'v4.0-rc7' into spi-img-spfi

Linux 4.0-rc7

9 years agofou: Don't use const __read_mostly
Andi Kleen [Wed, 8 Apr 2015 13:04:31 +0000 (06:04 -0700)]
fou: Don't use const __read_mostly

const __read_mostly is a senseless combination. If something
is already const it cannot be __read_mostly. Remove the bogus
__read_mostly in the fou driver.

This fixes section conflicts with LTO.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: phy: broadcom: Add BCM54616S phy entry
Alessio Igor Bogani [Wed, 8 Apr 2015 10:15:18 +0000 (12:15 +0200)]
net: phy: broadcom: Add BCM54616S phy entry

Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonetfilter: Fix switch statement warnings with recent gcc.
David Miller [Wed, 8 Apr 2015 03:05:42 +0000 (23:05 -0400)]
netfilter: Fix switch statement warnings with recent gcc.

More recent GCC warns about two kinds of switch statement uses:

1) Switching on an enumeration, but not having an explicit case
   statement for all members of the enumeration.  To show the
   compiler this is intentional, we simply add a default case
   with nothing more than a break statement.

2) Switching on a boolean value.  I think this warning is dumb
   but nevertheless you get it wholesale with -Wswitch.

This patch cures all such warnings in netfilter.

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
9 years agoMerge branch 'selinux-nlmsg'
David S. Miller [Wed, 8 Apr 2015 19:19:17 +0000 (15:19 -0400)]
Merge branch 'selinux-nlmsg'

Nicolas Dichtel says:

====================
selinux: add some missing nlmsg commands

It's not a critical issue, thus the patches are based on net-next.

Patches are splitted because the 'Fixes' tag is not the same for all
commands.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoselinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO
Nicolas Dichtel [Wed, 8 Apr 2015 16:36:42 +0000 (18:36 +0200)]
selinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO

These commands are missing.

Fixes: 28d8909bc790 ("[XFRM]: Export SAD info.")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoselinux/nlmsg: add XFRM_MSG_GETSPDINFO
Nicolas Dichtel [Wed, 8 Apr 2015 16:36:41 +0000 (18:36 +0200)]
selinux/nlmsg: add XFRM_MSG_GETSPDINFO

This command is missing.

Fixes: ecfd6b183780 ("[XFRM]: Export SPD info")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoselinux/nlmsg: add XFRM_MSG_NEWSPDINFO
Nicolas Dichtel [Wed, 8 Apr 2015 16:36:40 +0000 (18:36 +0200)]
selinux/nlmsg: add XFRM_MSG_NEWSPDINFO

This new command is missing.

Fixes: 880a6fab8f6b ("xfrm: configure policy hash table thresholds by netlink")
Reported-by: Christophe Gouault <christophe.gouault@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoselinux/nlmsg: add RTM_GETNSID
Nicolas Dichtel [Wed, 8 Apr 2015 16:36:39 +0000 (18:36 +0200)]
selinux/nlmsg: add RTM_GETNSID

This new command is missing.

Fixes: 9a9634545c70 ("netns: notify netns id events")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoselinux/nlmsg: add RTM_NEWNSID and RTM_GETNSID
Nicolas Dichtel [Wed, 8 Apr 2015 16:36:38 +0000 (18:36 +0200)]
selinux/nlmsg: add RTM_NEWNSID and RTM_GETNSID

These new commands are missing.

Fixes: 0c7aecd4bde4 ("netns: add rtnl cmd to add and get peer netns ids")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'rds'
David S. Miller [Wed, 8 Apr 2015 19:17:38 +0000 (15:17 -0400)]
Merge branch 'rds'

Sowmini Varadhan says:

====================
RDS: RDS-core fixes

This patch-series updates the RDS core and rds-tcp modules with
some bug fixes that were originally authored by  Andy Grover,
Zach Brown, and Chris Mason.

v2: Code review comment by Sergei Shtylov
V3: DaveM comments:
- dropped patches 3, 5 for "heuristic" changes in rds_send_xmit().
  Investigation into the root-cause of these IB-triggered changes
  produced the feedback: "I don't remember seeing "RDS: Stuck RM"
  message in last 1-1.5 years and checking with other folks. It may very
  well be some old workaround for stale connection for which long term
  fix is already made and this part of code not exercised anymore."

  Any such fixes, *if* they are needed, can/should be done in the
  IB specific RDS transport modules.

- similarly dropped the LL_SEND_FULL patch (patch 6 in v2 set)

v4: Documentation/networking/rds.txt contains incorrect references
    to "missing sysctl values for pf_rds and sol_rds in mainline".
    The sysctl values were never needed in mainline, thus fix the
    documentation.

v5: Clarify comment per http://www.spinics.net/lists/netdev/msg324220.html

v6: Re-added entire version history to cover letter.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoRDS: make sure not to loop forever inside rds_send_xmit
Sowmini Varadhan [Wed, 8 Apr 2015 16:33:47 +0000 (12:33 -0400)]
RDS: make sure not to loop forever inside rds_send_xmit

If a determined set of concurrent senders keep the send queue full,
we can loop forever inside rds_send_xmit.  This fix has two parts.

First we are dropping out of the while(1) loop after we've processed a
large batch of messages.

Second we add a generation number that gets bumped each time the
xmit bit lock is acquired.  If someone else has jumped in and
made progress in the queue, we skip our goto restart.

Original patch by Chris Mason.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoRDS: only use passive connections when addresses match
Sowmini Varadhan [Wed, 8 Apr 2015 16:33:46 +0000 (12:33 -0400)]
RDS: only use passive connections when addresses match

Passive connections were added for the case where one loopback IB
connection between identical addresses needs another connection to store
the second QP.  Unfortunately, they were also created in the case where
the addesses differ and we already have both QPs.

This lead to a message reordering bug.

- two different IB interfaces and addresses on a machine: A B
- traffic is sent from A to B
- connection from A-B is created, connect request sent
- listening accepts connect request, B-A is created
- traffic flows, next_rx is incremented
- unacked messages exist on the retrans list
- connection A-B is shut down, new connect request sent
- listen sees existing loopback B-A, creates new passive B-A
- retrans messages are sent and delivered because of 0 next_rx

The problem is that the second connection request saw the previously
existing parent connection.  Instead of using it, and using the existing
next_rx_seq state for the traffic between those IPs, it mistakenly
thought that it had to create a passive connection.

We fix this by only using passive connections in the special case where
laddr and faddr match.  In this case we'll only ever have one parent
sending connection requests and one passive connection created as the
listening path sees the existing parent connection which initiated the
request.

Original patch by Zach Brown

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoRDS: Documentation: Document AF_RDS, PF_RDS and SOL_RDS correctly.
Sowmini Varadhan [Wed, 8 Apr 2015 16:33:45 +0000 (12:33 -0400)]
RDS: Documentation: Document AF_RDS, PF_RDS and SOL_RDS correctly.

AF_RDS, PF_RDS and SOL_RDS are available in header files,
and there is no need to get their values from /proc. Document
this correctly.

Fixes: 0c5f9b8830aa ("RDS: Documentation")
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agostmmac: Add an optional register interface clock
Andrew Bresticker [Tue, 7 Apr 2015 20:38:45 +0000 (13:38 -0700)]
stmmac: Add an optional register interface clock

The DWMAC block on certain SoCs (such as IMG Pistachio) have a second
clock which must be enabled in order to access the peripheral's
register interface, so add support for requesting and enabling an
optional "pclk".

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Cc: James Hartley <james.hartley@imgtec.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agovxlan: fix a shadow local variable
WANG Cong [Wed, 8 Apr 2015 17:17:58 +0000 (10:17 -0700)]
vxlan: fix a shadow local variable

Commit 79b16aadea32cce077
("udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb()")
introduce 'sk' but we already have one inner 'sk'.

Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoALSA: hda - Fix headphone pin config for Lifebook T731
Takashi Iwai [Wed, 8 Apr 2015 18:47:55 +0000 (20:47 +0200)]
ALSA: hda - Fix headphone pin config for Lifebook T731

Some BIOS version of Fujitsu Lifebook T731 seems to set up the
headphone pin (0x21) without the assoc number 0x0f while it's set only
to the output on the docking port (0x1a).  With the recent commit
[03ad6a8c93b6: ALSA: hda - Fix "PCM" name being used on one DAC when
 there are two DACs], this resulted in the weird mixer element
mapping where the headphone on the laptop is assigned as a shared
volume with the speaker and the docking port is assigned as an
individual headphone.

This patch improves the situation by correcting the headphone pin
config to the more appropriate value.

Reported-and-tested-by: Taylor Smock <smocktaylor@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
9 years agoASoC: wm8804: Enable runtime PM
Charles Keepax [Tue, 7 Apr 2015 11:55:10 +0000 (12:55 +0100)]
ASoC: wm8804: Enable runtime PM

Currently both the oscillator and the PLL are powered up in
set_bias_level. This can be problematic when using output clocks from
the wm8804 for other devices. The snd_soc_codec_set_pll API defines that
a clock should be available once the call returns, however, with all the
clocking controlled in set_bias_level this is not currently the case.

This patch enables pm_runtime for the wm8804, enabling both the
regulators and the oscillator when the chip resumes, and enabling the
PLL in the snd_soc_codec_set_pll call. Naturally the enabling the PLL
will also cause the chip to resume.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: wm8804: Add DAPM widgets for SPDIF/AIF
Sapthagiri Baratam [Tue, 7 Apr 2015 11:55:09 +0000 (12:55 +0100)]
ASoC: wm8804: Add DAPM widgets for SPDIF/AIF

This change converts the driver to use DAPM to control the power for the
various blocks on the chip. As part of this change the existing controls
"TX Playback Switch" (controlled power for the SPDIF TX block) and "AIF
Playback Switch" (controlled power for the AIF block) are both removed,
as they are now redundant since the power state of those blocks is
controlled automatically by DAPM.

There are several benefits of this change, the most important of which
is this change adds support for powering down the SPDIF RX block. The RX
block will automatically assume control of the PLL on the chip when it
is receiving a signal, so leaving this enabled all the time as was
currently done in the driver can be problematic. An incoming SPDIF signal
that is not being used can completely destroy the clocking for an in use
TX signal. But this change ensures that the RX block will only be
powered when the user intends to be receiving data, thus avoiding this
issue.

Additional benefits include the chip being simpler to operate as the
power no longer needs to be manually controlled between use-cases and a
small power saving (although it is acknowledged that this is likely
unimportant in the typical use-cases for this chip).

Signed-off-by: Sapthagiri Baratam <sapthagiri.baratam@incubesol.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoregulator: add a summary tree in debugfs
Heiko Stübner [Tue, 7 Apr 2015 14:16:39 +0000 (16:16 +0200)]
regulator: add a summary tree in debugfs

On modern systems the regulator hierarchy can get quite long and nested
with regulators supplying other regulators. In some cases when debugging
it might be nice to get a tree of these regulators, their consumers
and the regulation constraints in one go.

To achieve this add a regulator_summary sysfs node, similar to
clk_summary in the common clock framework, that walks the regulator
list and creates a tree out of the regulators, their consumers and
core per-regulator settings.

On a rk3288-firefly the regulator_summary would for example look
something like:

 regulator                      use open bypass   value     min     max
-----------------------------------------------------------------------
 vcc_sys                          0   12      0  5000mV  5000mV  5000mV
    vcc_lan                       1    1      0  3300mV  3300mV  3300mV
       ff290000.ethernet                                    0mV     0mV
    vcca_33                       0    0      0  3300mV  3300mV  3300mV
    vcca_18                       0    0      0  1800mV  1800mV  1800mV
    vdd10_lcd                     0    0      0  1000mV  1000mV  1000mV
    vccio_sd                      0    0      0  3300mV  3300mV  3300mV
    vcc_20                        0    3      0  2000mV  2000mV  2000mV
       vcc18_lcd                  0    0      0  1800mV  1800mV  1800mV
       vcc_18                     0    2      0  1800mV  1800mV  1800mV
          ff100000.saradc                                   0mV     0mV
          ff0d0000.dwmmc                                 1650mV  1950mV
       vdd_10                     0    0      0  1000mV  1000mV  1000mV
    vdd_log                       0    0      0  1100mV  1100mV  1100mV
    vcc_io                        0    3      0  3300mV  3300mV  3300mV
       ff0f0000.dwmmc                                    3300mV  3400mV
       vcc_flash                  1    1      0  1800mV  1800mV  1800mV
          ff0f0000.dwmmc                                 1700mV  1950mV
       vcc_sd                     1    1      0  3300mV  3300mV  3300mV
          ff0c0000.dwmmc                                 3300mV  3400mV
    vcc_ddr                       0    0      0  1200mV  1200mV  1200mV
    vdd_gpu                       0    0      0  1000mV   850mV  1350mV
    vdd_cpu                       0    1      0   900mV   850mV  1350mV
       cpu0                                               900mV   900mV
    vcc_5v                        0    2      0  5000mV  5000mV  5000mV
       vcc_otg_5v                 0    0      0  5000mV  5000mV  5000mV
       vcc_host_5v                0    0      0  5000mV  5000mV  5000mV
 regulator-dummy                  0    0      0     0mV     0mV     0mV

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: max98090: add shutdown callback for max98090
Caesar Wang [Wed, 8 Apr 2015 11:05:56 +0000 (19:05 +0800)]
ASoC: max98090: add shutdown callback for max98090

To fix pop noise when shutdown,the pop noise during shutdown
is the pmic cutoff power of codec without any notice.

Signed-off-by: jay.xu <xjq@rock-chips.com>
Signed-off-by: zhengxing <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoASoC: Intel: remove unused functions
Sudip Mukherjee [Wed, 8 Apr 2015 13:04:25 +0000 (18:34 +0530)]
ASoC: Intel: remove unused functions

these functions were never called by anyone.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
9 years agoMerge branch 'hv_netvsc_linearize'
David S. Miller [Wed, 8 Apr 2015 16:27:26 +0000 (12:27 -0400)]
Merge branch 'hv_netvsc_linearize'

Vitaly Kuznetsov says:

====================
hv_netvsc: linearize SKBs bigger than MAX_PAGE_BUFFER_COUNT-2 pages

This patch series fixes the same issue which was fixed in Xen with commit
97a6d1bb2b658ac85ed88205ccd1ab809899884d ("xen-netfront: Fix handling packets on
compound pages with skb_linearize").

It is relatively easy to create a packet which is small in size but occupies
more than 30 (MAX_PAGE_BUFFER_COUNT-2) pages. Here is a kernel-mode reproducer
which tries sending a packet with only 34 bytes of payload (but on 34 pages)
and fails:

static int __init sendfb_init(void)
{
struct socket *sock;
int i, ret;
struct sockaddr_in in4_addr = { 0 };
struct page *pages[17];
unsigned long flags;

ret = sock_create_kern(AF_INET, SOCK_STREAM, IPPROTO_TCP, &sock);
if (ret) {
pr_err("failed to create socket: %d!\n", ret);
return ret;
}

in4_addr.sin_family = AF_INET;
/* www.google.com, 74.125.133.99 */
in4_addr.sin_addr.s_addr = cpu_to_be32(0x4a7d8563);
in4_addr.sin_port = cpu_to_be16(80);

ret = sock->ops->connect(sock, (struct sockaddr *)&in4_addr, sizeof(in4_addr), 0);
if (ret) {
pr_err("failed to connect: %d!\n", ret);
return ret;
}

/* We can send up to 17 frags */
flags = MSG_MORE;
for (i = 0; i < 17; i++) {
if (i == 16)
flags = MSG_EOR;
pages[i] = alloc_pages(GFP_KERNEL | __GFP_COMP, 1);
if (!pages[i]) {
pr_err("out of memory!");
goto free_pages;
}
sock->ops->sendpage(sock, pages[i], PAGE_SIZE -1, 2, flags);
}

free_pages:
for (; i > 0; i--)
__free_pages(pages[i - 1], 1);

printk("sendfb_init: test done\n");
        return -1;
}

module_init(sendfb_init);

MODULE_LICENSE("GPL");

A try to load such module results in multiple
'kernel: hv_netvsc vmbus_15 eth0: Packet too big: 100' messages as all retries
fail as well. It should also be possible to trigger the issue from userspace, I
expect e.g. NFS under heavy load to get stuck sometimes.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agohv_netvsc: try linearizing big SKBs before dropping them
Vitaly Kuznetsov [Wed, 8 Apr 2015 15:54:06 +0000 (17:54 +0200)]
hv_netvsc: try linearizing big SKBs before dropping them

In netvsc_start_xmit() we can handle packets which are scattered around not
more than MAX_PAGE_BUFFER_COUNT-2 pages. It is, however, easy to create a
packet which is not big in size but occupies more pages (e.g. if it uses frags
on compound pages boundaries). When we drop such packet it cases sender to try
resending it but in most cases it will try resending the same packet which will
also get dropped, this will cause the particular connection to stick. To solve
the issue we can try linearizing skb.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>