So far shell transport was initialized early before any k_poll events and signals. transport_evt_handler() was passed as callback to transport initializer and could be executed right away. This was true for example with shell_uart when it enabled interrupts on RX and there were already some bytes to read. As a result executed transport_evt_handler() is operating on uninitialized k_poll signals. Address this race condition by simply initializing shell transport when everything is ready for processing data, i.e. on the end of shell instance initialization. Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com> |
||
|---|---|---|
| .. | ||
| modules | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.backends | ||
| Kconfig.template.shell_log_queue_size | ||
| Kconfig.template.shell_log_queue_timeout | ||
| shell_cmds.c | ||
| shell_dummy.c | ||
| shell_fprintf.c | ||
| shell_help.c | ||
| shell_help.h | ||
| shell_history.c | ||
| shell_log_backend.c | ||
| shell_ops.c | ||
| shell_ops.h | ||
| shell_rtt.c | ||
| shell_telnet_protocol.h | ||
| shell_telnet.c | ||
| shell_uart.c | ||
| shell_utils.c | ||
| shell_utils.h | ||
| shell_vt100.h | ||
| shell_wildcard.c | ||
| shell_wildcard.h | ||
| shell.c | ||