GitHub/MotorolaMobilityLLC/kernel-slsi.git
18 years ago[PATCH] x86_64: group memnodemap and memnodeshift in a memnode structure
Eric Dumazet [Sat, 25 Mar 2006 15:31:46 +0000 (16:31 +0100)]
[PATCH] x86_64: group memnodemap and memnodeshift in a memnode structure

pfn_to_page() and others need to access both memnode_shift and the very
first bytes of memnodemap[]. If we force memnode_shift to be just before the
memnodemap array, we can reduce the memory footprint to one cache line
instead of two for most setups. This patch introduce a 'memnode' structure
where shift and map[] are carefully placed.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Eliminate register_die_notifier symbol exported
Kevin Winchester [Sat, 25 Mar 2006 15:31:43 +0000 (16:31 +0100)]
[PATCH] x86_64: Eliminate register_die_notifier symbol exported

register_die_notifier is exported twice, once in traps.c and once in
x8664_ksyms.c.  This results in a warning on build.

Signed-off-by: Kevin Winchester <kwin@ns.sympatico.ca>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Search K8 devices on more devices.
Navin Boppuri [Sat, 25 Mar 2006 15:31:40 +0000 (16:31 +0100)]
[PATCH] x86_64: Search K8 devices on more devices.

arch/x86_64/kernel/aperture.c: The search for the AGP bridge has been
extended to search for all the 256 buses instead of the first 32. This
is required since on a some systems, the bridge may be located on a bus
much farther than the first 32. By searching all 256 buses, we guarantee
that the search succeeds on such systems.

arch/x86_64/kernel/pci-gart.c: The search for the Northbridge is not
limited to just bus 0 anymore. This is required because on certain
systems, we may not find one on bus 0.

Signed-off-by: Navin Boppuri <navin.boppuri@newisys.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Make local_t 64bit instead of 32bit
Andi Kleen [Sat, 25 Mar 2006 15:31:37 +0000 (16:31 +0100)]
[PATCH] x86_64: Make local_t 64bit instead of 32bit

For consistency with other architectures

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Make GART_IOMMU kconfig help text more specific (trivial)
Jon Mason [Sat, 25 Mar 2006 15:31:34 +0000 (16:31 +0100)]
[PATCH] x86_64: Make GART_IOMMU kconfig help text more specific (trivial)

Have the GART_IOMMU help text specify that this is the hardware IOMMU in
amd64 processors.  This will be significant if/when other IOMMUs are
added to the x86-64 architecture. :-)

Also, note that the previous help text stated that IOMMU was needed for
>3GB memory instead of >4GB.  This is fixed in the newer version.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Remove CONFIG_UNORDERED_IO
Andi Kleen [Sat, 25 Mar 2006 15:31:31 +0000 (16:31 +0100)]
[PATCH] x86_64: Remove CONFIG_UNORDERED_IO

It was a failed experiment - all benchmarks done with it on both AMD
and Intel showed it was a loss. That was probably because the store
buffers of the CPUs for write combining traffic weren't large enough.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386/x86-64: List Intel LaGrange AKA SMX in /proc/cpuinfo
Andi Kleen [Sat, 25 Mar 2006 15:31:22 +0000 (16:31 +0100)]
[PATCH] i386/x86-64: List Intel LaGrange AKA SMX in /proc/cpuinfo

Spec just got published so we know the CPUID bit.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: free_bootmem_node needs __pa in allocate_aperture
Jon Mason [Sat, 25 Mar 2006 15:31:19 +0000 (16:31 +0100)]
[PATCH] x86_64: free_bootmem_node needs __pa in allocate_aperture

free_bootmem_node expects a physical address to be passed in, but
__alloc_bootmem_node returns a virtual one.  That address needs to be
translated to physical.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: timer interrupt lockup due to pending interrupt
Vivek Goyal [Sat, 25 Mar 2006 15:31:16 +0000 (16:31 +0100)]
[PATCH] x86_64: timer interrupt lockup due to pending interrupt

o check_timer() routine fails while second kernel is booting after a crash
  on an opetron box. Problem happens because timer vector (0x31) seems to be
  locked.

o After a system crash, it is not safe to service interrupts any more, hence
  interrupts are disabled. This leads to pending interrupts at LAPIC. LAPIC
  sends these interrupts to the CPU during early boot of second kernel. Other
  pending interrupts are discarded saying unexpected trap but timer interrupt
  is serviced and CPU does not issue an LAPIC EOI because it think this
  interrupt came from i8259 and sends ack to 8259. This leads to vector 0x31
  locking as LAPIC does not clear respective ISR and keeps on waiting for
  EOI.

o This patch issues extra EOI for the pending interrupts who have ISR set.

o Though today only timer seems to be the special case because in early
  boot it thinks interrupts are coming from i8259 and uses
  mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI. But
  probably doing it in generic manner for all vectors makes sense.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Use cpumask bitops for cpu_vm_mask
Brian Gerst [Sat, 25 Mar 2006 15:31:13 +0000 (16:31 +0100)]
[PATCH] x86_64: Use cpumask bitops for cpu_vm_mask

cpu_vm_mask is of type cpumask_t, so use the proper bitops.

Signed-off-by: Brian Gerst <bgerst@didntduck.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Try to allocate node memmap near the end of node
Andi Kleen [Sat, 25 Mar 2006 15:31:10 +0000 (16:31 +0100)]
[PATCH] x86_64: Try to allocate node memmap near the end of node

This fixes problems with very large nodes (over 128GB) filling up all of
the first 4GB with their mem_map and not leaving enough space for the
swiotlb.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Force broadcast timer on AMD systems with C3 too.
Andi Kleen [Sat, 25 Mar 2006 15:31:07 +0000 (16:31 +0100)]
[PATCH] x86_64: Force broadcast timer on AMD systems with C3 too.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Change default setting for noexec32 to match i386 kernel
Andi Kleen [Sat, 25 Mar 2006 15:31:04 +0000 (16:31 +0100)]
[PATCH] x86_64: Change default setting for noexec32 to match i386 kernel

This means i386 processes compiled with a recent compiler will get non
executable heap by default now.  This is the same default as a 32bit PAE
kernel would use on a NX enabled CPU.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Reorder one field of the PDA to reduce padding
Arjan van de Ven [Sat, 25 Mar 2006 15:31:01 +0000 (16:31 +0100)]
[PATCH] x86_64: Reorder one field of the PDA to reduce padding

