linux-2.6.git
14 years agox86_64: fake pxm-to-node mapping for fake numa
David Rientjes [Sat, 21 Jul 2007 15:10:32 +0000 (17:10 +0200)]
x86_64: fake pxm-to-node mapping for fake numa

For NUMA emulation, our SLIT should represent the true NUMA topology of the
system but our proximity domain to node ID mapping needs to reflect the
emulated state.

When NUMA emulation has successfully setup fake nodes on the system, a new
function, acpi_fake_nodes() is called.  This function determines the proximity
domain (_PXM) for each true node found on the system.  It then finds which
emulated nodes have been allocated on this true node as determined by its
starting address.  The node ID to PXM mapping is changed so that each fake
node ID points to the PXM of the true node that it is located on.

If the machine failed to register a SLIT, then we assume there is no special
requirement for emulated node affinity so we use the default LOCAL_DISTANCE,
which is newly exported to this code, as our measurement if the emulated nodes
appear in the same PXM.  Otherwise, we use REMOTE_DISTANCE.

PXM_INVAL and NID_INVAL are also exported to the ACPI header file so that we
can compare node_to_pxm() results in generic code (in this case, the SRAT
code).

Cc: Len Brown <lenb@kernel.org>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: extract helper function from e820_register_active_regions
David Rientjes [Sat, 21 Jul 2007 15:10:31 +0000 (17:10 +0200)]
x86_64: extract helper function from e820_register_active_regions

The logic in e820_find_active_regions() for determining the true active
regions for an e820 entry given a range of PFN's is needed for
e820_hole_size() as well.

e820_hole_size() is called from the NUMA emulation code to determine the
reserved area within an address range on a per-node basis.  Its logic should
duplicate that of finding active regions in an e820 entry because these are
the only true ranges we may register anyway.

[akpm@linux-foundation.org: cleanup]
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Quicklist support for x86_64
Christoph Lameter [Sat, 21 Jul 2007 15:10:30 +0000 (17:10 +0200)]
x86_64: Quicklist support for x86_64

This adds caching of pgds and puds, pmds, pte.  That way we can avoid costly
zeroing and initialization of special mappings in the pgd.

A second quicklist is useful to separate out PGD handling.  We can carry the
initialized pgds over to the next process needing them.

Also clean up the pgd_list handling to use regular list macros.  There is no
need anymore to avoid the lru field.

Move the add/removal of the pgds to the pgdlist into the constructor /
destructor.  That way the implementation is congruent with i386.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Acked-by: William Lee Irwin III <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: timer_irq_works() static again
Adrian Bunk [Sat, 21 Jul 2007 15:10:29 +0000 (17:10 +0200)]
i386: timer_irq_works() static again

timer_irq_works() needlessly became global.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: arch/i386/kernel/i8253.c should #include <asm/timer.h>
Adrian Bunk [Sat, 21 Jul 2007 15:10:28 +0000 (17:10 +0200)]
i386: arch/i386/kernel/i8253.c should #include <asm/timer.h>

Every file should include the headers containing the prototypes for its
global functions.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: remapped_pgdat_init() static
Adrian Bunk [Sat, 21 Jul 2007 15:10:27 +0000 (17:10 +0200)]
i386: remapped_pgdat_init() static

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: minor nx handling adjustment
Jan Beulich [Sat, 21 Jul 2007 15:10:26 +0000 (17:10 +0200)]
i386: minor nx handling adjustment

Constrain __supported_pte_mask and NX handling to just the PAE kernel.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: smp-alt-once option is only useful with HOTPLUG_CPU
Jan Beulich [Sat, 21 Jul 2007 15:10:25 +0000 (17:10 +0200)]
i386: smp-alt-once option is only useful with HOTPLUG_CPU

Hence remove its handling in the opposite case.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: remove unused variable maxcpus
Jan Beulich [Sat, 21 Jul 2007 15:10:23 +0000 (17:10 +0200)]
x86_64: remove unused variable maxcpus

.. and adjust documentation to properly reflect options that are
x86-64 specific.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: minor exception trace variables cleanup
Jan Beulich [Sat, 21 Jul 2007 15:10:22 +0000 (17:10 +0200)]
x86_64: minor exception trace variables cleanup

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: allow debuggers to access the vsyscall page with compat vDSO
Jan Beulich [Sat, 21 Jul 2007 15:10:21 +0000 (17:10 +0200)]
i386: allow debuggers to access the vsyscall page with compat vDSO

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: ia32entry adjustments
Jan Beulich [Sat, 21 Jul 2007 15:10:20 +0000 (17:10 +0200)]
x86_64: ia32entry adjustments

Consolidate the three 32-bit system call entry points so that they all
treat registers in similar ways.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Avoid too many remote cpu references due to /proc/stat
Ravikiran G Thirumalai [Sat, 21 Jul 2007 15:10:19 +0000 (17:10 +0200)]
x86_64: Avoid too many remote cpu references due to /proc/stat

Too many remote cpu references due to /proc/stat.

On x86_64, with newer kernel versions, kstat_irqs is a bit of a problem.
On every call to kstat_irqs, the process brings in per-cpu data from all
online cpus.  Doing this for NR_IRQS, which is now 256 + 32 * NR_CPUS
results in (256+32*63) * 63 remote cpu references on a 64 cpu config.
/proc/stat is parsed by common commands like top, who etc, causing lots
of cacheline transfers

This statistic seems useless.  Other 'big iron' arches disable this.

