android_kernel_xiaomi_sm8350/arch/powerpc/platforms/cell
Ingo Molnar 74019224ac timers: add mod_timer_pending()
Impact: new timer API

Based on an idea from Martin Josefsson with the help of
Patrick McHardy and Stephen Hemminger:

introduce the mod_timer_pending() API which is a mod_timer()
offspring that is an invariant on already removed timers.

(regular mod_timer() re-activates non-pending timers.)

This is useful for the networking code in that it can
allow unserialized mod_timer_pending() timer-forwarding
calls, but a single del_timer*() will stop the timer
from being reactivated again.

Also while at it:

- optimize the regular mod_timer() path some more, the
  timer-stat and a debug check was needlessly duplicated
  in __mod_timer().

- make the exports come straight after the function, as
  most other exports in timer.c already did.

- eliminate __mod_timer() as an external API, change the
  users to mod_timer().

The regular mod_timer() code path is not impacted
significantly, due to inlining optimizations and due to
the simplifications.

Based-on-patch-from: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Patrick McHardy <kaber@trash.net>
Cc: netdev@vger.kernel.org
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-02-18 19:26:33 +01:00
..
spufs timers: add mod_timer_pending() 2009-02-18 19:26:33 +01:00
axon_msi.c powerpc/cell/axon-msi: Fix MSI after kexec 2008-12-16 13:48:18 +11:00
beat_htab.c powerpc/cell: Use correct types in beat files 2009-01-08 16:25:16 +11:00
beat_hvCall.S
beat_interrupt.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
beat_interrupt.h
beat_iommu.c
beat_smp.c
beat_spu_priv1.c
beat_syscall.h
beat_udbg.c powerpc/cell: Use correct types in beat files 2009-01-08 16:25:16 +11:00
beat_wrapper.h
beat.c
beat.h
cbe_cpufreq_pervasive.c powerpc/cell: local_irq_save takes an unsigned long 2009-01-08 16:25:13 +11:00
cbe_cpufreq_pmi.c
cbe_cpufreq.c powerpc: Fix cpufreq drivers after cpufreq core changes 2009-01-11 21:32:01 -08:00
cbe_cpufreq.h
cbe_powerbutton.c
cbe_regs.c
cbe_thermal.c
celleb_pci.c
celleb_pci.h
celleb_scc_epci.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
celleb_scc_pciex.c
celleb_scc_sio.c
celleb_scc_uhc.c
celleb_scc.h
celleb_setup.c powerpc: Remove default kexec/crash_kernel ops assignments 2008-12-23 15:13:28 +11:00
cpufreq_spudemand.c powerpc: Fix cpufreq drivers after cpufreq core changes 2009-01-11 21:32:01 -08:00
interrupt.c powerpc/cell: Fix some u64 vs. long types 2009-01-08 16:25:16 +11:00
interrupt.h
io-workarounds.c powerpc/cell: Fix some u64 vs. long types 2009-01-08 16:25:16 +11:00
io-workarounds.h
iommu.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
Kconfig powerpc/cell: add QPACE as a separate Cell platform 2008-12-22 22:19:19 +01:00
Makefile powerpc/cell: add QPACE as a separate Cell platform 2008-12-22 22:19:19 +01:00
pervasive.c
pervasive.h
pmu.c
qpace_setup.c powerpc/cell: add QPACE as a separate Cell platform 2008-12-22 22:19:19 +01:00
ras.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
ras.h
setup.c powerpc: Remove default kexec/crash_kernel ops assignments 2008-12-23 15:13:28 +11:00
smp.c powerpc/cell: Fix GDB watchpoints, again 2008-12-01 09:40:18 +11:00
spider-pci.c
spider-pic.c
spu_base.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
spu_callbacks.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
spu_fault.c
spu_manage.c
spu_notify.c
spu_priv1_mmio.c cpumask: powerpc: Introduce cpumask_of_{node,pcibus} to replace {node,pcibus}_to_cpumask 2008-12-26 22:23:39 +10:30
spu_priv1_mmio.h
spu_syscalls.c