zephyr/kernel
Peter Bigot 1a7cd6ddbd kernel: device: invert sense of ready bit
The device status ready bit replaced the previous hack of clearing the
device API pointer when initialization of the device failed.  It
inadvertently changed the behavior of device_get_binding() when
invoked before the device was initialized: previously that succeeded
for uninitialized devices, after the change it failed.

Multiple driver initializations rely on being able to get a device
pointer for something they're going to depend on in their init
function, even if that device has not yet been initialized.  Although
this is wrong, and would cause faults if the device failed to
initialize before use, in practice it has been working.

It's not feasible to identify all the situations where this has
occurred, nor to add code to diagnose such cases without changing the
state associated with a device to distinguish initialized from
initialization success/failure.  Restore the previous behavior until a
more holistic solution is developed.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-09-15 18:22:38 +02:00
..
include benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
atomic_c.c kernel: Add k_heap synchronized memory allocator 2020-04-14 10:05:55 -07:00
cache_handlers.c syscalls: Add system call for cache flush & invalidate 2020-08-04 17:26:45 -04:00
CMakeLists.txt cmake: fix include directories to work with out-of-tree arch 2020-08-05 08:06:07 -04:00
compiler_stack_protect.c
device.c kernel: device: invert sense of ready bit 2020-09-15 18:22:38 +02:00
errno.c
fatal.c debug/coredump: add a primitive coredump mechanism 2020-08-24 20:28:24 -04:00
futex.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
idle.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
init.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
Kconfig benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
kheap.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mailbox.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mem_domain.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mem_slab.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mempool_sys.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mempool.c kernel: Refactor k_mem_pool APIs into a base and derived level 2020-04-14 10:05:55 -07:00
mmu.c kernel: demote k_mem_map to z_mem_map 2020-09-03 14:24:38 -04:00
msg_q.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
mutex.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
pipes.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
poll.c kernel: cleanup header inclusion 2020-06-25 16:12:36 -05:00
queue.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
sched.c tracing: swap: bug fix and enhancement for ARC 2020-09-03 21:54:15 +02:00
sem.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
smp.c kernel: smp: avoid identifier collisions 2020-07-25 21:26:15 -04:00
stack.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
system_work_q.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
thread_abort.c kernel: add z_thread_single_abort to private hdr 2020-09-02 15:02:06 -07:00
thread.c kernel: Apply IRQ offload API change 2020-09-02 13:48:13 +02:00
timeout.c kernel/timeout: Fix coverity warning CID 211045 2020-08-16 09:29:41 -04:00
timer.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
userspace_handler.c userspace: update k_object API to support immutable objects 2020-09-02 13:48:13 +02:00
userspace.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work_q.c kernel: Add k_delayed_work_pending to check if work has been submitted 2020-08-04 17:32:56 +02:00