AK: changed to remove for all SMP setups
AK: add comment

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: time.c white space wreckage cleanup
Thomas Gleixner [Sat, 21 Jul 2007 15:10:18 +0000 (17:10 +0200)]
x86_64: time.c white space wreckage cleanup

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: apic.c coding style janitor work
Thomas Gleixner [Sat, 21 Jul 2007 15:10:17 +0000 (17:10 +0200)]
x86_64: apic.c coding style janitor work

Fix coding style, white space wreckage and remove unused code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86: share hpet.h with i386
Thomas Gleixner [Sat, 21 Jul 2007 15:10:16 +0000 (17:10 +0200)]
x86: share hpet.h with i386

hpet.h in asm-i386 and asm-x86_64 contain tons of duplicated stuff.
Consolidate into one shared header file.

AK: Fix i386 compilation with !X86_IO_APIC

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: fiuxp pt_reqs leftovers
Thomas Gleixner [Sat, 21 Jul 2007 15:10:15 +0000 (17:10 +0200)]
x86_64: fiuxp pt_reqs leftovers

The hpet_rtc_interrupt handler still uses pt_regs. Fix it.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Fix APIC typo
Thomas Gleixner [Sat, 21 Jul 2007 15:10:14 +0000 (17:10 +0200)]
x86_64: Fix APIC typo

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Remove dead code and other janitor work in tsc.c
Thomas Gleixner [Sat, 21 Jul 2007 15:10:13 +0000 (17:10 +0200)]
x86_64: Remove dead code and other janitor work in tsc.c

Remove unused code and variables and do some codingstyle / whitespace
cleanups while at it.

Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Use generic xtime init
Thomas Gleixner [Sat, 21 Jul 2007 15:10:12 +0000 (17:10 +0200)]
x86_64: Use generic xtime init

xtime can be initialized including the cmos update from the generic
timekeeping code. Remove the arch specific implementation.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: use generic cmos update
Thomas Gleixner [Sat, 21 Jul 2007 15:10:11 +0000 (17:10 +0200)]
x86_64: use generic cmos update

Use the generic cmos update function in kernel/time/ntp.c

Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Untangle asm/hpet.h from asm/timex.h
Chris Wright [Sat, 21 Jul 2007 15:10:09 +0000 (17:10 +0200)]
x86_64: Untangle asm/hpet.h from asm/timex.h

When making changes to x86_64 timers, I noticed that touching hpet.h triggered
an unreasonably large rebuild.  Untangling it from timex.h quiets the extra
rebuild quite a bit.

Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: remove pit_interrupt_hook
Chris Wright [Sat, 21 Jul 2007 15:10:08 +0000 (17:10 +0200)]
i386: remove pit_interrupt_hook

Remove pit_interrupt_hook as it adds just an extra layer.

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: hpet tsc calibration fix broken smi detection logic
Thomas Gleixner [Sat, 21 Jul 2007 15:10:07 +0000 (17:10 +0200)]
x86_64: hpet tsc calibration fix broken smi detection logic

The current SMI detection logic in read_hpet_tsc() makes sure,
that when a SMI happens between the read of the HPET counter and
the read of the TSC, this wrong value is used for TSC calibration.

This is not the intention of the function. The comparison must ensure,
that we do _NOT_ use such a value.

Fix the check to use calibration values where delta of the two TSC reads
is smaller than a reasonable threshold.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: Reserve the right performance counter for the Intel PerfMon NMI watchdog
Björn Steinbrink [Sat, 21 Jul 2007 15:10:06 +0000 (17:10 +0200)]
i386: Reserve the right performance counter for the Intel PerfMon NMI watchdog

The Intel PerfMon NMI watchdog reserves the first performance counter,
but uses the second one. Make it correctly reserve the second one.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Don't use softirq safe locks in smp_call_function
Andi Kleen [Sat, 21 Jul 2007 15:10:05 +0000 (17:10 +0200)]
x86_64: Don't use softirq safe locks in smp_call_function

It is not fully softirq safe anyways.

Can't do a WARN_ON unfortunately because it could trigger in the
panic case.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: remove extra extern declaring about dmi_ioremap
Yinghai Lu [Sat, 21 Jul 2007 15:10:04 +0000 (17:10 +0200)]
x86_64: remove extra extern declaring about dmi_ioremap

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: Add L3 cache support to AMD CPUID4 emulation
Andi Kleen [Sat, 21 Jul 2007 15:10:03 +0000 (17:10 +0200)]
i386: Add L3 cache support to AMD CPUID4 emulation

With that an L3 cache is correctly reported in the cache information in /sys

With fixes from Andreas Herrmann and Dean Gaudet and Joachim Deguara

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu
Andi Kleen [Sat, 21 Jul 2007 15:10:01 +0000 (17:10 +0200)]
x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu

This implements new vDSO for x86-64.  The concept is similar
to the existing vDSOs on i386 and PPC.  x86-64 has had static
vsyscalls before,  but these are not flexible enough anymore.

A vDSO is a ELF shared library supplied by the kernel that is mapped into
user address space.  The vDSO mapping is randomized for each process
for security reasons.

Doing this was needed for clock_gettime, because clock_gettime
always needs a syscall fallback and having one at a fixed
address would have made buffer overflow exploits too easy to write.

The vdso can be disabled with vdso=0

It currently includes a new gettimeofday implemention and optimized
clock_gettime(). The gettimeofday implementation is slightly faster
than the one in the old vsyscall.  clock_gettime is significantly faster
than the syscall for CLOCK_MONOTONIC and CLOCK_REALTIME.

