[systemd-devel] Failed to run test-bus-zero-copy on ARM platform

eshark eshark77 at 163.com
Mon Jul 6 06:43:44 PDT 2015


 Hi, All,
        My Software environment is : systemd v219 +  kdbus-4.1-rc1 + kernel_3.10
and my hardware platform is ARM CA9 quad core.

        I failed to run the test-bus-zero-copy on my platform,  and then I traced into the issue ,
and found that the reason is that the padding  KDBU_ITEM_PAYLOAD_VEC will  fail to pass the 
access_ok() in kdbus_pool_slice_copy_iovec().

         In detail,    in kdbus_msg_scan_items() , there is 
       "iov->iov_base = (char  __user *)zeros"     ==> for example, the iov_base is 0xc0b1794c  on my platform
  and 
       "static const char * const zeros = "\0\0\0\0\0\0\0";"

        But in slice->pool->f->f_op->aio_write() , that is generic_file_aio_write() , which calls  access_ok(access_flags, iv->iov_base, iv->iov_len);
And this will fail.

       However,  I can run test-bus-zero-copy successfully  in Fedora21 Virtual Machine which runs on x86-64 platform.
And  I run  systemd v219 +  kdbus-4.1-rc1 + kernel_3.18 in Fedora21 VM.

        Could anyone give me some suggestion?
 
        If  this isn't the right place to discuss this question , could you tell me where I can ask for help?


        Thanks!


  Li Cheng


More information about the systemd-devel mailing list