Hi Bjorn, On 10/14/2017 03:19 AM, Bjorn Helgaas wrote: > I'm sure they're harmless. The point is that the cleanup should be > done near the failure, not in the caller of the caller of the function > where the failure was detected. You have: > > rockchip_pcie_probe > rockchip_pcie_parse_dt > rockchip_pcie_setup_irq > err = dev_pm_set_dedicated_wake_irq > if (err) > dev_err(...) > > So you detect the error in rockchip_pcie_setup_irq(), but you clean up > from it in rockchip_pcie_probe(), which doesn't make sense because > rockchip_pcie_probe() doesn't do anything related to wakeup interupts. > right, but if something wrong happens in rockchip_pcie_probe() later than rockchip_pcie_setup_irq(), we may still need to clean it up ;) i think the error handling is a little like what we do in the remove callback > Bjorn > > >