18 Apr, 2008
8 commits
-
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (58 commits)
ide: remove ide_init_default_irq() macro
ide: move default IDE ports setup to ide_generic host driver
ide: remove obsoleted "idex=noprobe" kernel parameter (take 2)
ide: remove needless hwif->irq check from ide_hwif_configure()
ide: init hwif->{io_ports,irq} explicitly in legacy VLB host drivers
ide: limit legacy VLB host drivers to alpha, x86 and mips
cmd640: init hwif->{io_ports,irq} explicitly
cmd640: cleanup setup_device_ptrs()
ide: add ide-4drives host driver (take 3)
ide: remove ppc ifdef from init_ide_data()
ide: remove ide_default_io_ctl() macro
ide: remove CONFIG_IDE_ARCH_OBSOLETE_INIT
ide: add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS (take 2)
ppc/pmac: remove no longer needed IDE quirk
ppc: don't include
ppc: remove ppc_ide_md
ppc/pplus: remove ppc_ide_md.ide_init_hwif hook
ppc/sandpoint: remove ppc_ide_md hooks
ppc/lopec: remove ppc_ide_md hooks
ppc/mpc8xx: remove ppc_ide_md hooks
... -
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb:
kgdb: always use icache flush for sw breakpoints
kgdb: fix SMP NMI kgdb_handle_exception exit race
kgdb: documentation fixes
kgdb: allow static kgdbts boot configuration
kgdb: add documentation
kgdb: Kconfig fix
kgdb: add kgdb internal test suite
kgdb: fix several kgdb regressions
kgdb: kgdboc pl011 I/O module
kgdb: fix optional arch functions and probe_kernel_*
kgdb: add x86 HW breakpoints
kgdb: print breakpoint removed on exception
kgdb: clocksource watchdog
kgdb: fix NMI hangs
kgdb: fix kgdboc dynamic module configuration
kgdb: document parameters
x86: kgdb support
consoles: polling support, kgdboc
kgdb: core
uaccess: add probe_kernel_write() -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (613 commits)
x86: standalone trampoline code
x86: move suspend wakeup code to C
x86: coding style fixes to arch/x86/kernel/acpi/sleep.c
x86: setup_trampoline() - fix section mismatch warning
x86: section mismatch fixes, #1
x86: fix paranoia about using BIOS quickboot mechanism.
x86: print out buggy mptable
x86: use cpu_online()
x86: use cpumask_of_cpu()
x86: remove unnecessary tmp local variable
x86: remove unnecessary memset()
x86: use ioapic_read_entry() and ioapic_write_entry()
x86: avoid redundant loop in io_apic_level_ack_pending()
x86: remove superfluous initialisation in boot code.
x86: merge mpparse_{32,64}.c
x86: unify mp_register_gsi
x86: unify mp_config_acpi_legacy_irqs
x86: unify mp_register_ioapic
x86: unify uniq_io_apic_id
x86: unify smp_scan_config
... -
* Use ide_default_irq() instead of ide_init_default_irq() in
ide_generic host driver (so the correct IRQ is always set
regardless of CONFIG_PCI / CONFIG_BLK_DEV_IDEPCI).* Remove no longer needed ide_init_default_irq() macro.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
It is always == '((base) + 0x206)' if CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=y
and it is not needed otherwise (arm, blackfin, parisc, ppc64, sh, sparc[64]).Signed-off-by: Bartlomiej Zolnierkiewicz
-
* Add CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS to drivers/ide/Kconfig and use
it instead of defining IDE_ARCH_OBSOLETE_DEFAULTS in .v2:
* Define ide_default_irq() in ide-probe.c/ns87415.c if not already defined
and drop defining ide_default_irq() for CONFIG_IDE_ARCH_OBSOLETE_DEFAULTS=n.[ Thanks to Stephen Rothwell and David Miller for noticing the problem. ]
Cc: Stephen Rothwell
Cc: David Miller
Signed-off-by: Bartlomiej Zolnierkiewicz -
This patch fixes the hang regression with kgdb when the NMI interrupt
comes in while the master core is returning from an exception.Adjust the NMI logic such that KGDB will not stop NMI exceptions from
occurring by in general returning NOTIFY_DONE. It is not possible to
distinguish the debug NMI sync vs the normal NMI apic interrupt so
kgdb needs to catch the unknown NMI if it the debugger was previously
active on one of the cpus.Signed-off-by: Jason Wessel
Signed-off-by: Ingo Molnar -
simplified and streamlined kgdb support on x86, both 32-bit and 64-bit,
based on patch from:Subject: kgdb: core-lite
From: Jason Wessel[ and countless other authors - see the patch for details. ]
Signed-off-by: Ingo Molnar
Signed-off-by: Jason Wessel
Signed-off-by: Jan Kiszka
Reviewed-by: Thomas Gleixner
17 Apr, 2008
32 commits
-
Move wakeup code to .c, so that video mode setting code can be shared
between boot and wakeup. Remove nasty assembly code in 64-bit case by
re-using trampoline code. Stack setup was fixed to clear high 16bits
of %esp, maybe that fixes some machines..c code sharing and morse code was done H. Peter Anvin, Sam Ravnborg
reviewed kbuild related stuff, and it seems okay to him. Rafael did
some cleanups.[rjw:
* Made the patch stop breaking compilation on x86-32
* Added arch/x86/kernel/acpi/sleep.h
* Got rid of compiler warnings in arch/x86/kernel/acpi/sleep.c
* Fixed 32-bit compilation on x86-64 systems
* Added include/asm-x86/trampoline.h and fixed the non-SMP
compilation on 64-bit x86
* Removed arch/x86/kernel/acpi/sleep_32.c which was not used
* Fixed some breakage caused by the integration of smpboot.c done
under us in the meantime]Signed-off-by: Pavel Machek
Signed-off-by: H. Peter Anvin
Reviewed-by: Sam Ravnborg
Signed-off-by: Rafael J. Wysocki
Signed-off-by: Ingo Molnar -
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
Cleanup references to the early cpu maps for the non-SMP configuration
and remove some functions called for SMP configurations only.Cc: Andi Kleen
Cc: Christoph Lameter
Signed-off-by: Mike Travis
Signed-off-by: Ingo Molnar -
Signed-off-by: Ingo Molnar
-
UV supports really big systems. So big, in fact, that the APICID register
does not contain enough bits to contain an APICID that is unique across all
cpus.The UV BIOS supports 3 APICID modes:
- legacy mode. This mode uses the old APIC mode where
APICID is in bits [31:24] of the APICID register.- x2apic mode. This mode is whitebox-compatible. APICIDs
are unique across all cpus. Standard x2apic APIC operations
(Intel-defined) can be used for IPIs. The node identifier
fits within the Intel-defined portion of the APICID register.- x2apic-uv mode. In this mode, the APICIDs on each node have
unique IDs, but IDs on different node are not unique. For example,
if each mode has 32 cpus, the APICIDs on each node might be
0 - 31. Every node has the same set of IDs.
The UV hub is used to route IPIs/interrupts to the correct node.
Traditional APIC operations WILL NOT WORK.In x2apic-uv mode, the ACPI tables all contain a full unique ID (note:
exact bit layout still changing but the following is close):nnnnnnnnnnlc0cch
n = unique node number
l = socket number on board
c = core
h = hyperthreadOnly the "lc0cch" bits are written to the APICID register. The remaining bits are
supplied by having the get_apic_id() function "OR" the extra bits into the value
read from the APICID register. (Hmmm.. why not keep the ENTIRE APICID register
in per-cpu data....)The x2apic-uv mode is recognized by the MADT table containing:
oem_id = "SGI"
oem_table_id = "UV-X"Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Add UV macros for converting between cpu numbers, blade numbers
and node numbers. Note that these are used ONLY within x86_64 UV
modules, and are not for general kernel use.Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Define the macros and tables for the basic UV infrastructure.
Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Definitions of UV MMRs.
Note: this file is auto-generated by hardware design tools.Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Increase the number of bits in an apicid from 8 to 32.
By default, MP_processor_info() gets the APICID from the
mpc_config_processor structure. However, this structure limits
the size of APICID to 8 bits. This patch allows the caller of
MP_processor_info() to optionally pass a larger APICID that will
be used instead of the one in the mpc_config_processor struct.Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Add functions that can be used to determine if an x86_64
system is a SGI "UV" system. UV systems come in 3 types and
are identified by the OEM ID in the MADT.Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Introduce a function to read the local APIC_ID.
This change is in preparation for additional changes to
the APICID functions that will come in a later patch.Signed-off-by: Jack Steiner
Signed-off-by: Ingo Molnar -
Signed-off-by: Cyrill Gorcunov
Signed-off-by: Ingo Molnar -
This patch renames VM_MASK to X86_VM_MASK (which
in turn defined as alias to X86_EFLAGS_VM) to better
distinguish from virtual memory flags. We can't just
use X86_EFLAGS_VM instead because it is also used
for conditional compilationSigned-off-by: Cyrill Gorcunov
Signed-off-by: Ingo Molnar -
- fix build error
- fix CONFIG_HEADERS_CHECK errorSigned-off-by: Ingo Molnar
-
A 1G section size makes memory hotplug too coarse in a virtual
environment. Retuce it by a factor of 2 to 512M. I would have liked
to make it smaller, but it runs out of reserved flags in the page flags.Signed-off-by: Jeremy Fitzhardinge
Cc: KAMEZAWA Hiroyuki
Cc: Yasunori Goto
Cc: Christoph Lameter
Cc: Dave Hansen
Signed-off-by: Ingo Molnar -
Merge what's left from smp_32.h and smp_64.h into smp.h
By now, they're basically extern definitions.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
we merge everything that is inside CONFIG_SMP
to smp.h. They differ a little bit, so we use
CONFIG_X86_32_SMP and CONFIG_X86_64_SMP as markers.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
This implementation in x86_64 is clean and consistent, but we
sacrifice it for the sake of being equal to i386 (since the other
way around would be harder).Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
move all include directives from smp_{32,64}.h to smp.h.
Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
Although those constants are always defined in x86_64,
and will have the effect of just including the headers
in the very way we did before, I'm doing this in a separate
patch to be conservative and avoid surprises.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
The code is now the same between i386 and x86_64. We already
know what happens when it reaches this point: They go away
from the arch-specific headers, and suddenly appears in the common
header.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
We provide a bogus macro for x86_64 in case CONFIG_X86_LOCAL_APIC
is not set. It will always be set for x86_64, so the effect
is just to make the code equal to i386.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
APIC_DEFINITION is not defined in x86_64, so in practice, we keep
our old code here. But as a nice side effect, the code is now
equal to smp_32.h.Signed-off-by: Glauber Costa
Signed-off-by: Ingo Molnar -
Signed-off-by: Ingo Molnar
-
Signed-off-by: Alexey Starikovskiy
Signed-off-by: Ingo Molnar -
The new cacheflush.h API's didn't have any comments describing
how they're to be used yet and the conventions around these functions.
This patch adds comments to this effect; in order for that to be
a logical series, some prototypes had to move around.Signed-off-by: Arjan van de Ven
Signed-off-by: Ingo Molnar -
Using a naked parameterless macro could lead to other tokens being
unexpectedly replaced.Signed-off-by: Jeremy Fitzhardinge
Signed-off-by: Ingo Molnar -
When compilers became generally better at optimizing code than humans, the
register keyword became mostly useless. For the floppy driver it certainly
is since it's so slow compared to the rest of the system that optimizing
access to a single variable or two isn't going to make any real difference
So let's just leave it to the compiler - it'll do a better job anyway.This patch does away with a few register keywords in the x86 floppy driver.
Signed-off-by: Jesper Juhl
Signed-off-by: Ingo Molnar