On Thu, Oct 10, 2019 at 09:52:09PM +0800, zhengbin wrote: Side note below. > - irq_base = readl(base); > + readl(base); Ouch! Not all cases are flush material of posted writes. The below: func(...) { void __iomem *addr = x->y; ... writel(z, addr); ... readl(addr); } is fine to do like your bot did, but func1(...) { void __iomem *addr = x->y; ... readl(addr); } often is not okay and probably the error somewhere else. Please, consider to fix you bot. -- With Best Regards, Andy Shevchenko