uffdio_poison
struct uffdio_poison uffdio_poison;
struct uffdio_poison __user *user_uffdio_poison;
user_uffdio_poison = (struct uffdio_poison __user *)arg;
if (copy_from_user(&uffdio_poison, user_uffdio_poison,
sizeof(uffdio_poison) - (sizeof(__s64))))
ret = validate_range(ctx->mm, uffdio_poison.range.start,
uffdio_poison.range.len);
if (uffdio_poison.mode & ~UFFDIO_POISON_MODE_DONTWAKE)
ret = mfill_atomic_poison(ctx, uffdio_poison.range.start,
uffdio_poison.range.len, 0);
if (!(uffdio_poison.mode & UFFDIO_POISON_MODE_DONTWAKE)) {
range.start = uffdio_poison.range.start;
ret = range.len == uffdio_poison.range.len ? 0 : -EAGAIN;
struct uffdio_poison)
struct uffdio_poison)
struct uffdio_poison uffdio_poison = { 0 };
uffdio_poison.range.start = (unsigned long) gopts->area_dst + offset;
uffdio_poison.range.len = gopts->page_size;
uffdio_poison.mode = 0;
ret = ioctl(gopts->uffd, UFFDIO_POISON, &uffdio_poison);
res = uffdio_poison.updated;