10 years agoALSA: usb-audio: Use rwsem for disconnect protection
Takashi Iwai [Mon, 15 Oct 2012 10:16:02 +0000 (12:16 +0200)]
ALSA: usb-audio: Use rwsem for disconnect protection

Replace mutex with rwsem for codec->shutdown protection so that
concurrent accesses are allowed.

Also add the protection to snd_usb_autosuspend() and
snd_usb_autoresume(), too.

Reported-by: Matthieu CASTET <>
Cc: <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: usb-audio: Fix races at disconnection
Takashi Iwai [Fri, 12 Oct 2012 13:12:55 +0000 (15:12 +0200)]
ALSA: usb-audio: Fix races at disconnection

Close some races at disconnection of a USB audio device by adding the
chip->shutdown_mutex and chip->shutdown check at appropriate places.

The spots to put bandaids are:
- PCM prepare, hw_params and hw_free
- where the usb device is accessed for communication or get speed, in
 mixer.c and others; the device speed is now cached in subs->speed
 instead of accessing to chip->dev

The accesses in PCM open and close don't need the mutex protection
because these are already handled in the core PCM disconnection code.

The autosuspend/autoresume codes are still uncovered by this patch
because of possible mutex deadlocks.  They'll be covered by the
upcoming change to rwsem.

Also the mixer codes are untouched, too.  These will be fixed in
another patch, too.

Reported-by: Matthieu CASTET <>
Cc: <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: PCM: Fix some races at disconnection
Takashi Iwai [Fri, 12 Oct 2012 13:07:34 +0000 (15:07 +0200)]
ALSA: PCM: Fix some races at disconnection

Fix races at PCM disconnection:
- while a PCM device is being opened or closed
- while the PCM state is being changed without lock in prepare,
  hw_params, hw_free ops

Reported-by: Matthieu CASTET <>
Cc: <>
Signed-off-by: Takashi Iwai <>
10 years agoMerge tag 'asoc-3.7' of git://
Takashi Iwai [Sun, 28 Oct 2012 08:55:01 +0000 (09:55 +0100)]
Merge tag 'asoc-3.7' of git://git./linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v3.7

Clean up some fallout from the OMAP header reorganisation and a minor
fix for DMIC which has no practical effect but is neater.

10 years agoASoC: omap-dmic: Correct functional clock name
Peter Ujfalusi [Fri, 26 Oct 2012 10:33:08 +0000 (12:33 +0200)]
ASoC: omap-dmic: Correct functional clock name

We should really use "fck" when asking for the functional clock and not
This way we can ensure that multiple dmic modules can exist in the system.

Signed-off-by: Peter Ujfalusi <>
Signed-off-by: Mark Brown <>
10 years agoASoC: zoom2: Fix compile error by including correct header files
Tony Lindgren [Wed, 3 Oct 2012 16:31:02 +0000 (09:31 -0700)]
ASoC: zoom2: Fix compile error by including correct header files

Also drop the includes that are no longer needed and just
cause problems for the ARM common zImage.

Acked-by: Peter Ujfalusi <>
Signed-off-by: Tim Gardner <>
[ updated to drop unneeded headers]
Signed-off-by: Tony Lindgren <>
Signed-off-by: Mark Brown <>
10 years agoALSA: hda - Fix mute-LED setup for HP dv5 laptop
Gustavo Maciel Dias Vieira [Fri, 26 Oct 2012 14:51:53 +0000 (12:51 -0200)]
ALSA: hda - Fix mute-LED setup for HP dv5 laptop

The BIOS on HP dv5 doesn't have the DMI string to guide the setup of
mute led GPIO and polarity. Associate this laptop with the hp-inv-led

Signed-off-by: Gustavo Maciel Dias Vieira <>
Tested-by: Vinícius Angiolucci <>
Signed-off-by: Takashi Iwai <>
10 years agoMerge tag 'asoc-3.7' of git://
Takashi Iwai [Thu, 25 Oct 2012 19:20:36 +0000 (21:20 +0200)]
Merge tag 'asoc-3.7' of git://git./linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v3.7

A couple of driver fixes, one that improves the interoperability of
WM8994 with controllers that are sensitive to extra BCLK cycles and some
build break fixes for ux500.

10 years agoMerge remote-tracking branches 'asoc/fix/ux500' and 'asoc/fix/wm8994' into for-3.7
Mark Brown [Thu, 25 Oct 2012 16:36:02 +0000 (17:36 +0100)]
Merge remote-tracking branches 'asoc/fix/ux500' and 'asoc/fix/wm8994' into for-3.7

10 years agoASoC: wm8994: Only enable extra BCLK cycles when required
Mark Brown [Mon, 1 Oct 2012 14:28:30 +0000 (15:28 +0100)]
ASoC: wm8994: Only enable extra BCLK cycles when required

Rather than always assuming the maximum possible BCLK rate will be
required generate BCLKs for stereo if either one or two channels is
enabled. In order to support this we also need to ensure that only
the relevant channels are enabled.

Signed-off-by: Mark Brown <>
10 years agoALSA: als3000: check for the kzalloc return value
Denis Kirjanov [Mon, 22 Oct 2012 13:05:53 +0000 (17:05 +0400)]
ALSA: als3000: check for the kzalloc return value

Signed-off-by: Denis Kirjanov <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: sound/isa/opti9xx/miro.c: eliminate possible double free
Julia Lawall [Sun, 21 Oct 2012 10:52:03 +0000 (12:52 +0200)]
ALSA: sound/isa/opti9xx/miro.c: eliminate possible double free

snd_miro_probe is a static function that is only called twice in the file
that defines it.  At each call site, its argument is freed using
snd_card_free.  Thus, there is no need for snd_miro_probe to call
snd_card_free on its argument on any of its error exit paths.

Because snd_card_free both reads the fields of its argument and kfrees its
argments, the results of the second snd_card_free should be unpredictable.