This reorders the mmu_state int in the pda, such that there is no more
padding (there currently is 4 bytes of padding).  Boot tested.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Limit max number of CPUs to 255
Andi Kleen [Sat, 25 Mar 2006 15:30:58 +0000 (16:30 +0100)]
[PATCH] x86_64: Limit max number of CPUs to 255

Because 256 causes overflows in some code that stores them in 8 bit
fields and the x86 APIC architecture cannot handle more than 255
anyways.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: fix orphaned bits of timer init messages
Chuck Ebbert [Sat, 25 Mar 2006 15:30:55 +0000 (16:30 +0100)]
[PATCH] x86_64: fix orphaned bits of timer init messages

When x86_64 timer init messages were changed to use apic verbosity
levels, two messages were missed and one got the wrong level.  This
causes the last word of a suppressed message to print on a line by
itself.  Fix that so either the entire message prints or none of it
does.

Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Quieten down microcode update driver
Andi Kleen [Sat, 25 Mar 2006 15:30:52 +0000 (16:30 +0100)]
[PATCH] x86_64: Quieten down microcode update driver

Only log data in microcode driver when something is changed Otherwise it
was far too noisy on large systems.

Also remove the printk when it is unloaded.

Cc: tigran@veritas.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Basic reorder infrastructure
Arjan van de Ven [Sat, 25 Mar 2006 15:30:49 +0000 (16:30 +0100)]
[PATCH] x86_64: Basic reorder infrastructure

This patch puts the infrastructure in place to allow for a reordering of
functions based inside the vmlinux. The general idea is that it is possible
to put all "common" functions into the first 2Mb of the code, so that they
are covered by one TLB entry. This as opposed to the current situation where
a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries.

This is done by enabling the -ffunction-sections flag in gcc, which puts
each function in its own ELF section, so that the linker can then order them
in a way defined by the linker script.

As per previous discussions, Linus said he wanted a "static" list for this,
eg a list provided by the kernel tarbal, so that most people have the same
ordering at least. A script is provided to create this list based on
readprofile(1) output. The included list is provisional, and entirely biased
on my own testbox and me running a few kernel compiles and some other
things.

I think that to get to a better list we need to invite people to submit
their own profiles, and somehow add those all up and base the final list on
that. I'm willing to do that effort if this is ends up being the prefered
approach. Such an effort probably needs to be repeated like once a year or
so to adopt to the changing nature of the kernel.

Made it a CONFIG with default n because it increases link times
dramatically.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Always use IO-APIC routing for timer.
Andi Kleen [Sat, 25 Mar 2006 15:30:46 +0000 (16:30 +0100)]
[PATCH] x86_64: Always use IO-APIC routing for timer.

I tested it on a couple of chipsets and it worked everywhere so it
should be ok as default for now.

So far I haven't done the great purge of the useless old check_timer
code yet though.

Can be overwritten with enable_8254_timer in the worst case

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't invoke OOM killer during dma_alloc_coherent()
Andi Kleen [Sat, 25 Mar 2006 15:30:43 +0000 (16:30 +0100)]
[PATCH] x86_64: Don't invoke OOM killer during dma_alloc_coherent()

There is a fallback logic, so it's better to not use the OOM killer
in the allocations.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't invoke OOM killer while allocating floppy DMA buffers
Andi Kleen [Sat, 25 Mar 2006 15:30:40 +0000 (16:30 +0100)]
[PATCH] x86_64: Don't invoke OOM killer while allocating floppy DMA buffers

Floppy can fall back to smaller buffers, so don't do OOM killing.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Reename CMOS update warning
Andi Kleen [Sat, 25 Mar 2006 15:30:37 +0000 (16:30 +0100)]
[PATCH] x86_64: Reename CMOS update warning

Was disabled due to an old bug, long gone.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Fix formatting in time.c
Andi Kleen [Sat, 25 Mar 2006 15:30:34 +0000 (16:30 +0100)]
[PATCH] x86_64: Fix formatting in time.c

Only white space changes, code should be identical

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Handle years beyond 2100
Andi Kleen [Sat, 25 Mar 2006 15:30:31 +0000 (16:30 +0100)]
[PATCH] x86_64: Handle years beyond 2100

ACPIv2 has an official but optional way to get a date >2100.  Use it.
But all the platforms I tested didn't seem to support it.  But anyways
the x86-64 kernel should be ready for the 22nd century now.  Actually i
shouldn't care about this because I will be dead by then @)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Patch to make the head.S-must-be-first-in-vmlinux order explicit
Arjan van de Ven [Sat, 25 Mar 2006 15:30:28 +0000 (16:30 +0100)]
[PATCH] x86_64: Patch to make the head.S-must-be-first-in-vmlinux order explicit

This patch puts the code from head.S in a special .bootstrap.text
section.

I'm working on a patch to reorder the functions in the kernel (I'll post
that later), but for x86-64 at least the kernel bootstrap requires that
the head.S functions are on the very first page/pages of the kernel
text.  This is understandable since the bootstrap is complex enough
already and not a problem at all, it just means they aren't allowed to
be reordered.  This patch puts these special functions into a separate
section to document this, and to guarantee this in the light of possibly
reordering the rest later.

(So this patch doesn't fix a bug per se, but makes things more robust by
making the order of these functions explicit)

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Add __init to fixmap functions that are only called during boot
Andi Kleen [Sat, 25 Mar 2006 15:30:25 +0000 (16:30 +0100)]
[PATCH] x86_64: Add __init to fixmap functions that are only called during boot

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Implement early DMI scanning
Andi Kleen [Sat, 25 Mar 2006 15:30:22 +0000 (16:30 +0100)]
[PATCH] x86_64: Implement early DMI scanning

There are more and more cases where we need to know DMI information
early to work around bugs.  i386 already had early DMI scanning, but
x86-64 didn't.  Implement this now.

This required some cleanup in the i386 code.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Clean up and tweak ACPI blacklist year code
Andi Kleen [Sat, 25 Mar 2006 15:30:19 +0000 (16:30 +0100)]
[PATCH] x86_64: Clean up and tweak ACPI blacklist year code

 - Move the core parser into dmi_scan.c.  It can be useful for other
   subsystems too.
 - Differentiate between field doesn't exist and field is 0 or
   unparseable.  The first case is likely an old BIOS with broken ACPI,
   the later is likely a slightly buggy BIOS where someone forget to
   edit the date.  Don't blacklist in the later case.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: s/Overwrite/Override/ in arch/x86-64
