diff --git a/lib/locks/bakery/bakery_lock.c b/lib/locks/bakery/bakery_lock.c
index 877f5262e9e213cfb4a3c1d867551589dfa52974..7e71dec0f96656869d3b19be516cf5c8dff4fa36 100644
--- a/lib/locks/bakery/bakery_lock.c
+++ b/lib/locks/bakery/bakery_lock.c
@@ -107,6 +107,7 @@ static unsigned int bakery_get_ticket(bakery_lock_t *bakery, unsigned int me)
 	++my_ticket;
 	bakery->number[me] = my_ticket;
 	bakery->entering[me] = 0;
+	dsb();
 	sev();
 
 	return my_ticket;
@@ -189,5 +190,6 @@ void bakery_lock_release(bakery_lock_t *bakery)
 	 */
 	bakery->owner = NO_OWNER;
 	bakery->number[me] = 0;
+	dsb();
 	sev();
 }