/* clear fifo, set fifo threshold, set payload length */
                retval = rf69_set_mode(spi, standby); /* this clears the fifo */
                if (retval < 0)
-                       return retval;
+                       goto abort;
 
                if (device->rx_active && !rx_interrupted) {
                        /*
 
                retval = rf69_set_fifo_threshold(spi, FIFO_THRESHOLD);
                if (retval < 0)
-                       return retval;
+                       goto abort;
                if (tx_cfg.enable_length_byte == OPTION_ON) {
                        retval = rf69_set_payload_length(spi, size * tx_cfg.repetitions);
                        if (retval < 0)
-                               return retval;
+                               goto abort;
                } else {
                        retval = rf69_set_payload_length(spi, 0);
                        if (retval < 0)
-                               return retval;
+                               goto abort;
                }
 
                /* configure the rf chip */
                retval = rf69_set_tx_cfg(device, &tx_cfg);
                if (retval < 0)
-                       return retval;
+                       goto abort;
 
                /* enable fifo level interrupt */
                retval = rf69_set_dio_mapping(spi, DIO1, DIO_FIFO_LEVEL);
                if (retval < 0)
-                       return retval;
+                       goto abort;
                device->irq_state[DIO1] = DIO_FIFO_LEVEL;
                irq_set_irq_type(device->irq_num[DIO1], IRQ_TYPE_EDGE_FALLING);
 
                /* enable packet sent interrupt */
                retval = rf69_set_dio_mapping(spi, DIO0, DIO_PACKET_SENT);
                if (retval < 0)
-                       return retval;
+                       goto abort;
                device->irq_state[DIO0] = DIO_PACKET_SENT;
                irq_set_irq_type(device->irq_num[DIO0], IRQ_TYPE_EDGE_RISING);
                enable_irq(device->irq_num[DIO0]); /* was disabled by rx active check */
                /* enable transmission */
                retval = rf69_set_mode(spi, transmit);
                if (retval < 0)
-                       return retval;
+                       goto abort;
 
                /* transfer this msg (and repetitions) to chip fifo */
                device->free_in_fifo = FIFO_SIZE;
                dev_dbg(device->dev, "thread: Packet sent. Set mode to stby.");
                retval = rf69_set_mode(spi, standby);
                if (retval < 0)
-                       return retval;
+                       goto abort;
 
                /* everything sent? */
                if (kfifo_is_empty(&device->tx_fifo)) {