On Wednesday 13 May 2015 16:49:46 tthayer@xxxxxxxxxxxxxxxxxxxxx wrote: > +static int a10_unmask_irq(struct platform_device *pdev, u32 mask) > +{ > + void __iomem *sm_base; > + > + if (!devm_request_mem_region(&pdev->dev, A10_SYMAN_INTMASK_CLR, > + sizeof(u32), dev_name(&pdev->dev))) { > + edac_printk(KERN_ERR, EDAC_MC, > + "Unable to request mem region\n"); > + return -EBUSY; > + } > + > + sm_base = devm_ioremap(&pdev->dev, A10_SYMAN_INTMASK_CLR, > + sizeof(u32)); > + if (!sm_base) { > + edac_printk(KERN_ERR, EDAC_MC, > + "Unable to ioremap device\n"); > + > + return -ENOMEM; > + } > + > + iowrite32(mask, sm_base); > + > + devm_iounmap(&pdev->dev, sm_base); > + devm_release_mem_region(&pdev->dev, A10_SYMAN_INTMASK_CLR, > + sizeof(u32)); > + > + return 0; > +} If you always unmap right away, better use the normal request_mem_region and ioremap functions rather than their devm counterparts. > > + /* Only the Arria10 has separate IRQs */ > + if (irq2 > 0) { > + /* Arria10 specific initialization */ > + res = a10_init(mc_vbase); > + if (res < 0) > + goto err2; > + > + res = a10_unmask_irq(pdev, A10_DDR0_IRQ_MASK); > + if (res < 0) > + goto err2; > + > + res = devm_request_irq(&pdev->dev, irq2, > + altr_sdram_mc_err_handler, > + IRQF_SHARED, dev_name(&pdev->dev), mci); > + if (res < 0) { > + edac_mc_printk(mci, KERN_ERR, > + "Unable to request irq %d\n", irq2); > + res = -ENODEV; > + goto err2; > + } > + irqflags = IRQF_SHARED; > + } > + > Should the unmask be done after the request? Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html