Robert Jennings
434f98c48f
[POWERPC] atomic_dec_if_positive sign extension fix
...
On 64-bit machines, if an atomic counter is explicitly set to a
negative value, the atomic_dec_if_positive function will decrement and
store the next smallest value in the atomic counter, contrary to its
intended operation.
The comparison to determine if the decrement will make the result
negative was done by the "addic." instruction, which operates on a
64-bit value, namely the zero-extended word loaded from the atomic
variable. This patch uses an explicit word compare (cmpwi) and
changes the addic. to an addi (also changing "=&r" to "=&b" so that r0
isn't used, and addi doesn't become li).
This also fixes a bug for both 32-bit and 64-bit in that previously
0x80000000 was considered positive, since the result after
decrementing is positive. Now it is considered negative.
Also, I clarify the return value in the comments just to make it clear
that the value returned is always the decremented value, even if that
value is not stored back to the atomic counter.
Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-01-22 21:27:36 +11:00
..
iseries
[POWERPC] Refactor 64 bits DMA operations
2006-12-04 20:38:40 +11:00
8253pit.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
a.out.h
[PATCH] powerpc: Merge include/asm-ppc*/a.out.h into include/asm-powerpc
2005-09-21 19:21:08 +10:00
abs_addr.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
agp.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
asm-compat.h
[POWERPC] Support feature fixups in vdso's
2006-10-25 11:54:07 +10:00
atomic.h
[POWERPC] atomic_dec_if_positive sign extension fix
2007-01-22 21:27:36 +11:00
auxvec.h
[PATCH] powerpc: Merge vdso's and add vdso support to 32 bits kernel
2005-11-11 22:25:39 +11:00
backlight.h
[PATCH] powermac: More powermac backlight fixes
2006-07-31 13:28:45 -07:00
bitops.h
[PATCH] LOG2: Make powerpc's __ilog2_u64() take a 64-bit argument
2006-12-11 12:29:27 -08:00
bootx.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
btext.h
[PATCH] powerpc: Unify udbg ( #2 )
2006-01-09 14:49:54 +11:00
bug.h
[POWERPC] Fix manual assembly WARN_ON() in enter_rtas().
2007-01-09 17:03:02 +11:00
bugs.h
[PATCH] powerpc: Make check_bugs() static inline
2005-09-09 22:11:35 +10:00
byteorder.h
[PATCH] powerpc: merge byteorder.h
2005-09-28 15:42:53 +10:00
cache.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
cacheflush.h
[PATCH] Optimize D-cache alias handling on fork
2006-12-13 09:27:08 -08:00
cell-pmu.h
[POWERPC] cell: Add oprofile support
2006-12-04 20:40:14 +11:00
checksum.h
[NET]: POWERPC checksum annotations and cleanups.
2006-12-02 21:23:20 -08:00
compat.h
[PATCH] powerpc signal __user annotations
2006-02-08 01:03:46 -05:00
cputable.h
Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
2006-12-11 16:31:42 +11:00
cputime.h
[PATCH] powerpc: implement missing jiffies64_to_cputime64()
2006-07-05 09:39:54 -07:00
current.h
[POWERPC] Make current preempt-safe
2006-11-01 14:52:48 +11:00
dbdma.h
[POWERPC] Xserve cpu-meter driver
2006-12-04 20:39:30 +11:00
dcr-mmio.h
[POWERPC] Generic DCR infrastructure
2006-12-04 16:08:25 +11:00
dcr-native.h
[POWERPC] Only export __mtdcr/__mfdcr if CONFIG_PPC_DCR is set
2006-12-10 23:15:47 -06:00
dcr.h
[POWERPC] Only export __mtdcr/__mfdcr if CONFIG_PPC_DCR is set
2006-12-10 23:15:47 -06:00
delay.h
[POWERPC] Fix mdelay badness on shared processor partitions
2006-06-21 15:01:33 +10:00
device.h
[POWERPC] Refactor 64 bits DMA operations
2006-12-04 20:38:40 +11:00
div64.h
[PATCH] Move the identical files from include/asm-ppc{,64}
2005-08-30 13:32:05 +10:00
dma-mapping.h
[PATCH] Pass struct dev pointer to dma_cache_sync()
2006-12-07 08:39:41 -08:00
dma.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
eeh.h
[POWERPC] Merge 32 and 64 bits asm-powerpc/io.h
2006-12-04 20:39:05 +11:00
eeh_event.h
[PATCH] powerpc/pseries: clear PCI failure counter if no new failures
2006-04-22 18:46:13 +10:00
elf.h
[PATCH] elf: Always define elf_addr_t in linux/elf.h
2006-12-07 08:39:38 -08:00
emergency-restart.h
[PATCH] Move the identical files from include/asm-ppc{,64}
2005-08-30 13:32:05 +10:00
errno.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
fcntl.h
[PATCH] Consolidate the asm-ppc*/fcntl.h files into asm-powerpc
2005-09-07 16:57:39 -07:00
firmware.h
[POWERPC] ps3: multiplatform build fixes
2006-12-04 20:41:16 +11:00
floppy.h
[PATCH] irq-flags: POWERPC: Use the new IRQF_ constants
2006-07-02 13:58:47 -07:00
fs_pd.h
POWERPC: Get rid of remapping the whole immr
2006-09-21 22:37:58 +04:00
futex.h
[PATCH] mm: pagefault_{disable,enable}()
2006-12-07 08:39:21 -08:00
grackle.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
hardirq.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
heathrow.h
powerpc: Fix some #ifndef __KERNEL__ that should be #ifdef
2006-01-09 15:14:05 +11:00
hvcall.h
[POWERPC] Fix bugs in the hypervisor call stats code
2007-01-09 17:03:03 +11:00
hvconsole.h
[PATCH] powerpc: hvc_console updates
2006-03-28 16:45:26 +11:00
hvcserver.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
hw_irq.h
[POWERPC] Delete unused irq functions on powerpc
2006-12-08 17:10:18 +11:00
i8259.h
[POWERPC] Fix CHRP platforms with only 8259
2006-10-25 13:49:22 +10:00
ibmebus.h
[POWERPC] Refactor 64 bits DMA operations
2006-12-04 20:38:40 +11:00
ide.h
[POWERPC] Merge 32 and 64 bits asm-powerpc/io.h
2006-12-04 20:39:05 +11:00
immap_86xx.h
[POWERPC] Add 8641 Register space and IRQ definitions.
2006-06-21 15:01:28 +10:00
immap_qe.h
[PATCH] Optimize qe_brg struct to use an array
2006-11-13 14:49:01 +11:00
io-defs.h
[POWERPC] Merge 32 and 64 bits asm-powerpc/io.h
2006-12-04 20:39:05 +11:00
io.h
[POWERPC] include/asm-powerpc/: "extern inline" -> "static inline"
2006-12-04 20:41:26 +11:00
ioctl.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
ioctls.h
powerpc: remove duplicate ioctl definitions
2005-11-01 14:36:30 +11:00
iommu.h
[POWERPC] Cell iommu support
2006-12-04 20:39:02 +11:00
ipc.h
[PATCH] Move the identical files from include/asm-ppc{,64}
2005-08-30 13:32:05 +10:00
ipcbuf.h
[PATCH] powerpc: Keep fixing merged ipcbuf.h
2005-11-03 16:58:17 +11:00
ipic.h
[POWERPC] Fix up after irq changes
2006-10-07 22:08:26 +10:00
irq.h
[POWERPC] add virq_to_hw accessor routine
2006-12-04 20:40:37 +11:00
irq_regs.h
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
2006-10-05 15:10:12 +01:00
irqflags.h
[PATCH] lockdep: irqtrace subsystem, core
2006-07-03 15:27:03 -07:00
Kbuild
[POWERPC] cell: Fix spu_info.h header export
2006-12-08 15:55:55 +11:00
kdebug.h
[PATCH] Notify page fault call chain for powerpc
2006-06-26 09:58:22 -07:00
kdump.h
[POWERPC] kdump: Support kernels having 64k page size.
2006-09-13 18:30:04 +10:00
kexec.h
[POWERPC] Make crash.c work on 32-bit and 64-bit
2006-08-17 16:41:10 +10:00
keylargo.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
kmap_types.h
[PATCH] powerpc: Merge kmap_types.h
2005-09-19 09:38:49 +10:00
kprobes.h
[PATCH] kprobes: handle symbol resolution when <module:.symbol> is specified
2006-10-02 07:57:16 -07:00
linkage.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
lmb.h
[PATCH] powerpc: Remove calculation of io hole
2006-03-22 15:04:30 +11:00
local.h
[PATCH] Move all the very similar files to asm-powerpc
2005-08-30 13:32:06 +10:00
lppaca.h
[POWERPC] Update lppaca offset comments
2006-08-08 17:08:58 +10:00
lv1call.h
[POWERPC] ps3: add lv1 hvcalls
2006-12-04 20:40:44 +11:00
machdep.h
[POWERPC] Merge 32 and 64 bits asm-powerpc/io.h
2006-12-04 20:39:05 +11:00
macio.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
mc146818rtc.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
mediabay.h
powerpc: Merge various powermac-related header files.
2005-10-20 20:53:39 +10:00
mman.h
[PATCH] add asm-generic/mman.h
2006-02-15 15:32:22 -08:00
mmu.h
[POWERPC] Make pSeries_lpar_hpte_insert static
2006-10-16 16:33:04 +10:00
mmu_context.h
[POWERPC] Correct the MAX_CONTEXT definition
2006-06-29 16:16:15 +10:00
mmzone.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
module.h
[POWERPC] Generic BUG for powerpc
2006-12-11 16:35:07 +11:00
mpc52xx.h
[POWERPC] 52xx: Don't use device_initcall to probe of_platform_bus
2007-01-09 17:03:02 +11:00
mpc85xx.h
[PATCH] ppc: Fix io.h for config with CONFIG_PCI not set
2006-11-13 14:49:25 +11:00
mpc86xx.h
[POWERPC] Use mpc8641hpcn PIC base address from dev tree.
2006-08-25 14:32:13 +10:00
mpic.h
[POWERPC] Improve MPIC driver auto-configuration from DT
2006-12-04 16:08:41 +11:00
msgbuf.h
[PATCH] powerpc: Merge a few more include files
2005-09-09 22:11:35 +10:00
mutex.h
[PATCH] mutex subsystem, add default include/asm-*/mutex.h files
2006-01-09 15:59:19 -08:00
namei.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
nvram.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
of_device.h
[POWERPC] Refactor 64 bits DMA operations
2006-12-04 20:38:40 +11:00
of_platform.h
[POWERPC] Souped-up of_platform_device support
2006-12-04 16:08:52 +11:00
ohare.h
powerpc: Fix some #ifndef __KERNEL__ that should be #ifdef
2006-01-09 15:14:05 +11:00
oprofile_impl.h
[POWERPC] cell: Add oprofile support
2006-12-04 20:40:14 +11:00
paca.h
[POWERPC] Lazy interrupt disabling for 64-bit machines
2006-10-16 16:31:36 +10:00
page.h
[POWERPC] Remove DISCONTIGMEM cruft from page.h
2006-09-22 15:19:58 +10:00
page_32.h
[PATCH] LOG2: Provide ilog2() fallbacks for powerpc
2006-12-08 08:28:51 -08:00
page_64.h
[PATCH] powerpc: Fix pagetable bloat for hugepages
2006-04-28 15:02:51 +10:00
param.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
parport.h
[PATCH] powerpc: parallel port init fix
2006-01-11 14:49:24 +11:00
pci-bridge.h
[POWERPC] Fix mmap of PCI resource with hack for X
2006-12-08 17:21:06 +11:00
pci.h
[POWERPC] Define pci_unmap_addr() et al. when CONFIG_NOT_COHERENT_CACHE=y
2006-12-08 17:10:18 +11:00
percpu.h
[PATCH] lockdep: add per_cpu_offset()
2006-07-03 15:27:00 -07:00
pgalloc.h
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
pgtable-4k.h
[PATCH] Standardize pxx_page macros
2006-09-26 08:48:51 -07:00
pgtable-64k.h
powerpc: Use 64k pages without needing cache-inhibited large pages
2006-06-15 10:45:18 +10:00
pgtable.h
[PATCH] Standardize pxx_page macros
2006-09-26 08:48:51 -07:00
pmac_feature.h
[PATCH] powerpc: Kill _machine and hard-coded platform numbers
2006-03-28 23:15:54 +11:00
pmac_low_i2c.h
[PATCH] 3/5 powerpc: Add platform functions interpreter
2006-01-09 15:47:18 +11:00
pmac_pfunc.h
typo fixes: mecanism -> mechanism
2006-06-30 18:20:44 +02:00
pmc.h
[POWERPC] Fix oprofile support for e500 in arch/powerpc
2006-11-01 14:52:48 +11:00
poll.h
[PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications
2006-03-25 08:22:56 -08:00
posix_types.h
[PATCH] FD_ZERO build fix
2007-01-11 18:18:22 -08:00
ppc-pci.h
[POWERPC] Generic OF platform driver for PCI host bridges.
2006-12-04 20:38:49 +11:00
ppc_asm.h
[POWERPC] Cell timebase bug workaround
2006-10-25 11:54:18 +10:00
processor.h
[PATCH] Remove _machine macro
2006-11-13 14:44:58 +11:00
prom.h
Merge branch 'linux-2.6' into for-linus
2006-12-04 15:59:07 +11:00
ps3.h
[POWERPC] ps3: add ps3 platform system bus support
2006-12-04 20:40:57 +11:00
pSeries_reconfig.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
ptrace.h
[PATCH] Add regs_return_value() helper
2006-10-02 07:57:16 -07:00
qe.h
[POWERPC] Add QUICC Engine (QE) infrastructure
2006-10-04 15:24:27 +10:00
qe_ic.h
[POWERPC] Add QUICC Engine (QE) infrastructure
2006-10-04 15:24:27 +10:00
reg.h
[POWERPC] Add SPURR SPR to sysfs
2006-12-09 11:39:06 +11:00
reg_8xx.h
[PATCH] powerpc: Merge cacheflush.h and cache.h
2005-11-10 13:09:22 +11:00
resource.h
[PATCH] Move all the very similar files to asm-powerpc
2005-08-30 13:32:06 +10:00
rtas.h
[POWERPC] Add rtas_service_present() helper
2006-12-08 17:10:22 +11:00
rtc.h
powerpc: Make set_rtc_time() return error code from lower-level function
2005-10-22 15:57:55 +10:00
rwsem.h
[PATCH] lockdep: remove RWSEM_DEBUG remnants
2006-07-03 15:27:01 -07:00
scatterlist.h
[PATCH] powerpc: merge scatterlist.h
2005-10-27 16:45:52 +10:00
seccomp.h
powerpc: Fix some #ifndef __KERNEL__ that should be #ifdef
2006-01-09 15:14:05 +11:00
sections.h
[PATCH] powerpc: sanitize header files for user space includes
2006-01-09 15:13:08 +11:00
semaphore.h
Merge ../linux-2.6 by hand
2005-10-31 13:37:12 +11:00
sembuf.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
serial.h
powerpc: Introduce a new config symbol to control 16550 early debug code
2006-01-10 16:19:05 +11:00
setup.h
[PATCH] cleanup asm/setup.h userspace visibility
2006-12-07 08:39:46 -08:00
shmbuf.h
[PATCH] powerpc: Fix __power64__ typos that should be __powerpc64__
2005-09-09 22:11:35 +10:00
shmparam.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
sigcontext.h
powerpc: merge sigcontext.h
2005-11-03 16:24:25 +11:00
siginfo.h
[PATCH] ppc64: Add definitions for new PTRACE calls
2005-09-12 17:19:12 +10:00
signal.h
[PATCH] irq-flags: POWERPC: Use the new IRQF_ constants
2006-07-02 13:58:47 -07:00
smp.h
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
2006-10-05 15:10:12 +01:00
smu.h
[POWERPC] powermac: Constify & voidify get_property()
2006-07-31 15:55:05 +10:00
socket.h
[AF_UNIX]: Datagram getpeersec
2006-06-29 16:58:06 -07:00
sockios.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
sparsemem.h
[POWERPC] ps3: add lpar addressing
2006-12-04 20:40:52 +11:00
spinlock.h
[PATCH] Directed yield: direct yield of spinlocks for powerpc
2006-10-01 00:39:22 -07:00
spinlock_types.h
[PATCH] powerpc: merge include/asm-ppc*/spinlock_types.h into include/asm-powerpc/spinlock_types.h
2005-09-21 19:21:09 +10:00
spu.h
[POWERPC] cell: add forward struct declarations to spu.h
2006-12-19 15:35:36 +01:00
spu_csa.h
[POWERPC] spufs: wrap mfc sdr access
2006-10-25 14:20:20 +10:00
spu_info.h
[POWERPC] spufs: Add /lslr, /dma_info and /proxydma files
2006-12-04 20:39:45 +11:00
spu_priv1.h
[POWERPC] cell: abstract spu management routines
2006-12-04 20:40:39 +11:00
sstep.h
powerpc: Make single-stepping emulation (mostly) usable on 32-bit
2005-10-28 22:48:08 +10:00
stat.h
powerpc: merge stat.h
2005-11-03 16:02:23 +11:00
statfs.h
[PATCH] powerpc: merge include/asm-ppc*/statfs.h into include/asm-powerpc/statfs.h
2005-09-21 19:21:10 +10:00
string.h
powerpc: fix strncasecmp prototype
2006-03-25 09:41:40 -08:00
synch.h
[PATCH] powerpc: newline for ISYNC_ON_SMP
2006-02-24 14:06:00 +11:00
syscalls.h
[PATCH] powerpc: declare arch syscalls in <asm/syscalls.h>
2006-03-27 14:48:22 +11:00
systbl.h
[POWERPC] Wire up sys_move_pages
2006-11-16 10:31:14 +11:00
system.h
[POWERPC] Fix rmb() for e500-based machines it
2006-11-01 14:52:48 +11:00
tce.h
[POWERPC] Use 4kB iommu pages even on 64kB-page systems
2006-11-01 14:52:48 +11:00
termbits.h
[PATCH] tty: switch to ktermios
2006-12-08 08:28:57 -08:00
termios.h
powerpc: use asm-generic/termios.h
2005-11-01 14:36:55 +11:00
thread_info.h
[PATCH] PM: Fix SMP races in the freezer
2006-12-13 09:05:49 -08:00
time.h
[POWERPC] Revert "[POWERPC] Add powerpc get/set_rtc_time interface to new generic rtc class"
2006-11-22 12:13:36 +11:00
timex.h
[POWERPC] Cell timebase bug workaround
2006-10-25 11:54:18 +10:00
tlb.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
tlbflush.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
topology.h
[PATCH] sched: add option to serialize load balancing
2006-12-10 09:55:43 -08:00
tsi108.h
[POWERPC] include/asm-powerpc/: "extern inline" -> "static inline"
2006-12-04 20:41:26 +11:00
tsi108_irq.h
[POWERPC] Update mpc7448hpc2 board irq support using device tree
2006-08-23 15:51:18 +10:00
types.h
[PATCH] Centralise definitions of sector_t and blkcnt_t
2006-12-04 19:41:15 -08:00
uaccess.h
[POWERPC] include/asm-powerpc/: "extern inline" -> "static inline"
2006-12-04 20:41:26 +11:00
ucc.h
[POWERPC] Add QUICC Engine (QE) infrastructure
2006-10-04 15:24:27 +10:00
ucc_fast.h
[POWERPC] Add QUICC Engine (QE) infrastructure
2006-10-04 15:24:27 +10:00
ucc_slow.h
[POWERPC] Add QUICC Engine (QE) infrastructure
2006-10-04 15:24:27 +10:00
ucontext.h
powerpc: merge ucontext.h
2005-11-03 16:59:17 +11:00
udbg.h
[POWERPC] Add udbg support for RTAS console
2006-06-28 11:59:48 +10:00
unaligned.h
[PATCH] powerpc: Standardize on _ASM_POWERPC header symbol prefix
2005-09-09 22:11:34 +10:00
uninorth.h
powerpc: Merge various powermac-related header files.
2005-10-20 20:53:39 +10:00
unistd.h
[PATCH] remove kernel syscalls
2006-12-07 08:39:37 -08:00
user.h
[PATCH] powerpc: Merge a few more include files
2005-09-09 22:11:35 +10:00
vdso.h
[PATCH] powerpc: Make the vDSO functions set error code ( #2 )
2005-11-16 14:05:11 +11:00
vdso_datapage.h
[PATCH] powerpc: Kill _machine and hard-coded platform numbers
2006-03-28 23:15:54 +11:00
vga.h
[PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use
2006-06-22 15:05:58 -07:00
vio.h
[POWERPC] Refactor 64 bits DMA operations
2006-12-04 20:38:40 +11:00
xmon.h
[POWERPC] add support for stopping spus from xmon
2006-10-25 14:20:22 +10:00
xor.h
[PATCH] Move the identical files from include/asm-ppc{,64}
2005-08-30 13:32:05 +10:00