Sky Cpu and Nexus: check for platform_get_resource ret code
PATCH 3/4 Sky Cpu and Nexus: check for platform_get_resource ret code
This patch adds checking for platform_get_resource() return code to prevent possible NULL pointer usage.
Signed-off-by Cyrill Gorcunov <[email protected]>
---
drivers/misc/hdpuftrs/hdpu_cpustate.c | 5 +++++ drivers/misc/hdpuftrs/hdpu_nexus.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletions(-)
drivers/misc/hdpuftrs/hdpu_cpustate.c +5 -0
@@ -195,6 +195,11 @@ static int hdpu_cpustate_probe(struct platform_device *pdev)int ret; res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) { +printk (KERN_ERR "sky_cpustate: " +"Invalid memory resource.\n" ); +return -EINVAL ; + } cpustate.set_addr = (unsigned long *)res->start; cpustate.clr_addr = (unsigned long *)res->end -1 ;
drivers/misc/hdpuftrs/hdpu_nexus.c +6 -1
@@ -62,6 +62,11 @@ static int hdpu_nexus_probe(struct platform_device *pdev)int *nexus_id_addr; res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); +if (!res) { +printk (KERN_ERR "sky_nexus: " +"Invalid memory resource.\n" ); +return -EINVAL ; + } nexus_id_addr =ioremap (res->start, (unsigned long )(res->end - res->start));if (nexus_id_addr) {
@@ -69,7 +74,7 @@ static int hdpu_nexus_probe(struct platform_device *pdev) chassis_id = *nexus_id_addr &0xff ;iounmap (nexus_id_addr); }else { -printk (KERN_ERR "Could not map slot id\n" ); +printk (KERN_ERR "sky_nexus: Could not map slot id\n" ); } hdpu_slot_id =create_proc_entry ("sky_slot_id" ,0666 , &proc_root);