kernel-fxtec-pro1x/arch/powerpc/kernel
Paul Mackerras 43875cc0a5 [POWERPC] Fix off-by-one error in setting decrementer on Book E/4xx (v2)
The decrementer in Book E and 4xx processors interrupts on the
transition from 1 to 0, rather than on the 0 to -1 transition as on
64-bit server and 32-bit "classic" (6xx/7xx/7xxx) processors.  At the
moment we subtract 1 from the count of how many decrementer ticks are
required before the next interrupt before putting it into the
decrementer, which is correct for server/classic processors, but could
possibly cause the interrupt to happen too early on Book E and 4xx if
the timebase/decrementer frequency is low.

This fixes the problem by making set_dec subtract 1 from the count for
server and classic processors, instead of having the callers subtract
1.  Since set_dec already had a bunch of ifdefs to handle different
processor types, there is no net increase in ugliness. :)

Note that calling set_dec(0) may not generate an interrupt on some
processors.  To make sure that decrementer_set_next_event always calls
set_dec with an interval of at least 1 tick, we set min_delta_ns of
the decrementer_clockevent to correspond to 2 ticks (2 rather than 1
to compensate for truncations in the conversions between ticks and
ns).

This also removes a redundant call to set the decrementer to
0x7fffffff - it was already set to that earlier in timer_interrupt.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-11-08 14:15:31 +11:00
..
vdso32 powerpc32 vDSO: linker script indentation 2007-10-16 10:01:50 -07:00
vdso64 [POWERPC] Fix 64 bits vDSO DWARF info for CR register 2007-10-17 22:30:09 +10:00
align.c [POWERPC] Handle alignment faults on SPE load/store instructions 2007-09-14 08:51:48 -05:00
asm-offsets.c powerpc: add scaled time accounting 2007-10-18 14:37:28 -07:00
audit.c
binfmt_elf32.c powerpc: Use linux/elfcore-compat.h 2007-10-17 08:42:51 -07:00
btext.c [POWERPC] Clean out a bunch of duplicate includes 2007-08-17 11:01:51 +10:00
clock.c [POWERPC] clk.h interface for platforms 2007-10-03 09:11:56 +10:00
compat_audit.c
cpu_setup_6xx.S Spelling fix: explicitly 2007-10-19 23:22:55 +02:00
cpu_setup_44x.S [POWERPC] 4xx: 440EPx/GRx incorrect write to DDR SDRAM errata workaround 2007-10-03 07:20:18 -05:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S
cputable.c [POWERPC] 4xx: Add AMCC 405EX support to cputable.c 2007-10-11 15:01:22 -05:00
crash.c [POWERPC] Clean out a bunch of duplicate includes 2007-08-17 11:01:51 +10:00
crash_dump.c [POWERPC] FWNMI is only used on pSeries 2007-09-19 15:25:34 +10:00
dma_64.c Update arch/ to use sg helpers 2007-10-22 21:19:59 +02:00
entry_32.S [POWERPC] Add cpu feature for SPE handling 2007-09-14 08:53:30 -05:00
entry_64.S [POWERPC] Add 1TB workaround for PA6T 2007-10-17 22:30:09 +10:00
firmware.c
fpu.S
head_8xx.S [POWERPC] 8xx: Work around CPU15 erratum. 2007-10-03 20:36:36 -05:00
head_32.S [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers 2007-10-11 13:36:52 -05:00
head_40x.S [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers 2007-10-11 13:36:52 -05:00
head_44x.S [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers 2007-10-11 13:36:52 -05:00
head_64.S [POWERPC] Use 1TB segments 2007-10-12 14:05:17 +10:00
head_booke.h
head_fsl_booke.S [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers 2007-10-11 13:36:52 -05:00
ibmebus.c Update arch/ to use sg helpers 2007-10-22 21:19:59 +02:00
idle.c [POWERPC] Fix sysctl table check failure on PowerMac 2007-11-08 14:15:30 +11:00
idle_6xx.S
idle_power4.S
init_task.c
io.c
iomap.c [POWERPC] Add 64-bit resources support to pci_iomap 2007-09-20 07:36:52 -05:00
iommu.c Update arch/ to use sg helpers 2007-10-22 21:19:59 +02:00
irq.c Spelling fix: explicitly 2007-10-19 23:22:55 +02:00
isa-bridge.c
kprobes.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
l2cr_6xx.S Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
legacy_serial.c [POWERPC] Add legacy serial support for OPB with flattened device tree 2007-10-12 14:05:18 +10:00
lparcfg.c [POWERPC] ppc64: support CONFIG_DEBUG_PREEMPT 2007-10-03 11:48:44 +10:00
machine_kexec.c Use extended crashkernel command line on ppc64 2007-10-19 11:53:51 -07:00
machine_kexec_32.c
machine_kexec_64.c
Makefile [POWERPC] 8xx: Move softemu8xx.c from arch/ppc 2007-10-04 11:02:54 -05:00
misc.S
misc_32.S [POWERPC] Fix small race in 44x tlbie function 2007-08-15 15:12:50 +10:00
misc_64.S
module_32.c
module_64.c
msi.c
nvram_64.c [POWERPC] pseries: Eliminate global error_log_cnt variable 2007-08-17 11:01:52 +10:00
of_device.c [POWERPC] Move of_device allocation into of_device.[ch] 2007-10-17 22:30:07 +10:00
of_platform.c [POWERPC] Move of_device allocation into of_device.[ch] 2007-10-17 22:30:07 +10:00
paca.c
pci-common.c [POWERPC] Use alloc_maybe_bootmem() in pcibios_alloc_controller 2007-10-03 15:31:35 +10:00
pci_32.c [POWERPC] null_pci_ops: Use named structure member initializers 2007-08-17 11:01:53 +10:00
pci_64.c [POWERPC] Fix pci domain detection 2007-10-03 11:48:44 +10:00
pci_dn.c [POWERPC] Fix section mismatch in PCI code 2007-09-19 15:25:34 +10:00
pmc.c
ppc32.h
ppc_ksyms.c [POWERPC] Fix build errors when BLOCK=n 2007-09-22 14:49:22 +10:00
proc_ppc64.c
process.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
prom.c [POWERPC] Use cache-inhibited large page bit from firmware 2007-10-09 21:00:48 +10:00
prom_init.c [POWERPC] prom_init whitespace cleanup, typo fix 2007-09-14 01:33:24 +10:00
prom_parse.c Revert "[POWERPC] Don't complain if size-cells == 0 in prom_parse()" 2007-07-26 13:44:36 +10:00
ptrace.c Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
ptrace32.c [POWERPC] Add CHECK_FULL_REGS in several places in ptrace code 2007-10-03 11:48:43 +10:00
rtas-proc.c
rtas-rtc.c
rtas.c
rtas_flash.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
rtas_pci.c [POWERPC] rtas_pci_ops: Use named structure member initializers 2007-08-17 11:01:53 +10:00
semaphore.c
setup-common.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
setup.h
setup_32.c [POWERPC] Only call ppc_md.setup_arch() if it is provided 2007-10-11 20:39:36 +10:00
setup_64.c [POWERPC] Fix cache line vs. block size confusion 2007-11-08 14:15:30 +11:00
signal.c [POWERPC] Implement logging of unhandled signals 2007-10-12 14:05:18 +10:00
signal.h
signal_32.c [POWERPC] Implement logging of unhandled signals 2007-10-12 14:05:18 +10:00
signal_64.c [POWERPC] Implement logging of unhandled signals 2007-10-12 14:05:18 +10:00
smp-tbsync.c
smp.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
softemu8xx.c [POWERPC] 8xx: Move softemu8xx.c from arch/ppc 2007-10-04 11:02:54 -05:00
suspend.c
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
sys_ppc32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
syscalls.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
sysfs.c [POWERPC] Remove warning in arch/powerpc/kernel/sysfs.c 2007-09-14 01:33:22 +10:00
systbl.S [POWERPC] Align the sys_call_table 2007-10-11 14:36:47 +10:00
tau_6xx.c
time.c [POWERPC] Fix off-by-one error in setting decrementer on Book E/4xx (v2) 2007-11-08 14:15:31 +11:00
traps.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
udbg.c [POWERPC] Add early debug console for CPM serial ports. 2007-10-03 20:35:43 -05:00
udbg_16550.c [POWERPC] 4xx: Implement udbg_getc() for 440 2007-09-19 21:13:17 -05:00
vdso.c [POWERPC] Disable vDSO support for ARCH=ppc where it's not implemented 2007-10-11 20:25:25 +10:00
vecemu.c
vector.S
vio.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
vmlinux.lds.S [POWERPC] Fix modpost warnings from head*.S on ppc32 2007-09-14 08:53:36 -05:00