Also iounmap in error path in arch/ia64/kernel/cyclone.c
PATCH 1/1 Also iounmap in error path in arch/ia64/kernel/cyclone.c
base is a local u64. use_cyclone a global int.
--
Also iounmap in error path
---
arch/ia64/kernel/cyclone.c +1 -1
@@ -59,13 +59,13 @@ int __init init_cyclone_clock(void)return -ENODEV ; } base =readq (reg); +iounmap (reg);if (!base){printk (KERN_ERR "Summit chipset: Could not find valid CBAR" " value.\n" ); use_cyclone =0 ;return -ENODEV ; } -iounmap (reg);/* setup PMCC */ offset = (base +CYCLONE_PMCC_OFFSET );
Quoted 3 lines · Roel Kluin
base is a local u64.
use_cyclonea global int.
--
Also iounmap in error path
This seems correct, but doesn't the same problem occur several other times further down the same function?
Quoted 26 lines
Signed-off-by Roel Kluin <[email protected]>---
arch/ia64/kernel/cyclone.c +1
-2@@ -59,13 +59,13 @@ int __init init_cyclone_clock(void)return -ENODEV ; } base =readq (reg); +iounmap (reg);if (!base){printk (KERN_ERR "Summit chipset: Could not find valid CBAR" " value.\n" ); use_cyclone =0 ;return -ENODEV ; } -iounmap (reg);/* setup PMCC */ offset = (base +CYCLONE_PMCC_OFFSET ); -To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 3 lines
Horms H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en/
Quoted 8 lines · Simon Horman
Quoted 3 lines · Roel Kluin
base is a local u64.
use_cyclonea global int.
--
Also iounmap in error pathThis seems correct, but doesn't the same problem occur several other times further down the same function?
Ok, since the function was ioremap_nocache instead of ioremap, I wasn't sure whether the unmap was required. Apparently I overlooked this was true for the first case as well.
Thanks for reviewing.
--
iounmap after ioremap when CBAR/PMCC/MPCS/MPMC is not found
---
arch/ia64/kernel/cyclone.c +4 -1
@@ -59,13 +59,13 @@ int __init init_cyclone_clock(void)return -ENODEV ; } base =readq (reg); +iounmap (reg);if (!base){printk (KERN_ERR "Summit chipset: Could not find valid CBAR" " value.\n" ); use_cyclone =0 ;return -ENODEV ; } -iounmap (reg);/* setup PMCC */ offset = (base +CYCLONE_PMCC_OFFSET );
@@ -74,6 +74,7 @@ int __init init_cyclone_clock(void)printk (KERN_ERR "Summit chipset: Could not find valid PMCC" " register.\n" ); use_cyclone =0 ; +iounmap (reg);return -ENODEV ; }writel (0x00000001 ,reg);
@@ -86,6 +87,7 @@ int __init init_cyclone_clock(void)printk (KERN_ERR "Summit chipset: Could not find valid MPCS" " register.\n" ); use_cyclone =0 ; +iounmap (reg);return -ENODEV ; }writel (0x00000001 ,reg);
@@ -98,6 +100,7 @@ int __init init_cyclone_clock(void)printk (KERN_ERR "Summit chipset: Could not find valid MPMC" " register.\n" ); use_cyclone =0 ; +iounmap (cyclone_timer);return -ENODEV ; }