diff --git a/libuavcan_drivers/stm32/driver/src/uc_stm32_thread.cpp b/libuavcan_drivers/stm32/driver/src/uc_stm32_thread.cpp index cdc54cadd1..eb93cc215f 100644 --- a/libuavcan_drivers/stm32/driver/src/uc_stm32_thread.cpp +++ b/libuavcan_drivers/stm32/driver/src/uc_stm32_thread.cpp @@ -105,7 +105,7 @@ int BusEvent::poll(::file* filp, ::pollfd* fds, bool setup) * - Transmission complete. This event is edge-triggered. * FIXME Since TX event is edge-triggered, it can be lost between poll() calls. */ - fds->revents |= fds->events & (can_driver_.hasReadableInterfaces() ? 0 : POLLIN); + fds->revents |= fds->events & (can_driver_.hasReadableInterfaces() ? POLLIN : 0); if (fds->revents != 0) { (void)sem_post(fds->sem);