diff options
Diffstat (limited to 'drivers/base/driver.c')
-rw-r--r-- | drivers/base/driver.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 524ed1c980..23f31ce77e 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -265,7 +265,7 @@ void *dev_get_mem_region(struct device_d *dev, int num) res = dev_get_resource(dev, IORESOURCE_MEM, num); if (IS_ERR(res)) - return NULL; + return ERR_CAST(res); return (void __force *)res->start; } @@ -348,6 +348,8 @@ int generic_memmap_ro(struct cdev *cdev, void **map, int flags) if (flags & PROT_WRITE) return -EACCES; *map = dev_get_mem_region(cdev->dev, 0); + if (IS_ERR(*map)) + return PTR_ERR(*map); return 0; } @@ -357,6 +359,9 @@ int generic_memmap_rw(struct cdev *cdev, void **map, int flags) return -EINVAL; *map = dev_get_mem_region(cdev->dev, 0); + if (IS_ERR(*map)) + return PTR_ERR(*map); + return 0; } |