zephyr/drivers
Peter A. Bigot d75495709d drivers: gpio: fix mis-use of slist API in callback processing
The iterator over registered callbacks failed to account for the
possibility that the callback would remove itself from the list.  If
this occurred any remaining callbacks would no longer be reachable from
the node.  Switch to the slist iterator that is safe for self-removal.

Note that the slist API remains unsafe for removal of subsequent nodes.
Even with the corrected code removal of the next callback registration
(cached in tmp) will result in it being called anyway, with the
remaining unremoved registrations not being called.  If the next
callback were removed and re-registered on a different device, the
callbacks would be invoked for the wrong device.

Resolve this by a documentation change describing the conditions under
which a change to callback registration from within a callback are
permitted.  Add a similar note regarding the effect of adding a
callback.  The current event invocation behavior for callbacks added
within an event is explicitly left unspecified, though in the current
slist implementation newly added callbacks will not be invoked until the
next event.

Closes #10186

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2019-02-05 12:33:25 -06:00
..
adc drivers: adc: Fix handling of invalid sampling requests 2019-01-17 16:58:21 -05:00
aio drivers: Add 'U' to unsigned variable assignments 2018-12-04 22:51:56 -05:00
audio audio: mpxxdtyy: Convert to new DT_<COMPAT>_<INSTANCE> defines 2019-01-31 03:46:04 -06:00
bluetooth drivers: bluetooth: hci_spi: Use DT instead of Kconfig to get HW params 2019-02-01 19:12:57 -05:00
can drivers: can: fix typo 2019-02-04 12:59:26 -05:00
clock_control clock_control: RV32M1: introduce PCC driver / DT bindings 2019-01-25 11:59:46 -05:00
console net/context: Make recv_cb providing the ip and protocol headers 2019-02-01 14:34:38 +02:00
counter drivers: Add 'U' to unsigned variable assignments 2018-12-04 22:51:56 -05:00
crypto drivers: Add 'U' to unsigned variable assignments 2018-12-04 22:51:56 -05:00
display display: ssd1673: add support for ssd16xx monochrome controllers 2019-02-02 10:28:11 -05:00
dma dma: stm32: Configure bus width and burst size for memcpy mode 2018-12-13 07:33:30 -06:00
entropy drivers: entropy: mcux_trng: get the base address from the device tree 2019-01-10 21:22:15 -06:00
ethernet drivers/ethernet: Use new net_pkt API for sending and receiving 2019-02-01 14:34:38 +02:00
flash flash: shell: fix dependency on FLASH_PAGE_LAYOUT 2019-02-04 17:55:40 -05:00
gpio drivers: gpio: fix mis-use of slist API in callback processing 2019-02-05 12:33:25 -06:00
hwinfo drivers: hwinfo: Add shell command for device id 2019-02-04 14:53:50 -05:00
i2c drivers: i2c_gecko: use DT_<COMPAT>_<INSTANCE>_<PROP> defines 2019-02-01 19:09:06 -05:00
i2s drivers: i2s_cavs: fix for I2S start after stop 2019-02-04 00:52:15 -05:00
ieee802154 ieee802154: mcr20a: Fixup SPI CS handling 2019-02-01 04:10:09 -06:00
interrupt_controller drivers/interrupt_controller: stm32: Use LL API 2019-01-31 03:18:36 -06:00
ipm drivers: ipm: ipm_quark_se: Remove object declaration from header 2018-12-07 10:32:41 -05:00
led led: lp3943: Remove dts_fixup.h 2019-01-31 09:09:36 -06:00
led_strip led_strip: lpd880x: Add Device Tree support 2019-01-29 12:04:07 -06:00
modem net/context: Make recv_cb providing the ip and protocol headers 2019-02-01 14:34:38 +02:00
net net/ethernet: Remove usage of net_pkt_ll() function 2018-12-14 14:16:37 +01:00
neural_net drivers: intel_gna: replace k_alert with work queue 2019-01-16 21:34:07 -05:00
pci pci: General code cleanup 2018-12-07 11:32:45 -05:00
pinmux pinmux: remove pinmux dev 2019-01-30 16:29:40 -06:00
ptp_clock
pwm pwm: pwm_mcux_ftm: Fixed missed CONFIG_ -> DT_ conversion 2019-02-01 19:01:16 -05:00
rtc rtc: stm32: Remove trivial endif comment 2019-01-31 09:06:59 -06:00
sensor sensor: lis2ds12: Fixup SPI CS handling 2019-02-04 08:17:08 -06:00
serial serial: uart_sam0: Don't use CONFIG_ namespace for non Kconfig 2019-02-01 19:01:16 -05:00
spi dts: bindings: Add separate binding for Nordic nRF Family SPI Slave 2019-02-01 19:12:57 -05:00
timer boards: remove pulpino board 2019-01-31 22:47:18 -05:00
usb drivers: usb: nordic: Power consumption fix with cable detached 2019-02-04 20:48:25 -05:00
watchdog drivers/watchdog: stm32: Disable IWDG_STM32_START_AT_BOOT by default 2019-02-01 19:16:59 -05:00
wifi net/context: Make recv_cb providing the ip and protocol headers 2019-02-01 14:34:38 +02:00
CMakeLists.txt drivers: Add hwinfo API 2019-02-03 12:07:20 -05:00
Kconfig drivers: Add hwinfo API 2019-02-03 12:07:20 -05:00