11 years agox86, hwmon: Package Level Thermal/Power: pkgtemp documentation
Fenghua Yu [Fri, 30 Jul 2010 00:13:46 +0000 (17:13 -0700)]
x86, hwmon: Package Level Thermal/Power: pkgtemp documentation

Document for package level thermal hwmon driver.

Signed-off-by: Fenghua Yu <>
LKML-Reference: <>
Reviewed-by: Len Brown <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, hwmon: Package Level Thermal/Power: power limit
Fenghua Yu [Fri, 30 Jul 2010 00:13:45 +0000 (17:13 -0700)]
x86, hwmon: Package Level Thermal/Power: power limit

Power limit notification feature is published in Intel 64 and IA-32
Architectures SDMV Vol 3A 14.5.6 Power Limit Notification.

It is implemented first on Intel Sandy Bridge platform.

The patch handles notification interrupt. Interrupt handler dumps power limit
information in log_buf, logs the event in mce log, and increases the event
counters (core_power_limit and package_power_limit). Upper level applications
could use the data to detect system health or diagnose functionality/performance

In the future, the event could be handled in a more fancy way.

Signed-off-by: Fenghua Yu <>
LKML-Reference: <>
Reviewed-by: Len Brown <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, hwmon: Package Level Thermal/Power: thermal throttling handler
Fenghua Yu [Fri, 30 Jul 2010 00:13:44 +0000 (17:13 -0700)]
x86, hwmon: Package Level Thermal/Power: thermal throttling handler

Add package level thermal throttle interrupt support. The interrupt handler
increases package level thermal throttle count. It also logs the event in MCE

The package level thermal throttle interrupt happens across threads in a
package. Each thread handles the interrupt individually. User level application
is supposed to retrieve correct event count and log based on package/thread
topology. This is the same situation for core level interrupt handler. In the
future, interrupt may be reported only per package or per core.

core_throttle_count and package_throttle_count are used for user interface.
Previously only throttle_count is used for core throttle count. If you think
new core_throttle_count name breaks user interface, I can change this part.

Signed-off-by: Fenghua Yu <>
LKML-Reference: <>
Reviewed-by: Len Brown <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver
Fenghua Yu [Fri, 30 Jul 2010 00:13:43 +0000 (17:13 -0700)]
x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver

This patch adds a hwmon driver for package level thermal control. The driver
dumps package level thermal information through sysfs interface so that upper
level application (e.g. lm_sensor) can retrive the information.

Instead of having the package level hwmon code in coretemp, I write a seperate
driver pkgtemp because:

First, package level thermal sensors include not only sensors for each core,
but also sensors for uncore, memory controller or other components in the
package. Logically it will be clear to have a seperate hwmon driver for package
level hwmon to monitor wider range of sensors in a package. Merging package
thermal driver into core thermal driver doesn't make sense and may mislead.

Secondly, merging the two drivers together may cause coding mess. It's easier
to include various package level sensors info if more sensor information is
implemented. Coretemp code needs to consider a lot of legacy machine cases.
Pkgtemp code only considers platform starting from Sandy Bridge.

On a 1Sx4Cx2T Sandy Bridge platform, lm-sensors dumps the pkgtemp and coretemp:

Adapter: ISA adapter
physical id 0: +33.0°C  (high = +79.0°C, crit = +99.0°C)

Adapter: ISA adapter
Core 0:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

Adapter: ISA adapter
Core 1:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

Adapter: ISA adapter
Core 2:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

Adapter: ISA adapter
Core 3:      +32.0°C  (high = +79.0°C, crit = +99.0°C)

[ hpa: folded v3 patch removing improper global variable "SHOW" ]

Signed-off-by: Fenghua Yu <>
LKML-Reference: <>
Reviewed-by: Len Brown <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, cpu: Package Level Thermal Control, Power Limit Notification definitions
Fenghua Yu [Fri, 30 Jul 2010 00:13:42 +0000 (17:13 -0700)]
x86, cpu: Package Level Thermal Control, Power Limit Notification definitions

Add package level thermal and power limit feature support.

The two MSRs and features are new starting with Intel's Sandy Bridge processor.

Please check Intel 64 and IA-32 Architectures SDMV Vol 3A 14.5.6 Power Limit
Notification and 14.6 Package Level Thermal Management.

This patch also fixes a bug which defines reverse THERM_INT_LOW_ENABLE bit and

[ hpa: fixed up against current tip:x86/cpu ]

Signed-off-by: Fenghua Yu <>
LKML-Reference: <>
Reviewed-by: Len Brown <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, cpu: Export AMD errata definitions
H. Peter Anvin [Wed, 28 Jul 2010 23:23:20 +0000 (16:23 -0700)]
x86, cpu: Export AMD errata definitions

Exprot the AMD errata definitions, since they are needed by kvm_amd.ko
if that is built as a module.  Doing "make allmodconfig" during
testing would have caught this.

Signed-off-by: H. Peter Anvin <>
Cc: Hans Rosenfeld <>
LKML-Reference: <>

11 years agox86, cpu: Use AMD errata checking framework for erratum 383
Hans Rosenfeld [Wed, 28 Jul 2010 17:09:32 +0000 (19:09 +0200)]
x86, cpu: Use AMD errata checking framework for erratum 383

Use the AMD errata checking framework instead of open-coding the test.

Signed-off-by: Hans Rosenfeld <>
LKML-Reference: <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, cpu: Clean up AMD erratum 400 workaround
Hans Rosenfeld [Wed, 28 Jul 2010 17:09:31 +0000 (19:09 +0200)]
x86, cpu: Clean up AMD erratum 400 workaround

Remove check_c1e_idle() and use the new AMD errata checking framework

Signed-off-by: Hans Rosenfeld <>
LKML-Reference: <>
Signed-off-by: H. Peter Anvin <>
11 years agox86, cpu: AMD errata checking framework
Hans Rosenfeld [Wed, 28 Jul 2010 17:09:30 +0000 (19:09 +0200)]
x86, cpu: AMD errata checking framework

Errata are defined using the AMD_LEGACY_ERRATUM() or AMD_OSVW_ERRATUM()
macros. The latter is intended for newer errata that have an OSVW id
assigned, which it takes as first argument. Both take a variable number
of family-specific model-stepping ranges created by AMD_MODEL_RANGE().

Iff an erratum has an OSVW id, OSVW is available on the CPU, and the
OSVW id is known to the hardware, it is used to determine whether an
erratum is present. Otherwise, the model-stepping ranges are matched
against the current CPU to find out whether the erratum applies.

For certain special errata, the code using this framework might have to
conduct further checks to make sure an erratum is really (not) present.

Signed-off-by: Hans Rosenfeld <>
LKML-Reference: <>
Signed-off-by: H. Peter Anvin <>
11 years agoMerge remote branch 'linus/master' into x86/cpu
H. Peter Anvin [Wed, 28 Jul 2010 20:11:28 +0000 (13:11 -0700)]
Merge remote branch 'linus/master' into x86/cpu

