mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	arch/arm/mach-omap1/dma.c: Invert calls to platform_device_put and platform_device_del
Platform_device_del should be called before platform_device_put, as platform_device_put can delete the structure. Additionally, improve the error handling code for the call to ioremap, so that it calls platform_device_put. The semantic match that finds this problem is: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e1,e2; @@ *platform_device_put(e1); ... when != e1 = e2 *platform_device_del(e1); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
		
							parent
							
								
									30ebad9d75
								
							
						
					
					
						commit
						77f7059a32
					
				
					 1 changed files with 6 additions and 5 deletions
				
			
		|  | @ -284,14 +284,15 @@ static int __init omap1_system_dma_init(void) | |||
| 	dma_base = ioremap(res[0].start, resource_size(&res[0])); | ||||
| 	if (!dma_base) { | ||||
| 		pr_err("%s: Unable to ioremap\n", __func__); | ||||
| 		return -ENODEV; | ||||
| 		ret = -ENODEV; | ||||
| 		goto exit_device_put; | ||||
| 	} | ||||
| 
 | ||||
| 	ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); | ||||
| 	if (ret) { | ||||
| 		dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", | ||||
| 			__func__, pdev->name, pdev->id); | ||||
| 		goto exit_device_del; | ||||
| 		goto exit_device_put; | ||||
| 	} | ||||
| 
 | ||||
| 	p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL); | ||||
|  | @ -299,7 +300,7 @@ static int __init omap1_system_dma_init(void) | |||
| 		dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n", | ||||
| 			__func__, pdev->name); | ||||
| 		ret = -ENOMEM; | ||||
| 		goto exit_device_put; | ||||
| 		goto exit_device_del; | ||||
| 	} | ||||
| 
 | ||||
| 	d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL); | ||||
|  | @ -380,10 +381,10 @@ exit_release_d: | |||
| 	kfree(d); | ||||
| exit_release_p: | ||||
| 	kfree(p); | ||||
| exit_device_put: | ||||
| 	platform_device_put(pdev); | ||||
| exit_device_del: | ||||
| 	platform_device_del(pdev); | ||||
| exit_device_put: | ||||
| 	platform_device_put(pdev); | ||||
| 
 | ||||
| 	return ret; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Julia Lawall
						Julia Lawall