diff --git a/software/spi-ocores/drivers/spi/spi-ocores.c b/software/spi-ocores/drivers/spi/spi-ocores.c
index 2c1ca36c7339afa0804812ec0ece27144fbc69d2..2c53043baab8a719b88435a8d751cc176ac0f684 100644
--- a/software/spi-ocores/drivers/spi/spi-ocores.c
+++ b/software/spi-ocores/drivers/spi/spi-ocores.c
@@ -566,7 +566,7 @@ static bool spi_ocores_is_busy(struct spi_ocores *sp)
 static int spi_ocores_hw_xfer_rxtx(struct spi_ocores *sp)
 {
 	spi_ocores_hw_xfer_rx_pop(sp);
-	if (spi_ocores_sw_xfer_has_pending(sp))
+	if (!spi_ocores_sw_xfer_has_pending(sp))
 		return -ENODATA;
 
 	spi_ocores_hw_xfer_tx_push(sp);