The new calls are generally faster than the old vsyscall.

Advantages over the old x86-64 vsyscalls:
- Extensible
- Randomized
- Cleaner
- Easier to virtualize (the old static address range previously causes
overhead e.g. for Xen because it has to create special page tables for it)

Weak points:
- glibc support still to be written

The VM interface is partly based on Ingo Molnar's i386 version.

Includes compile fix from Joachim Deguara

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86: Support __attribute__((__cold__)) in gcc 4.3
Andi Kleen [Sat, 21 Jul 2007 15:10:00 +0000 (17:10 +0200)]
x86: Support __attribute__((__cold__)) in gcc 4.3

gcc 4.3 supports a new __attribute__((__cold__)) to mark functions cold. Any
path directly leading to a call of this function will be unlikely. And gcc
will try to generate smaller code for the function itself.

Please use with care. The code generation advantage isn't large and in most
cases it is not worth uglifying code with this.

This patch marks some common error functions like panic(), printk()
as cold.  This will longer term make many unlikely()s unnecessary, although
we can keep them for now for older compilers.

BUG is not marked cold because there is currently no way to tell
gcc to mark a inline function told.

Also all __init and __exit functions are marked cold. With a non -Os
build this will tell the compiler to generate slightly smaller code
for them. I think it currently only uses less alignments for labels,
but that might change in the future.

One disadvantage over *likely() is that they cannot be easily instrumented
to verify them.

Another drawback is that only the latest gcc 4.3 snapshots support this.
Unfortunately we cannot detect this using the preprocessor. This means older
snapshots will fail now. I don't think that's a problem because they are
unreleased compilers that nobody should be using.

gcc also has a __hot__ attribute, but I don't see any sense in using
this in the kernel right now. But someday I hope gcc will be able
to use more aggressive optimizing for hot functions even in -Os,
if that happens it should be added.

Includes compile fix from Thomas Gleixner.

Cc: Jan Hubicka <jh@suse.cz>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: Move all simple string operations out of line
Andi Kleen [Sat, 21 Jul 2007 15:09:59 +0000 (17:09 +0200)]
i386: Move all simple string operations out of line

The compiler generally generates reasonable inline code for the simple
cases and for the rest it's better for code size for them to be out of line.
Also there they can be potentially optimized more in the future.

In fact they probably should be in a .S file because they're all pure
assembly, but that's for another day.

Also some code style cleanup on them while I was on it (this seems
to be the last untouched really early Linux code)

This saves ~12k text for a defconfig kernel with gcc 4.1.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Always use builtin memcpy on gcc 4.3
Andi Kleen [Sat, 21 Jul 2007 15:09:58 +0000 (17:09 +0200)]
x86_64: Always use builtin memcpy on gcc 4.3

Jan asked to always use the builtin memcpy on gcc 4.3 mainline because
it should generate better code than the old macro. Let's try it.

Cc: Jan Hubicka <jh@suse.cz>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Use string instruction memcpy/memset on AMD Fam10
Andi Kleen [Sat, 21 Jul 2007 15:09:57 +0000 (17:09 +0200)]
x86_64: Use string instruction memcpy/memset on AMD Fam10

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: various cleanups in NUMA scan node
David Rientjes [Sat, 21 Jul 2007 15:09:56 +0000 (17:09 +0200)]
x86_64: various cleanups in NUMA scan node

In acpi_scan_nodes(), we immediately return -1 if acpi_numa <= 0, meaning
we haven't detected any underlying ACPI topology or we have explicitly
disabled its use from the command-line with numa=noacpi.

acpi_table_print_srat_entry() and acpi_table_parse_srat() are only
referenced within drivers/acpi/numa.c, so we can mark them as static and
remove their prototypes from the header file.

Likewise, pxm_to_node_map[] and node_to_pxm_map[] are only used within
drivers/acpi/numa.c, so we mark them as static and remove their externs
from the header file.

The automatic 'result' variable is unused in acpi_numa_init(), so it's
removed.

Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Use LOCAL_DISTANCE and REMOTE_DISTANCE in x86_64 ACPI code
David Rientjes [Sat, 21 Jul 2007 15:09:55 +0000 (17:09 +0200)]
x86_64: Use LOCAL_DISTANCE and REMOTE_DISTANCE in x86_64 ACPI code

Use LOCAL_DISTANCE and  REMOTE_DISTANCE in x86_64 ACPI code

Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Report the pending irq if available in smp_affinity
Andi Kleen [Sat, 21 Jul 2007 15:09:54 +0000 (17:09 +0200)]
x86_64: Report the pending irq if available in smp_affinity

Otherwise smp_affinity would only update after the next interrupt
on x86 systems.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Don't rely on a unique IO-APIC ID
Andi Kleen [Sat, 21 Jul 2007 15:09:53 +0000 (17:09 +0200)]
x86_64: Don't rely on a unique IO-APIC ID

Linux 64bit only uses the IO-APIC ID as an internal cookie. In the future
there could be some cases where the IO-APIC IDs are not unique because
they share an 8 bit space with CPUs and if there are enough CPUs
it is difficult to get them that. But Linux needs the io apic ID
internally for its data structures. Assign unique IO APIC ids on
table parsing.

TBD do for 32bit too

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: asm/ptrace.h needs linux/compiler.h
Jean Delvare [Sat, 21 Jul 2007 15:09:52 +0000 (17:09 +0200)]
x86_64: asm/ptrace.h needs linux/compiler.h

