Go to file
Andrzej Głąbek e60af79268 kernel: timer: Eliminate a race condition in expiration handling
When a timer is restarted from a high priority interrupt, it may
happen that the timer is re-added to the timeout list right after
it is removed from that list prior to execution of its expiration
handler but before that execution actually occurs. This leads to
an assertion failure reported for `z_add_timeout()` because then
that function, called from `z_timer_expiration_handler()` for
periodic timers, turns out to be adding a timeout that is already
added to the timeout list.
This commit detects such situation in `z_timer_expiration_handler()`
and makes that function exit immediately when that occurs (as the
timer was restared, its expiration handler should not be executed).

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2023-02-08 10:17:56 +01:00
.github ci: do not hardcode es server in script 2023-02-03 20:53:20 +09:00
arch riscv: Do not remove ESF when SOC_ISR_SW_UNSTACKING 2023-02-01 03:52:14 +09:00
boards samples: drivers: adc: add support for side B channel on LPCXpresso55s69 2023-02-08 01:08:08 +09:00
cmake compiler/clang: Erase 'no_printf_return_value' prop for clang 2023-02-06 10:05:57 +01:00
doc docs: kconfig: restore appearance of kconfig search 2023-02-07 18:22:06 +01:00
drivers spi: SAM add spin lock around all tx/rx/txrx funcs 2023-02-08 01:08:59 +09:00
dts drivers: counter: align to NRF_TIMER hal 2023-02-06 10:07:17 +01:00
include/zephyr modem: hl7800: Improve set bands API 2023-02-07 00:25:53 -08:00
kernel kernel: timer: Eliminate a race condition in expiration handling 2023-02-08 10:17:56 +01:00
lib picolibc: picolibc support still not complete with many toolchains 2023-02-07 18:16:10 +01:00
misc misc: generated: update configs.c template with <zephyr/...> prefix 2022-05-09 12:45:29 -04:00
modules modules: trusted-firmware-m: Remove SFN limitation of platform partition 2023-02-07 14:27:03 +01:00
samples samples: drivers: adc: add support for side b channel to RT685 EVK 2023-02-08 01:08:08 +09:00
scripts scripts: twister: west twister error codes match twister direct call 2023-02-07 09:22:34 -08:00
share sysbuild: Check for duplicate image names 2023-01-13 12:00:57 +01:00
soc soc: arm: st_stm32: common: Increase the value of HW semaphore retry 2023-02-03 02:22:22 +09:00
submanifests
subsys Bluetooth: controller: Only allow supported feature bits to be set by host 2023-02-08 01:16:10 +09:00
tests tests: drivers: flash: _ns target test case should be build only 2023-02-08 01:14:38 +09:00
.checkpatch.conf checkpatch: Remove ext/ from excludes 2022-11-30 12:06:55 -05:00
.clang-format tools: Fix clang-format values 2023-01-19 09:18:05 -08:00
.codecov.yml yamllint: fix all yamllint comments errors 2023-01-04 01:16:45 +09:00
.editorconfig editorconfig: Improve verbosity 2022-04-28 08:55:39 -04:00
.gitattributes
.gitignore gitignore: update the list of compliance generated files 2023-01-27 18:10:44 +09:00
.gitlint gitlint: Stop ignoring merge, revert, fixup and squash commits 2022-01-10 08:13:36 -05:00
.mailmap
.yamllint scripts: compliance: add support for YAMLLint 2023-01-04 17:29:23 +01:00
CMakeLists.txt cmake: sparse: deprecate old sparse support 2023-01-27 20:28:58 +09:00
CODE_OF_CONDUCT.md
CODEOWNERS MAINTAINERS: Add vaishnavachath as maintainer for TI Platforms 2023-02-03 12:32:16 -05:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr kconfig: linker: Add --no-relax build option 2023-01-16 11:20:32 +00:00
LICENSE
MAINTAINERS.yml MAINTAINERS: Add theob-pro as a Bluetooth collaborator 2023-02-07 00:19:07 -08:00
README.rst readme: Add support for light/dark modes in the logo 2022-11-18 08:58:59 +01:00
VERSION release: Zephyr 3.3.0-rc2 2023-02-05 09:35:27 +09:00
version.h.in cmake: version.h generation performed at build time 2022-02-08 07:50:24 -05:00
west.yml manifest: Update to TF-M 1.7.0 and MBedTLS 3.2.1 2023-01-27 14:25:30 -05:00
zephyr-env.cmd
zephyr-env.sh everywhere: fix typos 2022-03-18 13:24:08 -04:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help