altos: Don't access cc1120 SPI bus during recv after abort has started
authorKeith Packard <keithp@keithp.com>
Wed, 27 Jul 2016 20:17:51 +0000 (13:17 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 27 Jul 2016 20:17:51 +0000 (13:17 -0700)
When the receive timeout happens, the radio may still interrupt while
the SPI bus is getting shut down. If this happens, the interrupt
handler shouldn't touch the SPI bus at all as it may well be turned
off, which would cause the receive function to wedge waiting for a spi
byte transfer to happen.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/drivers/ao_cc1120.c

index da5bbeb..f9fc6b2 100644 (file)
@@ -999,6 +999,8 @@ ao_radio_rx_isr(void)
 {
        uint8_t d;
 
+       if (ao_radio_abort)
+               return;
        if (rx_task_id) {
                if (ao_radio_try_select(rx_task_id)) {
                        ++rx_fast_start;