Fix resource size miscalculations
Subsystems (7)
cover Fix resource size miscalculations
Use resource_size a few places
Joe Perches (2):
trivial: treewide: Fix iomap resource size miscalculations
trivial: arm: mach-u300/gpio: Fix mem_region resource size miscalculations
arch/arm/mach-u300/gpio.c | 7 +++---- arch/arm/mach-ux500/mbox-db5500.c | 6 ++---- arch/mips/rb532/gpio.c | 2 +- drivers/video/msm/mddi.c | 2 +- drivers/watchdog/bcm63xx_wdt.c | 2 +- 5 files changed, 8 insertions(+), 11 deletions(-)
Signature · 1 line
1.7.4.2.g597a6.dirty
PATCH 1/2 treewide: Fix iomap resource size miscalculations
Convert off-by-1 r->end - r->start to resource_size(r)
--- arch/arm/mach-ux500/mbox-db5500.c | 6 ++---- arch/mips/rb532/gpio.c | 2 +- drivers/video/msm/mddi.c | 2 +- drivers/watchdog/bcm63xx_wdt.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-)
arch/arm/mach-ux500/mbox-db5500.c +2 -4
@@ -416,8 +416,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv)dev_dbg (&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_peer = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_peer =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_peer) {dev_err (&(mbox->pdev->dev),"Unable to ioremap peer mbox\n" ); mbox =NULL ;
@@ -440,8 +439,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv)dev_dbg (&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_local = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_local =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_local) {dev_err (&(mbox->pdev->dev),"Unable to ioremap local mbox\n" ); mbox =NULL ;
arch/mips/rb532/gpio.c +1 -1
@@ -185,7 +185,7 @@ int __init rb532_gpio_init(void)struct resource *r; r = rb532_gpio_reg0_res; - rb532_gpio_chip->regbase =ioremap_nocache (r->start, r->end - r->start); + rb532_gpio_chip->regbase =ioremap_nocache (r->start,resource_size (r));if (!rb532_gpio_chip->regbase) {printk (KERN_ERR "rb532: cannot remap GPIO register 0\n" );
drivers/video/msm/mddi.c +1 -1
@@ -679,7 +679,7 @@ static int __devinit mddi_probe(struct platform_device *pdev)printk (KERN_ERR "mddi: no associated mem resource!\n" );return -ENOMEM ; } - mddi->base =ioremap (resource->start, resource->end - resource->start); + mddi->base =ioremap (resource->start,resource_size (resource));if (!mddi->base) {printk (KERN_ERR "mddi: failed to remap base!\n" ); ret = -EINVAL ;
drivers/watchdog/bcm63xx_wdt.c +1 -1
@@ -248,7 +248,7 @@ static int __devinit bcm63xx_wdt_probe(struct platform_device *pdev)return -ENODEV ; } - bcm63xx_wdt_device.regs =ioremap_nocache (r->start, r->end - r->start); + bcm63xx_wdt_device.regs =ioremap_nocache (r->start,resource_size (r));if (!bcm63xx_wdt_device.regs) {dev_err (&pdev->dev,"failed to remap I/O resources\n" );return -ENXIO ;
Signature · 1 line
1.7.4.2.g597a6.dirty
Re: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
2011/3/23 Joe Perches <[email protected]>:
Quoted 3 lines
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>
(for ux500)
Yours,
Linus Walleij
Re: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
In reply to Joe PerchesQuoted 3 lines · On Wednesday 23 March 2011 20:55:36 Joe Perches wrote:
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>
(for rb532 and bcm63xx_wdt)
Quoted 70 lines
--- arch/arm/mach-ux500/mbox-db5500.c | 6 ++---- arch/mips/rb532/gpio.c | 2 +- drivers/video/msm/mddi.c | 2 +- drivers/watchdog/bcm63xx_wdt.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-)(quoted diff) +0
-0
b/arch/arm/mach-ux500/mbox-db5500.cindex a4ffb9f..2b2d51c 100644arch/arm/mach-ux500/mbox-db5500.c +2
-4@@ -416,8 +416,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv) dev_dbg(&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_peer = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_peer =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_peer) {dev_err (&(mbox->pdev->dev),"Unable to ioremap peer mbox\n" ); mbox =NULL ;@@ -440,8 +439,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv) dev_dbg(&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_local = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_local =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_local) {dev_err (&(mbox->pdev->dev),"Unable to ioremap local mbox\n" ); mbox =NULL ;arch/mips/rb532/gpio.c +1
-1@@ -185,7 +185,7 @@ int __init rb532_gpio_init(void)struct resource *r; r = rb532_gpio_reg0_res; - rb532_gpio_chip->regbase =ioremap_nocache (r->start, r->end - r->start); + rb532_gpio_chip->regbase =ioremap_nocache (r->start,resource_size (r));if (!rb532_gpio_chip->regbase) {printk (KERN_ERR "rb532: cannot remap GPIO register 0\n" );drivers/video/msm/mddi.c +1
-1@@ -679,7 +679,7 @@ static int __devinit mddi_probe(struct platform_device *pdev) printk(KERN_ERR "mddi: no associated mem resource!\n");return -ENOMEM ; } - mddi->base =ioremap (resource->start, resource->end - resource->start); + mddi->base =ioremap (resource->start,resource_size (resource));if (!mddi->base) {printk (KERN_ERR "mddi: failed to remap base!\n" ); ret = -EINVAL ;(quoted diff) +0
-0
b/drivers/watchdog/bcm63xx_wdt.cindex 3c5045a..5064e83 100644drivers/watchdog/bcm63xx_wdt.c +1
-1@@ -248,7 +248,7 @@ static int __devinit bcm63xx_wdt_probe(struct platform_device *pdev) return -ENODEV; } - bcm63xx_wdt_device.regs =ioremap_nocache (r->start, r->end - r->start); + bcm63xx_wdt_device.regs =ioremap_nocache (r->start,resource_size (r));if (!bcm63xx_wdt_device.regs) {dev_err (&pdev->dev,"failed to remap I/O resources\n" );return -ENXIO ;
Re: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
In reply to Joe PerchesQuoted 5 lines · Joe Perches
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>--- drivers/video/msm/mddi.c | 2 +-
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Re: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
In reply to Joe PerchesHi Joe,
Quoted 9 lines
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>--- arch/arm/mach-ux500/mbox-db5500.c | 6 ++---- arch/mips/rb532/gpio.c | 2 +- drivers/video/msm/mddi.c | 2 +- drivers/watchdog/bcm63xx_wdt.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-)
Kind regards,
Wim.
Re: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
In reply to Joe PerchesOn Wed, Mar 23, 2011 at 12:55:36PM -0700, Joe Perches wrote:
Ralf
Jiri Kosina
AppliedRe: [trivial PATCH 1/2] treewide: Fix iomap resource size miscalculations
In reply to Joe PerchesQuoted 9 lines · Joe Perches
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>--- arch/arm/mach-ux500/mbox-db5500.c | 6 ++---- arch/mips/rb532/gpio.c | 2 +- drivers/video/msm/mddi.c | 2 +- drivers/watchdog/bcm63xx_wdt.c | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-)
Applied, thanks
Quoted 67 lines
arch/arm/mach-ux500/mbox-db5500.c +2
-4@@ -416,8 +416,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv)dev_dbg (&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_peer = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_peer =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_peer) {dev_err (&(mbox->pdev->dev),"Unable to ioremap peer mbox\n" ); mbox =NULL ;@@ -440,8 +439,7 @@ struct mbox *mbox_setup(u8 mbox_id, mbox_recv_cb_t *mbox_cb, void *priv)dev_dbg (&(mbox->pdev->dev),"Resource name: %s start: 0x%X, end: 0x%X\n" , resource->name, resource->start, resource->end); - mbox->virtbase_local = -ioremap (resource->start, resource->end - resource->start); + mbox->virtbase_local =ioremap (resource->start,resource_size (resource));if (!mbox->virtbase_local) {dev_err (&(mbox->pdev->dev),"Unable to ioremap local mbox\n" ); mbox =NULL ;arch/mips/rb532/gpio.c +1
-1@@ -185,7 +185,7 @@ int __init rb532_gpio_init(void)struct resource *r; r = rb532_gpio_reg0_res; - rb532_gpio_chip->regbase =ioremap_nocache (r->start, r->end - r->start); + rb532_gpio_chip->regbase =ioremap_nocache (r->start,resource_size (r));if (!rb532_gpio_chip->regbase) {printk (KERN_ERR "rb532: cannot remap GPIO register 0\n" );drivers/video/msm/mddi.c +1
-1@@ -679,7 +679,7 @@ static int __devinit mddi_probe(struct platform_device *pdev)printk (KERN_ERR "mddi: no associated mem resource!\n" );return -ENOMEM ; } - mddi->base =ioremap (resource->start, resource->end - resource->start); + mddi->base =ioremap (resource->start,resource_size (resource));if (!mddi->base) {printk (KERN_ERR "mddi: failed to remap base!\n" ); ret = -EINVAL ;drivers/watchdog/bcm63xx_wdt.c +1
-1@@ -248,7 +248,7 @@ static int __devinit bcm63xx_wdt_probe(struct platform_device *pdev)return -ENODEV ; } - bcm63xx_wdt_device.regs =ioremap_nocache (r->start, r->end - r->start); + bcm63xx_wdt_device.regs =ioremap_nocache (r->start,resource_size (r));if (!bcm63xx_wdt_device.regs) {dev_err (&pdev->dev,"failed to remap I/O resources\n" );return -ENXIO ;Signature · 1 line
1.7.4.2.g597a6.dirty
Signature · 2 lines
Jiri Kosina SUSE Labs, Novell Inc.
PATCH 2/2 arm: mach-u300/gpio: Fix mem_region resource size miscalculations
In reply to Joe PerchesConvert off-by-1 r->end - r->start to resource_size(r)
--- arch/arm/mach-u300/gpio.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
arch/arm/mach-u300/gpio.c +3 -4
@@ -581,8 +581,7 @@ static int __init gpio_probe(struct platform_device *pdev)if (!memres) goto err_no_resource; -if (request_mem_region (memres->start, memres->end - memres->start,"GPIO Controller" ) - ==NULL ) { +if (!request_mem_region (memres->start,resource_size (memres),"GPIO Controller" )) { err = -ENODEV ; goto err_no_ioregion; }
@@ -640,7 +639,7 @@ static int __init gpio_probe(struct platform_device *pdev)free_irq (gpio_ports[i].irq, &gpio_ports[i]);iounmap (virtbase); err_no_ioremap: -release_mem_region (memres->start, memres->end - memres->start); +release_mem_region (memres->start,resource_size (memres)); err_no_ioregion: err_no_resource:clk_disable (clk);
@@ -660,7 +659,7 @@ static int __exit gpio_remove(struct platform_device *pdev)for (i =0 ; i <U300_GPIO_NUM_PORTS ; i++)free_irq (gpio_ports[i].irq, &gpio_ports[i]);iounmap (virtbase); -release_mem_region (memres->start, memres->end - memres->start); +release_mem_region (memres->start,resource_size (memres));clk_disable (clk);clk_put (clk);return 0 ;
Signature · 1 line
1.7.4.2.g597a6.dirty
Re: [trivial PATCH 2/2] arm: mach-u300/gpio: Fix mem_region resource size miscalculations
2011/3/23 Joe Perches <[email protected]>:
Quoted 3 lines
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>
Oh man, there was one of these lurking in my own beloved mach-u300. How embarrassing. Thanks for catching!
Yours,
Linus Walleij
Re: [trivial PATCH 2/2] arm: mach-u300/gpio: Fix mem_region resource size miscalculations
Quoted 10 lines · Linus Walleij
2011/3/23 Joe Perches <[email protected]>:
Quoted 3 lines
Convert off-by-1
r->end-r->starttoresource_size(r)Signed-off-by Joe Perches <[email protected]>Oh man, there was one of these lurking in my own beloved mach-u300. How embarrassing. Thanks for catching!
Acked-by Linus Walleij <[email protected]>
As I don't see it in today's linux-next, I have picked it up. Thanks,
Signature · 2 lines
Jiri Kosina SUSE Labs, Novell Inc.
Quoted 1 line · Joe Perches
Use
resource_sizea few places
Perhaps this relatively common error is too common. It seems to be poor style. A possible better style for struct resource uses could be inline function(s) like:
static inline void __iomem *resource_ioremap(struct resource *r)
{
return ioremap(r->start, resource_size(r));
}and maybe
static inline struct resource * resource_request_region(struct resource *r, const char *name)
{
return __request_region(&ioport_resource, r->start, resource_size(r), name, 0);
}