diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 401cd66770f9e756d2f6a0ad2b70583b430a6ec2..36bfa7f820a631f4933995bcd2ebad6b30bb5754 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -685,7 +685,7 @@ static void spi_pump_messages(struct kthread_work *work)
 	}
 	/* Extract head of queue */
 	master->cur_msg =
-	    list_entry(master->queue.next, struct spi_message, queue);
+		list_first_entry(&master->queue, struct spi_message, queue);
 
 	list_del_init(&master->cur_msg->queue);
 	if (master->busy)