diff options
author | Aaron Durbin <adurbin@chromium.org> | 2016-08-10 11:39:00 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2016-08-15 21:03:06 +0200 |
commit | edd79590b06791de4908e93ab65d4ee09e3df85a (patch) | |
tree | 7bb49616ebd7f29c09bb85e1a12ab23de506e158 /src | |
parent | e56191e8ec706ec57e262c7c54fc2236957374f6 (diff) | |
download | coreboot-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>
Diffstat (limited to 'src')
-rw-r--r-- | src/commonlib/region.c | 6 |
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); } |