lkml.org 
[lkml]   [2017]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5 10/10] lkdtm: Add test for XPFO
    Hi Juerg,

    [auto build test ERROR on arm64/for-next/core]
    [also build test ERROR on v4.13-rc4]
    [cannot apply to next-20170811]
    [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

    url: https://github.com/0day-ci/linux/commits/Tycho-Andersen/Add-support-for-eXclusive-Page-Frame-Ownership/20170813-035705
    base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
    config: xtensa-allmodconfig (attached as .config)
    compiler: xtensa-linux-gcc (GCC) 4.9.0
    reproduce:
    wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
    chmod +x ~/bin/make.cross
    # save the attached .config to linux build tree
    make.cross ARCH=xtensa

    All error/warnings (new ones prefixed by >>):

    drivers//misc/lkdtm_xpfo.c: In function 'read_user_with_flags':
    drivers//misc/lkdtm_xpfo.c:31:2: error: implicit declaration of function 'user_virt_to_phys' [-Werror=implicit-function-declaration]
    phys_addr = user_virt_to_phys(user_addr);
    ^
    >> drivers//misc/lkdtm_xpfo.c:37:2: error: implicit declaration of function 'phys_to_virt' [-Werror=implicit-function-declaration]
    virt_addr = phys_to_virt(phys_addr);
    ^
    >> drivers//misc/lkdtm_xpfo.c:37:12: warning: assignment makes pointer from integer without a cast
    virt_addr = phys_to_virt(phys_addr);
    ^
    >> drivers//misc/lkdtm_xpfo.c:38:2: error: implicit declaration of function 'virt_to_phys' [-Werror=implicit-function-declaration]
    if (phys_addr != virt_to_phys(virt_addr)) {
    ^
    cc1: some warnings being treated as errors

    vim +/phys_to_virt +37 drivers//misc/lkdtm_xpfo.c

    10
    11 void read_user_with_flags(unsigned long flags)
    12 {
    13 unsigned long user_addr, user_data = 0xdeadbeef;
    14 phys_addr_t phys_addr;
    15 void *virt_addr;
    16
    17 user_addr = vm_mmap(NULL, 0, PAGE_SIZE,
    18 PROT_READ | PROT_WRITE | PROT_EXEC,
    19 flags, 0);
    20 if (user_addr >= TASK_SIZE) {
    21 pr_warn("Failed to allocate user memory\n");
    22 return;
    23 }
    24
    25 if (copy_to_user((void __user *)user_addr, &user_data,
    26 sizeof(user_data))) {
    27 pr_warn("copy_to_user failed\n");
    28 goto free_user;
    29 }
    30
    > 31 phys_addr = user_virt_to_phys(user_addr);
    32 if (!phys_addr) {
    33 pr_warn("Failed to get physical address of user memory\n");
    34 goto free_user;
    35 }
    36
    > 37 virt_addr = phys_to_virt(phys_addr);
    > 38 if (phys_addr != virt_to_phys(virt_addr)) {
    39 pr_warn("Physical address of user memory seems incorrect\n");
    40 goto free_user;
    41 }
    42
    43 pr_info("Attempting bad read from kernel address %p\n", virt_addr);
    44 if (*(unsigned long *)virt_addr == user_data)
    45 pr_info("Huh? Bad read succeeded?!\n");
    46 else
    47 pr_info("Huh? Bad read didn't fail but data is incorrect?!\n");
    48
    49 free_user:
    50 vm_munmap(user_addr, PAGE_SIZE);
    51 }
    52

    ---
    0-DAY kernel test infrastructure Open Source Technology Center
    https://lists.01.org/pipermail/kbuild-all Intel Corporation
    [unhandled content-type:application/gzip]
    \
     
     \ /
      Last update: 2017-08-12 23:06    [W:4.286 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site