linux/arch/um/kernel/maccess.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2013 Richard Weinberger <richrd@nod.at>
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 */
   8
   9#include <linux/uaccess.h>
  10#include <linux/kernel.h>
  11#include <os.h>
  12
  13long probe_kernel_read(void *dst, const void *src, size_t size)
  14{
  15        void *psrc = (void *)rounddown((unsigned long)src, PAGE_SIZE);
  16
  17        if ((unsigned long)src < PAGE_SIZE || size <= 0)
  18                return -EFAULT;
  19
  20        if (os_mincore(psrc, size + src - psrc) <= 0)
  21                return -EFAULT;
  22
  23        return __probe_kernel_read(dst, src, size);
  24}
  25