Dave Jones [Sat, 25 Mar 2006 15:30:16 +0000 (16:30 +0100)]
[PATCH] x86_64: s/Overwrite/Override/ in arch/x86-64

s/Overwrite/Override/

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Move kernel to 2MB
Andi Kleen [Sat, 25 Mar 2006 15:30:13 +0000 (16:30 +0100)]
[PATCH] x86_64: Move kernel to 2MB

As suggested by Andi (and Alan), move the default kernel location
from 1Mb to 2Mb, to align to the start of a TLB entry.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: prefetch the mmap_sem in the fault path
Arjan van de Ven [Sat, 25 Mar 2006 15:30:10 +0000 (16:30 +0100)]
[PATCH] x86_64: prefetch the mmap_sem in the fault path

In a micro-benchmark that stresses the pagefault path, the down_read_trylock
on the mmap_sem showed up quite high on the profile. Turns out this lock is
bouncing between cpus quite a bit and thus is cache-cold a lot. This patch
prefetches the lock (for write) as early as possible (and before some other
somewhat expensive operations). With this patch, the down_read_trylock
basically fell out of the top of profile.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Implement compat code for raw1394 read/write
Andi Kleen [Sat, 25 Mar 2006 15:30:07 +0000 (16:30 +0100)]
[PATCH] x86_64: Implement compat code for raw1394 read/write

Not for the ioctls so far because I was too lazy.

Cc: bcollins@debian.org
Cc: dan@dennedy.org
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: to use lapic ids instead of initial apic ids
Ravikiran G Thirumalai [Sat, 25 Mar 2006 15:30:04 +0000 (16:30 +0100)]
[PATCH] x86_64: to use lapic ids instead of initial apic ids

phys_proc_id[] on AMD boxes is right now populated with the initial
apic id, obtained by the cpuid instruction.  But, the initial apic id
need not be the local apic id on clustered APIC systems (see comment at
x86_64/kernel/genapic_cluster.c, line 110).  On vSMPowered with AMD
CPUs the cpu_to_node will turn out to be incorrect (as apicid_to_node[] is
indexed by the initial apic id rather than the local apic id).
On vSMPowered boxes with Intel CPUs this is working correctly as
phys_proc_id[] is initialized correctly in detect_ht().

This fixes AMD boot path according to specification, to use the correct
routines for local apic id and socket ids.  We use
hard_smp_processor_id() to read the local apic id, and phys_pkg_id() to
determine socket id for phys_proc_id[]

Patch tested on Tyan multicore boxes as well as vSMPowered boxes.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: miscellaneous cleanup
Jan Beulich [Sat, 25 Mar 2006 15:30:01 +0000 (16:30 +0100)]
[PATCH] x86_64: miscellaneous cleanup

- adjust limits of GDT/IDT pseudo-descriptors (some were off by one)
- move empty_zero_page into .bss.page_aligned
- move cpu_gdt_table into .data.page_aligned
- move idt_table into .bss
- align inital_code and init_rsp
- eliminate pointless (re-)declaration of idt_table in traps.c

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Make pfn_valid work early in boot
Andi Kleen [Sat, 25 Mar 2006 15:29:58 +0000 (16:29 +0100)]
[PATCH] x86_64: Make pfn_valid work early in boot

It needs num_physpages, so initialize it early. It's later overwritten
again.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Clean up white space in traps.c
Roberto Nibali [Sat, 25 Mar 2006 15:29:55 +0000 (16:29 +0100)]
[PATCH] x86_64: Clean up white space in traps.c

Attached is a small code style cleanup patch that resulted from my
skimming through the arch/x86_64/kernel/traps.c code to figure out what
went haywire.

Signed-off-by: Roberto Nibali <ratz@drugphish.ch>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Fix wrong PCI ID for ALI M1695 AGP bridge
Henrik Kretzschmar [Sat, 25 Mar 2006 15:29:52 +0000 (16:29 +0100)]
[PATCH] x86_64: Fix wrong PCI ID for ALI M1695 AGP bridge

[description by AK]
Made a cut'n'paste error when adding the entry for the ALI M1695
AGP bridge and added a second entry for the 1689

Cc: Dave Jones <davej@redhat.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't define string functions to builtin
Andi Kleen [Sat, 25 Mar 2006 15:29:49 +0000 (16:29 +0100)]
[PATCH] x86_64: Don't define string functions to builtin

gcc should handle this anyways, and it causes problems when
sprintf is turned into strcpy by gcc behind our backs and
the C fallback version of strcpy is actually defining __builtin_strcpy

Then drop -ffreestanding from the main Makefile because it isn't
needed anymore and implies -fno-builtin, which is wrong now.
(it was only added for x86-64, so dropping it should be safe)

Noticed by Roman Zippel

Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Check that early arguments are words on their own
Andi Kleen [Sat, 25 Mar 2006 15:29:46 +0000 (16:29 +0100)]
[PATCH] x86_64: Check that early arguments are words on their own

We've always had the problem that arguments only did a prefix match,
which resulted e.g.  in noapic and noapictimer getting confused.

Fix the early argument parsing code to always check that arguments are
whole words (except for those that take additional arguments of course)
I factored out the checking code for that while also makes the code
easier to maintain.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: remove dead do_softirq_thunk
Jan Beulich [Sat, 25 Mar 2006 15:29:43 +0000 (16:29 +0100)]
[PATCH] x86_64: remove dead do_softirq_thunk

