From: Jens Axboe Date: Mon, 22 May 2017 14:44:29 +0000 (-0600) Subject: Merge branch 'alignment' of https://github.com/omor1/fio X-Git-Tag: fio-2.21~49 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=deb728c66d3f745abca5afc4eebcf0d5049d50fd;p=fio.git Merge branch 'alignment' of https://github.com/omor1/fio --- deb728c66d3f745abca5afc4eebcf0d5049d50fd diff --cc os/os-android.h index acb19a8a,f371116f..c8c6cb85 --- a/os/os-android.h +++ b/os/os-android.h @@@ -107,12 -110,14 +108,14 @@@ error return ret; } -static inline void *shmat (int __shmid, const void *__shmaddr, int __shmflg) +static inline void *shmat(int __shmid, const void *__shmaddr, int __shmflg) { - size_t *ptr, size = ioctl(__shmid, ASHMEM_GET_SIZE, NULL); - ptr = mmap(NULL, size + sizeof(size_t), PROT_READ | PROT_WRITE, MAP_SHARED, __shmid, 0); - *ptr = size; //save size at beginning of buffer, for use with munmap - return &ptr[1]; + size_t size = ioctl(__shmid, ASHMEM_GET_SIZE, NULL); + /* Needs to be 8-byte aligned to prevent SIGBUS on 32-bit ARM */ + uint64_t *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, __shmid, 0); + /* Save size at beginning of buffer, for use with munmap */ + *ptr = size; + return ptr + 1; } static inline int shmdt (const void *__shmaddr)