On x86_64, <asm/ptrace.h> uses __user but doesn't include
<linux/compiler.h>.  This could lead to build failures.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86: Always flush pages in change_page_attr
Andi Kleen [Sat, 21 Jul 2007 15:09:51 +0000 (17:09 +0200)]
x86: Always flush pages in change_page_attr

Fix a bug introduced with the CLFLUSH changes: we must always flush pages
changed in cpa(), not just when they are reverted.

Reenable CLFLUSH usage with that now (it was temporarily disabled
for .22)

Add some BUG_ONs

Contains fixes from  Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: Update defconfig
Andi Kleen [Sat, 21 Jul 2007 15:09:50 +0000 (17:09 +0200)]
i386: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: Update defconfig
Andi Kleen [Sat, 21 Jul 2007 15:09:49 +0000 (17:09 +0200)]
x86_64: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoatmel_lcdfb: use spare bits in 32bpp mode as alpha channel
Haavard Skinnemoen [Sat, 21 Jul 2007 11:38:02 +0000 (04:38 -0700)]
atmel_lcdfb: use spare bits in 32bpp mode as alpha channel

Set var->transp.offset and var->transp.length in 32bpp mode to indicate
that the 8 otherwise unused bits can be used for transparency.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agorivafb_setup() must be __devinit
Adrian Bunk [Sat, 21 Jul 2007 11:38:01 +0000 (04:38 -0700)]
rivafb_setup() must be __devinit

WARNING: drivers/built-in.o(.text+0x57106): Section mismatch: reference to .init.text:rivafb_setup (between 'rivafb_init' and 'nv3Busy')

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoatmel_lcdfb: Fix STN LCD support
Nicolas Ferre [Sat, 21 Jul 2007 11:37:59 +0000 (04:37 -0700)]
atmel_lcdfb: Fix STN LCD support

Fixes STN LCD support for the atmel_lcdfb framebuffer driver.

This patch is the result of a work from Jan Altenberg and has
been tested on a Hitachi SP06Q002 on at91sam9261ek.

It adds a Kconfig switch that enables the proper LCD in the
board configuration file (STN or TFT). The switch is used
in arch/arm/mach-at91/at91sam9261_devices.c & board-sam9261ek.c
as an example.

This patch includes the "Fix wrong line_length calculation"
little one from Jan and Haavard (submitted earlier).

AT91 platform informations are directly submitted trough
the at91 maintainer, here :
http://article.gmane.org/gmane.linux.kernel/543158

Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Cc: "Antonino A. Daplas" <adaplas@gmail.com>
Cc: Jan Altenberg <jan.altenberg@linutronix.de>
Cc: Patrice Vilchez <patrice.vilchez@rfo.atmel.com>
Cc: Andrew Victor <andrew@sanpeople.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agortc: add support for STK17TA8 chip
Thomas Hommel [Sat, 21 Jul 2007 11:37:58 +0000 (04:37 -0700)]
rtc: add support for STK17TA8 chip

This patch adds support for the Simtek STK17TA8 timekeeping chip.

The STK17TA8 is quite similar to the DS1553, but differs in register layout
and in various control bits in the registers.  I chose to make this a new
driver to avoid confusion in the code and to not get lost in #ifdefs.

Signed-off-by: Thomas Hommel <thomas.hommel@gefanuc.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agortc: update and use the MAX6900 century byte
Dale Farnsworth [Sat, 21 Jul 2007 11:37:57 +0000 (04:37 -0700)]
rtc: update and use the MAX6900 century byte

We now read and write the century byte in the max6900 chip.  We probably
don't need to do so on Linux-only system, but it's necessary when the chip
is shared by another OS that uses the century byte.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agortc kconfig: point out need for static linkage
David Brownell [Sat, 21 Jul 2007 11:37:56 +0000 (04:37 -0700)]
rtc kconfig: point out need for static linkage

Various people have expressed surprise that their modular RTC drivers don't
seem to work for initializing the system time at boot.  To help avoid such
unpleasantness, make the Kconfig text point out that the driver probably
needs to be statically linked.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agortc: do not return void value
Atsushi Nemoto [Sat, 21 Jul 2007 11:37:55 +0000 (04:37 -0700)]
rtc: do not return void value

This patch fixes these sparse warnings:

drivers/rtc/rtc-ds1742.c:265:2: warning: returning void-valued expression
drivers/rtc/rtc-ds1553.c:409:2: warning: returning void-valued expression

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: David Brownell <david-b@pacbell.net>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoUse menuconfig objects: ISDN/Gigaset
Jan Engelhardt [Sat, 21 Jul 2007 11:37:54 +0000 (04:37 -0700)]
Use menuconfig objects: ISDN/Gigaset

Change Kconfig objects from "menu, config" into "menuconfig" so that the user
can disable the whole feature without having to enter the menu first.

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Cc: Tilman Schmidt <tilman@imap.cc>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoUse menuconfig objects: ISDN
Jan Engelhardt [Sat, 21 Jul 2007 11:37:54 +0000 (04:37 -0700)]
Use menuconfig objects: ISDN

Unclutter the ISDN menu a tiny bit by moving ISDN4Linux and the CAPI2.0
layers into their own menu.

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Cc: Tilman Schmidt <tilman@imap.cc>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoUse menuconfig objects - CONFIG_ISDN_I4L
Tilman Schmidt [Sat, 21 Jul 2007 11:37:53 +0000 (04:37 -0700)]
Use menuconfig objects - CONFIG_ISDN_I4L

