make sure buf transfered into kernel is 8 aligned

Note, we also depend on malloc() for its returned addr to be at
least 8 bytes aligned.

Glibc guarantees that, from glibc manual:

  The address of a block returned by malloc or realloc in GNU
  systems is always a multiple of eight (or sixteen on 64-bit
  systems). If you need a block whose address is a multiple of
  a higher power of two than that, use memalign, posix_memalign,
  or valloc.

Signed-off-by: Yin Kangkai <kangkai.yin@intel.com>