summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-08-10 11:39:00 -0500
committerAaron Durbin <adurbin@chromium.org>2016-08-15 21:03:06 +0200
commitedd79590b06791de4908e93ab65d4ee09e3df85a (patch)
tree7bb49616ebd7f29c09bb85e1a12ab23de506e158
parente56191e8ec706ec57e262c7c54fc2236957374f6 (diff)
downloadcoreboot-edd79590b06791de4908e93ab65d4ee09e3df85a.tar.xz
commonlib/region: allow empty mmap()/munmap() in region_device_ops
Instead of assuming all region_devices have an mmap() and munmap() implementation fail those calls when one isn't provided. BUG=chrome-os-partner:56151 Change-Id: I9b03e084aa604d52d6b5bab47c0bf99d9fbcd422 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/16190 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/commonlib/region.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/commonlib/region.c b/src/commonlib/region.c
index 838107f312..ac0faf111f 100644
--- a/src/commonlib/region.c
+++ b/src/commonlib/region.c
@@ -74,6 +74,9 @@ void *rdev_mmap(const struct region_device *rd, size_t offset, size_t size)
rdev = rdev_root(rd);
+ if (rdev->ops->mmap == NULL)
+ return NULL;
+
return rdev->ops->mmap(rdev, req.offset, req.size);
}
@@ -83,6 +86,9 @@ int rdev_munmap(const struct region_device *rd, void *mapping)
rdev = rdev_root(rd);
+ if (rdev->ops->munmap == NULL)
+ return -1;
+
return rdev->ops->munmap(rdev, mapping);
}