OSDN Git Service

Merge branch 'uaccess.__copy_from_user' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Jun 2020 23:18:46 +0000 (16:18 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Jun 2020 23:18:46 +0000 (16:18 -0700)
Pull uaccess/__copy_from_user updates from Al Viro:
 "Getting rid of __copy_from_user() callers - patches that don't fit
  into other series"

* 'uaccess.__copy_from_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  pstore: switch to copy_from_user()
  firewire: switch ioctl_queue_iso to use of copy_from_user()

drivers/firewire/core-cdev.c
fs/pstore/ram_core.c

index 6e291d8..c7ea4f2 100644 (file)
@@ -1081,8 +1081,6 @@ static int ioctl_queue_iso(struct client *client, union ioctl_arg *arg)
                return -EINVAL;
 
        p = (struct fw_cdev_iso_packet __user *)u64_to_uptr(a->packets);
-       if (!access_ok(p, a->size))
-               return -EFAULT;
 
        end = (void __user *)p + a->size;
        count = 0;
@@ -1120,7 +1118,7 @@ static int ioctl_queue_iso(struct client *client, union ioctl_arg *arg)
                        &p->header[transmit_header_bytes / 4];
                if (next > end)
                        return -EINVAL;
-               if (__copy_from_user
+               if (copy_from_user
                    (u.packet.header, p->header, transmit_header_bytes))
                        return -EFAULT;
                if (u.packet.skip && ctx->type == FW_ISO_CONTEXT_TRANSMIT &&
index c917c19..aa8e0b6 100644 (file)
@@ -283,7 +283,7 @@ static int notrace persistent_ram_update_user(struct persistent_ram_zone *prz,
        const void __user *s, unsigned int start, unsigned int count)
 {
        struct persistent_ram_buffer *buffer = prz->buffer;
-       int ret = unlikely(__copy_from_user(buffer->data + start, s, count)) ?
+       int ret = unlikely(copy_from_user(buffer->data + start, s, count)) ?
                -EFAULT : 0;
        persistent_ram_update_ecc(prz, start, count);
        return ret;
@@ -348,8 +348,6 @@ int notrace persistent_ram_write_user(struct persistent_ram_zone *prz,
        int rem, ret = 0, c = count;
        size_t start;
 
-       if (unlikely(!access_ok(s, count)))
-               return -EFAULT;
        if (unlikely(c > prz->buffer_size)) {
                s += c - prz->buffer_size;
                c = prz->buffer_size;