linux-kernel-test/arch/x86/kernel
David P. Reed bbbd99955b x86: on x86_64, correct reading of PC RTC when update in progress in time_64.c
Correct potentially unstable PC RTC time register reading in time_64.c

Stop the use of an incorrect technique for reading the standard PC RTC
timer, which is documented to "disconnect" time registers from the bus
while updates are in progress.  The use of UIP flag while interrupts
are disabled to protect a 244 microsecond window is one of the
Motorola spec sheet's documented ways to read the RTC time registers
reliably.

tglx: removed locking changes from original patch, as they gain nothing
(read_persistent_clock is only called during boot, suspend, resume - so
no hot path affected) and conflict with the paravirt locking scheme
(see 32bit code), which we do not want to complicate for no benefit.

Signed-off-by: David P. Reed <dpreed@reed.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-11-17 16:27:01 +01:00
..
acpi x86: fix !SMP compiler warning in arch/x86/kernel/acpi/processor.c 2007-10-27 20:57:43 +02:00
cpu x86: show cpuinfo only for online CPUs 2007-11-17 16:27:00 +01:00
.gitignore .gitignore update for x86 arch 2007-10-17 21:19:04 +02:00
alternative.c x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
aperture_64.c x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
apic_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
apic_64.c x86: add lapic_shutdown for x86_64 2007-10-23 22:37:22 +02:00
apm_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
asm-offsets_32.c Boot with virtual == physical to get closer to native Linux. 2007-10-23 15:49:54 +10:00
asm-offsets_64.c x86: Fix boot protocol KEEP_SEGMENTS check. 2007-10-27 20:57:43 +02:00
asm-offsets.c i386: move kernel 2007-10-11 11:17:01 +02:00
audit_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
bootflag.c i386: move kernel 2007-10-11 11:17:01 +02:00
bugs_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpuid.c x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
crash_dump_32.c kmap leak fix for x86_32 kdump 2007-10-19 11:53:33 -07:00
crash_dump_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash.c x86: fix CONFIG_KEXEC build breakage 2007-10-24 12:58:01 +02:00
doublefault_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_32.c kexec: add BSS to resource tree 2007-10-22 08:13:19 -07:00
e820_64.c kexec: add BSS to resource tree 2007-10-22 08:13:19 -07:00
early_printk.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early-quirks.c x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
efi_32.c kexec: add BSS to resource tree 2007-10-22 08:13:19 -07:00
efi_stub_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
entry_32.S Merge branch 'xen-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2007-10-17 11:10:11 -07:00
entry_64.S x86: return correct error code from child_rip in x86_64 entry.S 2007-10-17 20:15:29 +02:00
genapic_64.c x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
genapic_flat_64.c x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
geode_32.c x86: Geode Multi-Function General Purpose Timers support 2007-10-12 23:04:06 +02:00
head64.c x86: use descriptor's functions instead of inline assembly 2007-10-19 20:35:03 +02:00
head_32.S x86: clean up setup.h and the boot code 2007-10-23 22:37:25 +02:00
head_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
hpet.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-10-19 20:36:17 -07:00
i386_ksyms_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
i387_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i387_64.c x86: fix taking DNA during 64bit sigreturn 2007-11-12 11:09:33 -08:00
i8237.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8253.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
i8259_32.c i386: introduce "used_vectors" bitmap which can be used to reserve vectors. 2007-10-19 20:35:03 +02:00
i8259_64.c x86: more struct irqaction initializer cleanups 2007-10-17 20:16:07 +02:00
init_task.c x86: merge init_task_32/64.c 2007-10-19 20:35:02 +02:00
io_apic_32.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-10-19 20:36:17 -07:00
io_apic_64.c Intel IOMMU: DMAR fault handling support 2007-10-22 08:13:19 -07:00
ioport_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ioport_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_32.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
irq_64.c x86: also show non-zero IRQ counts for vectors that currently don't have a handler 2007-10-17 20:16:54 +02:00
k8.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
kprobes_32.c lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
kprobes_64.c lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
ldt_32.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:05 +02:00
ldt_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
machine_kexec_32.c Use extended crashkernel command line on i386 2007-10-19 11:53:49 -07:00
machine_kexec_64.c x86: Dump filtering supports x86_64 sparsemem 2007-10-27 20:57:43 +02:00
Makefile x86: delete vsyscall files during make clean 2007-10-17 21:56:01 +02:00
Makefile_32 x86: do not use $(ARCH) when not needed 2007-11-12 21:02:20 +01:00
Makefile_64 x86: do not use $(ARCH) when not needed 2007-11-12 21:02:20 +01:00
mca_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
mfgpt_32.c x86: Geode MFGPT clock event device support 2007-10-12 23:04:06 +02:00
microcode.c x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
module_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
mpparse_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mpparse_64.c x86: acpi use cpu_physical_id 2007-10-19 20:35:03 +02:00
msr.c x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
nmi_32.c x86: make nmi_cpu_busy() always defined 2007-11-09 22:39:38 +01:00
nmi_64.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:07 +02:00
numaq_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
paravirt_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
pci-calgary_64.c x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
pci-dma_32.c i386: Clean up duplicate includes in arch/i386/kernel/ 2007-10-17 20:15:51 +02:00
pci-dma_64.c x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
pci-gart_64.c x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
pci-nommu_64.c x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
pci-swiotlb_64.c x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
pcspeaker.c i386: move kernel 2007-10-11 11:17:01 +02:00
pmtimer_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
process_32.c Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 2007-10-19 15:06:00 -07:00
process_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ptrace_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
ptrace_64.c x86: convert mm_context_t semaphore to a mutex 2007-10-17 20:17:00 +02:00
quirks.c x86: Add HPET force support for MCP55 (nForce 5) chipsets 2007-10-23 22:37:25 +02:00
reboot_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
reboot_64.c x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
reboot_fixups_32.c GEODE: use symbolic constant in cs5536 reboot fixup 2007-10-19 20:35:02 +02:00
relocate_kernel_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
relocate_kernel_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
scx200_32.c long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
setup64.c x86: use descriptor's functions instead of inline assembly 2007-10-19 20:35:03 +02:00
setup_32.c x86: kernel/setup_32.c: unexport machine_id 2007-10-30 00:22:22 +01:00
setup_64.c x86: fixup cpu_info array conversion 2007-11-17 16:27:01 +01:00
sigframe_32.h i386: move kernel 2007-10-11 11:17:01 +02:00
signal_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
signal_64.c spelling fixes: arch/x86_64/ 2007-10-20 01:25:36 +02:00
smp_32.c x86: export smp_ops to allow modular build of KVM 2007-10-27 20:57:43 +02:00
smp_64.c x86: implement missing x86_64 function smp_call_function_mask() 2007-10-19 20:35:03 +02:00
smpboot_32.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-10-19 20:36:17 -07:00
smpboot_64.c x86: ARRAY_SIZE cleanup 2007-10-23 22:37:22 +02:00
smpcommon_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
srat_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
stacktrace.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
summit_32.c spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
suspend_64.c x86: Save registers in saved_context during suspend and hibernation 2007-10-23 22:37:24 +02:00
suspend_asm_64.S x86: Save registers in saved_context during suspend and hibernation 2007-10-23 22:37:24 +02:00
sys_i386_32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
sys_x86_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
syscall_64.c i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
syscall_table_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
sysenter_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tce_64.c x86: Create clflush() inline, remove hardcoded wbinvd 2007-10-17 20:16:12 +02:00
time_32.c x86: Fix irq0 / local apic timer accounting 2007-10-12 23:04:06 +02:00
time_64.c x86: on x86_64, correct reading of PC RTC when update in progress in time_64.c 2007-11-17 16:27:01 +01:00
topology.c i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
trampoline_32.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
trampoline_64.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
traps_32.c lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
traps_64.c lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
tsc_32.c x86: fix more TSC clock source calibration errors 2007-10-23 22:37:22 +02:00
tsc_64.c x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
tsc_sync.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
verify_cpu_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vm86_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vmi_32.c paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
vmiclock_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_64.lds.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vmlinux.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsmp_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
vsyscall_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_64.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-10-19 20:36:17 -07:00
vsyscall-int80_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-note_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sigreturn_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sysenter_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
x8664_ksyms_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00