Appearantly a left-over...

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks
Jan Beulich [Sat, 25 Mar 2006 15:29:40 +0000 (16:29 +0100)]
[PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks

While the modular aspect of the respective i386 patch doesn't apply to
x86-64 (as the top level page directory entry is shared between modules
and the base kernel), handlers registered with register_die_notifier()
are still under similar constraints for touching ioremap()ed or
vmalloc()ed memory. The likelihood of this problem becoming visible is
of course significantly lower, as the assigned virtual addresses would
have to cross a 2**39 byte boundary. This is because the callback gets
invoked
(a) in the page fault path before the top level page table propagation
gets carried out (hence a fault to propagate the top level page table
entry/entries mapping to module's code/data would nest infinitly) and
(b) in the NMI path, where nested faults must absolutely not happen,
since otherwise the IRET from the nested fault re-enables NMIs,
potentially resulting in nested NMI occurences.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Use cpu_relax in poll loop in GART IOMMU
Andi Kleen [Sat, 25 Mar 2006 15:29:37 +0000 (16:29 +0100)]
[PATCH] x86_64: Use cpu_relax in poll loop in GART IOMMU

The code waits for the GART to clear the TLB flush bit. Use cpu_relax
in this time to allow hypervisors to yield the CPU in this time.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Report local APIC ID when initializing CPU
Andi Kleen [Sat, 25 Mar 2006 15:29:34 +0000 (16:29 +0100)]
[PATCH] x86_64: Report local APIC ID when initializing CPU

Makes some debugging easier.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't need to read PIT in timer handler when PM timer is used
Andi Kleen [Sat, 25 Mar 2006 15:29:31 +0000 (16:29 +0100)]
[PATCH] x86_64: Don't need to read PIT in timer handler when PM timer is used

The PM timer path through main_timer_handler doesn't need
the delay variable because it figures it out in a different way.
Don't try to read it from the PIT. With stopped PIT timer
it is even useless.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: cleanup allocating logical cpu numbers in x86_64
Ashok Raj [Sat, 25 Mar 2006 15:29:28 +0000 (16:29 +0100)]
[PATCH] x86_64: cleanup allocating logical cpu numbers in x86_64

Minor cleanup to lend better for physical CPU hotplug.
Earlier way of using num_processors as index doesnt
fit if CPUs come and go. This makes the code little bit better
to read, and helps physical hotplug use the same functions as boot.

Reserving CPU0 for BSP is too late to be done in smp_prepare_boot_cpu().
Since logical assignments from MADT is already done via
setup_arch()->acpi_boot_init()->parse lapic

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: save FPU context slightly later
Jan Beulich [Sat, 25 Mar 2006 15:29:25 +0000 (16:29 +0100)]
[PATCH] x86_64: save FPU context slightly later

Touching of the floating point state in a kernel debugger must be
NMI-safe, specifically math_state_restore() must be able to deal with
being called out of an NMI context. In order to do that reliably, the
context switch code must take care to not leave a window open where
the current task's TS_USEDFPU flag and CR0.TS could get out of sync.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: eliminate set_debug()
Jan Beulich [Sat, 25 Mar 2006 15:29:22 +0000 (16:29 +0100)]
[PATCH] x86_64: eliminate set_debug()

For consistency and to have only a single place of definition, replace
set_debug() uses with set_debugreg(), and eliminate the definition of
thj former.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: disallow multi-byte hardware execution breakpoints
Jan Beulich [Sat, 25 Mar 2006 15:29:19 +0000 (16:29 +0100)]
[PATCH] x86_64: disallow multi-byte hardware execution breakpoints

While AMD formally permits multi-byte execution breakpoints, Intel
disallows 8-byte as much as 2- or 4-byte ones.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: cpu_pda array to macro followup correction
Jan Beulich [Sat, 25 Mar 2006 15:29:16 +0000 (16:29 +0100)]
[PATCH] x86_64: cpu_pda array to macro followup correction

Fix one place where the previous change of cpu_pda from being an array
to being a macro was not properly carried out.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Rename struct node in x86-64 NUMA code to struct bootnode
Andi Kleen [Sat, 25 Mar 2006 15:29:12 +0000 (16:29 +0100)]
[PATCH] x86_64: Rename struct node in x86-64 NUMA code to struct bootnode

It conflicts with the struct node in node.h
Actually the x86-64 version was there first, but ..

Suggested by Jan Beulich

Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Increase the variability of the process stack on 64bit architectures
Andi Kleen [Sat, 25 Mar 2006 15:29:09 +0000 (16:29 +0100)]
[PATCH] x86_64: Increase the variability of the process stack on 64bit architectures

8MB is not really very random, use 1GB (or more with larger page sizes)
instead.

Also use the low bits of the random generator output now instead of
throwing them away.

Only enabled on x86-64 right now. Other architectures need to add
a suitable STACK_RND_MASK

Cc: mingo@elte.hu
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86-64: Use -mtune=generic for generic kernels
Andi Kleen [Sat, 25 Mar 2006 15:29:06 +0000 (16:29 +0100)]
[PATCH] x86-64: Use -mtune=generic for generic kernels

The upcomming gcc 4.2 got a new option -mtune=generic to tune
code for both common AMD and Intel CPUs. Use this option
when available for generic kernels.

On x86-64 it is used with CONFIG_GENERIC_CPU. On i386 it is
enabled with CONFIG_X86_GENERIC.  It won't affect the base
line CPU support in any ways and also not the minimum supported CPU.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Use correct PUD for memory hotadd
Jan Beulich [Sat, 25 Mar 2006 15:29:03 +0000 (16:29 +0100)]
[PATCH] x86_64: Use correct PUD for memory hotadd

Memory >39bits has a different PUD.

Cc: "Tolentino, Matthew E" <matthew.e.tolentino@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Update defconfig
Andi Kleen [Sat, 25 Mar 2006 15:29:00 +0000 (16:29 +0100)]
[PATCH] x86_64: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
Linus Torvalds [Sat, 25 Mar 2006 16:52:23 +0000 (08:52 -0800)]
Merge /pub/scm/linux/kernel/git/davej/cpufreq

* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] kzalloc conversion for gx-suspmod
  [CPUFREQ] Whitespace cleanup
  [CPUFREQ] Mark longhaul driver as broken.
  [PATCH] cpufreq: fix section mismatch warnings
  [CPUFREQ] Fix the p4-clockmod N60 errata workaround.
  [CPUFREQ] Fix handling for CPU hotplug
  [CPUFREQ] powernow-k8: Let cpufreq driver handle affected CPUs
  [CPUFREQ] Lots of whitespace & CodingStyle cleanup.
  [CPUFREQ] Remove duplicate cpuinfo struct
  [CPUFREQ] Silence powernow-k8 warning on k7's.

18 years agoMerge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
Linus Torvalds [Sat, 25 Mar 2006 16:51:35 +0000 (08:51 -0800)]
Merge branch 'for-linus' of /linux/kernel/git/roland/infiniband

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IPoIB: P_Key change event handling
  IB/mthca: Fix modify QP error path
  IPoIB: Fix network interface "RUNNING" status
  IB/mthca: Fix indentation
  IB/mthca: Fix uninitialized variable in mthca_alloc_qp()
  IB/mthca: Check SRQ limit in modify SRQ operation
  IB/mthca: Check that SRQ WQE size does not exceed device's max value
  IB/mthca: Check that sgid_index and path_mtu are valid in modify_qp
  IB/srp: Use a fake scatterlist for non-SG SCSI commands
  IPoIB: Pass correct pointer when flushing child interfaces

18 years agoMerge branch 'upstream-linus' of git://oss.oracle.com/home/sourcebo/git/ocfs2
Linus Torvalds [Sat, 25 Mar 2006 16:50:56 +0000 (08:50 -0800)]
Merge branch 'upstream-linus' of git://oss.oracle.com/home/sourcebo/git/ocfs2

* 'upstream-linus' of git://oss.oracle.com/home/sourcebo/git/ocfs2:
  ocfs2: finally remove MLF* macros
  ocfs2: don't use MLF* in the file system
  ocfs2: don't use MLF* in dlm/ files
  ocfs2: don't use MLF* in cluster/ files
  [PATCH] ocfs2: dlm recovery fixes
  [PATCH] ocfs2: fix hang in dlm lock resource mastery
  ocfs2: use __attribute__ format

18 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Sat, 25 Mar 2006 16:49:25 +0000 (08:49 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] New IA64 core/thread detection patch
  [IA64] Increase max node count on SN platforms
  [IA64] Increase max node count on SN platforms
  [IA64] Increase max node count on SN platforms
  [IA64] Increase max node count on SN platforms
  [IA64] Tollhouse HP: IA64 arch changes
  [IA64] cleanup dig_irq_init
  [IA64] MCA recovery: kernel context recovery table
  IA64: Use early_parm to handle mvec_name and nomca
  [IA64] move patchlist and machvec into init section
  [IA64] add init declaration - nolwsys
  [IA64] add init declaration - gate page functions
  [IA64] add init declaration to memory initialization functions
  [IA64] add init declaration to cpu initialization functions
  [IA64] add __init declaration to mca functions
  [IA64] Ignore disabled Local SAPIC Affinity Structure in SRAT
  [IA64] sn_check_intr: use ia64_get_irr()
  [IA64] fix ia64 is_hugepage_only_range

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild
Linus Torvalds [Sat, 25 Mar 2006 16:48:48 +0000 (08:48 -0800)]
Merge /pub/scm/linux/kernel/git/sam/kbuild

* master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild: (46 commits)
  kbuild: remove obsoleted scripts/reference_* files
  kbuild: fix make help & make *pkg
  kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h
  Kconfig: remove the CONFIG_CC_ALIGN_* options
  kbuild: add -fverbose-asm to i386 Makefile
  kbuild: clean-up genksyms
  kbuild: Lindent genksyms.c
  kbuild: fix genksyms build error
  kbuild: in makefile.txt note that Makefile is preferred name for kbuild files
  kbuild: replace PHONY with FORCE
  kbuild: Fix bug in crc symbol generating of kernel and modules
  kbuild: change kbuild to not rely on incorrect GNU make behavior
  kbuild: when warning symbols exported twice now tell user this is the problem
  kbuild: fix make dir/file.xx when asm symlink is missing
  kbuild: in the section mismatch check try harder to find symbols
  kbuild: fix section mismatch check for unwind on IA64
  kbuild: kill false positives from section mismatch warnings for powerpc
  kbuild: kill trailing whitespace in modpost & friends
  kbuild: small update of allnoconfig description
  kbuild: make namespace.pl CROSS_COMPILE happy
  ...

Trivial conflict in arch/ppc/boot/Makefile manually fixed up

18 years ago[PATCH] mm: restore vm_normal_page check
Nick Piggin [Sat, 25 Mar 2006 15:20:22 +0000 (16:20 +0100)]
[PATCH] mm: restore vm_normal_page check

Hugh is rightly concerned that the CONFIG_DEBUG_VM coverage has gone too
far in vm_normal_page, considering that we expect production kernels to be
shipped with the option turned off, and that the code has been under some
large changes recently.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpufreq: speedstep-smi asm fix
Andrew Morton [Sat, 25 Mar 2006 09:51:51 +0000 (01:51 -0800)]
[PATCH] cpufreq: speedstep-smi asm fix

Fix bug identified by Linus Torvalds <torvalds@osdl.org>: the `out'
instruction depends upon the state of memory_data[], so we need to tell gcc
that before executing it. (The opcode, not gcc).

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=5553

Thanks to Antonio Ospite <ospite@studenti.unina.it> for testing.

Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
Linus Torvalds [Sat, 25 Mar 2006 16:41:09 +0000 (08:41 -0800)]
Merge git://git./linux/kernel/git/bunk/trivial

* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (21 commits)
  BUG_ON() Conversion in drivers/video/
  BUG_ON() Conversion in drivers/parisc/
  BUG_ON() Conversion in drivers/block/
  BUG_ON() Conversion in sound/sparc/cs4231.c
  BUG_ON() Conversion in drivers/s390/block/dasd.c
  BUG_ON() Conversion in lib/swiotlb.c
  BUG_ON() Conversion in kernel/cpu.c
  BUG_ON() Conversion in ipc/msg.c
  BUG_ON() Conversion in block/elevator.c
  BUG_ON() Conversion in fs/coda/
  BUG_ON() Conversion in fs/binfmt_elf_fdpic.c
  BUG_ON() Conversion in input/serio/hil_mlc.c
  BUG_ON() Conversion in md/dm-hw-handler.c
  BUG_ON() Conversion in md/bitmap.c
  The comment describing how MS_ASYNC works in msync.c is confusing
  rcu: undeclared variable used in documentation
  fix typos "wich" -> "which"
  typo patch for fs/ufs/super.c
  Fix simple typos
  tabify drivers/char/Makefile
  ...

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 25 Mar 2006 16:39:55 +0000 (08:39 -0800)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC]: Try to start getting SMP back into shape.

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 25 Mar 2006 16:39:20 +0000 (08:39 -0800)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NETFILTER] x_table.c: sem2mutex
  [IPV4]: Aggregate route entries with different TOS values
  [TCP]: Mark tcp_*mem[] __read_mostly.
  [TCP]: Set default max buffers from memory pool size
  [SCTP]: Fix up sctp_rcv return value
  [NET]: Take RTNL when unregistering notifier
  [WIRELESS]: Fix config dependencies.
  [NET]: Fill in a 32-bit hole in struct sock on 64-bit platforms.
  [NET]: Ensure device name passed to SO_BINDTODEVICE is NULL terminated.
  [MODULES]: Don't allow statically declared exports
  [BRIDGE]: Unaligned accesses in the ethernet bridge

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
Linus Torvalds [Sat, 25 Mar 2006 16:37:36 +0000 (08:37 -0800)]
Merge /pub/scm/linux/kernel/git/mchehab/v4l-dvb

* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (33 commits)
  V4L/DVB (3604): V4l printk fix
  V4L/DVB (3599c): Whitespace cleanups under Documentation/video4linux
  V4L/DVB (3599b): Whitespace cleanups under drivers/media
  V4L/DVB (3599a): Move drivers/usb/media to drivers/media/video
  V4L/DVB (3599): Implement new routing commands for wm8775 and cs53l32a.
  V4L/DVB (3598): Add bit algorithm adapter for the Conexant CX2341X boards.
  V4L/DVB (3597): Vivi: fix warning: implicit declaration of function 'in_interrupt'
  V4L/DVB (3588): Remove VIDIOC_G/S_AUDOUT from msp3400
  V4L/DVB (3587): Always wake thread after routing change.
  V4L/DVB (3584): Implement V4L2_TUNER_MODE_LANG1_LANG2 audio mode
  V4L/DVB (3582): Implement correct msp3400 input/output routing
  V4L/DVB (3581): Add new media/msp3400.h header containing the routing macros
  V4L/DVB (3580): Last round of msp3400 cleanups before adding routing commands
  V4L/DVB (3579): Move msp_modus to msp3400-kthreads, add JP and KR std detection
  V4L/DVB (3578): Make scart definitions easier to handle
  V4L/DVB (3577): Cleanup audio input handling
  V4L/DVB (3575): Cxusb: fix i2c debug messages for bluebird devices
  V4L/DVB (3574): Cxusb: fix debug messages
  V4L/DVB (3573): Cxusb: remove FIXME: comment in bluebird_patch_dvico_firmware_download
  V4L/DVB (3572): Cxusb: conditionalize gpio write for the medion box
  ...

18 years ago[PATCH] git-scsi-misc: min() warning fix
Andrew Morton [Sat, 25 Mar 2006 11:08:30 +0000 (03:08 -0800)]
[PATCH] git-scsi-misc: min() warning fix

drivers/scsi/sd.c: In function `sd_store_cache_type':
drivers/scsi/sd.c:193: warning: comparison of distinct pointer types lacks a cast

Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] More corrections to vfs.txt update
NeilBrown [Sat, 25 Mar 2006 11:08:29 +0000 (03:08 -0800)]
[PATCH] More corrections to vfs.txt update

