On 10/10/16 17:34, Eric Blake wrote: > On 10/09/2016 11:43 AM, Mark Cave-Ayland wrote: >> The hard-coded default alignment is BDRV_SECTOR_SIZE, however this is not >> necessarily the case for all platforms. Use this as the default alignment for >> all current callers. >> >> Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> >> --- > >> @@ -160,8 +161,8 @@ static void dma_blk_cb(void *opaque, int ret) >> return; >> } >> >> - if (dbs->iov.size & ~BDRV_SECTOR_MASK) { >> - qemu_iovec_discard_back(&dbs->iov, dbs->iov.size & >> ~BDRV_SECTOR_MASK); >> + if (dbs->iov.size & (dbs->align - 1)) { >> + qemu_iovec_discard_back(&dbs->iov, dbs->iov.size & (dbs->align - >> 1)); > > Would it be any smarter to use osdep.h's QEMU_IS_ALIGNED(dbs->iov.size, > dbs->align) and QEMU_ALIGN_DOWN(dbs->iov.size, dbs->align)? > Semantically it is the same, but the macros make it obvious what the > bit-twiddling is doing. > > Unless you think that needs a tweak, > Reviewed-by: Eric Blake <ebl...@redhat.com>
I can't say I feel too strongly about it since there are plenty of other examples of this style in the codebase, so I'm happy to go with whatever John/Paolo are most happy with. ATB, Mark.