mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 22:05:36 +00:00
aio: Allow expressions in NR_IOEVENTS_IN_PAGES macro
The macro is used only in aio_estimate_nr_reqs(): unsigned int k_max_reqs = NR_IOEVENTS_IN_NPAGES(size/PAGE_SIZE); Which compiler may evaluate as (((PAGE_SIZE*size)/PAGE_SIZE) - ...) It works as long as PAGE_SIZE is long. The patches set converts PAGE_SIZE to use sysconf() returning (unsigned), non-long type and making the aio macro overflowing. I do not see any value making PAGE_SIZE (unsigned long) typed. Cc: Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: Dmitry Safonov <dima@arista.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
committed by
Andrei Vagin
parent
454fe3e7c0
commit
37c5b64e0e
@@ -13,7 +13,7 @@
|
||||
#include "images/mm.pb-c.h"
|
||||
#include <compel/compel.h>
|
||||
|
||||
#define NR_IOEVENTS_IN_NPAGES(npages) ((PAGE_SIZE * npages - sizeof(struct aio_ring)) / sizeof(struct io_event))
|
||||
#define NR_IOEVENTS_IN_NPAGES(npages) ((PAGE_SIZE * (npages) - sizeof(struct aio_ring)) / sizeof(struct io_event))
|
||||
|
||||
int dump_aio_ring(MmEntry *mme, struct vma_area *vma)
|
||||
{
|
||||
|
Reference in New Issue
Block a user