11 years agoMerge
Linus Torvalds [Mon, 26 Jul 2010 15:20:38 +0000 (08:20 -0700)]

  ARM: 6265/1: kirkwood: move qnap_tsx1x_register_flash() to .init.text
  ARM: 6263/1: ns9xxx: fix FTBFS for zImage
  ARM: 6262/1: arm/clps711x: fix debug macro compilation failure
  ARM: 6261/1: arm/shark: fix debug macro compilation failure
  ARM: 6260/1: arm/plat-spear: fix debug macro compilation failure
  ARM: 6259/1: arm/ns9xxx: fix debug macro compilation failure
  ARM: 6258/1: arm/h720x: fix debug macro compilation failure
  ARM: 6233/1: Delete a wrong redundant right parenthesis
  ARM: 6230/1: fix nuc900 touchscreen clk definition bug
  [ARM] pxa: fix incorrect CONFIG_CPU_PXA27x to CONFIG_PXA27x
  [ARM] pxa/colibri-pxa300: fix AC97 init
  [ARM] pxa: fix incorrect order of AC97 reset pin configs
  [ARM] pxa: fix frequency scaling for pcmcia/pxa2xx_base
  [ARM] pxa: cpufreq-pxa2xx: fix DRI recomputation routine
  [ARM] pxa/corgi: fix MMC/SD card detection failure

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 26 Jul 2010 15:20:16 +0000 (08:20 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/security-testing-2.6

* 'for-linus' of git://
  tpm_tis: fix subsequent suspend failures

11 years agoMerge branch 'kvm-updates/2.6.35' of git://
Linus Torvalds [Mon, 26 Jul 2010 15:18:18 +0000 (08:18 -0700)]
Merge branch 'kvm-updates/2.6.35' of git://git./virt/kvm/kvm

* 'kvm-updates/2.6.35' of git://
  KVM: Use kmalloc() instead of vmalloc() for KVM_[GS]ET_MSR
  KVM: MMU: fix conflict access permissions in direct sp

11 years agoquiesce EDAC initialisation on desktop/mobile i7
Daniel J Blueman [Fri, 23 Jul 2010 22:16:52 +0000 (23:16 +0100)]
quiesce EDAC initialisation on desktop/mobile i7

Don't print failure to detect Core i7 EDAC facilities to the console at
boot time, most often occurring on Core i7 desktops and laptops.

Signed-off-by: Daniel J Blueman <>
Acked-by: Mauro Carvalho Chehab <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branch 'release' of git://
Linus Torvalds [Mon, 26 Jul 2010 15:10:00 +0000 (08:10 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://
  ACPI / Sleep: Allow the NVS saving to be skipped during suspend to RAM
  ACPI: create "processor.bm_check_disable" boot param
  ACPI: skip checking BM_STS if the BIOS doesn't ask for it
  ACPI: fix unused function warning
  ACPI: processor: fix processor_physically_present on UP
  ACPI video: fix string mismatch for Sony SR290 laptop
  ACPI battery: don't invoke power_supply_changed twice when battery is hot-added
  ACPI: handle systems which asynchoronously enable ACPI mode

11 years agoDriver-core: Always create class directories for classses that support namespaces.
Eric W. Biederman [Sun, 25 Jul 2010 05:43:35 +0000 (22:43 -0700)]
Driver-core: Always create class directories for classses that support namespaces.

This fixes the regression in 2.6.35-rcX where bluetooth network devices
would fail to be deleted from sysfs, causing their destruction and
recreation to fail.  In addition this fixes the mac80211_hwsim driver
where it would leave around sysfs files when the driver was removed.

This problem is discussed at

The reason for the regression is that the network namespace support
added to sysfs expects and requires that network devices be put in
directories that can contain only network devices.

Today get_device_parent almost provides that guarantee for all class
devices, except for a specific exception when the parent of a class
devices is a class device.  It would be nice to simply remove that
arguably incorrect special case, but apparently the input devices depend
on it being there.  So I have only removed it for class devices with
network namespace support.  Which today are the network devices.

It has been suggested that a better fix would be to change the parent
device from a class device to a bus device, which in the case of the
bluetooth driver would change /sys/class/bluetooth to /sys/bus/bluetoth,
I can not see how we would avoid significant userspace breakage if we
were to make that change.

Adding an extra directory in the path to the device will also be
userspace visible but it is much less likely to break things.
Everything is still accessible from /sys/class (for example), and it
fixes two bugs.  Adding an extra directory fixes a 3 year old regression
introduced with the new sysfs layout that makes it impossible to rename
bnep0 network devices to names that conflict with hci device attributes
like hci_revsion.  Adding an additional directory removes the new
failure modes introduced by the network namespace code.

If it weren't for the regession in the renaming of network devices I
would figure out how to just make the sysfs code deal with this
configuration of devices.

In summary this patch fixes regressions by changing:
"/sys/class/bluetooth/hci0/bnep0" to "/sys/class/bluetooth/hci0/net/bnep0".

Reported-by: Johannes Berg <>
Reported-by: Janusz Krzysztofik <>
Signed-off-by: Eric W. Biederman <>
Signed-off-by: Linus Torvalds <>
11 years agovirtio: fix oops on OOM
Michael S. Tsirkin [Mon, 26 Jul 2010 07:25:30 +0000 (16:55 +0930)]
virtio: fix oops on OOM

virtio ring was changed to return an error code on OOM,
but one caller was missed and still checks for vq->vring.num.
The fix is just to check for <0 error code.

Long term it might make sense to change goto add_head to
just return an error on oom instead, but let's apply
a minimal fix for 2.6.35.

Reported-by: Chris Mason <>
Signed-off-by: Michael S. Tsirkin <>
Signed-off-by: Rusty Russell <>
Tested-by: Chris Mason <>
Cc: # .34.x
Signed-off-by: Linus Torvalds <>
11 years agoInput: RX51 keymap - fix recent compile breakage
Dmitry Torokhov [Mon, 26 Jul 2010 08:12:37 +0000 (01:12 -0700)]
Input: RX51 keymap - fix recent compile breakage

Commit 3fea60261e73 ("Input: twl40300-keypad - fix handling of "all
ground" rows") broke compilation as I managed to use non-existent

Reported-by: Arjan van de Ven <>
Signed-off-by: Dmitry Torokhov <>
Signed-off-by: Linus Torvalds <>
11 years agoARM: 6265/1: kirkwood: move qnap_tsx1x_register_flash() to .init.text
Uwe Kleine-König [Sat, 24 Jul 2010 08:53:20 +0000 (09:53 +0100)]
ARM: 6265/1: kirkwood: move qnap_tsx1x_register_flash() to .init.text

qnap_tsx1x_register_flash is only called by qnap_ts219_init and
qnap_ts41x_init which both live in .init.text, too.  So the move is OK.

This fixes the following warning in kirkwood_defconfig:
WARNING: vmlinux.o(.text+0x9334): Section mismatch in reference from the function qnap_tsx1x_register_flash() to the variable
The function qnap_tsx1x_register_flash() references
the variable __initdata qnap_tsx1x_spi_slave_info.
This is often because qnap_tsx1x_register_flash lacks a __initdata
annotation or the annotation of qnap_tsx1x_spi_slave_info is wrong.

Signed-off-by: Uwe Kleine-König <>
Acked-by: Nicolas Pitre <>
Signed-off-by: Russell King <>
11 years agoARM: 6263/1: ns9xxx: fix FTBFS for zImage
Uwe Kleine-König [Fri, 23 Jul 2010 09:46:52 +0000 (10:46 +0100)]
ARM: 6263/1: ns9xxx: fix FTBFS for zImage

the different putc variants used an initialized local static variable
which is broken since

5de813b (ARM: Eliminate decompressor -Dstatic= PIC hack)

This needs to be initialized at runtime and so needs to be global.
While at it give it a better name.

Signed-off-by: Uwe Kleine-König <>
Signed-off-by: Russell King <>
11 years agoARM: 6262/1: arm/clps711x: fix debug macro compilation failure
Jeremy Kerr [Thu, 22 Jul 2010 15:34:34 +0000 (16:34 +0100)]
ARM: 6262/1: arm/clps711x: fix debug macro compilation failure

We need mach/hardware.h for CLPS7111_VIRT_BASE.

Signed-off-by: Jeremy Kerr <>
Signed-off-by: Russell King <>
11 years agoARM: 6261/1: arm/shark: fix debug macro compilation failure
Jeremy Kerr [Thu, 22 Jul 2010 15:34:34 +0000 (16:34 +0100)]
ARM: 6261/1: arm/shark: fix debug macro compilation failure

We need a waituart macro.

Signed-off-by: Jeremy Kerr <>
Signed-off-by: Russell King <>
11 years agoARM: 6260/1: arm/plat-spear: fix debug macro compilation failure
Jeremy Kerr [Thu, 22 Jul 2010 15:34:34 +0000 (16:34 +0100)]
ARM: 6260/1: arm/plat-spear: fix debug macro compilation failure

mov rx, =<immediate> isn't valid, use #<immediate> instead.

Signed-off-by: Jeremy Kerr <>
Signed-off-by: Russell King <>
11 years agoARM: 6259/1: arm/ns9xxx: fix debug macro compilation failure
Jeremy Kerr [Thu, 22 Jul 2010 15:34:34 +0000 (16:34 +0100)]
ARM: 6259/1: arm/ns9xxx: fix debug macro compilation failure

We need asm/memory.h for NS9XXX_CSxSTAT_PHYS (via mach/memory.h).

Signed-off-by: Jeremy Kerr <>
Signed-off-by: Russell King <>
11 years agoARM: 6258/1: arm/h720x: fix debug macro compilation failure
Jeremy Kerr [Thu, 22 Jul 2010 15:34:34 +0000 (16:34 +0100)]
ARM: 6258/1: arm/h720x: fix debug macro compilation failure

IO_BASE shoule be IO_VIRT, and IO_START should be IO_PHYS. We also need
mach/hardware.h for these definitions.

Signed-off-by: Jeremy Kerr <>
Signed-off-by: Russell King <>
11 years agotpm_tis: fix subsequent suspend failures
Rajiv Andrade [Wed, 23 Jun 2010 19:18:56 +0000 (12:18 -0700)]
tpm_tis: fix subsequent suspend failures

Fix subsequent suspends by issuing tpm_continue_selftest during resume.
Otherwise, the tpm chip seems to be not fully initialized and will reject
the save state command during suspend, thus preventing the whole system
to suspend.


Signed-off-by: Helmut Schaa <>
Signed-off-by: Rajiv Andrade <>
Cc: James Morris <>
Cc: Debora Velarde <>
Cc: David Safford <>
Signed-off-by: Andrew Morton <>
Signed-off-by: James Morris <>
11 years agoMerge branch 'bugzilla-16396' into release
Len Brown [Sun, 25 Jul 2010 03:26:22 +0000 (23:26 -0400)]
Merge branch 'bugzilla-16396' into release

11 years agoACPI / Sleep: Allow the NVS saving to be skipped during suspend to RAM
Rafael J. Wysocki [Fri, 23 Jul 2010 20:59:09 +0000 (22:59 +0200)]
ACPI / Sleep: Allow the NVS saving to be skipped during suspend to RAM

Commit 2a6b69765ad794389f2fc3e14a0afa1a995221c2
(ACPI: Store NVS state even when entering suspend to RAM) caused the
ACPI suspend code save the NVS area during suspend and restore it
during resume unconditionally, although it is known that some systems
need to use acpi_sleep=s4_nonvs for hibernation to work.  To allow
the affected systems to avoid saving and restoring the NVS area
during suspend to RAM and resume, introduce kernel command line
option acpi_sleep=nonvs and make acpi_sleep=s4_nonvs work as its
alias temporarily (add acpi_sleep=s4_nonvs to the feature removal

Addresses .

Signed-off-by: Rafael J. Wysocki <>
Reported-and-tested-by: tomas m <>
Signed-off-by: Len Brown <>
11 years agoMerge branch 'merge' of git://
Linus Torvalds [Fri, 23 Jul 2010 20:26:16 +0000 (13:26 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/benh/powerpc

* 'merge' of git:// fix .data..init_task output section (fix popwerpc boot)
  powerpc: Fix erroneous lmb->memblock conversions
  powerpc/mm: Add some debug output when hash insertion fails
  powerpc/mm: Fix bugs in huge page hashing
  powerpc/mm: Move around testing of _PAGE_PRESENT in hash code
  powerpc/mm: Handle hypervisor pte insert failure in __hash_page_huge
  powerpc/kexec: Fix boundary case for book-e kexec memory limits

11 years agoMerge branch 'rc-fixes' of git://
Linus Torvalds [Fri, 23 Jul 2010 20:25:00 +0000 (13:25 -0700)]
Merge branch 'rc-fixes' of git://git./linux/kernel/git/mmarek/kbuild-2.6

* 'rc-fixes' of git://
  nconfig: Fix segfault when help contains special characters
  kbuild: Fix make rpm
  kbuild: Make the setlocalversion script POSIX-compliant

11 years agoMerge branch 'perf-fixes-for-linus' of git://
Linus Torvalds [Fri, 23 Jul 2010 20:24:02 +0000 (13:24 -0700)]
Merge branch 'perf-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://
  perf tools: Fix fallback to cplus_demangle() when bfd_demangle() is not available
  perf annotate: Fix handling of goto labels that are valid hex numbers
  tracing: Properly align linker defined symbols
  perf symbols: Fix directory descriptor leaking
  perf: Fix various display bugs with parent filtering

11 years agonconfig: Fix segfault when help contains special characters
Stephen Boyd [Fri, 23 Jul 2010 07:04:14 +0000 (00:04 -0700)]
nconfig: Fix segfault when help contains special characters

nconfig segfaults when help text contains the character '%'. For a quick
example, navigate to the kernel compression options and get the help for
bzip2. Doing so triggers a call to mvwprintw() with a string containing
'%' and no extra arguments to fill in the specifier's value. Fix this
case by printing the literal string retrieved from the kconfig.

 #0  0x00002b52b6b11d83 in vfprintf () from /lib/
 #1  0x00002b52b6bad010 in __vsnprintf_chk () from /lib/
 #2  0x00002b52b623991b in _nc_printf_string () from
 #3  0x00002b52b6234cff in vwprintw () from /lib/
 #4  0x00002b52b6234db9 in mvwprintw () from /lib/
 #5  0x00000000004151d8 in fill_window (win=0x21b64c0,
     text=0x21b62b0 "CONFIG_KERNEL_BZIP2:\n\nIts compression ratio and
     speed is intermediate.\nDecompression speed is slowest among the
     three.  The kernel\nsize is about 10% smaller with bzip2, in
     comparison to gzip.\nBzip2 us"...)
     at scripts/kconfig/nconf.gui.c:229
 #6  0x0000000000416335 in show_scroll_win (main_window=0x21a5630,
         title=0x157fa30 "Bzip2",
      text=0x21b62b0 "CONFIG_KERNEL_BZIP2:\n\nIts compression
      ratio and speed is intermediate.\nDecompression speed is
      slowest among the three.  The kernel\nsize is about 10%
      smaller with bzip2, in comparison to gzip.\nBzip2 us"...)
     at scripts/kconfig/nconf.gui.c:535
 #7  0x00000000004055b2 in show_help (menu=0x157f9d0)
         at scripts/kconfig/nconf.c:1257
 #8  0x0000000000405897 in conf_choice (menu=0x157f130)
      at scripts/kconfig/nconf.c:1321
 #9  0x0000000000405326 in conf (menu=0x157d130) at
 #10 0x00000000004052e8 in conf (menu=0xb434a0) at
 #11 0x0000000000406092 in main (ac=2, av=0x7fff96a93c38)

Cc: Michal Marek <>
Cc: Nir Tzachar <>
Signed-off-by: Stephen Boyd <>
Signed-off-by: Michal Marek <>
11 years agoKVM: Use kmalloc() instead of vmalloc() for KVM_[GS]ET_MSR
Avi Kivity [Thu, 22 Jul 2010 20:24:52 +0000 (23:24 +0300)]
KVM: Use kmalloc() instead of vmalloc() for KVM_[GS]ET_MSR

We don't need more than a page, and vmalloc() is slower (much
slower recently due to a regression).

Signed-off-by: Avi Kivity <>
11 years agoKVM: MMU: fix conflict access permissions in direct sp
Xiao Guangrong [Wed, 30 Jun 2010 08:02:45 +0000 (16:02 +0800)]
KVM: MMU: fix conflict access permissions in direct sp

In no-direct mapping, we mark sp is 'direct' when we mapping the
guest's larger page, but its access is encoded form upper page-struct
entire not include the last mapping, it will cause access conflict.

For example, have this mapping:
      / PDE1 -> |---|
  P[W]          |   | LPA
      \ PDE2 -> |---|

P have two children, PDE1 and PDE2, both PDE1 and PDE2 mapping the
same lage page(LPA). The P's access is WR, PDE1's access is WR,
PDE2's access is RO(just consider read-write permissions here)

When guest access PDE1, we will create a direct sp for LPA, the sp's
access is from P, is W, then we will mark the ptes is W in this sp.

Then, guest access PDE2, we will find LPA's shadow page, is the same as
PDE's, and mark the ptes is RO.

So, if guest access PDE1, the incorrect #PF is occured.

Fixed by encode the last mapping access into direct shadow page

Signed-off-by: Xiao Guangrong <>
Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>
11 years agoMerge commit 'kumar/merge' into merge
Benjamin Herrenschmidt [Fri, 23 Jul 2010 03:46:21 +0000 (13:46 +1000)]
Merge commit 'kumar/merge' into merge

11 years fix .data..init_task output section (fix popwerpc boot)
Sam Ravnborg [Tue, 13 Jul 2010 09:39:42 +0000 (11:39 +0200)] fix .data..init_task output section (fix popwerpc boot)

The .data..init_task output section was missing
a load offset causing a popwerpc target to fail to boot.

Sean MacLennan tracked it down to the definition of

There are only two users of INIT_TASK_DATA_SECTION()
in the kernel today: cris and popwerpc.
cris do not support relocatable kernels and is thus not
impacted by this change.

Fix INIT_TASK_DATA_SECTION() to specify load offset like
all other output sections.

Reported-by: Sean MacLennan <>
Signed-off-by: Sam Ravnborg <>
Signed-off-by: Benjamin Herrenschmidt <>
11 years agopowerpc: Fix erroneous lmb->memblock conversions
Benjamin Herrenschmidt [Fri, 23 Jul 2010 00:35:52 +0000 (10:35 +1000)]
powerpc: Fix erroneous lmb->memblock conversions

Oooops... we missed these. We incorrectly converted strings
used when parsing the device-tree on pseries, thus breaking
access to drconf memory and hotplug memory.

While at it, also revert some variable names that represent
something the FW calls "lmb" and thus don't need to be converted
to "memblock".

Signed-off-by: Benjamin Herrenschmidt <>

11 years agopowerpc/mm: Add some debug output when hash insertion fails
Benjamin Herrenschmidt [Fri, 23 Jul 2010 00:31:13 +0000 (10:31 +1000)]
powerpc/mm: Add some debug output when hash insertion fails

This adds some debug output to our MMU hash code to print out some
useful debug data if the hypervisor refuses the insertion (which
should normally never happen).

Signed-off-by: Benjamin Herrenschmidt <>

11 years agopowerpc/mm: Fix bugs in huge page hashing
Benjamin Herrenschmidt [Thu, 22 Jul 2010 23:02:27 +0000 (09:02 +1000)]
powerpc/mm: Fix bugs in huge page hashing

There's a couple of nasty bugs lurking in our huge page hashing code.

First, we don't check the access permission atomically with setting
the _PAGE_BUSY bit, which means that the PTE value we end up using
for the hashing might be different than the one we have checked
the access permissions for.

We've seen cases where that leads us to try to use an invalidated
PTE for hashing, causing all sort of "interesting" issues.

Then, we also failed to set _PAGE_DIRTY on a write access.

Finally, a minor tweak but we should return 0 when we find the
PTE busy, in order to just re-execute the access, rather than 1
which means going to do_page_fault().

Signed-off-by: Benjamin Herrenschmidt <>

11 years agopowerpc/mm: Move around testing of _PAGE_PRESENT in hash code
Benjamin Herrenschmidt [Thu, 22 Jul 2010 22:53:23 +0000 (08:53 +1000)]
powerpc/mm: Move around testing of _PAGE_PRESENT in hash code

Instead of adding _PAGE_PRESENT to the access permission mask
in each low level routine independently, we add it once from

We also move the preliminary access check (the racy one before
the PTE is locked) up so it applies to the huge page case. This
duplicates code in __hash_page_huge() which we'll remove in a
subsequent patch to fix a race in there.

Signed-off-by: Benjamin Herrenschmidt <>
11 years agopowerpc/mm: Handle hypervisor pte insert failure in __hash_page_huge
Anton Blanchard [Wed, 14 Jul 2010 19:31:48 +0000 (19:31 +0000)]
powerpc/mm: Handle hypervisor pte insert failure in __hash_page_huge

If the hypervisor gives us an error on a hugepage insert we panic. The
normal page code already handles this by returning an error instead and we end
calling low_hash_fault which will just kill the task if possible.

The patch below does a similar thing for the hugepage case.

Signed-off-by: Anton Blanchard <>
Signed-off-by: Benjamin Herrenschmidt <>
11 years agoMerge branch 'misc' into release
Len Brown [Thu, 22 Jul 2010 22:19:12 +0000 (18:19 -0400)]
Merge branch 'misc' into release

11 years agoMerge branch 'bugzilla-15886' into release
Len Brown [Thu, 22 Jul 2010 22:18:28 +0000 (18:18 -0400)]
Merge branch 'bugzilla-15886' into release

11 years agoMerge branch 'bugzilla-102904-workaround' into release
Len Brown [Thu, 22 Jul 2010 22:18:18 +0000 (18:18 -0400)]
Merge branch 'bugzilla-102904-workaround' into release

11 years agoMerge branch 'bugzilla-16244' into release
Len Brown [Thu, 22 Jul 2010 22:18:05 +0000 (18:18 -0400)]
Merge branch 'bugzilla-16244' into release

11 years agoMerge branch 'bugzilla-16271' into release
Len Brown [Thu, 22 Jul 2010 22:17:39 +0000 (18:17 -0400)]
Merge branch 'bugzilla-16271' into release

11 years agoMerge branch 'bugzilla-16357' into release
Len Brown [Thu, 22 Jul 2010 22:17:33 +0000 (18:17 -0400)]
Merge branch 'bugzilla-16357' into release

11 years agoACPI: create "processor.bm_check_disable" boot param
Len Brown [Thu, 22 Jul 2010 21:23:10 +0000 (17:23 -0400)]
ACPI: create "processor.bm_check_disable" boot param

processor.bm_check_disable=1" prevents Linux from checking BM_STS
before entering C3-type cpu power states.

This may be useful for a system running acpi_idle
where the BIOS exports FADT C-states, _CST IO C-states,
or _CST FFH C-states with the BM_STS bit set;
while configuring the chipset to set BM_STS
more frequently than perhaps is optimal.

Note that such systems may have been developed
using a tickful OS that would quickly clear BM_STS,
rather than a tickless OS that may go for some time
between checking and clearing BM_STS.

Note also that an alternative for newer systems
is to use the intel_idle driver, which always
ignores BM_STS, relying Linux device drivers
to register constraints explicitly via PM_QOS.

Signed-off-by: Len Brown <>
11 years agoACPI: skip checking BM_STS if the BIOS doesn't ask for it
Len Brown [Thu, 22 Jul 2010 20:54:27 +0000 (16:54 -0400)]
ACPI: skip checking BM_STS if the BIOS doesn't ask for it

It turns out that there is a bit in the _CST for Intel FFH C3
that tells the OS if we should be checking BM_STS or not.

Linux has been unconditionally checking BM_STS.
If the chip-set is configured to enable BM_STS,
it can retard or completely prevent entry into
deep C-states -- as illustrated by turbostat:

ref: Intel Processor Vendor-Specific ACPI Interface Specification
table 4 "_CST FFH GAS Field Encoding"
Bit 1: Set to 1 if OSPM should use Bus Master avoidance for this C-state

Signed-off-by: Len Brown <>
11 years agoperf tools: Fix fallback to cplus_demangle() when bfd_demangle() is not available
Conny Seidel [Tue, 6 Jul 2010 15:39:43 +0000 (17:39 +0200)]
perf tools: Fix fallback to cplus_demangle() when bfd_demangle() is not available

make version 3.80 doesn't support "else ifdef" on the same line, also it
doesn't support unindented nested constructs.

Build fails with:
Makefile:608: Extraneous text after `else' directive
Makefile:611: *** only one `else' per conditional.  Stop.

This patch fixes the build for make 3.80.

Cc: Ingo Molnar <>,
Cc: Borislav Petkov <>
LKML-Reference: <>
Signed-off-by: Conny Seidel <>
Signed-off-by: Arnaldo Carvalho de Melo <>
11 years agoLinux 2.6.35-rc6 v2.6.35-rc6
Linus Torvalds [Thu, 22 Jul 2010 19:13:38 +0000 (12:13 -0700)]
Linux 2.6.35-rc6

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 22 Jul 2010 18:46:15 +0000 (11:46 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/dtor/input

* 'for-linus' of git://
  Input: synaptics - relax capability ID checks on newer hardware
  Input: twl40300-keypad - fix handling of "all ground" rows
  Input: gamecon - reference correct pad in gc_psx_command()
  Input: gamecon - reference correct input device in NES mode
  Input: w90p910_keypad - change platfrom driver name to 'nuc900-kpi'
  Input: i8042 - add Gigabyte Spring Peak to dmi_noloop_table
  Input: qt2160 - rename kconfig symbol name

11 years agoMerge branch 'drm-fixes' of git://
Linus Torvalds [Thu, 22 Jul 2010 18:45:57 +0000 (11:45 -0700)]
Merge branch 'drm-fixes' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://
  drm/radeon/kms: add quirk to make HP DV5000 laptop resume
  drm/radeon/kms: fix RADEON_INFO_CRTC_FROM_ID info ioctl
  Fix ttm_page_alloc.c build breakage
  drm/radeon/kms: fix legacy LVDS dpms sequence
  drm/radeon/kms: drop taking lock around crtc lookup.

11 years agoMerge git://
Linus Torvalds [Thu, 22 Jul 2010 18:45:23 +0000 (11:45 -0700)]
Merge git://git./linux/kernel/git/herbert/crypto-2.6

* git://
  crypto: talitos - fix bug in sg_copy_end_to_buffer

11 years agoMerge branch 'x86/auditsyscall' of git://
Linus Torvalds [Thu, 22 Jul 2010 18:45:02 +0000 (11:45 -0700)]
Merge branch 'x86/auditsyscall' of git://git./linux/kernel/git/frob/linux-2.6-roland

* 'x86/auditsyscall' of git://
  x86: auditsyscall: fix fastpath return value after reschedule

11 years agoMerge branch 'for_linus' of git://
Linus Torvalds [Thu, 22 Jul 2010 18:44:26 +0000 (11:44 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/jwessel/linux-2.6-kgdb

* 'for_linus' of git://
  sysrq,kdb: Use __handle_sysrq() for kdb's sysrq function
  debug_core,kdb: fix kgdb_connected bit set in the wrong place
  Fix merge regression from external kdb to upstream kdb
  repair gdbstub to match the gdbserial protocol specification
  kdb: break out of kdb_ll() when command is terminated

11 years agopowerpc/kexec: Fix boundary case for book-e kexec memory limits
Kumar Gala [Thu, 22 Jul 2010 18:30:44 +0000 (13:30 -0500)]
powerpc/kexec: Fix boundary case for book-e kexec memory limits

The KEXEC_*_MEMORY_LIMITs are inclusive addresses.  We define them as
2Gs as that is what we allow mapping via TLBs.  However, this should be
2G - 1 to be inclusive, otherwise if we have >2G of memory in a system
we fail to boot properly via kexec.

Signed-off-by: Kumar Gala <>
11 years agoperf annotate: Fix handling of goto labels that are valid hex numbers
Arnaldo Carvalho de Melo [Thu, 22 Jul 2010 17:04:13 +0000 (14:04 -0300)]
perf annotate: Fix handling of goto labels that are valid hex numbers

When parsing the objdump disassembly output we can have goto labels that
are valid hex numbers and thus get confused with lines with machine

Handle the common case of a label that has nothing after it and other
cases where there is just source code by validating the resulting "ip".

It is still possible that we find goto labels that are in the function
address range, but only if they are located before the real address we
should be OK.

A change in the objdump output to have a clear marker separating
addresses from the disassembly would come handy, but we would still have
to deal with older versions.

Reported-by: Gleb Natapov <>
Cc: Frederic Weisbecker <>
Cc: Gleb Natapov <>
Cc: Mike Galbraith <>
Cc: Peter Zijlstra <>
Cc: Stephane Eranian <>
LKML-Reference: <>
Signed-off-by: Arnaldo Carvalho de Melo <>
11 years agoCIFS: Fix a malicious redirect problem in the DNS lookup code
David Howells [Thu, 22 Jul 2010 11:53:18 +0000 (12:53 +0100)]
CIFS: Fix a malicious redirect problem in the DNS lookup code

Fix the security problem in the CIFS filesystem DNS lookup code in which a
malicious redirect could be installed by a random user by simply adding a
result record into one of their keyrings with add_key() and then invoking a
CIFS CFS lookup [CVE-2010-2524].

This is done by creating an internal keyring specifically for the caching of
DNS lookups.  To enforce the use of this keyring, the module init routine
creates a set of override credentials with the keyring installed as the thread
keyring and instructs request_key() to only install lookup result keys in that

The override is then applied around the call to request_key().

This has some additional benefits when a kernel service uses this module to
request a key:

 (1) The result keys are owned by root, not the user that caused the lookup.

 (2) The result keys don't pop up in the user's keyrings.

 (3) The result keys don't come out of the quota of the user that caused the

The keyring can be viewed as root by doing cat /proc/keys:

2a0ca6c3 I-----     1 perm 1f030000     0     0 keyring   .dns_resolver: 1/4

It can then be listed with 'keyctl list' by root.

# keyctl list 0x2a0ca6c3
1 key in keyring:
726766307: --alswrv     0     0 dns_resolver:

Signed-off-by: David Howells <>
Reviewed-and-Tested-by: Jeff Layton <>
Acked-by: Steve French <>
Signed-off-by: Linus Torvalds <>
11 years agoARM: 6233/1: Delete a wrong redundant right parenthesis
wanzongshun [Mon, 19 Jul 2010 03:06:12 +0000 (04:06 +0100)]
ARM: 6233/1: Delete a wrong redundant right parenthesis

Delete a wrong redundant right parenthesis in

Signed-off-by: Wan ZongShun <>
Signed-off-by: Russell King <>
11 years agoARM: 6230/1: fix nuc900 touchscreen clk definition bug
wanzongshun [Sun, 18 Jul 2010 14:10:07 +0000 (15:10 +0100)]
ARM: 6230/1: fix nuc900 touchscreen clk definition bug

This patch is to fix nuc900 touchscreen clk definition bug,the .dev_id's
name should be 'nuc900-ts', it should be the same to or else,
the touchscreen driver will be not working well due to clock engine disabled.

Signed-off-by: Wan ZongShun <>
Signed-off-by: Russell King <>
11 years agodrm/radeon/kms: add quirk to make HP DV5000 laptop resume
Alex Deucher [Thu, 22 Jul 2010 03:54:35 +0000 (23:54 -0400)]
drm/radeon/kms: add quirk to make HP DV5000 laptop resume


Reported-by: Andres Cimmarusti <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agoInput: synaptics - relax capability ID checks on newer hardware
Dmitry Torokhov [Wed, 21 Jul 2010 07:01:19 +0000 (00:01 -0700)]
Input: synaptics - relax capability ID checks on newer hardware

Older firmwares fixed the middle byte of the Synaptics capabilities
query to 0x47, but starting with firmware 7.5 the middle byte
represents submodel ID, sometimes also called "dash number".

Reported-and-tested-by: Miroslav Šulc <>
Signed-off-by: Dmitry Torokhov <>
11 years agox86: auditsyscall: fix fastpath return value after reschedule
Roland McGrath [Thu, 22 Jul 2010 00:44:12 +0000 (17:44 -0700)]
x86: auditsyscall: fix fastpath return value after reschedule

In the CONFIG_AUDITSYSCALL fast-path for x86 64-bit system calls,
we can pass a bad return value and/or error indication for the
system call to audit_syscall_exit().  This happens when
TIF_NEED_RESCHED was set as the system call returned, so we went
out to schedule() and came back to the exit-audit fast-path.  The
fix is to reload the user return value register from the pt_regs
before using it for audit_syscall_exit().

Both the 32-bit kernel's fast path and the 64-bit kernel's 32-bit
system call fast paths work slightly differently, so that they
always leave the fast path entirely to reschedule and don't return
there, so they don't have the analogous bugs.

Reported-by: Alexander Viro <>
Signed-off-by: Roland McGrath <>
11 years agosysrq,kdb: Use __handle_sysrq() for kdb's sysrq function
Jason Wessel [Thu, 22 Jul 2010 00:27:07 +0000 (19:27 -0500)]
sysrq,kdb: Use __handle_sysrq() for kdb's sysrq function

The kdb code should not toggle the sysrq state in case an end user
wants to try and resume the normal kernel execution.

Signed-off-by: Jason Wessel <>
Acked-by: Dmitry Torokhov <>
11 years agodebug_core,kdb: fix kgdb_connected bit set in the wrong place
Jason Wessel [Thu, 22 Jul 2010 00:27:07 +0000 (19:27 -0500)]
debug_core,kdb: fix kgdb_connected bit set in the wrong place

Immediately following an exit from the kdb shell the kgdb_connected
variable should be set to zero, unless there are breakpoints planted.
If the kgdb_connected variable is not zeroed out with kdb, it is
impossible to turn off kdb.

This patch is merely a work around for now, the real fix will check
for the breakpoints.

Signed-off-by: Jason Wessel <>
11 years agoFix merge regression from external kdb to upstream kdb
Jason Wessel [Thu, 22 Jul 2010 00:27:06 +0000 (19:27 -0500)]
Fix merge regression from external kdb to upstream kdb

In the process of merging kdb to the mainline, the kdb lsmod command
stopped printing the base load address of kernel modules.  This is
needed for using kdb in conjunction with external tools such as gdb.

Simply restore the functionality by adding a kdb_printf for the base
load address of the kernel modules.

Signed-off-by: Jason Wessel <>
11 years agorepair gdbstub to match the gdbserial protocol specification
Jason Wessel [Thu, 22 Jul 2010 00:27:05 +0000 (19:27 -0500)]
repair gdbstub to match the gdbserial protocol specification

The gdbserial protocol handler should return an empty packet instead
of an error string when ever it responds to a command it does not

The problem cases come from a debugger client sending
qTBuffer, qTStatus, qSearch, qSupported.

The incorrect response from the gdbstub leads the debugger clients to
not function correctly.  Recent versions of gdb will not detach correctly as a result of this behavior.

Signed-off-by: Jason Wessel <>
Signed-off-by: Dongdong Deng <>
11 years agokdb: break out of kdb_ll() when command is terminated
Martin Hicks [Thu, 22 Jul 2010 00:27:05 +0000 (19:27 -0500)]
kdb: break out of kdb_ll() when command is terminated

Without this patch the "ll" linked-list traversal command won't
terminate when you hit q/Q.

Signed-off-by: Martin Hicks <>
Signed-off-by: Jason Wessel <>
11 years agodrm/radeon/kms: fix RADEON_INFO_CRTC_FROM_ID info ioctl
Alex Deucher [Wed, 21 Jul 2010 18:05:35 +0000 (14:05 -0400)]
drm/radeon/kms: fix RADEON_INFO_CRTC_FROM_ID info ioctl

Return the crtc_id, not the counter value.  They are not
necessarily the same.

Cc: Jerome Glisse <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agoFix ttm_page_alloc.c build breakage
Luck, Tony [Wed, 21 Jul 2010 17:15:39 +0000 (10:15 -0700)]
Fix ttm_page_alloc.c build breakage

The commit 1e8655f87333def92bb8215b423adc65403b08a5
    drm/ttm: Fix build on architectures without AGP

looks at TTM_HAS_AGP before it has been set in ttm_bo_driver.h

Move the conditional inclusion of <asm/agp.h> *after* we have included

Signed-of-by: Tony Luck <>
Signed-off-by: Dave Airlie <>
11 years agodrm/radeon/kms: fix legacy LVDS dpms sequence
Alex Deucher [Wed, 21 Jul 2010 23:37:21 +0000 (19:37 -0400)]
drm/radeon/kms: fix legacy LVDS dpms sequence

Add delay after turning off the LVDS encoder.


Tested-by: Jan Kreuzer <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agodrm/radeon/kms: drop taking lock around crtc lookup.
Dave Airlie [Wed, 21 Jul 2010 23:57:13 +0000 (09:57 +1000)]
drm/radeon/kms: drop taking lock around crtc lookup.

We only add/remove crtcs at driver load, you cannot remove when
the GPU is running a CS packet since the fd is open, when
GPU hotplugging on radeons actually is needed all this locking
needs a review and I've started re-working kms core locking to deal
with this better. But for now avoid long delays in CS processing when
hotplug detect is happening in a different thread.

this fixes a regression introduced with hotplug detection.

Signed-off-by: Dave Airlie <>
11 years agoMerge branch 'urgent' of git://
Linus Torvalds [Wed, 21 Jul 2010 16:31:15 +0000 (09:31 -0700)]
Merge branch 'urgent' of git://git./linux/kernel/git/brodo/pcmcia-2.6

* 'urgent' of git://
  pcmcia: fix 'driver ... did not release config properly' warning

11 years agoMerge branch 'shrinker' of git://
Linus Torvalds [Wed, 21 Jul 2010 16:30:59 +0000 (09:30 -0700)]
Merge branch 'shrinker' of git://git./linux/kernel/git/dgc/xfsdev

* 'shrinker' of git://
  mm: add context argument to shrinker callback to remaining shrinkers

11 years agoMerge branch 'fix/asoc' of git://
Linus Torvalds [Wed, 21 Jul 2010 16:29:39 +0000 (09:29 -0700)]
Merge branch 'fix/asoc' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'fix/asoc' of git://
  ASoC: Select wm_hubs automatically for WM8994
  ASoC: Remove duplicate AUX definition from WM8776
  ASoC:: remove a redundant snd_soc_unregister_codec call in wm8988_register
  ASoC: wm8727: add a missing return in wm8727_platform_probe
  ASoC: fsi: fixup wrong value setting order of TDM
  ASoC: fsi: fixup clock inversion operation

11 years agoMerge git://
Linus Torvalds [Wed, 21 Jul 2010 16:28:50 +0000 (09:28 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://
  math-emu: correct test for downshifting fraction in _FP_FROM_INT()
  perf: Add DWARF register lookup for sparc
  MAINTAINERS: Add SBUS driver path to sparc entry.
  drivers/sbus: Remove unnecessary casts of private_data
  sparc: remove homegrown L1_CACHE_ALIGN macro
  sparc64: fix the build error due to smp_kgdb_capture_client()
  sparc64: Fix maybe_change_configuration() PCR setting.
  arch/sparc/kernel: Eliminate what looks like a NULL pointer dereference
  sparc64: Update defconfig.
  sunsu: Fix use after free in su_remove().
  sunserial: Don't call add_preferred_console() when console= is specified.
  sparc32: Kill none_mask, it's bogus.

11 years agoFix up trivial spelling errors ('taht' -> 'that')
Linus Torvalds [Wed, 21 Jul 2010 16:25:42 +0000 (09:25 -0700)]
Fix up trivial spelling errors ('taht' -> 'that')

Pointed out by Lucas who found the new one in a comment in
setup_percpu.c. And then I fixed the others that I grepped

Reported-by: Lucas <>
Signed-off-by: Linus Torvalds <>
11 years agoACPI: fix unused function warning
KOSAKI Motohiro [Tue, 20 Jul 2010 22:18:35 +0000 (15:18 -0700)]
ACPI: fix unused function warning


drivers/acpi/processor_idle.c:83: warning: 'us_to_pm_timer_ticks' defined but not used.

Signed-off-by: KOSAKI Motohiro <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Len Brown <>
11 years agokbuild: Fix make rpm
Michal Marek [Thu, 15 Jul 2010 08:36:37 +0000 (10:36 +0200)]
kbuild: Fix make rpm

make rpm was broken by commit 0915512:
make clean
set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
/bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only >
cat: .scmversion: input file is output file
make[1]: *** [rpm] Error 1

Reported-and-tested-by: "Zheng, Jiajia" <>
Signed-off-by: Michal Marek <>
11 years agopcmcia: fix 'driver ... did not release config properly' warning
Patrick McHardy [Tue, 20 Jul 2010 22:21:42 +0000 (15:21 -0700)]
pcmcia: fix 'driver ... did not release config properly' warning

Up to 2.6.34 pcmcia_release_irq() reset p_dev->_irq to 0 after releasing
the irq.  The IRQ is now released in pcmcia_disable_device(), however
p_dev->_irq is not reset, triggering a warning in pcmcia_device_remove().

Signed-off-by: Patrick McHardy <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Dominik Brodowski <>
11 years agoMerge branch 'fix' of git://
Russell King [Wed, 21 Jul 2010 08:26:37 +0000 (09:26 +0100)]
Merge branch 'fix' of git://git./linux/kernel/git/ycmiao/pxa-linux-2.6

11 years agomm: add context argument to shrinker callback to remaining shrinkers
Dave Chinner [Wed, 21 Jul 2010 05:33:01 +0000 (15:33 +1000)]
mm: add context argument to shrinker callback to remaining shrinkers

Add the shrinkers missed in the first conversion of the API in
commit 7f8275d0d660c146de6ee3017e1e2e594c49e820 ("mm: add context argument to
shrinker callback").

Signed-off-by: Dave Chinner <>
11 years agoInput: twl40300-keypad - fix handling of "all ground" rows
Dmitry Torokhov [Wed, 21 Jul 2010 03:25:35 +0000 (20:25 -0700)]
Input: twl40300-keypad - fix handling of "all ground" rows

The Nokia RX51 board code (arch/arm/mach-omap2/board-rx51-peripherals.c)
defines a key map for the matrix keypad keyboard. The hardware seems to
use all of the 8 rows and 8 columns of the keypad, although not all
possible locations are used.

The TWL4030 supports keypads with at most 8 rows and 8 columns. Most keys
are defined with a row and column number between 0 and 7, except

        KEY(0xff, 2, KEY_F9),
        KEY(0xff, 4, KEY_F10),
        KEY(0xff, 5, KEY_F11),

which represent keycodes that should be emitted when entire row is
connected to the ground.  since the driver handles this case as if we
had an extra column in the key matrix. Unfortunately we do not allocate
enough space and end up owerwriting some random memory.

Reported-and-tested-by: Laurent Pinchart <>
Signed-off-by: Dmitry Torokhov <>
11 years agoInput: gamecon - reference correct pad in gc_psx_command()
Dmitry Torokhov [Wed, 21 Jul 2010 03:25:35 +0000 (20:25 -0700)]
Input: gamecon - reference correct pad in gc_psx_command()

Otherwise we won't see any events from the gamepad.

Reported-and-tested-by: Eugene Yudin <>
Signed-off-by: Dmitry Torokhov <>
11 years agoInput: gamecon - reference correct input device in NES mode
Dmitry Torokhov [Wed, 21 Jul 2010 03:25:35 +0000 (20:25 -0700)]
Input: gamecon - reference correct input device in NES mode

We moved input devices from 'struct gc' to individial pads (struct
gc-pad), but gc_nes_process_packet() was still trying to use old
ones and crashing.

Signed-off-by: Dmitry Torokhov <>
11 years agomath-emu: correct test for downshifting fraction in _FP_FROM_INT()
Mikael Pettersson [Wed, 21 Jul 2010 01:45:14 +0000 (18:45 -0700)]
math-emu: correct test for downshifting fraction in _FP_FROM_INT()

The kernel's math-emu code contains a macro _FP_FROM_INT() which is
used to convert an integer to a raw normalized floating-point value.
It does this basically in three steps:

1. Compute the exponent from the number of leading zero bits.
2. Downshift large fractions to put the MSB in the right position
   for normalized fractions.
3. Upshift small fractions to put the MSB in the right position.

There is an boundary error in step 2, causing a fraction with its
MSB exactly one bit above the normalized MSB position to not be
downshifted.  This results in a non-normalized raw float, which when
packed becomes a massively inaccurate representation for that input.

The impact of this depends on a number of arch-specific factors,
but it is known to have broken emulation of FXTOD instructions
on UltraSPARC III, which was originally reported as GCC bug 44631

Any arch which uses math-emu to emulate conversions from integers to
same-size floats may be affected.

The fix is simple: the exponent comparison used to determine if the
fraction should be downshifted must be "<=" not "<".

I'm sending a kernel module to test this as a reply to this message.
There are also SPARC user-space test cases in the GCC bug entry.

Signed-off-by: Mikael Pettersson <>
Signed-off-by: David S. Miller <>
11 years agoMerge branch 'drm-fixes' of git://
Linus Torvalds [Wed, 21 Jul 2010 01:29:25 +0000 (18:29 -0700)]
Merge branch 'drm-fixes' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://
  drm/r600: fix possible NULL pointer derefernce
  drm/radeon/kms: add quirk for ASUS HD 3600 board
  include/linux/vgaarb.h: add missing part of include guard
  drm/nouveau: Fix crashes during fbcon init on single head cards.
  drm/nouveau: fix pcirom vbios shadow breakage from acpi rom patch
  drm/radeon/kms: fix shared ddc harder
  drm/i915: enable low power render writes on GEN3 hardware.
  drm/i915: Define MI_ARB_STATE bits
  vmwgfx: return -EFAULT if copy_to_user fails
  fb: handle allocation failure in alloc_apertures()
  drm: radeon: check kzalloc() result
  drm/ttm: Fix build on architectures without AGP
  drm/radeon/kms: fix gtt MC base alignment on rs4xx/rs690/rs740 asics
  drm/radeon/kms: fix possible mis-detection of sideport on rs690/rs740
  drm/radeon/kms: fix legacy tv-out pal mode

11 years agodrm/r600: fix possible NULL pointer derefernce
Alex Deucher [Wed, 21 Jul 2010 00:29:32 +0000 (10:29 +1000)]
drm/r600: fix possible NULL pointer derefernce

Reported-by: Alexander Y. Fomichev <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agodrm/radeon/kms: add quirk for ASUS HD 3600 board
Alex Deucher [Tue, 20 Jul 2010 22:07:22 +0000 (18:07 -0400)]
drm/radeon/kms: add quirk for ASUS HD 3600 board

Connector is actually DVI rather than HDMI.

Reported-by: trapDoor <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agoinclude/linux/vgaarb.h: add missing part of include guard
Doug Goldstein [Tue, 20 Jul 2010 22:22:25 +0000 (15:22 -0700)]
include/linux/vgaarb.h: add missing part of include guard

vgaarb.h was missing the #define of the #ifndef at the top for the guard
to prevent multiple #include's from causing re-define errors

Signed-off-by: Doug Goldstein <>
Cc: Dave Airlie <>
Cc: Jesse Barnes <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Dave Airlie <>
11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Tue, 20 Jul 2010 23:27:58 +0000 (16:27 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/sage/ceph-client

* 'for-linus' of git://
  ceph: do not include cap/dentry releases in replayed messages
  ceph: reuse request message when replaying against recovering mds
  ceph: fix creation of ipv6 sockets
  ceph: fix parsing of ipv6 addresses
  ceph: fix printing of ipv6 addrs
  ceph: add kfree() to error path
  ceph: fix leak of mon authorizer
  ceph: fix message revocation

11 years agoMerge branch 'linuxdocs' of git://
Linus Torvalds [Tue, 20 Jul 2010 23:27:34 +0000 (16:27 -0700)]
Merge branch 'linuxdocs' of git://git./linux/kernel/git/rdunlap/linux-docs

* 'linuxdocs' of git://
  documentation: fix almost duplicate filenames (IO/io-mapping.txt)

11 years agoMerge git://
Linus Torvalds [Tue, 20 Jul 2010 23:26:42 +0000 (16:26 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git:// (24 commits)
  bridge: Partially disable netpoll support
  tcp: fix crash in tcp_xmit_retransmit_queue
  IPv6: fix CoA check in RH2 input handler (mip6_rthdr_input())
  ibmveth: lost IRQ while closing/opening device leads to service loss
  rt2x00: Fix lockdep warning in rt2x00lib_probe_dev()
  vhost: avoid pr_err on condition guest can trigger
  ipmr: Don't leak memory if fib lookup fails.
  vhost-net: avoid flush under lock
  net: fix problem in reading sock TX queue
  net/core: neighbour update Oops
  net: skb_tx_hash() fix relative to skb_orphan_try()
  rfs: call sock_rps_record_flow() in tcp_splice_read()
  xfrm: do not assume that template resolving always returns xfrms
  hostap_pci: set dev->base_addr during probe
  axnet_cs: use spin_lock_irqsave in ax_interrupt
  dsa: Fix Kconfig dependencies.
  act_nat: not all of the ICMP packets need an IP header payload
  r8169: incorrect identifier for a 8168dp
  Phonet: fix skb leak in pipe endpoint accept()
  Bluetooth: Update sec_level/auth_type for already existing connections

11 years agovfs: fix RCU-lockdep false positive due to /proc
Paul E. McKenney [Tue, 20 Jul 2010 20:24:34 +0000 (13:24 -0700)]
vfs: fix RCU-lockdep false positive due to /proc

If a single-threaded process does a file-descriptor operation, and some
other process accesses that same file descriptor via /proc, the current
rcu_dereference_check_fdtable() can give a false-positive RCU-lockdep
splat due to the reference count being increased by the /proc access after
the reference-count check in fget_light() but before the check in

This commit prevents this false positive by checking for a single-threaded
process.  To avoid #include hell, this commit uses the wrapper for
thread_group_empty(current) defined by rcu_my_thread_group_empty()
provided in a separate commit.

Located-by: Miles Lane <>
Located-by: Eric Dumazet <>
Signed-off-by: Paul E. McKenney <>
Cc: Al Viro <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agosdhci-s3c: add missing remove function
Marek Szyprowski [Tue, 20 Jul 2010 20:24:33 +0000 (13:24 -0700)]
sdhci-s3c: add missing remove function

System will crash sooner or later once the memory with the code of the
s3c-sdhci.ko module is reused for something else. I really have no idea
how the lack of remove function went unnoticed into the mainline code.

Signed-off-by: Marek Szyprowski <>
Signed-off-by: Kyungmin Park <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agoAndres has moved
Andres Salomon [Tue, 20 Jul 2010 20:24:32 +0000 (13:24 -0700)]
Andres has moved

My Collabora address is no longer enabled - update the MODULE_AUTHOR
fields of drivers to my current email address.

Signed-off-by: Andres Salomon <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agox86,nobootmem: make alloc_bootmem_node fall back to other node when 32bit numa is...
Yinghai Lu [Tue, 20 Jul 2010 20:24:31 +0000 (13:24 -0700)]
x86,nobootmem: make alloc_bootmem_node fall back to other node when 32bit numa is used

Borislav Petkov reported his 32bit numa system has problem:

[    0.000000] Reserving total of 4c00 pages for numa KVA remap
[    0.000000] kva_start_pfn ~ 32800 max_low_pfn ~ 375fe
[    0.000000] max_pfn = 238000
[    0.000000] 8202MB HIGHMEM available.
[    0.000000] 885MB LOWMEM available.
[    0.000000]   mapped low ram: 0 - 375fe000
[    0.000000]   low ram: 0 - 375fe000
[    0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 1000 1000 => 34e7000
[    0.000000] alloc (nid=8 100000 - 7ee00000) (1000000 - ffffffff) 200 40 => 34c9d80
[    0.000000] alloc (nid=0 100000 - 7ee00000) (1000000 - ffffffffffffffff) 180 40 => 34e6140
[    0.000000] alloc (nid=1 80000000 - c7e60000) (1000000 - ffffffffffffffff) 240 40 => 80000000
[    0.000000] BUG: unable to handle kernel paging request at 40000000
[    0.000000] IP: [<c2c8cff1>] __alloc_memory_core_early+0x147/0x1d6
[    0.000000] *pdpt = 0000000000000000 *pde = f000ff53f000ff00
[    0.000000] Call Trace:
[    0.000000]  [<c2c8b4f8>] ? __alloc_bootmem_node+0x216/0x22f
[    0.000000]  [<c2c90c9b>] ? sparse_early_usemaps_alloc_node+0x5a/0x10b
[    0.000000]  [<c2c9149e>] ? sparse_init+0x1dc/0x499
[    0.000000]  [<c2c79118>] ? paging_init+0x168/0x1df
[    0.000000]  [<c2c780ff>] ? native_pagetable_setup_start+0xef/0x1bb

looks like it allocates too much high address for bootmem.

Try to cut limit with get_max_mapped()

Reported-by: Borislav Petkov <>
Tested-by: Conny Seidel <>
Signed-off-by: Yinghai Lu <>
Cc: <> [2.6.34.x]
Cc: Ingo Molnar <>
Cc: "H. Peter Anvin" <>
Cc: Thomas Gleixner <>
Cc: Johannes Weiner <>
Cc: Lee Schermerhorn <>
Cc: Mel Gorman <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agox86, numa: fix boot without RAM on node0 again
Yinghai Lu [Tue, 20 Jul 2010 20:24:30 +0000 (13:24 -0700)]
x86, numa: fix boot without RAM on node0 again

Commit e534c7c5f8d6 ("numa: x86_64: use generic percpu var
numa_node_id() implementation") broke numa systems that don't have ram
on node0 when MEMORY_HOTPLUG is enabled, because cpu_up() will call
cpu_to_node() before per_cpu(numa_node) is setup for APs.

When Node0 doesn't have RAM, on x86, cpus already round it to nearest
node with RAM in x86_cpu_to_node_map.  and per_cpu(numa_node) is not set
up until in c_init for APs.

When later cpu_up() calling cpu_to_node() will get 0 again, and make it
online even there is no RAM on node0.  so later all APs can not booted up,
and later will have panic.

[    1.611101] On node 0 totalpages: 0
[    2.608558] On node 0 totalpages: 0
[    2.612065] Brought up 1 CPUs
[    2.615199] Total of 1 processors activated (3990.31 BogoMIPS).
   93.225341] calling  loop_init+0x0/0x1a4 @ 1
[   93.229314] PERCPU: allocation failed, size=80 align=8, failed to populate
[   93.246539] Pid: 1, comm: swapper Tainted: G        W   2.6.35-rc4-tip-yh-04371-gd64e6c4-dirty #354
[   93.264621] Call Trace:
[   93.266533]  [<ffffffff81125e43>] pcpu_alloc+0x83a/0x8e7
[   93.270710]  [<ffffffff81125f15>] __alloc_percpu+0x10/0x12
[   93.285849]  [<ffffffff8140786c>] alloc_disk_node+0x94/0x16d
[   93.291811]  [<ffffffff81407956>] alloc_disk+0x11/0x13
[   93.306157]  [<ffffffff81503e51>] loop_alloc+0xa7/0x180
[   93.310538]  [<ffffffff8277ef48>] loop_init+0x9b/0x1a4
[   93.324909]  [<ffffffff8277eead>] ? loop_init+0x0/0x1a4
[   93.329650]  [<ffffffff810001f2>] do_one_initcall+0x57/0x136
[   93.345197]  [<ffffffff827486d0>] kernel_init+0x184/0x20e
[   93.348146]  [<ffffffff81034954>] kernel_thread_helper+0x4/0x10
[   93.365194]  [<ffffffff81c7cc3c>] ? restore_args+0x0/0x30
[   93.369305]  [<ffffffff8274854c>] ? kernel_init+0x0/0x20e
[   93.386011]  [<ffffffff81034950>] ? kernel_thread_helper+0x0/0x10
[   93.392047] loop: out of memory

Try to assign per_cpu(numa_node) early

[ tidy up code comment]
Signed-off-by: Yinghai <>
Cc: Thomas Gleixner <>
Cc: Ingo Molnar <>
Cc: "H. Peter Anvin" <>
Cc: Tejun Heo <>
Cc: Denys Vlasenko <>
Acked-by: Lee Schermerhorn <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agoedac: mpc85xx: add support for MPC8569 EDAC controllers
Anton Vorontsov [Tue, 20 Jul 2010 20:24:28 +0000 (13:24 -0700)]
edac: mpc85xx: add support for MPC8569 EDAC controllers

Simply add a proper ID into the device table.

Signed-off-by: Anton Vorontsov <>
Cc: Doug Thompson <>
Cc: Peter Tyser <>
Cc: Dave Jiang <>
Cc: Kumar Gala <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>