Remove a menu statement and several dependencies from the Kconfig files in
the drivers/isdn tree as they have become unnecessary by the transformation
of CONFIG_ISDN from "menu, config" into "menuconfig".
(Modified version of a patch originally proposed by Jan Engelhardt.)

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Cc: Jan Engelhardt <jengelh@computergmbh.de>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agospi.c:scan_boardinfo() mustn't be __init_or_module
Adrian Bunk [Sat, 21 Jul 2007 11:37:52 +0000 (04:37 -0700)]
spi.c:scan_boardinfo() mustn't be __init_or_module

WARNING: drivers/built-in.o(.text+0x889735): Section mismatch: reference to .init.text:scan_boardinfo (between 'spi_register_master' and '__unregister')

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agospufs: make signal-notification files readonly for NOSCHED contexts
Jeremy Kerr [Sat, 21 Jul 2007 11:37:51 +0000 (04:37 -0700)]
spufs: make signal-notification files readonly for NOSCHED contexts

Reading from the signal{1,2} files requires a spu_acquire_saved, so make these
files write-only for contexts created with SPU_CREATE_NOSCHED.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3fb: Set FBINFO_READS_FAST to speed up text console scrolling
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:51 +0000 (04:37 -0700)]
ps3fb: Set FBINFO_READS_FAST to speed up text console scrolling

ps3fb: Set FBINFO_READS_FAST to speed up text console scrolling (on average
50%, according to my tests)

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3fb: Shrink default virtual frame buffer size from 18 to 9 MiB
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:50 +0000 (04:37 -0700)]
ps3fb: Shrink default virtual frame buffer size from 18 to 9 MiB