Thanks "Randy.Dunlap" <rdunlap@xenotime.net>

Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] remove pps support
Roman Zippel [Sat, 25 Mar 2006 11:08:28 +0000 (03:08 -0800)]
[PATCH] remove pps support

This removes the support for pps.  It's completely unused within the kernel
and is basically in the way for further cleanups.  It should be easier to
readd proper support for it after the rest has been converted to NTP4
(where the pps mechanisms are quite different from NTP3 anyway).

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: Adrian Bunk <bunk@stusta.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] serial: merge mpsc.h into mpsc.c
Mark A. Greer [Sat, 25 Mar 2006 11:08:28 +0000 (03:08 -0800)]
[PATCH] serial: merge mpsc.h into mpsc.c

Merge mpsc.h into mpsc.c because its the only file that #include's mpsc.h.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] serial: mpsc driver has definition of SUPPORT_SYSRQ below include of serial_c...
Mark A. Greer [Sat, 25 Mar 2006 11:08:27 +0000 (03:08 -0800)]
[PATCH] serial: mpsc driver has definition of SUPPORT_SYSRQ below include of serial_core.h

The definition of SUPPORT_SYSRQ must come before #include of serial_core.h.
This patch moves the definition of SUPPORT_SYSRQ to be just after the #include
of config.h to make it consistent with 8250.c.

