diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c
index 147fe0a21c8693a757146b54b73c521d494ba213..7bdd355c745fa985e5efb0c797688135dfa79ea5 100644
--- a/drivers/misc/fsl_law.c
+++ b/drivers/misc/fsl_law.c
@@ -58,7 +58,8 @@ void set_law(u8 idx, phys_addr_t addr, enum law_size sz, enum law_trgt_if id)
 	out_be32(lawbar, addr >> 12);
 	out_be32(lawar, LAWAR_EN | ((u32)id << 20) | (u32)sz);
 
-	return ;
+	/* Read back so that we sync the writes */
+	in_be32(lawar);
 }
 
 int set_next_law(phys_addr_t addr, enum law_size sz, enum law_trgt_if id)