diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h
index e9e68f16df7c07aa3b531052cc4dfd5dd5dc9b17..1a1ec4ba1a68b44a4f784d66bb84b30dcb5df658 100644
--- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h
+++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h
@@ -363,6 +363,7 @@ static inline void ar724x_pci_wr(unsigned reg, u32 val)
 
 	base = ioremap_nocache(AR724X_PCI_CTRL_BASE, AR724X_PCI_CTRL_SIZE);
 	__raw_writel(val, base + reg);
+	(void) __raw_readl(base + reg);
 	iounmap(base);
 }
 
@@ -371,6 +372,7 @@ static inline void ar724x_pci_wr_nf(unsigned reg, u32 val)
 	void __iomem *base;
 
 	base = ioremap_nocache(AR724X_PCI_CTRL_BASE, AR724X_PCI_CTRL_SIZE);
+	__raw_writel(val, base + reg);
 	iounmap(base);
 }