`dev->of_node` has a pointer to device node, of_node_get call seems unnecessary. It will automate the cleanup process allowing to remove the of_node_put call.
Signed-off-by: Prabhav Kumar Vaish <pvkumar5749...@gmail.com> --- arch/powerpc/platforms/cell/iommu.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index 4cd9c0de22c2..5b794ce08689 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c @@ -780,14 +780,13 @@ static int __init cell_iommu_init_disabled(void) static u64 cell_iommu_get_fixed_address(struct device *dev) { u64 cpu_addr, size, best_size, dev_addr = OF_BAD_ADDR; - struct device_node *np; + struct device_node *np = dev->of_node; const u32 *ranges = NULL; int i, len, best, naddr, nsize, pna, range_size; /* We can be called for platform devices that have no of_node */ - np = of_node_get(dev->of_node); if (!np) - goto out; + return dev_addr; while (1) { naddr = of_n_addr_cells(np); @@ -805,7 +804,7 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) if (!ranges) { dev_dbg(dev, "iommu: no dma-ranges found\n"); - goto out; + return dev_addr; } len /= sizeof(u32); @@ -833,8 +832,6 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) } else dev_dbg(dev, "iommu: no suitable range found!\n"); -out: - of_node_put(np); return dev_addr; } -- 2.34.1