Reported-by: Stephane Chazelas <Stephane@artesyncp.com>
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] serial: mpsc driver passes bad devname to request_irq()
Mark A. Greer [Sat, 25 Mar 2006 11:08:26 +0000 (03:08 -0800)]
[PATCH] serial: mpsc driver passes bad devname to request_irq()

The devname passed to request_irq() contained a '/' which is wrong.  At
a minimum, the '/' prevented the devname from showing up in
/proc/irq/<irq>/<devname>.  This patch replaces the '/' with a '-' to
fixes that problem.

Reported-by: Stephane Chazelas <Stephane@artesyncp.com>
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix sequencer missing negative bound check
Eugene Teo [Sat, 25 Mar 2006 11:08:25 +0000 (03:08 -0800)]
[PATCH] Fix sequencer missing negative bound check

'int dev' came out of an 'unsigned char *' - as such, it will not get
a negative value. Thanks Valdis.

Signed-off-by: Eugene Teo <eugene.teo@eugeneteo.net>
Cc: Jaroslav Kysela <perex@suse.cz>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] flat binary loader doesn't check fd table full
Luke Yang [Sat, 25 Mar 2006 11:08:24 +0000 (03:08 -0800)]
[PATCH] flat binary loader doesn't check fd table full

In binfmt_flat.c, the flat binary loader should check file descriptor table
and install the fd on the file.

Convert the function to single-exit and fix this bug.

Signed-off-by: "Luke Yang" <luke.adi@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Add SA_PERCPU_IRQ flag support
Dimitri Sivanich [Sat, 25 Mar 2006 11:08:23 +0000 (03:08 -0800)]
[PATCH] Add SA_PERCPU_IRQ flag support

Add support for SA_PERCPU_IRQ (only mmtimer.c uses this at this stage).

Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] remove needless check in fs/read_write.c
Carsten Otte [Sat, 25 Mar 2006 11:08:23 +0000 (03:08 -0800)]
[PATCH] remove needless check in fs/read_write.c

nr_segs is unsigned long and thus cannot be negative.  We checked against 0
few lines before.

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] remove needless check in binfmt_elf.c
Carsten Otte [Sat, 25 Mar 2006 11:08:22 +0000 (03:08 -0800)]
[PATCH] remove needless check in binfmt_elf.c

Local variable i is unsigned int and thus cannot be negative.

