[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 23/31] util/mmap-alloc: refactor a little bit for rea
From: |
Michael Tokarev |
Subject: |
[Qemu-devel] [PULL 23/31] util/mmap-alloc: refactor a little bit for readability |
Date: |
Tue, 24 Jan 2017 12:39:27 +0300 |
From: Cao jin <address@hidden>
1st mmap returns *ptr* which aligns to host page size,
| size + align |
------------------------------------------
ptr
input param *align* could be 1M, or 2M, or host page size. After
QEMU_ALIGN_UP, offset will >= 0
2nd mmap use flag MAP_FIXED, then it return ptr+offset, or else fail.
If it success, then we will have something like:
| offset | size |
--------------------------------------
ptr ptr1
*ptr1* is what we really want to return, it equals ptr+offset.
Signed-off-by: Cao jin <address@hidden>
Signed-off-by: Michael Tokarev <address@hidden>
---
util/mmap-alloc.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c
index d713a72..2f55f5e 100644
--- a/util/mmap-alloc.c
+++ b/util/mmap-alloc.c
@@ -84,22 +84,20 @@ void *qemu_ram_mmap(int fd, size_t size, size_t align, bool
shared)
return MAP_FAILED;
}
- ptr += offset;
- total -= offset;
-
if (offset > 0) {
- munmap(ptr - offset, offset);
+ munmap(ptr, offset);
}
/*
* Leave a single PROT_NONE page allocated after the RAM block, to serve as
* a guard page guarding against potential buffer overflows.
*/
+ total -= offset;
if (total > size + getpagesize()) {
- munmap(ptr + size + getpagesize(), total - size - getpagesize());
+ munmap(ptr1 + size + getpagesize(), total - size - getpagesize());
}
- return ptr;
+ return ptr1;
}
void qemu_ram_munmap(void *ptr, size_t size)
--
2.1.4
- [Qemu-devel] [PULL 22/31] util/mmap-alloc: check parameter before using, (continued)
- [Qemu-devel] [PULL 22/31] util/mmap-alloc: check parameter before using, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 30/31] usb: Set category and description of the MTP device, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 19/31] disas/cris.c: Fix Coverity warning about unchecked NULL, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 03/31] README: Add linux to macOS build info, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 07/31] qemu-options: cleanup duplicated help message for kernel_irqchip, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 05/31] include: Fix typos found by codespell, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 29/31] gdbstub.c: update old error report statements, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 21/31] vfio: remove a duplicated word in comments, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 27/31] scsi-disk: add 'fall through' comment to switch VERIFY cases, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 18/31] lm32: milkymist-tmu2: fix another integer overflow, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 23/31] util/mmap-alloc: refactor a little bit for readability,
Michael Tokarev <=
- [Qemu-devel] [PULL 08/31] usb: Fix typo in documentation, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 04/31] Fix documentation and some comments (article, grammar), Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 10/31] object: make some funcs static, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 20/31] docs: sync pci-ids.txt, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 14/31] block: remove dead check, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 24/31] win32: use glib gpoll if glib >= 2.50, Michael Tokarev, 2017/01/24
- [Qemu-devel] [PULL 26/31] Drop duplicate display option documentation, Michael Tokarev, 2017/01/24
- Re: [Qemu-devel] [PULL 00/31] Trivial patches for 2017-01-24, no-reply, 2017/01/24
- Re: [Qemu-devel] [PULL 00/31] Trivial patches for 2017-01-24, Peter Maydell, 2017/01/24