staging: kpc2000: fix resource size calculation
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 30 Apr 2019 10:33:59 +0000 (13:33 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 Apr 2019 12:19:04 +0000 (14:19 +0200)
The code is calculating the resource size wrong because it should be
inclusive of the "res->end" address.  In other words, "end - start + 1".
We can just use the resource_size() function to do it correctly.

Fixes: 7dc7967fc39a ("staging: kpc2000: add initial set of Daktronics drivers")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/kpc2000/kpc_i2c/i2c_driver.c
drivers/staging/kpc2000/kpc_spi/spi_driver.c

index 6bb6ad4..1fc30dc 100644 (file)
@@ -632,7 +632,7 @@ int pi2c_probe(struct platform_device *pldev)
     priv->adapter.algo = &smbus_algorithm;
     
     res = platform_get_resource(pldev, IORESOURCE_MEM, 0);
-    priv->smba = (unsigned long)ioremap_nocache(res->start, res->end - res->start);
+    priv->smba = (unsigned long)ioremap_nocache(res->start, resource_size(res));
     
     priv->pldev = pldev;
     pldev->dev.platform_data = priv;
index c0999e0..074a578 100644 (file)
@@ -452,7 +452,7 @@ kp_spi_probe(struct platform_device *pldev)
         goto free_master;
     }
     
-    kpspi->phys = (unsigned long)ioremap_nocache(r->start, r->end - r->start);
+    kpspi->phys = (unsigned long)ioremap_nocache(r->start, resource_size(r));
     kpspi->base = (u64 __iomem *)kpspi->phys;
     
     status = spi_register_master(master);