• Dmitry Safonov's avatar
    aio: Allow expressions in NR_IOEVENTS_IN_PAGES macro · bc1fbb0f
    Dmitry Safonov authored
    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: 's avatarDmitry Safonov <dima@arista.com>
    Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    bc1fbb0f
aio.c 3.28 KB