A simplified version of the semantic match that finds this problem is as
follows: (

// <smpl>
identifier f,free,a;
parameter list[n] ps;
type T;
expression e;

f(ps,T a,...) {
  ... when any
      when != a = e
  if(...) { ... free(a); ... return ...; }
  ... when any

identifier r.f,;
expression x,a;
expression list[r.n] xs;

* x = f(xs,a,...);
  if (...) { ... free(a); ... return ...; }
// </smpl>

Signed-off-by: Julia Lawall <>
Signed-off-by: Takashi Iwai <>
10 years agoLinux 3.7-rc2 v3.7-rc2
Linus Torvalds [Sat, 20 Oct 2012 19:11:32 +0000 (12:11 -0700)]
Linux 3.7-rc2

10 years agoMerge tag 'arm64-fixes' of git://
Linus Torvalds [Sat, 20 Oct 2012 16:48:10 +0000 (09:48 -0700)]
Merge tag 'arm64-fixes' of git://git./linux/kernel/git/cmarinas/linux-aarch64

Pull arm64 fixes from Catalin Marinas:
 "Main changes:
   - AArch64 Linux compilation fixes following 3.7-rc1 changes
     (MODULES_USE_ELF_RELA, update_vsyscall() prototype)
   - Unnecessary register setting in start_thread() (thanks to Al Viro)
   - ptrace fixes"

* tag 'arm64-fixes' of git://
  arm64: fix alignment padding in assembly code
  arm64: ptrace: use HW_BREAKPOINT_EMPTY type for disabled breakpoints
  arm64: ptrace: make structure padding explicit for debug registers
  arm64: No need to set the x0-x2 registers in start_thread()
  arm64: Ignore memory blocks below PHYS_OFFSET
  arm64: Fix the update_vsyscall() prototype
  arm64: Select MODULES_USE_ELF_RELA
  arm64: Remove duplicate inclusion of mmu_context.h in smp.c

10 years agoALSA: hda - Fix silent headphone output from Toshiba P200
Takashi Iwai [Sat, 20 Oct 2012 08:55:21 +0000 (10:55 +0200)]
ALSA: hda - Fix silent headphone output from Toshiba P200

By some reason, Toshiba laptop doesn't like the EAPD turned up for the
headphone pin.  Add a fix up code to force to turn down EAPD for NID


Cc: <>
Signed-off-by: Takashi Iwai <>
10 years agoarm64: fix alignment padding in assembly code
Marc Zyngier [Fri, 19 Oct 2012 16:33:27 +0000 (17:33 +0100)]
arm64: fix alignment padding in assembly code

An interesting effect of using the generic version of linkage.h
is that the padding is defined in terms of x86 NOPs, which can have
even more interesting effects when the assembly code looks like this:

mov x0, xzr
// fall through
mov x0, #1

Admittedly, the code is not very nice. But having code from another
architecture doesn't look completely sane either.

The fix is to add arm64's version of linkage.h, which causes the insertion
of proper AArch64 NOPs.

Signed-off-by: Marc Zyngier <>
Signed-off-by: Catalin Marinas <>
10 years agoALSA: hdspm - Fix coding style in CTL_ELEM macros
Adrian Knoth [Fri, 19 Oct 2012 15:42:30 +0000 (17:42 +0200)]
ALSA: hdspm - Fix coding style in CTL_ELEM macros discourages the use of spaces at the beginning of lines.
Some of the CTL_ELEM defines were not properly indented.

This patch replaces the leading spaces by tabs. No functionality is
changed, the commit is purely cosmetic.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Fix typo in kcontrol element on RME MADI cards
Adrian Knoth [Fri, 19 Oct 2012 15:42:29 +0000 (17:42 +0200)]
ALSA: hdspm - Fix typo in kcontrol element on RME MADI cards

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Fix sync_in detection on AES/AES32
Adrian Knoth [Fri, 19 Oct 2012 15:42:28 +0000 (17:42 +0200)]
ALSA: hdspm - Fix sync_in detection on AES/AES32

According to the documentation, AES32 cards use a different bit position
for reporting the sync_in status.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Fix sync_in reporting on RME MADI cards
Adrian Knoth [Fri, 19 Oct 2012 15:42:27 +0000 (17:42 +0200)]
ALSA: hdspm - Fix sync_in reporting on RME MADI cards

In contrast to AES32, MADI uses the first status register to report the
sync_in status.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Also report autosync_sample_rate on MADI and MADIface
Adrian Knoth [Fri, 19 Oct 2012 15:42:26 +0000 (17:42 +0200)]
ALSA: hdspm - Also report autosync_sample_rate on MADI and MADIface

MADI and MADIface used to report the autosync_sample_rate. This
functionality was lost in commit
0dca1793063c28dde8f6c49c9c72203fe5cb6efc, this commit now adds it back.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Fix reported autosync_sample_rate
Adrian Knoth [Fri, 19 Oct 2012 15:42:25 +0000 (17:42 +0200)]
ALSA: hdspm - Fix reported autosync_sample_rate

Missing breaks lead to a fall-through, thus causing the wrong
autosync_sample_rate to be reported.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Fix sync check reporting on all RME HDSPM cards
Adrian Knoth [Fri, 19 Oct 2012 15:42:24 +0000 (17:42 +0200)]
ALSA: hdspm - Fix sync check reporting on all RME HDSPM cards

Due to missing breaks and the resulting fall-through, card subtype
selection was effectively missing, thus causing the wrong sync check
functions to be called.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Report external rate in slave mode on PCI MADI
Adrian Knoth [Fri, 19 Oct 2012 15:42:23 +0000 (17:42 +0200)]
ALSA: hdspm - Report external rate in slave mode on PCI MADI

As a follow-up to a97bda7d29d02a2e9c6609d0947b15e55f5200e5, report the
external sample rate as system_sample_rate when in slave mode.

For PCIe MADI cards, the DDS value automatically contains the external
sample rate, but the PCI version needs this manual workaround.

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agoALSA: hdspm - Allow DDS/Varispeed to be set from userspace
Adrian Knoth [Fri, 19 Oct 2012 15:42:22 +0000 (17:42 +0200)]
ALSA: hdspm - Allow DDS/Varispeed to be set from userspace

The DDS value is the actual physical sample rate. We set it indirectly
when selecting 44100, 48000 and so on via snd_hdspm_hw_params or

This commit now allows the DDS value to be altered at runtime, thus
speeding up or slowing down the physical sample rate. This is required
for MADI's varispeed that allows for ±12.5% speed adjustment from the
"selected" rate (32kHz, 44100kHz, 48kHz and so on).

Signed-off-by: Adrian Knoth <>
Signed-off-by: Takashi Iwai <>
10 years agouse clamp_t in UNAME26 fix
Kees Cook [Sat, 20 Oct 2012 01:45:53 +0000 (18:45 -0700)]
use clamp_t in UNAME26 fix

The min/max call needed to have explicit types on some architectures
(e.g. mn10300). Use clamp_t instead to avoid the warning:

  kernel/sys.c: In function 'override_release':
  kernel/sys.c:1287:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]

Reported-by: Fengguang Wu <>
Signed-off-by: Kees Cook <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge branch 'perf-urgent-for-linus' of git://
Linus Torvalds [Sat, 20 Oct 2012 01:39:36 +0000 (18:39 -0700)]
Merge branch 'perf-urgent-for-linus' of git://git./linux/kernel/git/tip/tip

Pull perf fixes from Ingo Molnar:
 "Assorted small fixes"

* 'perf-urgent-for-linus' of git://
  perf python: Properly link with libtraceevent
  perf hists browser: Add back callchain folding symbol
  perf tools: Fix build on sparc.
  perf python: Link with libtraceevent
  perf python: Initialize 'page_size' variable
  tools lib traceevent: Fix missed freeing of subargs in free_arg() in filter
  lib tools traceevent: Add back pevent assignment in __pevent_parse_format()
  perf hists browser: Fix off-by-two bug on the first column
  perf tools: Remove warnings on JIT samples for srcline sort key
  perf tools: Fix segfault when using srcline sort key
  perf: Require exclude_guest to use PEBS - kernel side enforcement
  perf tool: Precise mode requires exclude_guest

10 years agoperf python: Properly link with libtraceevent
Arnaldo Carvalho de Melo [Thu, 18 Oct 2012 14:38:35 +0000 (11:38 -0300)]
perf python: Properly link with libtraceevent

Namhyung Kim reported that the build fails with:

  GEN python/
  gcc: error: python_ext_build/tmp//../../libtraceevent.a: No such file or directory
  error: command 'gcc' failed with exit status 1
  cp: cannot stat `python_ext_build/lib/': No such file or directory
  make: *** [python/] Error 1

We need to propagate the TE_PATH variable to the file.

Reported-by: Namhyung Kim <>
Signed-off-by: Arnaldo Carvalho de Melo <>
[ Fixed superfluous variable build error. ]
Signed-off-by: Ingo Molnar <>
10 years agoMerge tag 'perf-urgent-for-mingo' of git://
Ingo Molnar [Sat, 20 Oct 2012 00:32:56 +0000 (02:32 +0200)]
Merge tag 'perf-urgent-for-mingo' of git://git./linux/kernel/git/acme/linux into perf/urgent

Pull perf/urgent fixes from Arnaldo Carvalho de Melo:

* The python binding needs to link with libtraceevent and to initialize
  the 'page_size' variable so that mmaping works again.

* The callchain folding character that appears on the TUI just before
  the overhead had disappeared due to recent changes, add it back.

* Intel PEBS in VT-x context uses the DS address as a guest linear address,
  even though its programmed by the host as a host linear address. This either
  results in guest memory corruption and or the hardware faulting and 'crashing'
  the virtual machine.  Therefore we have to disable PEBS on VT-x enter and
  re-enable on VT-x exit, enforcing a strict exclude_guest.

  Kernel side enforcement fix by Peter Zijlstra, tooling side fix by David Ahern.

* Fix build on sparc due to UAPI, fix from David Miller.

* Fixes for the srclike sort key for unresolved symbols and when processing
  samples in JITted code, where we don't have an ELF file, just an special
  symbol table, fixes from Namhyung Kim.

* Fix some leaks in libtraceevent, from Steven Rostedt.

Signed-off-by: Arnaldo Carvalho de Melo <>
Signed-off-by: Ingo Molnar <>
10 years agoMerge tag 'fixes-for-linus' of git://
Linus Torvalds [Sat, 20 Oct 2012 00:32:37 +0000 (17:32 -0700)]
Merge tag 'fixes-for-linus' of git://git./linux/kernel/git/arm/arm-soc

Pull ARM soc fixes from Olof Johansson:
 "A set of fixes and some minor cleanups for -rc2:

   - A series from Arnd that fixes warnings in drivers and other code
     included by ARM defconfigs.  Most have been acked by corresponding
     maintainers (and seem quite hard to argue not picking up anyway in
     the few exception cases).
   - A few misc patches from the list for integrator/vt8500/i.MX
   - A batch of fixes to OMAP platforms, fixing:
     - boot problems on beaglebone,
     - regression fixes for local timers
     - clockdomain locking fixes
     - a few boot/sparse warnings
   - For Tegra:
     - Clock rate calculation overflow fix
     - Revert a change that removed timer clocks and a fix for symbol
       name clashes
   - For Renesas:
     - IO accessor / annotation cleanups to remove warnings
   - For Kirkwood/Dove/mvebu:
     - Fixes for device trees for Dove (some minor cleanups, some fixes)
     - Fixes for the mvebu gpio driver
     - Fix build problem for Feroceon due to missing ifdefs
     - Fix lsxl DTS files"

* tag 'fixes-for-linus' of git:// (31 commits)
  ARM: kirkwood: fix buttons on lsxl boards
  ARM: kirkwood: fix LEDs names for lsxl boards
  ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2
  gpio: mvebu: Add missing breaks in mvebu_gpio_irq_set_type
  ARM: dove: Add crypto engine to DT
  ARM: dove: Remove watchdog from DT
  ARM: dove: Restructure SoC device tree descriptor
  ARM: dove: Fix clock names of sata and gbe
  ARM: dove: Fix tauros2 device tree init
  ARM: dove: Add pcie clock support
  ARM: OMAP2+: Allow kernel to boot even if GPMC fails to reserve memory
  ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable
  ARM: s3c: mark s3c2440_clk_add as __init_refok
  spi/s3c64xx: use correct dma_transfer_direction type
  ARM: OMAP4: devices: fixup OMAP4 DMIC platform device error message
  ARM: OMAP2+: clock data: Add dev-id for the omap-gpmc dummy fck
  ARM: OMAP: resolve sparse warning concerning debug_card_init()
  ARM: OMAP4: Fix twd_local_timer_register regression
  ARM: tegra: add tegra_timer clock
  ARM: tegra: rename tegra system timer

10 years agoMODSIGN: Move the magic string to the end of a module and eliminate the search
David Howells [Sat, 20 Oct 2012 00:19:29 +0000 (01:19 +0100)]
MODSIGN: Move the magic string to the end of a module and eliminate the search

Emit the magic string that indicates a module has a signature after the
signature data instead of before it.  This allows module_sig_check() to
be made simpler and faster by the elimination of the search for the
magic string.  Instead we just need to do a single memcmp().

This works because at the end of the signature data there is the
fixed-length signature information block.  This block then falls
immediately prior to the magic number.

From the contents of the information block, it is trivial to calculate
the size of the signature data and thus the size of the actual module

Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge tag 'kirkwood_fixes_for_v3.7' of git:// fixes-for-linus
Olof Johansson [Fri, 19 Oct 2012 23:17:51 +0000 (16:17 -0700)]
Merge tag 'kirkwood_fixes_for_v3.7' of git:// into fixes

From Jason Cooper:
 - improve #ifdef logic to prevent linker errors with CACHE_FEROCEON_L2
 - lsxl board dts fixes

* tag 'kirkwood_fixes_for_v3.7' of git://
  ARM: kirkwood: fix buttons on lsxl boards
  ARM: kirkwood: fix LEDs names for lsxl boards
  ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2

10 years agoMODSIGN: Cleanup .gitignore
David Howells [Fri, 19 Oct 2012 22:56:45 +0000 (23:56 +0100)]
MODSIGN: Cleanup .gitignore

The module build process no longer creates intermediate files for module
signing, so remove them from .gitignore.

Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
10 years agoMODSIGN: perlify sign-file and merge in x509keyid
David Howells [Fri, 19 Oct 2012 22:56:37 +0000 (23:56 +0100)]
MODSIGN: perlify sign-file and merge in x509keyid

Turn sign-file into perl and merge in x509keyid.  The latter doesn't
need to be a separate script as it doesn't actually need to work out the
SHA1 sum of the X.509 certificate itself, since it can get that from the
X.509 certificate.

Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge branch 'testing/driver-warnings' of git://
Olof Johansson [Fri, 19 Oct 2012 22:40:18 +0000 (15:40 -0700)]
Merge branch 'testing/driver-warnings' of git://git./linux/kernel/git/arm/arm-soc into fixes

A collection of warning fixes on non-ARM code from Arnd Bergmann:

* 'testing/driver-warnings' of git://
  ARM: s3c: mark s3c2440_clk_add as __init_refok
  spi/s3c64xx: use correct dma_transfer_direction type
  pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops
  USB: EHCI: mark ehci_orion_conf_mbus_windows __devinit
  mm/slob: use min_t() to compare ARCH_SLAB_MINALIGN
  SCSI: ARM: make fas216_dumpinfo function conditional
  SCSI: ARM: ncr5380/oak uses no interrupts

10 years agohold task->mempolicy while numa_maps scans.
KAMEZAWA Hiroyuki [Fri, 19 Oct 2012 08:00:55 +0000 (17:00 +0900)]
hold task->mempolicy while numa_maps scans.

  /proc/<pid>/numa_maps scans vma and show mempolicy under
  mmap_sem. It sometimes accesses task->mempolicy which can
  be freed without mmap_sem and numa_maps can show some
  garbage while scanning.

This patch tries to take reference count of task->mempolicy at reading
numa_maps before calling get_vma_policy(). By this, task->mempolicy
will not be freed until numa_maps reaches its end.

  -  updated comments to be more verbose.
  -  removed task_lock() in numa_maps code.
  -  access task->mempolicy only once and remember it.  Becase kernel/exit.c
     can overwrite it.

Signed-off-by: KAMEZAWA Hiroyuki <>
Acked-by: David Rientjes <>
Acked-by: KOSAKI Motohiro <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge branch 'x86/urgent' of git://
Linus Torvalds [Fri, 19 Oct 2012 21:15:16 +0000 (14:15 -0700)]
Merge branch 'x86/urgent' of git://git./linux/kernel/git/tip/tip

Pull miscellaneous x86 fixes from Peter Anvin:
 "The biggest ones are fixing suspend/resume breakage on 32 bits, and an
  interrim fix for mapping over holes that allows AMD kit with more than
  1 TB.

  A final solution for the latter is in the works, but involves some
  fairly invasive changes that will probably mean it will only be
  appropriate for 3.8."

* 'x86/urgent' of git://
  x86, MCE: Remove bios_cmci_threshold sysfs attribute
  x86, amd, mce: Avoid NULL pointer reference on CPU northbridge lookup
  x86: Exclude E820_RESERVED regions and memory holes above 4 GB from direct mapping.
  x86/cache_info: Use ARRAY_SIZE() in amd_l3_attrs()
  x86/reboot: Remove quirk entry for SBC FITPC
  x86, suspend: Correct the restore of CR4, EFER; skip computing EFLAGS.ID

10 years agoMerge branch 'akpm' (Fixes from Andrew)
Linus Torvalds [Fri, 19 Oct 2012 21:07:55 +0000 (14:07 -0700)]
Merge branch 'akpm' (Fixes from Andrew)

Merge misc fixes from Andrew Morton:
 "Seven fixes"

* emailed patches from Andrew Morton <>: (7 patches)
  lib/dma-debug.c: fix __hash_bucket_find()
  mm: compaction: correct the nr_strict va isolated check for CMA
  firmware/memmap: avoid type conflicts with the generic memmap_init()
  pidns: remove recursion from free_pid_ns()
  drivers/video/backlight/lm3639_bl.c: return proper error in lm3639_bled_mode_store() error paths
  kernel/sys.c: fix stack memory content leak via UNAME26
  linux/coredump.h needs asm/siginfo.h

10 years agolib/dma-debug.c: fix __hash_bucket_find()
Ming Lei [Fri, 19 Oct 2012 20:57:01 +0000 (13:57 -0700)]
lib/dma-debug.c: fix __hash_bucket_find()

If there is only one match, the unique matched entry should be returned.

Without the fix, the upcoming dma debug interfaces ("dma-debug: new
interfaces to debug dma mapping errors") can't work reliably because
only device and dma_addr are passed to dma_mapping_error().

Signed-off-by: Ming Lei <>
Reported-by: Wu Fengguang <>
Cc: Joerg Roedel <>
Tested-by: Shuah Khan <>
Cc: Paul Gortmaker <>
Cc: Jakub Kicinski <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agomm: compaction: correct the nr_strict va isolated check for CMA
Mel Gorman [Fri, 19 Oct 2012 20:56:57 +0000 (13:56 -0700)]
mm: compaction: correct the nr_strict va isolated check for CMA

Thierry reported that the "iron out" patch for isolate_freepages_block()
had problems due to the strict check being too strict with "mm:
compaction: Iron out isolate_freepages_block() and
isolate_freepages_range() -fix1".  It's possible that more pages than
necessary are isolated but the check still fails and I missed that this
fix was not picked up before RC1.  This same problem has been identified
in 3.7-RC1 by Tony Prisk and should be addressed by the following patch.

Signed-off-by: Mel Gorman <>
Tested-by: Tony Prisk <>
Reported-by: Thierry Reding <>
Acked-by: Rik van Riel <>
Acked-by: Minchan Kim <>
Cc: Richard Davies <>
Cc: Shaohua Li <>
Cc: Avi Kivity <>
Cc: Arnd Bergmann <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agofirmware/memmap: avoid type conflicts with the generic memmap_init()
Fengguang Wu [Fri, 19 Oct 2012 20:56:55 +0000 (13:56 -0700)]
firmware/memmap: avoid type conflicts with the generic memmap_init()

Fix this build error:

  drivers/firmware/memmap.c:240:19: error: conflicting types for 'memmap_init'
  arch/ia64/include/asm/pgtable.h:565:17: note: previous declaration of 'memmap_init' was here

Signed-off-by: Fengguang Wu <>
Cc: Bernhard Walle <>
Cc: Glauber Costa <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agopidns: remove recursion from free_pid_ns()
Cyrill Gorcunov [Fri, 19 Oct 2012 20:56:53 +0000 (13:56 -0700)]
pidns: remove recursion from free_pid_ns()

free_pid_ns() operates in a recursive fashion:

    kref_put(&ns->kref, free_pid_ns);

thus if there was a huge nesting of namespaces the userspace may trigger
avalanche calling of free_pid_ns leading to kernel stack exhausting and a
panic eventually.

This patch turns the recursion into an iterative loop.

Based on a patch by Andrew Vagin.

[ export put_pid_ns() to modules]
Signed-off-by: Cyrill Gorcunov <>
Cc: Andrew Vagin <>
Cc: Oleg Nesterov <>
Cc: "Eric W. Biederman" <>
Cc: Pavel Emelyanov <>
Cc: Greg KH <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agodrivers/video/backlight/lm3639_bl.c: return proper error in lm3639_bled_mode_store...
Axel Lin [Fri, 19 Oct 2012 20:56:52 +0000 (13:56 -0700)]
drivers/video/backlight/lm3639_bl.c: return proper error in lm3639_bled_mode_store() error paths

Signed-off-by: Axel Lin <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agokernel/sys.c: fix stack memory content leak via UNAME26
Kees Cook [Fri, 19 Oct 2012 20:56:51 +0000 (13:56 -0700)]
kernel/sys.c: fix stack memory content leak via UNAME26

Calling uname() with the UNAME26 personality set allows a leak of kernel
stack contents.  This fixes it by defensively calculating the length of
copy_to_user() call, making the len argument unsigned, and initializing
the stack buffer to zero (now technically unneeded, but hey, overkill).


Reported-by: PaX Team <>
Signed-off-by: Kees Cook <>
Cc: Andi Kleen <>
Cc: PaX Team <>
Cc: Brad Spengler <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agolinux/coredump.h needs asm/siginfo.h
Richard Weinberger [Fri, 19 Oct 2012 20:56:47 +0000 (13:56 -0700)]
linux/coredump.h needs asm/siginfo.h

Commit 5ab1c309b344 ("coredump: pass siginfo_t* to do_coredump() and
below, not merely signr") added siginfo_t to linux/coredump.h but forgot
to include asm/siginfo.h.  This breaks the build for UML/i386.  (And any
other arch where asm/siginfo.h is not magically preincluded...)

  In file included from arch/x86/um/elfcore.c:2:0: include/linux/coredump.h:15:25: error: unknown type name 'siginfo_t'
  make[1]: *** [arch/x86/um/elfcore.o] Error 1

Signed-off-by: Richard Weinberger <>
Cc: Denys Vlasenko <>
Cc: Oleg Nesterov <>
Cc: Amerigo Wang <>
Cc: "Jonathan M. Foote" <>
Cc: Roland McGrath <>
Cc: Pedro Alves <>
Cc: Fengguang Wu <>
Cc: Stephen Rothwell <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agoALSA: hda - add dock support for Thinkpad T430
Stefán Freyr [Fri, 19 Oct 2012 20:46:00 +0000 (22:46 +0200)]
ALSA: hda - add dock support for Thinkpad T430

I have a Lenovo ThinkPad T430 and an UltraBase Series 3 docking

Without this patch, if I plug my headphones into the jack on the
computer, everything works fine. The computer speakers mute and the
audio is played in the headphones. However, if I plug into the docking
station headphone jack the computer speakers are muted but there is no
audio in the headphones.


Signed-off-by: Joseph Salisbury <>
Signed-off-by: Takashi Iwai <>
10 years agoremap_file_pages: correctly handle the case of a NULL vm_ops pointer
Linus Torvalds [Fri, 19 Oct 2012 20:37:57 +0000 (13:37 -0700)]
remap_file_pages: correctly handle the case of a NULL vm_ops pointer

In commit 0b173bc4daa8 ("mm: kill vma flag VM_CAN_NONLINEAR") we
replaced the VM_CAN_NONLINEAR test with checking whether the mapping has
a '->remap_pages()' vm operation, but there is no guarantee that there
it even has a vm_ops pointer at all.

Add the appropriate test for NULL vm_ops.

Reported-by: Sasha Levin <>
Cc: Konstantin Khlebnikov <>
Cc: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge tag 'xtensa-next-20121018' of git://
Linus Torvalds [Fri, 19 Oct 2012 19:52:06 +0000 (12:52 -0700)]
Merge tag 'xtensa-next-20121018' of git://

Pull Xtensa patchset from Chris Zankel:
 "These are all limited to the xtensa subtree and include some important
  changes (adding long missing system calls for newer libc versions and
  other fixes) and the UAPI changes"

* tag 'xtensa-next-20121018' of git://
  xtensa: add missing system calls to the syscall table
  xtensa: minor compiler warning fix
  xtensa: Use Kbuild infrastructure to handle asm-generic headers
  UAPI: (Scripted) Disintegrate arch/xtensa/include/asm
  xtensa: fix unaligned usermode access
  xtensa: reorganize SR referencing
  xtensa: fix boot parameters parsing
  xtensa: fix missing return in do_page_fault for SIGBUS case
  xtensa: copy_thread with CLONE_VM must not copy live parent AR windows
  xtensa: fix memmove(), bcopy(), and memcpy().
  xtensa: ISS: fix rs_put_char
  xtensa: ISS: fix specific simcalls

10 years agokbuild: Fix module signature generation
Linus Torvalds [Fri, 19 Oct 2012 19:43:19 +0000 (12:43 -0700)]
kbuild: Fix module signature generation

Rusty had clearly not actually tested his module signing changes that I
(trustingly) applied as commit e2a666d52b48 ("kbuild: sign the modules
at install time"). That commit had multiple bugs:

 - using "${#VARIABLE}" to get the number of characters in a shell
   variable may look clever, but it's locale-dependent: it returns the
   number of *characters*, not bytes. And we do need bytes.

   So don't use "${#..}" expansion, do the stupid "wc -c" thing instead
   (where "c" stands for "bytes", not "characters", despite the letter.

 - Rusty had confused "siglen" and "signerlen", and his conversion
   didn't set "signerlen" at all, and incorrectly set "siglen" to the
   size of the signer, not the size of the signature.

End result: the modified sign-file script did create something that
superficially *looked* like a signature, but didn't actually work at
all, and would fail the signature check. Oops.

Tssk, tssk, Rusty.

But Rusty was definitely right that this whole thing should be rewritten
in perl by somebody who has the perl-fu to do so.  That is not me,
though - I'm just doing an emergency fix for the shell script.

Cc: Rusty Russell <>
Signed-off-by: Linus Torvalds <>
10 years agoxen: Fix annoying compile-time warning
Linus Torvalds [Fri, 19 Oct 2012 18:54:21 +0000 (11:54 -0700)]
xen: Fix annoying compile-time warning

Commit cb6b6df111e4 ("xen/pv-on-hvm kexec: add quirk for Xen 3.4 and
shutdown watches.") added the xen_strict_xenbus_quirk() function with an
old K&R-style declaration without proper typing, causing gcc to rightly

  drivers/xen/xenbus/xenbus_xs.c:628:13: warning: function declaration isn’t a prototype [-Wstrict-prototypes]

because we really don't live in caves using stone-age tools any more,
and the kernel has always used properly typed ANSI C function

So if a function doesn't take arguments, we tell the compiler so
explicitly by adding the proper "void" in the prototype.

I'm sure there are tons of other examples of this kind of stuff in the
tree, but this is the one that hits my workstation config, so..

Signed-off-by: Linus Torvalds <>
10 years agoMerge tag 'hwmon-for-linus' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:48:32 +0000 (11:48 -0700)]
Merge tag 'hwmon-for-linus' of git://git./linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:
 "Drop some leftover dependencies on CONFIG_EXPERIMENTAL, and add
  support for Intel Atom CE4110/4150/4170."

* tag 'hwmon-for-linus' of git://
  hwmon: (coretemp) Add support for Atom CE4110/4150/4170
  Documentation/hwmon: remove CONFIG_EXPERIMENTAL
  hwmon: (pmbus) remove CONFIG_EXPERIMENTAL

10 years agoMerge tag 'tty-3.7-rc1' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:28:59 +0000 (11:28 -0700)]
Merge tag 'tty-3.7-rc1' of git://git./linux/kernel/git/gregkh/tty

Pull TTY fixes from Greg Kroah-Hartman:
 "Here are some tty and serial driver fixes for your 3.7-rc1 tree.

  Again, the UABI header file fixes, and a number of build and runtime
  serial driver bugfixes that solve problems people have been reporting
  (the staging driver is a tty driver, hence the fixes coming in through
  this tree.)

  All of these have been in the linux-next tree for a while.

Signed-off-by: Greg Kroah-Hartman <>"
* tag 'tty-3.7-rc1' of git://
  staging: dgrp: check return value of alloc_tty_driver
  staging: dgrp: check for NULL pointer in (un)register_proc_table
  serial/8250_hp300: Missing 8250 register interface conversion bits
  UAPI: (Scripted) Disintegrate include/linux/hsi
  tty: serial: sccnxp: Fix bug with unterminated platform_id list
  staging: serial: dgrp: Add missing #include <linux/uaccess.h>
  serial: sccnxp: Allows the driver to be compiled as a module
  tty: Fix bogus "callbacks suppressed" messages
  net, TTY: initialize tty->driver_data before usage

10 years agoMerge tag 'usb-3.7-rc1' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:28:10 +0000 (11:28 -0700)]
Merge tag 'usb-3.7-rc1' of git://git./linux/kernel/git/gregkh/usb

Pull USB fixes from Greg Kroah-Hartman:
 "Here are the USB patches against your 3.7-rc1 tree.

  There are the usual UABI header file movements, and we finally are now
  able to remove the dbg() macro that is over 15 years old (that had to
  wait for after some other trees got merged into yours during the big
  3.7-rc1 merge window.)

  Other than that, nothing major, just a number of bugfixes and new
  device ids.  It turns out that almost all of the usb-serial drivers
  had bugs in how they were handling their internal data, leaking
  memory, hence all of those fixups.

Signed-off-by: Greg Kroah-Hartman <>"
* tag 'usb-3.7-rc1' of git:// (42 commits)
  USB: option: add more ZTE devices
  USB: option: blacklist net interface on ZTE devices
  usb: host: xhci: New system added for Compliance Mode Patch on SN65LVPE502CP
  USB: io_ti: fix sysfs-attribute creation
  USB: iuu_phoenix: fix sysfs-attribute creation
  USB: spcp8x5: fix port-data memory leak
  USB: ssu100: fix port-data memory leak
  USB: ti_usb_3410_5052: fix port-data memory leak
  USB: oti6858: fix port-data memory leak
  USB: iuu_phoenix: fix port-data memory leak
  USB: kl5kusb105: fix port-data memory leak
  USB: io_ti: fix port-data memory leak
  USB: keyspan_pda: fix port-data memory leak
  USB: f81232: fix port-data memory leak
  USB: io_edgeport: fix port-data memory leak
  USB: kobil_sct: fix port-data memory leak
  USB: cypress_m8: fix port-data memory leak
  usb: acm: fix the computation of the number of data bits
  usb: Missing dma_mask in ehci-vt8500.c when probed from device-tree
  usb: Missing dma_mask in uhci-platform.c when probed from device-tree

10 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:04:59 +0000 (11:04 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/rkuo/linux-hexagon-kernel

Pull hexagon updates from Richard Kuo:
 "It includes the Hexagon UAPI changes from David Howells and some CR
  marking changes for the transition from Code Aurora to Linux

* 'for-linus' of git://
  Hexagon: Copyright marking changes
  UAPI: (Scripted) Disintegrate arch/hexagon/include/asm

10 years agoMerge tag 'parisc-for-linus' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:02:02 +0000 (11:02 -0700)]
Merge tag 'parisc-for-linus' of git://git./linux/kernel/git/jejb/parisc-2.6

Pull PARISC changes from James Bottomley:
 "This is a couple of high code motion patches (all within arch/parisc)
  I'd like to apply at -rc1 to avoid conflicts with anything else.  One
  moves us on to the generated instead of included asm file model and
  the other is a pull request from David Howells for UAPI

Signed-off-by: James Bottomley <>"
* tag 'parisc-for-linus' of git://
  UAPI: (Scripted) Disintegrate arch/parisc/include/asm
  [PARISC] asm: redo generic includes

10 years agoMAINTAINERS: Add Rafael's address to ACPI maintainers
Rafael J. Wysocki [Fri, 19 Oct 2012 05:11:44 +0000 (07:11 +0200)]
MAINTAINERS: Add Rafael's address to ACPI maintainers

Since I will be maintaining ACPI together with Len from now on, add my
address to the ACPI maintainers list in the MAINTAINERS file (this is
the address to send patches to).

Signed-off-by: Rafael J. Wysocki <>
Acked-by: Len Brown <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge branch 'for-3.7' of git://
Linus Torvalds [Fri, 19 Oct 2012 18:00:00 +0000 (11:00 -0700)]
Merge branch 'for-3.7' of git://

Pull nfsd bugfixes from J Bruce Fields.

* 'for-3.7' of git://
  SUNRPC: Prevent kernel stack corruption on long values of flush
  NLM: nlm_lookup_file() may return NLMv4-specific error codes

10 years agoUSB: ehci-fsl: Return valid error in ehci_fsl_setup_phy
Ben Collins [Fri, 19 Oct 2012 14:24:12 +0000 (10:24 -0400)]
USB: ehci-fsl: Return valid error in ehci_fsl_setup_phy

ehci_fsl_setup_phy is supposed to return an int, but had a void return
value in the case of controller_ver being invalid.

Introduced by commit 3735ba8db8e6 ("powerpc/usb: fix bug of CPU hang
when missing USB PHY clock"), which missed one return.

Signed-off-by: Ben Collins <>
Cc: Shengzhou Liu <>
Cc: Greg Kroah-Hartman <>
Signed-off-by: Linus Torvalds <>
10 years agoxtensa: add missing system calls to the syscall table
Chris Zankel [Fri, 19 Oct 2012 17:46:44 +0000 (10:46 -0700)]
xtensa: add missing system calls to the syscall table

Add the following system calls to the syscall table:


Note that we have to use the 'sys_sync_file_range2' version, so that
the 64-bit arguments are aligned correctly to the argument registers.

Signed-off-by: Chris Zankel <>
10 years agoMerge tag 'disintegrate-parisc-20121016' into for-linus
James Bottomley [Fri, 19 Oct 2012 17:26:06 +0000 (10:26 -0700)]
Merge tag 'disintegrate-parisc-20121016' into for-linus

UAPI Disintegration 2012-10-16

Signed-off-by: James Bottomley <>
10 years agoxtensa: minor compiler warning fix
Chris Zankel [Thu, 18 Oct 2012 06:08:20 +0000 (23:08 -0700)]
xtensa: minor compiler warning fix

Fix two compiler warnings complaining about truncating a value on
a 64-bit host, and about declaring an unused variable that is only
used for a specific configuration.

Signed-off-by: Chris Zankel <>
10 years agokbuild: sign the modules at install time
Rusty Russell [Fri, 19 Oct 2012 01:23:15 +0000 (11:53 +1030)]
kbuild: sign the modules at install time

Linus deleted the old code and put signing on the install command,
I fixed it to extract the keyid and signer-name within sign-file
and cleaned up that script now it always signs in-place.

Some enthusiast should convert sign-key to perl and pull
x509keyid into it.

Signed-off-by: Rusty Russell <>
Signed-off-by: Linus Torvalds <>
10 years agoMerge commit '5bc66170dc486556a1e36fd384463536573f4b82' into x86/urgent
H. Peter Anvin [Fri, 19 Oct 2012 14:54:24 +0000 (07:54 -0700)]
Merge commit '5bc66170dc486556a1e36fd384463536573f4b82' into x86/urgent

From Borislav Petkov <>:

Below is a RAS fix which reverts the addition of a sysfs attribute
which we agreed is not needed, post-factum. And this should go in now
because that sysfs attribute is going to end up in 3.7 otherwise and
thus exposed to userspace; removing it then would be a lot harder.

This is done as a merge rather than a simple patch/cherry-pick since
the baseline for this patch was not in the previous x86/urgent.

Signed-off-by: H. Peter Anvin <>
10 years agox86, MCE: Remove bios_cmci_threshold sysfs attribute
Borislav Petkov [Thu, 18 Oct 2012 13:10:56 +0000 (15:10 +0200)]
x86, MCE: Remove bios_cmci_threshold sysfs attribute

450cc201038f3 ("x86/mce: Provide boot argument to honour bios-set CMCI
threshold") added the bios_cmci_threshold sysfs attribute which was
supposed to communicate to userspace tools that BIOS CMCI threshold has
been honoured.

However, this info is not of any importance to userspace - it should
rather get the actual error count it has been thresholded already from

So drop this before it becomes a used interface (good thing we caught
this early in 3.7-rc1, right after the merge window closed).

Cc: Naveen N. Rao <>
Acked-by: Tony Luck <>
Signed-off-by: Borislav Petkov <>
10 years agoMerge branch 'v4l_for_linus' of git://
Linus Torvalds [Thu, 18 Oct 2012 23:10:42 +0000 (16:10 -0700)]
Merge branch 'v4l_for_linus' of git://git./linux/kernel/git/mchehab/linux-media

Pull media fixes from Mauro Carvalho Chehab:
 "Media fixes for:
   - one Kconfig fix patch;
   - one patch fixing DocBook breakage due to the drivers/media UAPI
   - the remaining UAPI media changes (DVB API).

  I'm aware that is is a little late for the UAPI renames for the DVB
  API, but IMHO, it is better to merge it for 3.7, due to two reasons:

   1) There is a major rename at 3.7 (not only uapi changes, but also
      the entire media drivers were reorganized on 3.7, in order to
      simplify the Kconfig logic, and easy drivers selection, especially
      for hybrid devices).  By confining all those renames there at 3.7
      it will cause all the harm at for media developers on just one
      shot.  Stable backports upstream and at distros will likely
      welcome it as well, as they won't need to check what changed on
      3.7 and what was postponed for on 3.8.

   2) The V4L2 DocBook Makefile creates a cross-reference between the
      media API headers and the specs.  This helps us _a_lot_ to be sure
      that all API improvements are properly documented.  Every time a
      header changes from one place to another, DocBook/media/Makefile
      needs to be patched.  Currently, the DocBook breakage patch
      depends on the DVB UAPI."

* 'v4l_for_linus' of git://
  [media] Kconfig: Fix dependencies for driver autoselect options
  DocBook/media/Makefile: Fix build due to uapi breakage
  UAPI: (Scripted) Disintegrate include/linux/dvb

10 years agoHexagon: Copyright marking changes
Richard Kuo [Wed, 19 Sep 2012 21:22:02 +0000 (16:22 -0500)]
Hexagon: Copyright marking changes

Code Aurora Forum (CAF) is becoming a part of Linux Foundation Labs.

Signed-off-by: Richard Kuo <>
10 years agoUAPI: (Scripted) Disintegrate arch/hexagon/include/asm
David Howells [Tue, 9 Oct 2012 08:46:55 +0000 (09:46 +0100)]
UAPI: (Scripted) Disintegrate arch/hexagon/include/asm

Signed-off-by: David Howells <>
Acked-by: Arnd Bergmann <>
Acked-by: Thomas Gleixner <>
Acked-by: Michael Kerrisk <>
Acked-by: Paul E. McKenney <>
Acked-by: Dave Jones <>
Signed-off-by: Richard Kuo <>
10 years agocrypto: aesni - fix XTS mode on x86-32, add wrapper function for asmlinkage aesni_enc()
Jussi Kivilinna [Thu, 18 Oct 2012 20:24:57 +0000 (23:24 +0300)]
crypto: aesni - fix XTS mode on x86-32, add wrapper function for asmlinkage aesni_enc()

Calling convention for internal functions and 'asmlinkage' functions is
different on x86-32. Therefore do not directly cast aesni_enc as XTS tweak
function, but use wrapper function in between. Fixes crash with "XTS +
aesni_intel + x86-32" combination.

Reported-by: Krzysztof Kolasa <>
Signed-off-by: Jussi Kivilinna <>
Acked-by: David S. Miller <>
Signed-off-by: Linus Torvalds <>
10 years agofs, xattr: fix bug when removing a name not in xattr list
David Rientjes [Thu, 18 Oct 2012 03:41:15 +0000 (20:41 -0700)]
fs, xattr: fix bug when removing a name not in xattr list

Commit 38f38657444d ("xattr: extract simple_xattr code from tmpfs") moved
some code from tmpfs but introduced a subtle bug along the way.

If the name passed to simple_xattr_remove() does not exist in the list of
xattrs, then it is possible to call kfree(new_xattr) when new_xattr is
actually initialized to itself on the stack via uninitialized_var().

This causes a BUG() since the memory was not allocated via the slab
allocator and was not bypassed through to the page allocator because it
was too large.

Initialize the local variable to NULL so the kfree() never takes place.

Reported-by: Fengguang Wu <>
Signed-off-by: David Rientjes <>
Acked-by: Hugh Dickins <>
Acked-by: Aristeu Rozanski <>
Signed-off-by: Linus Torvalds <>
10 years agoarm64: ptrace: use HW_BREAKPOINT_EMPTY type for disabled breakpoints
Will Deacon [Thu, 18 Oct 2012 14:17:00 +0000 (15:17 +0100)]
arm64: ptrace: use HW_BREAKPOINT_EMPTY type for disabled breakpoints

If a debugger tries to zero a hardware debug control register, the
kernel will try to infer both the type and length of the breakpoint
in order to sanity-check against the requested regset type. This will
fail because the encoding will appear as a zero-length breakpoint.

This patch changes the control register setting so that disabled
breakpoints are treated as HW_BREAKPOINT_EMPTY and no further
sanity-checking is required.

Signed-off-by: Will Deacon <>
Signed-off-by: Catalin Marinas <>
10 years agoarm64: ptrace: make structure padding explicit for debug registers
Will Deacon [Thu, 11 Oct 2012 11:10:57 +0000 (12:10 +0100)]
arm64: ptrace: make structure padding explicit for debug registers

The user_hwdebug_state structure contains implicit padding to conform to
the alignment requirements of the AArch64 ABI (namely that aggregates
must be aligned to their most aligned member).

This patch fixes the ptrace functions operating on struct
user_hwdebug_state so that the padding is handled correctly.

Signed-off-by: Will Deacon <>
Signed-off-by: Catalin Marinas <>
10 years agoarm64: No need to set the x0-x2 registers in start_thread()
Catalin Marinas [Tue, 16 Oct 2012 16:07:46 +0000 (17:07 +0100)]
arm64: No need to set the x0-x2 registers in start_thread()

For historical reasons, ARM used to set r0-r2 in start_thread() to the
first values on the user stack when starting a new user application. The
same logic has been inherited in AArch64. The x0 register is overridden
by the sys_execve() return value so it's always zero on success. The x1
and x2 registers are ignored by AArch64 and EABI AArch32 applications,
so we can safely remove the register setting for both native and compat
user space.

This also fixes a potential fault with the kernel accessing user space
stack directly.

Signed-off-by: Catalin Marinas <>
Reported-by: Al Viro <>
10 years agoarm64: Ignore memory blocks below PHYS_OFFSET
Catalin Marinas [Tue, 16 Oct 2012 11:00:29 +0000 (12:00 +0100)]
arm64: Ignore memory blocks below PHYS_OFFSET

According to Documentation/arm64/booting.txt, the kernel image must be
loaded at a pre-defined offset from the start of RAM so that the kernel
can calculate PHYS_OFFSET based on this address. If the DT contains
memory blocks below this PHYS_OFFSET, report them and ignore the
corresponding memory range.

Signed-off-by: Catalin Marinas <>
10 years agoarm64: Fix the update_vsyscall() prototype
Catalin Marinas [Tue, 16 Oct 2012 10:44:53 +0000 (11:44 +0100)]
arm64: Fix the update_vsyscall() prototype

With commit 576094b7 (time: Introduce new GENERIC_TIME_VSYSCALL) the old
update_vsyscall() prototype is no longer available. This patch updates
the arm64 port.

Signed-off-by: Catalin Marinas <>
Acked-by: Will Deacon <>
Cc: John Stultz <>
10 years agoarm64: Select MODULES_USE_ELF_RELA
Catalin Marinas [Tue, 16 Oct 2012 10:26:57 +0000 (11:26 +0100)]

With commit 786d35d4 (make most arch asm/module.h files use
asm-generic/module.h) arm64 needs to enable MODULES_USE_ELF_RELA for
loadable modules.

Signed-off-by: Catalin Marinas <>
Acked-by: Will Deacon <>
10 years agoMerge branch 'upstream' of git://
Linus Torvalds [Thu, 18 Oct 2012 18:49:39 +0000 (11:49 -0700)]
Merge branch 'upstream' of git://

Pull MIPS fixes from Ralf Baechle:
 "Random small fixes across the MIPS code."

* 'upstream' of git://
  MIPS: CMP: Fix physical core number calculation logic
  MIPS: JZ4740: Forward declare struct uart_port in header.
  MIPS: JZ4740: Fix '#include guard' in serial.h
  MIPS: hugetlbfs: Fix hazard between tlb write and pagemask restoration.
  MIPS: Restore pagemask after dumping the TLB.
  MIPS: Hugetlbfs: Handle huge pages correctly in pmd_bad()
  MIPS: R5000: Fix TLB hazard handling.
  MIPS: tlbex: Deal with re-definition of label
  MIPS: Make __{,n,u}delay declarations match definitions and generic delay.h

10 years agoMerge branch 'merge' of git://
Linus Torvalds [Thu, 18 Oct 2012 18:48:48 +0000 (11:48 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/benh/powerpc

Pull powerpc fixes from Benjamin Herrenschmidt:
 "Here are a handful of powerpc related fixes."

* 'merge' of git://
  cpuidle/powerpc: Fix snooze state problem in the cpuidle design on pseries.
  cpuidle/powerpc: Fix smt_snooze_delay functionality.
  cpuidle/powerpc: Fix target residency initialisation in pseries cpuidle
  powerpc: Build fix for powerpc KVM
  Revert "powerpc/perf: Use pmc_overflow() to detect rolled back events"

10 years agoMerge tag 'dt-fixes-for-3.7' of git://
Linus Torvalds [Thu, 18 Oct 2012 18:47:53 +0000 (11:47 -0700)]
Merge tag 'dt-fixes-for-3.7' of git://

Pull DeviceTree fixes from Rob Herring:
 "A handful of fixes:
   - a fix for dtc from upstream
   - sparse fixes in DeviceTree code
   - stub of_get_child_by_name for !OF builds"

* tag 'dt-fixes-for-3.7' of git://
  dtc: fix for_each_*() to skip first object if deleted
  of/platform: sparse fix
  of/irq: sparse fixes
  of/address: sparse fixes
  of: add stub of_get_child_by_name for non-OF builds

10 years agoMerge tag 'sound-3.7' of git://
Linus Torvalds [Thu, 18 Oct 2012 18:47:07 +0000 (11:47 -0700)]
Merge tag 'sound-3.7' of git://git./linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Significant changes are:
   - A regression fix for the new HD-audio LPIB delay counting,
     VGA-switcheroo race fix
   - ASoC ams-delta fix for the broken driver loading

  Otherwise a collection of mostly small / trivial fixes."

* tag 'sound-3.7' of git://
  ALSA: emu10k1: add chip details for E-mu 1010 PCIe card
  ALSA: hda - Always check array bounds in alc_get_line_out_pfx
  ASoC: bells: Correct typo in sub speaker DAI name for WM5110
  ALSA: hda - Stop LPIB delay counting on broken hardware
  ALSA: hda - Fix registration race of VGA switcheroo
  ALSA: hda - Clean up superfluous position_fix list entries
  ALSA: ac97 - Fix missing NULL check in snd_ac97_cvol_new()
  ASoC: codecs: da9055: Minor improvement in ALC calibration process
  ASoC: dmaengine: Correct Makefile when sound is built as module
  ASoC: fsi: don't reschedule DMA from an atomic context
  ASoC: fix documentation in soc-jack
  ARM: pxa: Fix build error caused by sram.h rename
  ASoC: wm2200: Fix non-inverted OUT2 mute control
  ASoC: wm2200: Use rev A register patches on rev B
  ASoC: bells: Correct typo in sub speaker DAI name for WM5110
  ASoC: ams-delta: Convert to use snd_soc_register_card()
  ASoC: omap-mcpdm: Remove OMAP revision check
  ASoC: Fix wrong include for McPDM
  ASoC: omap-abe-twl6040: Fix typo of Vibrator
  ASoC: twl6040: Fix Stream DAPM mapping

10 years agoARM: kirkwood: fix buttons on lsxl boards
Michael Walle [Thu, 27 Sep 2012 21:54:37 +0000 (23:54 +0200)]
ARM: kirkwood: fix buttons on lsxl boards

Change event type to switch for the power and autopower switches.
Additionally, this patch aligns the keycodes with the other linkstation
boards already supported by linux.

Signed-off-by: Michael Walle <>
Signed-off-by: Jason Cooper <>
10 years agoARM: kirkwood: fix LEDs names for lsxl boards
Michael Walle [Mon, 24 Sep 2012 20:49:02 +0000 (22:49 +0200)]
ARM: kirkwood: fix LEDs names for lsxl boards

Don't use the specific board name in a the common device tree include file.
Instead use the common name 'lsxl'.

Signed-off-by: Michael Walle <>
Signed-off-by: Jason Cooper <>
10 years agoARM: Kirkwood: fix disabling CACHE_FEROCEON_L2
Jason Gunthorpe [Sun, 30 Sep 2012 23:22:53 +0000 (17:22 -0600)]
ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2

Move the CACHE_FEROCEON_L2 test to kirkwood_l2_init, since linking
fails on the reference to feroceon_l2_init.

Signed-off-by: Jason Gunthorpe <>
Signed-off-by: Jason Cooper <>
10 years agoUSB: option: add more ZTE devices
Bjørn Mork [Thu, 18 Oct 2012 15:14:17 +0000 (17:14 +0200)]
USB: option: add more ZTE devices

Cc: <>
Signed-off-by: Bjørn Mork <>
Signed-off-by: Greg Kroah-Hartman <>
10 years agoUSB: option: blacklist net interface on ZTE devices
Bjørn Mork [Thu, 18 Oct 2012 15:19:53 +0000 (17:19 +0200)]
USB: option: blacklist net interface on ZTE devices

Based on information from the ZTE Windows drivers.

Cc: <>
Signed-off-by: Bjørn Mork <>
Signed-off-by: Greg Kroah-Hartman <>
10 years agoMerge tag 'fixes-for-v3.7-rc2' of git://
Greg Kroah-Hartman [Thu, 18 Oct 2012 15:14:10 +0000 (08:14 -0700)]
Merge tag 'fixes-for-v3.7-rc2' of git://git./linux/kernel/git/balbi/usb into usb-linus

usb: fixes for v3.7-rc2

Here's the first set of fixes for v3.7-rc cycle.

DesignWare Core USB3 Driver (dwc3) got two fixes. The first one fixes a long
standing bug which would keep endpoint with BUSY flag set forever if we cancel
a transfer which has already been started by the controller. The second fix
will just switch PHYs back off when DWC3 driver is removed.

MUSB fixed a bug which would cause a Kernel Oops at least on AM3517 when
removing a device. For some reason that particular device can fall into a
situation where you have both Disconnect and Endpoint IRQs happen
simultaneously (have both bits set in IRQ_STATUS register) and, because
Disconnect Interrupt is handled before Endpoint Interrupts, we would try to
transfer data over a disconnected device, thus generating a kernel oops.

Renensas' USB DRD driver got two fixes which are a) fixing an off-by-one bug on
the pipe iterator implementation and b) fixing Interrupt Status Clear procedure
in order to properly clear a single Interrupt event without clearing (and
masking) other events we didn't handle yet.

10 years agousb: host: xhci: New system added for Compliance Mode Patch on SN65LVPE502CP
Alexis R. Cortes [Wed, 17 Oct 2012 19:09:12 +0000 (14:09 -0500)]
usb: host: xhci: New system added for Compliance Mode Patch on SN65LVPE502CP

This minor change adds a new system to which the "Fix Compliance Mode
on SN65LVPE502CP Hardware" patch has to be applied also.

System added:
Vendor: Hewlett-Packard. System Model: Z1

Signed-off-by: Alexis R. Cortes <>
Acked-by: Sarah Sharp <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
10 years agoUSB: io_ti: fix sysfs-attribute creation
Johan Hovold [Thu, 18 Oct 2012 09:43:28 +0000 (11:43 +0200)]
USB: io_ti: fix sysfs-attribute creation

Make sure port data is initialised before creating sysfs attributes to
avoid a race.

A recent patch ("USB: io_ti: fix port-data memory leak") got the
sysfs-attribute creation and port-data initialisation ordering wrong.

Cc: <>
Signed-off-by: Johan Hovold <>
Signed-off-by: Greg Kroah-Hartman <>
10 years agoUSB: iuu_phoenix: fix sysfs-attribute creation
Johan Hovold [Thu, 18 Oct 2012 08:52:17 +0000 (10:52 +0200)]
USB: iuu_phoenix: fix sysfs-attribute creation

Make sure sysfs attributes are created at port probe.

A recent patch ("USB: iuu_phoenix: fix port-data memory leak") removed
the sysfs-attribute creation by mistake.

Reported-by: Yuanhan Liu <>
Cc: <>
Signed-off-by: Johan Hovold <>
Signed-off-by: Greg Kroah-Hartman <>
10 years agoMIPS: CMP: Fix physical core number calculation logic
jerin jacob [Thu, 11 Oct 2012 16:48:51 +0000 (22:18 +0530)]
MIPS: CMP: Fix physical core number calculation logic

The CPUNum Field in EBase register is 10bit wide, so after 1 bit right
shift, the mask value should be 0x1ff.

Signed-off-by: jerin jacob <>
Signed-off-by: Ralf Baechle <>
10 years agoMerge tag 'mvebu_gpio_fixes_for_v3.7' of git://
Olof Johansson [Thu, 18 Oct 2012 00:13:24 +0000 (17:13 -0700)]
Merge tag 'mvebu_gpio_fixes_for_v3.7' of git:// into fixes

From Jason Cooper:
 - missing break;s from converting if{}s to switch{}

* tag 'mvebu_gpio_fixes_for_v3.7' of git://
  gpio: mvebu: Add missing breaks in mvebu_gpio_irq_set_type

10 years agoMerge tag 'mvebu_dove_late_fixes_for_v3.7' of git://
Olof Johansson [Thu, 18 Oct 2012 00:09:37 +0000 (17:09 -0700)]
Merge tag 'mvebu_dove_late_fixes_for_v3.7' of git:// into fixes

From Jason Cooper:

Misc. fixes for latest changes to mach-dove/
Fixes build breakage for mach-dove

* tag 'mvebu_dove_late_fixes_for_v3.7' of git://
  ARM: dove: Add crypto engine to DT
  ARM: dove: Remove watchdog from DT
  ARM: dove: Restructure SoC device tree descriptor
  ARM: dove: Fix clock names of sata and gbe
  ARM: dove: Fix tauros2 device tree init
  ARM: dove: Add pcie clock support

10 years agoMerge tag 'omap-for-v3.7-rc1/fixes-take5-signed' of git://
Olof Johansson [Thu, 18 Oct 2012 00:05:25 +0000 (17:05 -0700)]
Merge tag 'omap-for-v3.7-rc1/fixes-take5-signed' of git://git./linux/kernel/git/tmlind/linux-omap into fixes

From Tony Lindgren:

A boot problem fix for am33xx beaglebone caused by GPMC,
a regression fix for local timer, and a clockdomain locking fix.
Also few minor fixes for boot time and sparse warnings.

* tag 'omap-for-v3.7-rc1/fixes-take5-signed' of git://
  ARM: OMAP2+: Allow kernel to boot even if GPMC fails to reserve memory
  ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable
  ARM: OMAP4: devices: fixup OMAP4 DMIC platform device error message
  ARM: OMAP2+: clock data: Add dev-id for the omap-gpmc dummy fck
  ARM: OMAP: resolve sparse warning concerning debug_card_init()
  ARM: OMAP4: Fix twd_local_timer_register regression

10 years agoMerge tag 'tegra-for-3.7-fixes-for-rc2' of git://
Olof Johansson [Thu, 18 Oct 2012 00:04:27 +0000 (17:04 -0700)]
Merge tag 'tegra-for-3.7-fixes-for-rc2' of git://git./linux/kernel/git/swarren/linux-tegra into fixes

From Stephen Warren: ARM: tegra: fixes for 3.7-rc2

This branch contains a couple small fixes for Tegra for 3.7.

* A fix for another clock rate calculation overflow
* A revert of a change that removed the "timer" clock on Tegra, coupled
  with a fix for the confusing symbol name clash that triggered it.

* tag 'tegra-for-3.7-fixes-for-rc2' of git://
  ARM: tegra: add tegra_timer clock
  ARM: tegra: rename tegra system timer
  ARM: tegra30: clk: Fix output_rate overflow

Signed-off-by: Olof Johansson <>
10 years agocpuidle/powerpc: Fix snooze state problem in the cpuidle design on pseries.
Deepthi Dharwar [Wed, 3 Oct 2012 18:42:26 +0000 (18:42 +0000)]
cpuidle/powerpc: Fix snooze state problem in the cpuidle design on pseries.

Earlier without cpuidle framework on pseries, the native arch
idle routine comprised of both snooze and nap
states.  smt_snooze_delay variable was used to delay
the idle process entry to deeper idle state like  nap.
With the coming of cpuidle, this arch specific idle was replaced
by two different idle routines, one for supporting snooze and other
for nap. This enabled addition of more
low level idle states on pseries in the future.

On adopting the generic cpuidle framework for POWER systems,
the decision of which idle state to choose from,  given a predicted
idle time is taken by the menu governor based on
target_residency and  exit_latency of the idle states.
target_residency is the minimum time to be resident in that idle state.
Exit_latency is time taken to exit out of idle state.
Deeper the idle state, both the target residency and exit latency
would be higher.

In the current design, smt_snooze_delay is used as target_residency
for the  snooze state which is incorrect, as it is not the
minimum but the maximum duration to be in snooze state.
This would  result in the governor in taking bad decision,
as presently target_residency of nap < target_residency of snooze
inspite of nap being deeper idle state.

This patch aims to fix this problem by replacing the smt_snooze_delay loop
in snooze state, with the need_resched()  as the governor is aware of
entry and exit of various idle transitions based on which
next idle time prediction.

The governor is intelligent enough to determine the idle state the needs to
be transitioned to and maintains a whole of heuristics including
io load, previous idle states predictions etc for the same, based on
which idle state entry decision is taken.

With this fix, of setting target_residency of snooze to 0
     nap to smt_snooze_delay
if the predicted idle time is less
than smt_snooze_delay (target_residency of nap)
value governor would pick snooze state, else nap. This adhers to the
previous native idle design.

Signed-off-by: Deepthi Dharwar <>
Signed-off-by: Benjamin Herrenschmidt <>
10 years agocpuidle/powerpc: Fix smt_snooze_delay functionality.
Deepthi Dharwar [Wed, 3 Oct 2012 18:42:18 +0000 (18:42 +0000)]
cpuidle/powerpc: Fix smt_snooze_delay functionality.

smt_snooze_delay was designed to  delay idle loop's nap entry
in the native idle code before it got  ported over to use as part of
the cpuidle framework.

A -ve value  assigned to smt_snooze_delay should result in
busy looping, in other words disabling the entry to nap state.


This particular functionality can be achieved currently by
echo 1 > /sys/devices/system/cpu/cpu*/state1/disable
but it is broken when one assigns -ve value to  the smt_snooze_delay
variable either via sysfs entry or ppc64_cpu util.

This patch aims to fix this, by disabling nap state when smt_snooze_delay
variable is set to -ve value.

Signed-off-by: Deepthi Dharwar <>
Signed-off-by: Benjamin Herrenschmidt <>
10 years agocpuidle/powerpc: Fix target residency initialisation in pseries cpuidle
Deepthi Dharwar [Wed, 3 Oct 2012 18:42:10 +0000 (18:42 +0000)]
cpuidle/powerpc: Fix target residency initialisation in pseries cpuidle

Remove the redundant target residency initialisation in pseries_cpuidle_driver_init().
This is currently over-writing the residency time updated as part of the static
table, resulting in  all the idle states having the same target
residency of 100us which is incorrect. This may result in the menu governor making
wrong state decisions.

Signed-off-by: Deepthi Dharwar <>
Signed-off-by: Benjamin Herrenschmidt <>
10 years agopowerpc: Build fix for powerpc KVM
Aneesh Kumar K.V [Tue, 16 Oct 2012 22:25:45 +0000 (22:25 +0000)]
powerpc: Build fix for powerpc KVM

Fix build failure for powerpc KVM by adding missing VPN_SHIFT definition
and the ';'

arch/powerpc/kvm/book3s_32_mmu_host.c: In function 'kvmppc_mmu_map_page':
arch/powerpc/kvm/book3s_32_mmu_host.c:176: error: 'VPN_SHIFT' undeclared (first use in this function)
arch/powerpc/kvm/book3s_32_mmu_host.c:176: error: (Each undeclared identifier is reported only once
arch/powerpc/kvm/book3s_32_mmu_host.c:176: error: for each function it appears in.)
arch/powerpc/kvm/book3s_32_mmu_host.c:178: error: expected ';' before 'next_pteg'
arch/powerpc/kvm/book3s_32_mmu_host.c:190: error: label 'next_pteg' used but not defined
make[1]: *** [arch/powerpc/kvm/book3s_32_mmu_host.o] Error 1

Signed-off-by: Aneesh Kumar K.V <>
Signed-off-by: Benjamin Herrenschmidt <>
10 years agoRevert "powerpc/perf: Use pmc_overflow() to detect rolled back events"
Benjamin Herrenschmidt [Wed, 17 Oct 2012 23:36:11 +0000 (10:36 +1100)]
Revert "powerpc/perf: Use pmc_overflow() to detect rolled back events"

This reverts commit 813312110bede27bffd082c25cd31730bd567beb.

This revert was requested by the author of the patch as it seems
to cause system hangs with some low frequency events

10 years agoapparmor: fix apparmor OOPS in audit_log_untrustedstring+0x1c/0x40
John Johansen [Wed, 17 Oct 2012 20:29:33 +0000 (13:29 -0700)]
apparmor: fix apparmor OOPS in audit_log_untrustedstring+0x1c/0x40

The capability defines have moved causing the auto generated names
of capabilities that apparmor uses in logging to be incorrect.

Fix the autogenerated table source to uapi/linux/capability.h

Reported-by: YanHong <>
Reported-by: Krzysztof Kolasa <>
Analyzed-by: Al Viro <>
Signed-off-by: John Johansen <>
Acked-by: David Howells <>
Acked-by: James Morris <>
Signed-off-by: Linus Torvalds <>
10 years agostaging: dgrp: check return value of alloc_tty_driver
Bill Pemberton [Tue, 9 Oct 2012 18:18:20 +0000 (14:18 -0400)]
staging: dgrp: check return value of alloc_tty_driver

alloc_tty_driver was always assumed to succeed.  Add code to check the
return value and return -ENOMEM if alloc_tty_driver fails.

Reported-by: Fengguang Wu <>
Signed-off-by: Bill Pemberton <>
Signed-off-by: Greg Kroah-Hartman <>