ps3fb: Shrink the default virtual frame buffer size from 18 to 9 MiB, as
nobody really uses the double buffering feature and Linux can use an
additional 9 MiB.  It can still be overridden on the kernel command line using
`ps3fb=18M'.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3fb: Enable VT_HW_CONSOLE_BINDING for proper kexec
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:49 +0000 (04:37 -0700)]
ps3fb: Enable VT_HW_CONSOLE_BINDING for proper kexec

ps3fb: VT_HW_CONSOLE_BINDING must be enabled to make console unbinding work,
which is needed to give up all hypervisor resources before reboot or kexec.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoPS3: Fix build with 32-bit toolchains
Geoff Levand [Sat, 21 Jul 2007 11:37:49 +0000 (04:37 -0700)]
PS3: Fix build with 32-bit toolchains

The PS3 bootwrapper files use instructions only available on 64-bit CPUs.
Add the code generation directive '.machine "ppc64"' for toolchains
configured for 32-bit CPUs.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3: FLASH ROM Storage Driver
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:48 +0000 (04:37 -0700)]
ps3: FLASH ROM Storage Driver

Add a FLASH ROM Storage Driver for the PS3:
  - Implemented as a misc character device driver
  - Uses a fixed 256 KiB buffer allocated from boot memory as the hypervisor
    requires the writing of aligned 256 KiB blocks

Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3: BD/DVD/CD-ROM Storage Driver
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:47 +0000 (04:37 -0700)]
ps3: BD/DVD/CD-ROM Storage Driver

Add a BD/DVD/CD-ROM Storage Driver for the PS3:
  - Implemented as a SCSI device driver
  - Uses software scatter-gather with a 64 KiB bounce buffer as the hypervisor
    doesn't support scatter-gather

Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agops3: Disk Storage Driver
Geert Uytterhoeven [Sat, 21 Jul 2007 11:37:45 +0000 (04:37 -0700)]
ps3: Disk Storage Driver

Add a Disk Storage Driver for the PS3:
  - Implemented as a block device driver with a dynamic major
  - Disk names (and partitions) are of the format ps3d%c(%u)
  - Uses software scatter-gather with a 64 KiB bounce buffer as the hypervisor
    doesn't support scatter-gather

Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agopowerpc: tlb_32.c build fix
Mariusz Kozlowski [Sat, 21 Jul 2007 11:37:44 +0000 (04:37 -0700)]
powerpc: tlb_32.c build fix

allnoconfig results in this:

 CC      arch/powerpc/mm/tlb_32.o
In file included from include/asm/tlb.h:60,
                 from arch/powerpc/mm/tlb_32.c:30:
include/asm-generic/tlb.h: In function 'tlb_flush_mmu':
include/asm-generic/tlb.h:76: error: implicit declaration of function 'release_pages'
include/asm-generic/tlb.h: In function 'tlb_remove_page':
include/asm-generic/tlb.h:105: error: implicit declaration of function 'page_cache_release'

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoDocumentation:reference notifiers.txt in freezing-of-tasks.txt
Oliver Neukum [Sat, 21 Jul 2007 11:37:43 +0000 (04:37 -0700)]
Documentation:reference notifiers.txt in freezing-of-tasks.txt

freezing-of-tasks.txt mentions firmware issues without mentioning the use
of the new notifier API to overcome them.  Here's an update.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Nigel Cunningham <nigel@nigel.suspend2.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoslob: reduce list scanning
Matt Mackall [Sat, 21 Jul 2007 11:37:40 +0000 (04:37 -0700)]
slob: reduce list scanning

The version of SLOB in -mm always scans its free list from the beginning,
which results in small allocations and free segments clustering at the
beginning of the list over time.  This causes the average search to scan
over a large stretch at the beginning on each allocation.

By starting each page search where the last one left off, we evenly
distribute the allocations and greatly shorten the average search.

Without this patch, kernel compiles on a 1.5G machine take a large amount
of system time for list scanning.  With this patch, compiles are within a
few seconds of performance of a SLAB kernel with no notable change in
system time.

Signed-off-by: Matt Mackall <mpm@selenic.com>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoremove handle_mm_fault export
Christoph Hellwig [Sat, 21 Jul 2007 11:37:40 +0000 (04:37 -0700)]
remove handle_mm_fault export

Now that arch/powerpc/platforms/cell/spufs/fault.c is always built in
the kernel there is no need to export handle_mm_fault anymore.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: intel_cacheinfo.c:find_num_cache_leaves() should be __cpuinit
Adrian Bunk [Sat, 21 Jul 2007 11:37:39 +0000 (04:37 -0700)]
i386: intel_cacheinfo.c:find_num_cache_leaves() should be __cpuinit

WARNING: arch/i386/kernel/built-in.o(.text+0xb6a7): Section mismatch: reference to .init.text:find_num_cache_leaves (between 'init_intel_cacheinfo' and 'cache_shared_cpu_map_setup')

It could be __init_refok, but gcc >= 4.0 anyway inlines it into the
__cpuinit init_intel_cacheinfo(), and IMHO it's too small for "noinline
__init".

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: PIT stop only, when in periodic or oneshot mode
Thomas Gleixner [Sat, 21 Jul 2007 11:37:38 +0000 (04:37 -0700)]
i386: PIT stop only, when in periodic or oneshot mode

The patch is necessary on one of my boxen, where programming the stop
sequence twice leads to PIT malfunction.

Sigh !

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoNTP: move the cmos update code into ntp.c
Thomas Gleixner [Sat, 21 Jul 2007 11:37:37 +0000 (04:37 -0700)]
NTP: move the cmos update code into ntp.c

i386 and sparc64 have the identical code to update the cmos clock.  Move it
into kernel/time/ntp.c as there are other architectures coming along with the
same requirements.

[akpm@linux-foundation.org: build fixes]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: john stultz <johnstul@us.ibm.com>
Cc: David Miller <davem@davemloft.net>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agohrtimer: speedup hrtimer_enqueue
Ingo Molnar [Sat, 21 Jul 2007 11:37:36 +0000 (04:37 -0700)]
hrtimer: speedup hrtimer_enqueue

Speedup hrtimer_enqueue by evaluating the rbtree insertion result.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agohighres: improve debug output
Ingo Molnar [Sat, 21 Jul 2007 11:37:36 +0000 (04:37 -0700)]
highres: improve debug output

Add some more debug information to the hrtimer and clock events code.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agotick management: spread timer interrupt
john stultz [Sat, 21 Jul 2007 11:37:35 +0000 (04:37 -0700)]
tick management: spread timer interrupt

After discussing w/ Thomas over IRC, it seems the issue is the sched tick
fires on every cpu at the same time, causing extra lock contention.

This smaller change, adds an extra offset per cpu so the ticks don't line up.
This patch also drops the idle latency from 40us down to under 20us.

Signed-off-by: john stultz <johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoclockevents: fix device replacement
Thomas Gleixner [Sat, 21 Jul 2007 11:37:35 +0000 (04:37 -0700)]
clockevents: fix device replacement

When a device is replaced by a better rated device, then the broadcast
mode needs to be evaluated again. When the new device has no requirement
for broadcasting, then the broadcast bits for the CPU must be cleared.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoclockevents: fix resume logic
Thomas Gleixner [Sat, 21 Jul 2007 11:37:34 +0000 (04:37 -0700)]
clockevents: fix resume logic

We need to make sure, that the clockevent devices are resumed, before
the tick is resumed. The current resume logic does not guarantee this.

Add CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock
event devices before resuming the tick / oneshot functionality.

Fixup the existing users.

Thanks to Nigel Cunningham for tracking down a long standing thinko,
which affected the jinxed VAIO.

[akpm@linux-foundation.org: xen build fix]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoclockevents: remove prototypes of removed functions
Thomas Gleixner [Sat, 21 Jul 2007 11:37:33 +0000 (04:37 -0700)]
clockevents: remove prototypes of removed functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agorevert "PIE randomization"
Andrew Morton [Sat, 21 Jul 2007 11:37:32 +0000 (04:37 -0700)]
revert "PIE randomization"

There are reports of this causing userspace failures
(http://lkml.org/lkml/2007/7/20/421).

Revert.

Cc: Jan Kratochvil <honza@jikos.cz>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Roland McGrath <roland@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Ulrich Kunitz <kune@deine-taler.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Bret Towe" <magnade@gmail.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoconsole: fix section mismatch warning in vgacon.c
Sam Ravnborg [Sat, 21 Jul 2007 11:37:31 +0000 (04:37 -0700)]
console: fix section mismatch warning in vgacon.c

Fix following section mismatch warning:
WARNING: vmlinux.o(.text+0x121e62): Section mismatch: reference to .init.text:__alloc_bootmem (between 'vgacon_startup' and 'vgacon_scrolldelta')

Browsing the code it seems that vgacon_scrollback_startup() is only called
during the init phase so the reference to the .init.text section is OK.

Teach modpost not to warn using ___init_refok.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoknfsd: fix typo in export display, print uid and gid as unsigned
J. Bruce Fields [Sat, 21 Jul 2007 11:37:30 +0000 (04:37 -0700)]
knfsd: fix typo in export display, print uid and gid as unsigned

For display purposes, treat uid's and gid's as unsigned ints for now.
Also fix a typo.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoi386: touch_nmi_watchdog() in print_trace_address()
Konrad Rzeszutek [Sat, 21 Jul 2007 11:37:29 +0000 (04:37 -0700)]
i386: touch_nmi_watchdog() in print_trace_address()

Prevent NMI watchdog triggering during long sysrq-T outputs.

Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agodm io: fix panic on large request
Milan Broz [Sat, 21 Jul 2007 11:37:27 +0000 (04:37 -0700)]
dm io: fix panic on large request

Flush workqueue before releasing bioset and mopools in dm-crypt.  There can
be finished but not yet released request.

Call chain causing oops:
  run workqueue
    dec_pending
      bio_endio(...);
       <remove device request - remove mempool>
      mempool_free(io, cc->io_pool);

This usually happens when cryptsetup create temporary
luks mapping in the beggining of crypt device activation.

When dm-core calls destructor crypt_dtr, no new request
are possible.

Signed-off-by: Milan Broz <mbroz@redhat.com>
Cc: Chuck Ebbert <cebbert@redhat.com>
Cc: Patrick McHardy <kaber@trash.net>
Acked-by: Alasdair G Kergon <agk@redhat.com>
Cc: Christophe Saout <christophe@saout.de>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agocoda: remove CODA_STORE/CODA_RELEASE upcalls
Jan Harkes [Sat, 21 Jul 2007 11:37:26 +0000 (04:37 -0700)]
coda: remove CODA_STORE/CODA_RELEASE upcalls

This is an variation on the patch sent by Christoph Hellwig which kills
file_count abuse by the Coda kernel module by moving the coda_flush
functionality into coda_release.  However part of reason we were using the
coda_flush callback was to allow Coda to pass errors that occur during
writeback from the userspace cache manager back to close().

As Al Viro explained on linux-fsdevel, it is impossible to guarantee that
such errors can in fact be returned back to the caller.  There are many
cases where the last reference to a file is not released by the close
system call and it is also impossible to pick some close as a 'last-close'
and delay it until all other references have been destroyed.

The CODA_STORE/CODA_RELEASE upcall combination is clearly a broken design,
and it is better to remove it completely.

Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agonommu: vmalloc_32_user()/vm_insert_page() and symbol exports.
Paul Mundt [Sat, 21 Jul 2007 11:37:25 +0000 (04:37 -0700)]
nommu: vmalloc_32_user()/vm_insert_page() and symbol exports.

Trying to survive an allmodconfig on a nommu platform results in many
screen lengths of module unhappiness.  Many of the mmap related things that
binfmt_flat hooks in to are never exported despite being global, and there
are also missing definitions for vmalloc_32_user() and vm_insert_page().

I've implemented vmalloc_32_user() trying to stick as close to the
mm/vmalloc.c implementation as possible, though we don't have any need for
VM_USERMAP, so groveling for the VMA can be skipped.  vm_insert_page() has
been stubbed for now in order to keep the build happy.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoFix swiotlb_sync_single_range()
Keir Fraser [Sat, 21 Jul 2007 11:37:24 +0000 (04:37 -0700)]
Fix swiotlb_sync_single_range()

If the swiotlb maps a multi-slab region, swiotlb_sync_single_range() can be
invoked to sync a sub-region which does not include the first slab.
Unfortunately io_tlb_orig_addr[] is only initialised for the first slab,
and hence the call to sync_single() will read a garbage orig_addr in this
case.

This patch fixes the issue by initialising all mapped slabs in
io_tlb_orig_addr[].  It also correctly adjusts the buffer pointer in
sync_single() to handle the case that the given dma_addr is not aligned on
a slab boundary.

Signed-off-by: Keir Fraser <keir.fraser@cl.cam.ac.uk>
Cc: "Luck, Tony" <tony.luck@intel.com>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoUDF: coding style conversion - lindent fixups
Cyrill Gorcunov [Sat, 21 Jul 2007 11:37:18 +0000 (04:37 -0700)]
UDF: coding style conversion - lindent fixups

This patch fixes up sources after conversion by Lindent.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Jan Kara <jack@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agox86_64: wbinvd macro fix
Nick Piggin [Sat, 21 Jul 2007 11:37:17 +0000 (04:37 -0700)]
x86_64: wbinvd macro fix

Too many semicolons in this macro.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoKVM: MMU: Fix cleaning up the shadow page allocation cache
Avi Kivity [Sat, 21 Jul 2007 06:06:46 +0000 (09:06 +0300)]
KVM: MMU: Fix cleaning up the shadow page allocation cache

__free_page() wants a struct page, not a virtual address.

Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
14 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
Linus Torvalds [Sat, 21 Jul 2007 01:10:03 +0000 (18:10 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/drzeus/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
  sdhci: make sure to clear the error interrupt
  mmc: at91_mci: wakeup on card insertion (or removal)
  mmc: add maintainer for at91

14 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 21 Jul 2007 00:35:25 +0000 (17:35 -0700)]
Merge branch 'master' of /linux/kernel/git/davem/sparc-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: fix section mismatch warning in mdesc.c
  [SPARC64]: fix section mismatch warning in pci_sunv4
  [SPARC64]: Stop using drivers/char/rtc.c
  [SPARC64]: Convert parport to of_platform_driver.
  [SPARC]: Implement fb_is_primary_device().
  [SPARC64]: Fix virq decomposition.
  [SPARC64]: Use KERN_ERR in IRQ manipulation error printks.
  [SPARC64]: Do not flood log with failed DS messages.
  [SPARC64]: Add proper multicast support to VNET driver.
  [SPARC64]: Handle multiple domain-services-port nodes properly.
  [SPARC64]: Improve VIO device naming further.
  [SPARC]: Make sure dev_archdata is filled in for all devices.
  [SPARC]: Define minimal struct dev_archdata, similarly to sparc64.
  [SPARC]: Fix serial console device detection.

14 years ago[SPARC64]: fix section mismatch warning in mdesc.c
Sam Ravnborg [Sat, 21 Jul 2007 00:20:56 +0000 (17:20 -0700)]
[SPARC64]: fix section mismatch warning in mdesc.c

Fix following warning:
WARNING: vmlinux.o(.text+0x35264): Section mismatch: reference to .init.text:__alloc_bootmem (between 'mdesc_bootmem_alloc' and 'mdesc_bootmem_free')

Rename mdesc_mem_ops to *_ops so modpost ignores __init references
and declare mdesc_bootmem_alloc __init since it is only used
during __init context.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: fix section mismatch warning in pci_sunv4
Sam Ravnborg [Sat, 21 Jul 2007 00:19:56 +0000 (17:19 -0700)]
[SPARC64]: fix section mismatch warning in pci_sunv4

Fix following warning:
WARNING: vmlinux.o(.text+0x3cf50): Section mismatch: reference to .init.text:page_in_phys_avail (between 'pci_sun4v_pbm_init' and 'sun4v_pci_init')

pci_sun4v_pbm_init and sun4v_pci_init was only used under __init
context so declare them _init.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Stop using drivers/char/rtc.c
David S. Miller [Thu, 19 Jul 2007 20:59:58 +0000 (13:59 -0700)]
[SPARC64]: Stop using drivers/char/rtc.c

The existing sparc64 mini_rtc driver can handle CMOS based
rtcs trivially with just a few lines of code and the simplifies
things tremendously.

Tested on SB1500.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Convert parport to of_platform_driver.
David S. Miller [Thu, 19 Jul 2007 06:15:04 +0000 (23:15 -0700)]
[SPARC64]: Convert parport to of_platform_driver.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC]: Implement fb_is_primary_device().
David S. Miller [Thu, 19 Jul 2007 05:03:58 +0000 (22:03 -0700)]
[SPARC]: Implement fb_is_primary_device().

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Fix virq decomposition.
David S. Miller [Fri, 20 Jul 2007 09:58:28 +0000 (02:58 -0700)]
[SPARC64]: Fix virq decomposition.

The dev_handle and dev_ino fields don't match up exactly to
the traditional IMAP_IGN and IMAP_INO masks.

So store them away in a table and look them up directly.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Use KERN_ERR in IRQ manipulation error printks.
David S. Miller [Fri, 20 Jul 2007 09:39:04 +0000 (02:39 -0700)]
[SPARC64]: Use KERN_ERR in IRQ manipulation error printks.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Do not flood log with failed DS messages.
David S. Miller [Fri, 20 Jul 2007 09:34:41 +0000 (02:34 -0700)]
[SPARC64]: Do not flood log with failed DS messages.

When booting up a control node it's quite common to
not be able to register several service types.

And likewise on guests at least one or two are going
to not be there.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Add proper multicast support to VNET driver.
David S. Miller [Fri, 20 Jul 2007 09:30:25 +0000 (02:30 -0700)]
[SPARC64]: Add proper multicast support to VNET driver.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Handle multiple domain-services-port nodes properly.
David S. Miller [Fri, 20 Jul 2007 06:25:35 +0000 (23:25 -0700)]
[SPARC64]: Handle multiple domain-services-port nodes properly.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC64]: Improve VIO device naming further.
David S. Miller [Fri, 20 Jul 2007 05:51:07 +0000 (22:51 -0700)]
[SPARC64]: Improve VIO device naming further.

The best scheme to get uniqueness seems to be:

FOO -- If node lacks "id" property
FOO-$(ID) -- If node has "id" but parent lacks "cfg-handle"
FOO-$(ID)-$(CFG_HANDLE) -- If node has both

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC]: Make sure dev_archdata is filled in for all devices.
David S. Miller [Thu, 19 Jul 2007 05:03:25 +0000 (22:03 -0700)]
[SPARC]: Make sure dev_archdata is filled in for all devices.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC]: Define minimal struct dev_archdata, similarly to sparc64.
David S. Miller [Thu, 19 Jul 2007 03:59:54 +0000 (20:59 -0700)]
[SPARC]: Define minimal struct dev_archdata, similarly to sparc64.

Signed-off-by: David S. Miller <davem@davemloft.net>
14 years ago[SPARC]: Fix serial console device detection.
David S. Miller [Fri, 20 Jul 2007 23:59:26 +0000 (16:59 -0700)]
[SPARC]: Fix serial console device detection.

The current scheme works on static interpretation of text names, which
is wrong.

The output-device setting, for example, must be resolved via an alias
or similar to a full path name to the console device.

Paths also contain an optional set of 'options', which starts with a
colon at the end of the path.  The option area is used to specify
which of two serial ports ('a' or 'b') the path refers to when a
device node drives multiple ports.  'a' is assumed if the option
specification is missing.

This was caught by the UltraSPARC-T1 simulator.  The 'output-device'
property was set to 'ttya' and we didn't pick upon the fact that this
is an OBP alias set to '/virtual-devices/console'.  Instead we saw it
as the first serial console device, instead of the hypervisor console.

The infrastructure is now there to take advantage of this to resolve
the console correctly even in multi-head situations in fbcon too.

Thanks to Greg Onufer for the bug report.

Signed-off-by: David S. Miller <davem@davemloft.net>