1. 14 Jan, 2015 1 commit
    • Arnd Bergmann's avatar
      Merge tag 'uaccess_for_upstream' of... · 643165c8
      Arnd Bergmann authored
      Merge tag 'uaccess_for_upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost into asm-generic
      
      Merge "uaccess: fix sparse warning on get/put_user for bitwise types" from Michael S. Tsirkin:
      
      At the moment, if p and x are both tagged as bitwise types,
      some of get_user(x, p), put_user(x, p), __get_user(x, p), __put_user(x, p)
      might produce a sparse warning on many architectures.
      This is a false positive: *p on these architectures is loaded into long
      (typically using asm), then cast back to typeof(*p).
      
      When typeof(*p) is a bitwise type (which is uncommon), such a cast needs
      __force, otherwise sparse produces a warning.
      
      Some architectures already have the __force tag, add it
      where it's missing.
      
      I verified that adding these __force casts does not supress any useful warnings.
      
      Specifically, vhost wants to read/write bitwise types in userspace memory
      using get_user/put_user.
      At the moment this triggers sparse errors, since the value is passed through an
      integer.
      
      For example:
          __le32 __user *p;
          __u32 x;
      
      both
          put_user(x, p);
      and
          get_user(x, p);
      should be safe, but produce warnings on some architectures.
      
      While there, I noticed that a bunch of architectures violated
      coding style rules within uaccess macros.
      Included patches to fix them up.
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      
      * tag 'uaccess_for_upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (37 commits)
        sparc32: nocheck uaccess coding style tweaks
        sparc64: nocheck uaccess coding style tweaks
        xtensa: macro whitespace fixes
        sh: macro whitespace fixes
        parisc: macro whitespace fixes
        m68k: macro whitespace fixes
        m32r: macro whitespace fixes
        frv: macro whitespace fixes
        cris: macro whitespace fixes
        avr32: macro whitespace fixes
        arm64: macro whitespace fixes
        arm: macro whitespace fixes
        alpha: macro whitespace fixes
        blackfin: macro whitespace fixes
        sparc64: uaccess_64 macro whitespace fixes
        sparc32: uaccess_32 macro whitespace fixes
        avr32: whitespace fix
        sh: fix put_user sparse errors
        metag: fix put_user sparse errors
        ia64: fix put_user sparse errors
        ...
      643165c8
  2. 13 Jan, 2015 37 commits
  3. 11 Jan, 2015 2 commits