(akpm: unsigneds shouldn't be called `i'.  This value cannot possibly be
negative anyway).

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Doc: fix example firmware source code
Randy Dunlap [Sat, 25 Mar 2006 11:08:21 +0000 (03:08 -0800)]
[PATCH] Doc: fix example firmware source code

Fix Documentation/firmware_class/ examples so that they will build.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] udf: remove duplicate definitions
Pekka Enberg [Sat, 25 Mar 2006 11:08:21 +0000 (03:08 -0800)]
[PATCH] udf: remove duplicate definitions

This patch removes duplicate definitions from include/linux/udf_fs_i.h
which are already defined in fs/udf/ecma_167.h.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] EISA: Ignore generated file drivers/eisa/devlist.h
Ralf Baechle [Sat, 25 Mar 2006 11:08:19 +0000 (03:08 -0800)]
[PATCH] EISA: Ignore generated file drivers/eisa/devlist.h

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Use unsigned int types for a faster bsearch
Eric Dumazet [Sat, 25 Mar 2006 11:08:19 +0000 (03:08 -0800)]
[PATCH] Use unsigned int types for a faster bsearch

This patch avoids arithmetic on 'signed' types that are slower than
'unsigned'.  This saves space and cpu cycles.

size of kernel/sys.o before the patch (gcc-3.4.5)

    text    data     bss     dec     hex filename
   10924     252       4   11180    2bac kernel/sys.o

size of kernel/sys.o after the patch
    text    data     bss     dec     hex filename
   10903     252       4   11159    2b97 kernel/sys.o

I noticed that gcc-4.1.0 (from Fedora Core 5) even uses idiv instruction for
(a+b)/2 if a and b are signed.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Check if cpu can be onlined before calling smp_prepare_cpu()
Ashok Raj [Sat, 25 Mar 2006 11:08:18 +0000 (03:08 -0800)]
[PATCH] Check if cpu can be onlined before calling smp_prepare_cpu()

- Moved check for online cpu out of smp_prepare_cpu()

- Moved default declaration of smp_prepare_cpu() to kernel/cpu.c

- Removed lock_cpu_hotplug() from smp_prepare_cpu() to around it, since
  its called from cpu_up() as well now.

- Removed clearing from cpu_present_map during cpu_offline as it breaks
  using cpu_up() directly during a subsequent online operation.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Cc: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: "Li, Shaohua" <shaohua.li@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] doc: more serial-console info
Randy Dunlap [Sat, 25 Mar 2006 11:08:17 +0000 (03:08 -0800)]
[PATCH] doc: more serial-console info

Add info on flow control for serial consoles.  Refer to netconsole option
also.

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] direct-io: bug fix in dio handling write error
Chen, Kenneth W [Sat, 25 Mar 2006 11:08:16 +0000 (03:08 -0800)]
[PATCH] direct-io: bug fix in dio handling write error

There is a bug in direct-io on propagating write error up to the higher I/O
layer.  When performing an async ODIRECT write to a block device, if a
device error occurred (like media error or disk is pulled), the error code
is only propagated from device driver to the DIO layer.  The error code
stops at finished_one_bio().  The aysnc write, however, is supposedly have
a corresponding AIO event with appropriate return code (in this case -EIO).
 Application which waits on the async write event, will hang forever since
such AIO event is lost forever (if such app did not use the timeout option
in io_getevents call.  Regardless, an AIO event is lost).

The discovery of above bug leads to another discovery of potential race
window with dio->result.  The fundamental problem is that dio->result is
overloaded with dual use: an indicator of fall back path for partial dio
write, and an error indicator used in the I/O completion path.  In the
event of device error, the setting of -EIO to dio->result clashes with
value used to track partial write that activates the fall back path.

It was also pointed out that it is impossible to use dio->result to track
partial write and at the same time to track error returned from device
driver.  Because direct_io_work can only determines whether it is a partial
write at the end of io submission and in mid stream of those io submission,
a return code could be coming back from the driver.  Thus messing up all
the subsequent logic.

Proposed fix is to separating out error code returned by the IO completion
path from partial IO submit tracking.  A new variable is added to dio
structure specifically to track io error returned in the completion path.

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Acked-by: Zach Brown <zach.brown@oracle.com>
Acked-by: Suparna Bhattacharya <suparna@in.ibm.com>
Cc: Badari Pulavarty <pbadari@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] udf: fix uid/gid options and add uid/gid=ignore and forget options
Phillip Susi [Sat, 25 Mar 2006 11:08:14 +0000 (03:08 -0800)]
[PATCH] udf: fix uid/gid options and add uid/gid=ignore and forget options

As Pekka Enberg pointed out, with the if still following the else, you can
still get a null uid written to the disk if you specify a default uid= without
uid=forget.  In other words, if the desktop user is uid=1000 and the mount
option uid=1000 is given ( which is done on ubuntu automatically and probably
other distributions that use hal ), then if any other user besides uid 1000
owns a file then a 0 will be written to the media as the owning uid instead.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] use kzalloc and kcalloc in core fs code
Oliver Neukum [Sat, 25 Mar 2006 11:08:13 +0000 (03:08 -0800)]
[PATCH] use kzalloc and kcalloc in core fs code

Signed-off-by: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix memory leak in isapnp
Jesper Juhl [Sat, 25 Mar 2006 11:08:12 +0000 (03:08 -0800)]
[PATCH] Fix memory leak in isapnp

Spotted by the Coverity checker as bug #666

akpm; there are several other `return 1;'s in there which aren't freeing
`dev'.  (A fix which converts this function to single-exit would be
preferred..)

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Cc: Adam Belay <ambx1@neo.rr.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] OSS: Fix leak in awe_wave, also remove pointless cast.
Jesper Juhl [Sat, 25 Mar 2006 11:08:11 +0000 (03:08 -0800)]
[PATCH] OSS: Fix leak in awe_wave, also remove pointless cast.

Fix resource leak and remove pointless cast of kmalloc return value.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpumask: uninline any_online_cpu()
Andrew Morton [Sat, 25 Mar 2006 11:08:10 +0000 (03:08 -0800)]
[PATCH] cpumask: uninline any_online_cpu()

           text    data     bss     dec     hex filename
before: 3605597 1363528  363328 5332453  515de5 vmlinux
after:  3605295 1363612  363200 5332107  515c8b vmlinux

218 bytes saved.

Also, optimise any_online_cpu() out of existence on CONFIG_SMP=n.

