mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	i2c: Use resource_size
Use the function resource_size, which reduces the chance of introducing off-by-one errors in calculating the resource size. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ struct resource *res; @@ - (res->end - res->start) + 1 + resource_size(res) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
This commit is contained in:
		
							parent
							
								
									7605fa3b0a
								
							
						
					
					
						commit
						593308259b
					
				
					 4 changed files with 8 additions and 8 deletions
				
			
		| 
						 | 
					@ -515,7 +515,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
 | 
				
			||||||
		return -ENODEV;
 | 
							return -ENODEV;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1,
 | 
						ioarea = request_mem_region(mem->start, resource_size(mem),
 | 
				
			||||||
				    pdev->name);
 | 
									    pdev->name);
 | 
				
			||||||
	if (!ioarea) {
 | 
						if (!ioarea) {
 | 
				
			||||||
		dev_err(&pdev->dev, "I2C region already claimed\n");
 | 
							dev_err(&pdev->dev, "I2C region already claimed\n");
 | 
				
			||||||
| 
						 | 
					@ -578,7 +578,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
 | 
				
			||||||
	put_device(&pdev->dev);
 | 
						put_device(&pdev->dev);
 | 
				
			||||||
	kfree(dev);
 | 
						kfree(dev);
 | 
				
			||||||
err_release_region:
 | 
					err_release_region:
 | 
				
			||||||
	release_mem_region(mem->start, (mem->end - mem->start) + 1);
 | 
						release_mem_region(mem->start, resource_size(mem));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return r;
 | 
						return r;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -601,7 +601,7 @@ static int davinci_i2c_remove(struct platform_device *pdev)
 | 
				
			||||||
	kfree(dev);
 | 
						kfree(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 | 
						mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 | 
				
			||||||
	release_mem_region(mem->start, (mem->end - mem->start) + 1);
 | 
						release_mem_region(mem->start, resource_size(mem));
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -806,7 +806,7 @@ omap_i2c_probe(struct platform_device *pdev)
 | 
				
			||||||
		return -ENODEV;
 | 
							return -ENODEV;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1,
 | 
						ioarea = request_mem_region(mem->start, resource_size(mem),
 | 
				
			||||||
			pdev->name);
 | 
								pdev->name);
 | 
				
			||||||
	if (!ioarea) {
 | 
						if (!ioarea) {
 | 
				
			||||||
		dev_err(&pdev->dev, "I2C region already claimed\n");
 | 
							dev_err(&pdev->dev, "I2C region already claimed\n");
 | 
				
			||||||
| 
						 | 
					@ -905,7 +905,7 @@ omap_i2c_probe(struct platform_device *pdev)
 | 
				
			||||||
	platform_set_drvdata(pdev, NULL);
 | 
						platform_set_drvdata(pdev, NULL);
 | 
				
			||||||
	kfree(dev);
 | 
						kfree(dev);
 | 
				
			||||||
err_release_region:
 | 
					err_release_region:
 | 
				
			||||||
	release_mem_region(mem->start, (mem->end - mem->start) + 1);
 | 
						release_mem_region(mem->start, resource_size(mem));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return r;
 | 
						return r;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -925,7 +925,7 @@ omap_i2c_remove(struct platform_device *pdev)
 | 
				
			||||||
	iounmap(dev->base);
 | 
						iounmap(dev->base);
 | 
				
			||||||
	kfree(dev);
 | 
						kfree(dev);
 | 
				
			||||||
	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 | 
						mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 | 
				
			||||||
	release_mem_region(mem->start, (mem->end - mem->start) + 1);
 | 
						release_mem_region(mem->start, resource_size(mem));
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -563,7 +563,7 @@ static int sh_mobile_i2c_probe(struct platform_device *dev)
 | 
				
			||||||
		goto err_irq;
 | 
							goto err_irq;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	size = (res->end - res->start) + 1;
 | 
						size = resource_size(res);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pd->reg = ioremap(res->start, size);
 | 
						pd->reg = ioremap(res->start, size);
 | 
				
			||||||
	if (pd->reg == NULL) {
 | 
						if (pd->reg == NULL) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +92,7 @@ static int simtec_i2c_probe(struct platform_device *dev)
 | 
				
			||||||
		goto err;
 | 
							goto err;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	size = (res->end-res->start)+1;
 | 
						size = resource_size(res);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pd->ioarea = request_mem_region(res->start, size, dev->name);
 | 
						pd->ioarea = request_mem_region(res->start, size, dev->name);
 | 
				
			||||||
	if (pd->ioarea == NULL) {
 | 
						if (pd->ioarea == NULL) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue