mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-09 07:14:48 +08:00
0a1d4434db
- Core: - The timer_shutdown[_sync]() infrastructure: Tearing down timers can be tedious when there are circular dependencies to other things which need to be torn down. A prime example is timer and workqueue where the timer schedules work and the work arms the timer. What needs to prevented is that pending work which is drained via destroy_workqueue() does not rearm the previously shutdown timer. Nothing in that shutdown sequence relies on the timer being functional. The conclusion was that the semantics of timer_shutdown_sync() should be: - timer is not enqueued - timer callback is not running - timer cannot be rearmed Preventing the rearming of shutdown timers is done by discarding rearm attempts silently. A warning for the case that a rearm attempt of a shutdown timer is detected would not be really helpful because it's entirely unclear how it should be acted upon. The only way to address such a case is to add 'if (in_shutdown)' conditionals all over the place. This is error prone and in most cases of teardown not required all. - The real fix for the bluetooth HCI teardown based on timer_shutdown_sync(). A larger scale conversion to timer_shutdown_sync() is work in progress. - Consolidation of VDSO time namespace helper functions - Small fixes for timer and timerqueue - Drivers: - Prevent integer overflow on the XGene-1 TVAL register which causes an never ending interrupt storm. - The usual set of new device tree bindings - Small fixes and improvements all over the place -----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmOUuC0THHRnbHhAbGlu dXRyb25peC5kZQAKCRCmGPVMDXSYodpZD/9kCDi009n65QFF1J4kE5aZuABbRMtO 7sy66fJpDyB/MtcbPPH29uzQUEs1VMTQVB+ZM+7e1YGoxSWuSTzeoFH+yK1w4tEZ VPbOcvUEjG0esKUehwYFeOjSnIjy6M1Y41aOUaDnq00/azhfTrzLxQA1BbbFbkpw S7u2hllbyRJ8KdqQyV9cVpXmze6fcpdtNhdQeoA7qQCsSPnJ24MSpZ/PG9bAovq8 75IRROT7CQRd6AMKAVpA9Ov8ak9nbY3EgQmoKcp5ZXfXz8kD3nHky9Lste7djgYB U085Vwcelt39V5iXevDFfzrBYRUqrMKOXIf2xnnoDNeF5Jlj5gChSNVZwTLO38wu RFEVCjCjuC41GQJWSck9LRSYdriW/htVbEE8JLc6uzUJGSyjshgJRn/PK4HjpiLY AvH2rd4rAap/rjDKvfWvBqClcfL7pyBvavgJeyJ8oXyQjHrHQwapPcsMFBm0Cky5 soF0Lr3hIlQ9u+hwUuFdNZkY9mOg09g9ImEjW1AZTKY0DfJMc5JAGjjSCfuopVUN Uf/qqcUeQPSEaC+C9xiFs0T3svYFxBqpgPv4B6t8zAnozon9fyZs+lv5KdRg4X77 qX395qc6PaOSQlA7gcxVw3vjCPd0+hljXX84BORP7z+uzcsomvIH1MxJepIHmgaJ JrYbSZ5qzY5TTA== =JlDe -----END PGP SIGNATURE----- Merge tag 'timers-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer updates from Thomas Gleixner: "Updates for timers, timekeeping and drivers: Core: - The timer_shutdown[_sync]() infrastructure: Tearing down timers can be tedious when there are circular dependencies to other things which need to be torn down. A prime example is timer and workqueue where the timer schedules work and the work arms the timer. What needs to prevented is that pending work which is drained via destroy_workqueue() does not rearm the previously shutdown timer. Nothing in that shutdown sequence relies on the timer being functional. The conclusion was that the semantics of timer_shutdown_sync() should be: - timer is not enqueued - timer callback is not running - timer cannot be rearmed Preventing the rearming of shutdown timers is done by discarding rearm attempts silently. A warning for the case that a rearm attempt of a shutdown timer is detected would not be really helpful because it's entirely unclear how it should be acted upon. The only way to address such a case is to add 'if (in_shutdown)' conditionals all over the place. This is error prone and in most cases of teardown not required all. - The real fix for the bluetooth HCI teardown based on timer_shutdown_sync(). A larger scale conversion to timer_shutdown_sync() is work in progress. - Consolidation of VDSO time namespace helper functions - Small fixes for timer and timerqueue Drivers: - Prevent integer overflow on the XGene-1 TVAL register which causes an never ending interrupt storm. - The usual set of new device tree bindings - Small fixes and improvements all over the place" * tag 'timers-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits) dt-bindings: timer: renesas,cmt: Add r8a779g0 CMT support dt-bindings: timer: renesas,tmu: Add r8a779g0 support clocksource/drivers/arm_arch_timer: Use kstrtobool() instead of strtobool() clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in dmtimer_systimer_init_clock() clocksource/drivers/timer-ti-dm: Clear settings on probe and free clocksource/drivers/timer-ti-dm: Make timer_get_irq static clocksource/drivers/timer-ti-dm: Fix warning for omap_timer_match clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error clocksource/drivers/timer-npcm7xx: Enable timer 1 clock before use dt-bindings: timer: nuvoton,npcm7xx-timer: Allow specifying all clocks dt-bindings: timer: rockchip: Add rockchip,rk3128-timer clockevents: Repair kernel-doc for clockevent_delta2ns() clocksource/drivers/ingenic-ost: Define pm functions properly in platform_driver struct clocksource/drivers/sh_cmt: Access registers according to spec vdso/timens: Refactor copy-pasted find_timens_vvar_page() helper into one copy Bluetooth: hci_qca: Fix the teardown problem for real timers: Update the documentation to reflect on the new timer_shutdown() API timers: Provide timer_shutdown[_sync]() timers: Add shutdown mechanism to the internal functions timers: Split [try_to_]del_timer[_sync]() to prepare for shutdown mode ... |
||
---|---|---|
.. | ||
ptrace | ||
syscalls | ||
trace | ||
vdso | ||
.gitignore | ||
85xx_entry_mapping.S | ||
align.c | ||
asm-offsets.c | ||
audit.c | ||
btext.c | ||
cacheinfo.c | ||
cacheinfo.h | ||
compat_audit.c | ||
cpu_setup_6xx.S | ||
cpu_setup_44x.S | ||
cpu_setup_e500.S | ||
cpu_setup_pa6t.S | ||
cpu_setup_power.c | ||
cpu_setup_ppc970.S | ||
cpu_specs_8xx.h | ||
cpu_specs_40x.h | ||
cpu_specs_44x.h | ||
cpu_specs_47x.h | ||
cpu_specs_85xx.h | ||
cpu_specs_book3s_32.h | ||
cpu_specs_book3s_64.h | ||
cpu_specs_e500mc.h | ||
cpu_specs.h | ||
cputable.c | ||
crash_dump.c | ||
dawr.c | ||
dbell.c | ||
dma-iommu.c | ||
dma-mask.c | ||
dma-swiotlb.c | ||
dt_cpu_ftrs.c | ||
early_32.c | ||
eeh_cache.c | ||
eeh_driver.c | ||
eeh_event.c | ||
eeh_pe.c | ||
eeh_sysfs.c | ||
eeh.c | ||
entry_32.S | ||
entry_64.S | ||
epapr_hcalls.S | ||
epapr_paravirt.c | ||
exceptions-64e.S | ||
exceptions-64s.S | ||
fadump.c | ||
firmware.c | ||
fpu.S | ||
head_8xx.S | ||
head_32.h | ||
head_40x.S | ||
head_44x.S | ||
head_64.S | ||
head_85xx.S | ||
head_book3s_32.S | ||
head_booke.h | ||
hw_breakpoint_constraints.c | ||
hw_breakpoint.c | ||
idle_6xx.S | ||
idle_64e.S | ||
idle_85xx.S | ||
idle_book3s.S | ||
idle.c | ||
ima_arch.c | ||
interrupt_64.S | ||
interrupt.c | ||
io-workarounds.c | ||
io.c | ||
iomap.c | ||
iommu.c | ||
irq_64.c | ||
irq.c | ||
isa-bridge.c | ||
jump_label.c | ||
kdebugfs.c | ||
kgdb.c | ||
kprobes-ftrace.c | ||
kprobes.c | ||
kvm_emul.S | ||
kvm.c | ||
l2cr_6xx.S | ||
legacy_serial.c | ||
Makefile | ||
mce_power.c | ||
mce.c | ||
misc_32.S | ||
misc_64.S | ||
misc.S | ||
module_32.c | ||
module_64.c | ||
module.c | ||
msi.c | ||
note.S | ||
nvram_64.c | ||
of_platform.c | ||
optprobes_head.S | ||
optprobes.c | ||
paca.c | ||
pci_32.c | ||
pci_64.c | ||
pci_dn.c | ||
pci_of_scan.c | ||
pci-common.c | ||
pci-hotplug.c | ||
pmc.c | ||
ppc_save_regs.S | ||
proc_powerpc.c | ||
process.c | ||
prom_init_check.sh | ||
prom_init.c | ||
prom_parse.c | ||
prom.c | ||
reloc_32.S | ||
reloc_64.S | ||
rtas_entry.S | ||
rtas_flash.c | ||
rtas_pci.c | ||
rtas-proc.c | ||
rtas-rtc.c | ||
rtas.c | ||
rtasd.c | ||
secure_boot.c | ||
security.c | ||
secvar-ops.c | ||
secvar-sysfs.c | ||
setup_32.c | ||
setup_64.c | ||
setup-common.c | ||
setup.h | ||
signal_32.c | ||
signal_64.c | ||
signal.c | ||
signal.h | ||
smp-tbsync.c | ||
smp.c | ||
stacktrace.c | ||
static_call.c | ||
suspend.c | ||
swsusp_32.S | ||
swsusp_64.c | ||
swsusp_85xx.S | ||
swsusp_asm64.S | ||
swsusp.c | ||
sys_ppc32.c | ||
syscall.c | ||
syscalls.c | ||
sysfs.c | ||
systbl.c | ||
tau_6xx.c | ||
time.c | ||
tm.S | ||
traps.c | ||
ucall.S | ||
udbg_16550.c | ||
udbg.c | ||
uprobes.c | ||
vdso32_wrapper.S | ||
vdso64_wrapper.S | ||
vdso.c | ||
vecemu.c | ||
vector.S | ||
vmlinux.lds.S | ||
watchdog.c |