This function seems inefficient.  Can't we simply AND the two masks, then use
find_first_bit()?

Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpumask: uninline highest_possible_processor_id()
Andrew Morton [Sat, 25 Mar 2006 11:08:09 +0000 (03:08 -0800)]
[PATCH] cpumask: uninline highest_possible_processor_id()

Shrinks the only caller (net/bridge/netfilter/ebtables.c) by 174 bytes.

Also, optimise highest_possible_processor_id() out of existence on
CONFIG_SMP=n.

Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpumask: uninline next_cpu()
Andrew Morton [Sat, 25 Mar 2006 11:08:09 +0000 (03:08 -0800)]
[PATCH] cpumask: uninline next_cpu()

           text    data     bss     dec     hex filename
before: 3488027 1322496  360128 5170651  4ee5db vmlinux
after:  3485112 1322480  359968 5167560  4ed9c8 vmlinux

2931 bytes saved

Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpumask: uninline first_cpu()
Andrew Morton [Sat, 25 Mar 2006 11:08:08 +0000 (03:08 -0800)]
[PATCH] cpumask: uninline first_cpu()

           text    data     bss     dec     hex filename
before: 3490577 1322408  360000 5172985  4eeef9 vmlinux
after:  3488027 1322496  360128 5170651  4ee5db vmlinux

Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Altix: rs422 support for ioc4 serial driver
Pat Gefre [Sat, 25 Mar 2006 11:08:07 +0000 (03:08 -0800)]
[PATCH] Altix: rs422 support for ioc4 serial driver

Add rs422 support to the Altix ioc4 serial driver.

Signed-off-by: Patrick Gefre <pfg@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix sb_mixer use before validation
Eugene Teo [Sat, 25 Mar 2006 11:08:07 +0000 (03:08 -0800)]
[PATCH] Fix sb_mixer use before validation

dev should be validated before it is being used as index to array.

Coverity bug #871

Signed-off-by: Eugene Teo <eugene.teo@eugeneteo.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i4l/isdn_tty.c: fix a check-after-use
Adrian Bunk [Sat, 25 Mar 2006 11:08:06 +0000 (03:08 -0800)]
[PATCH] i4l/isdn_tty.c: fix a check-after-use

Fix a check-after-use spotted by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] radix-tree documentation cleanups
Jonathan Corbet [Sat, 25 Mar 2006 11:08:05 +0000 (03:08 -0800)]
[PATCH] radix-tree documentation cleanups

Documentation changes to help radix tree users avoid overrunning the tags
array.  RADIX_TREE_TAGS moves to linux/radix-tree.h and is now known as
RADIX_TREE_MAX_TAGS (Nick Piggin's idea).  Tag parameters are changed to
unsigned, and some comments are updated.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] compat_sys_nfsservctl(): handle errors correctly
Peter Staubach [Sat, 25 Mar 2006 11:08:04 +0000 (03:08 -0800)]
[PATCH] compat_sys_nfsservctl(): handle errors correctly

Correct some error handling on the compat version of the nfsservctl()
system.  It was detecting errors while copying in the arguments from user
space, but then attempting to use the arguments anyway.  This didn't seem
so good.

Signed-off-by: Peter Staubach <staubach@redhat.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i2o_dump_hrt() output cleanup
Vasily Averin [Sat, 25 Mar 2006 11:08:03 +0000 (03:08 -0800)]
[PATCH] i2o_dump_hrt() output cleanup

This patch fixes i2o_dump_hrt output from dmesg:

iop0: HRT has 1 entries of 16 bytes each.
Adapter 00000012: <7>TID 0000:[<7>H<7>P<7>C<7>*<7>]:<7>PCI 1: Bus 1 Device 22
Function 0<7>

Signed-off-by: Vasily Averin <vvs@sw.ru>
Cc: Markus Lidel <Markus.Lidel@shadowconnect.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] fix alloc_large_system_hash() roundup
John Hawkes [Sat, 25 Mar 2006 11:08:02 +0000 (03:08 -0800)]
[PATCH] fix alloc_large_system_hash() roundup

The "rounded up to nearest power of 2 in size" algorithm in
alloc_large_system_hash is not correct.  As coded, it takes an otherwise
acceptable power-of-2 value and doubles it.  For example, we see the error
if we boot with thash_entries=2097152 which produces a hash table with
4194304 entries.

Signed-off-by: John Hawkes <hawkes@sgi.com>
Cc: Roland Dreier <rdreier@cisco.com>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] roundup_pow_of_two() 64-bit fix
Andrew Morton [Sat, 25 Mar 2006 11:08:01 +0000 (03:08 -0800)]
[PATCH] roundup_pow_of_two() 64-bit fix

fls() takes an integer, so roundup_pow_of_two() is busted for ulongs larger
than 2^32-1.

Fix this by implementing and using fls_long().

(Why does roundup_pow_of_two() return a long?)

(Why is roundup_pow_of_two() __attribute_const__ whereas long_log2() is
__attribute_pure__?)

(Why does long_log2() suck so much?  Because we were missing fls_long()?)

Cc: Roland Dreier <rdreier@cisco.com>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
Cc: John Hawkes <hawkes@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] No need to protect current->group_info in sys_getgroups(), in_group_p() and...
Eric Dumazet [Sat, 25 Mar 2006 11:08:00 +0000 (03:08 -0800)]
[PATCH] No need to protect current->group_info in sys_getgroups(), in_group_p() and in_egroup_p()

While doing some benchmarks of an Apache/PHP SMP server, I noticed high
oprofile numbers in in_group_p() and _atomic_dec_and_lock().

rank  percent
  1     4.8911 % __link_path_walk
  2     4.8503 % __d_lookup
*3     4.2911 % _atomic_dec_and_lock
  4     3.9307 % __copy_to_user_ll
  5     4.9004 % sysenter_past_esp
*6     3.3248 % in_group_p

It appears that in_group_p() does an uncessary

get_group_info(current->group_info); /* atomic_inc() */
  ... /* access current->group_info */
put_group_info(current->group_info); /* _atomic_dec_and_lock */

It is not necessary to do this, because the current task holds a reference
on its own group_info, and this reference cannot change during the lookup.

This patch deletes the get_group_info()/put_group_info() pair from
sys_getgroups(), in_group_p() and in_egroup_p() functions.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Cc: Tim Hockin <thockin@hockin.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>