Skip to content
  1. Jul 11, 2017
  2. Jul 10, 2017
    • Goldwyn Rodrigues's avatar
      btrfs: nowait aio: Correct assignment of pos · ff0fa732
      Goldwyn Rodrigues authored
      Assigning pos for usage early messes up in append mode, where the pos is
      re-assigned in generic_write_checks(). Assign pos later to get the
      correct position to write from iocb->ki_pos.
      
      Since check_can_nocow also uses the value of pos, we shift
      generic_write_checks() before check_can_nocow(). Checks with IOCB_DIRECT
      are present in generic_write_checks(), so checking for IOCB_NOWAIT is
      enough.
      
      Also, put locking sequence in the fast path.
      
      This fixes a user visible bug, as reported:
      
      "apparently breaks several shell related features on my system.
      In zsh history stopped working, because no new entries are added
      anymore.
      I fist noticed the issue when I tried to build mplayer. It uses a shell
      script to generate a help_mp.h file:
      [...]
      
      Here is a simple testcase:
      
       % echo "foo" >> test
       % echo "foo" >> test
       % cat test
       foo
       %
      "
      
      Fixes: edf064e7
      
       ("btrfs: nowait aio support")
      CC: Jens Axboe <axboe@kernel.dk>
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Link: https://lkml.kernel.org/r/20170704042306.GA274@x4
      
      
      Signed-off-by: default avatarGoldwyn Rodrigues <rgoldwyn@suse.com>
      Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
      ff0fa732
    • Al Viro's avatar
      fix brown paperbag bug in inlined copy_..._iter() · c43aeb19
      Al Viro authored
      "copied nothing" == "return 0", not "return full size".
      
      Fixes: aa28de27
      
       "iov_iter/hardening: move object size checks to inlined part"
      Spotted-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c43aeb19
    • Jiri Kosina's avatar
      Merge branches 'for-4.13/multitouch', 'for-4.13/retrode',... · 837c194a
      Jiri Kosina authored
      Merge branches 'for-4.13/multitouch', 'for-4.13/retrode', 'for-4.13/transport-open-close-consolidation', 'for-4.13/upstream' and 'for-4.13/wacom' into for-linus
      837c194a
    • Jiri Kosina's avatar
      Merge branches 'for-4.13/ish' and 'for-4.13/ite' into for-linus · 604250dd
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/hid-core.c
      604250dd
    • Jiri Kosina's avatar
      Merge branches 'for-4.13/apple' and 'for-4.13/asus' into for-linus · 4f94ff4e
      Jiri Kosina authored
      Conflicts:
      	drivers/hid/hid-core.c
      4f94ff4e
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.13' of git://people.freedesktop.org/~airlied/linux · af3c8d98
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This is the main pull request for the drm, I think I've got one later
        driver pull for mediatek SoC driver, I'm undecided on if it needs to
        go to you yet.
      
        Otherwise summary below:
      
        Core drm:
         - Atomic add driver private objects
         - Deprecate preclose hook in modern drivers
         - MST bandwidth tracking
         - Use kvmalloc in more places
         - Add mode_valid hook for crtc/encoder/bridge
         - Reduce sync_file construction time
         - Documentation updates
         - New DRM synchronisation object support
      
        New drivers:
         - pl111 - pl111 CLCD display controller
      
        Panel:
         - Innolux P079ZCA panel driver
         - Add NL12880B20-05, NL192108AC18-02D, P320HVN03 panels
         - panel-samsung-s6e3ha2: Add s6e3hf2 panel support
      
        i915:
         - SKL+ watermark fixes
         - G4x/G33 reset improvements
         - DP AUX backlight improvements
         - Buffer based GuC/host communication
         - New getparam for (sub)slice infomation
         - Cannonlake and Coffeelake initial patches
         - Execbuf optimisations
      
        radeon/amdgpu:
         - Lots of Vega10 bug fixes
         - Preliminary raven support
         - KIQ support for compute rings
         - MEC queue management rework
         - DCE6 Audio support
         - SR-IOV improvements
         - Better radeon/amdgpu selection support
      
        nouveau:
         - HDMI stereoscopic support
         - Display code rework for >= GM20x GPUs
      
        msm:
         - GEM rework for fine-grained locking
         - Per-process pagetable work
         - HDMI fixes for Snapdragon 820.
      
        vc4:
         - Remove 256MB CMA limit from vc4
         - Add out-fence support
         - Add support for cygnus
         - Get/set tiling ioctls support
         - Add T-format tiling support for scanout
      
        zte:
         - add VGA support.
      
        etnaviv:
         - Thermal throttle support for newer GPUs
         - Restore userspace buffer cache performance
         - dma-buf sync fix
      
        stm:
         - add stm32f429 display support
      
        exynos:
         - Rework vblank handling
         - Fixup sw-trigger code
      
        sun4i:
         - V3s display engine support
         - HDMI support for older SoCs
         - Preliminary work on dual-pipeline SoCs.
      
        rcar-du:
         - VSP work
      
        imx-drm:
         - Remove counter load enable from PRE
         - Double read/write reduction flag support
      
        tegra:
         - Documentation for the host1x and drm driver.
         - Lots of staging ioctl fixes due to grate project work.
      
        omapdrm:
         - dma-buf fence support
         - TILER rotation fixes"
      
      * tag 'drm-for-v4.13' of git://people.freedesktop.org/~airlied/linux: (1270 commits)
        drm: Remove unused drm_file parameter to drm_syncobj_replace_fence()
        drm/amd/powerplay: fix bug fail to remove sysfs when rmmod amdgpu.
        amdgpu: Set cik/si_support to 1 by default if radeon isn't built
        drm/amdgpu/gfx9: fix driver reload with KIQ
        drm/amdgpu/gfx8: fix driver reload with KIQ
        drm/amdgpu: Don't call amd_powerplay_destroy() if we don't have powerplay
        drm/ttm: Fix use-after-free in ttm_bo_clean_mm
        drm/amd/amdgpu: move get memory type function from early init to sw init
        drm/amdgpu/cgs: always set reference clock in mode_info
        drm/amdgpu: fix vblank_time when displays are off
        drm/amd/powerplay: power value format change for Vega10
        drm/amdgpu/gfx9: support the amdgpu.disable_cu option
        drm/amd/powerplay: change PPSMC_MSG_GetCurrPkgPwr for Vega10
        drm/amdgpu: Make amdgpu_cs_parser_init static (v2)
        drm/amdgpu/cs: fix a typo in a comment
        drm/amdgpu: Fix the exported always on CU bitmap
        drm/amdgpu/gfx9: gfx_v9_0_enable_gfx_static_mg_power_gating() can be static
        drm/amdgpu/psp: upper_32_bits/lower_32_bits for address setup
        drm/amd/powerplay/cz: print message if smc message fails
        drm/amdgpu: fix typo in amdgpu_debugfs_test_ib_init
        ...
      af3c8d98
    • David Howells's avatar
      afs: Add metadata xattrs · d3e3b7ea
      David Howells authored
      
      
      Add xattrs to allow the user to get/set metadata in lieu of having pioctl()
      available.  The following xattrs are now available:
      
       - "afs.cell"
      
         The name of the cell in which the vnode's volume resides.
      
       - "afs.fid"
      
         The volume ID, vnode ID and vnode uniquifier of the file as three hex
         numbers separated by colons.
      
       - "afs.volume"
      
         The name of the volume in which the vnode resides.
      
      For example:
      
      	# getfattr -d -m ".*" /mnt/scratch
      	getfattr: Removing leading '/' from absolute path names
      	# file: mnt/scratch
      	afs.cell="mycell.myorg.org"
      	afs.fid="10000b:1:1"
      	afs.volume="scratch"
      
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3e3b7ea
    • Marc Dionne's avatar
      afs: Ignore AFS_ACE_READ and AFS_ACE_WRITE for directories · fd249821
      Marc Dionne authored
      
      
      The AFS_ACE_READ and AFS_ACE_WRITE permission bits should not
      be used to make access decisions for the directory itself.  They
      are meant to control access for the objects contained in that
      directory.
      
      Reading a directory is allowed if the AFS_ACE_LOOKUP bit is set.
      This would cause an incorrect access denied error for a directory
      with AFS_ACE_LOOKUP but not AFS_ACE_READ.
      
      The AFS_ACE_WRITE bit does not allow operations that modify the
      directory.  For a directory with AFS_ACE_WRITE but neither
      AFS_ACE_INSERT nor AFS_ACE_DELETE, this would result in trying
      operations that would ultimately be denied by the server.
      
      Signed-off-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fd249821
    • Cong Wang's avatar
      mqueue: fix a use-after-free in sys_mq_notify() · f991af3d
      Cong Wang authored
      
      
      The retry logic for netlink_attachskb() inside sys_mq_notify()
      is nasty and vulnerable:
      
      1) The sock refcnt is already released when retry is needed
      2) The fd is controllable by user-space because we already
         release the file refcnt
      
      so we when retry but the fd has been just closed by user-space
      during this small window, we end up calling netlink_detachskb()
      on the error path which releases the sock again, later when
      the user-space closes this socket a use-after-free could be
      triggered.
      
      Setting 'sock' to NULL here should be sufficient to fix it.
      
      Reported-by: default avatarGeneBlue <geneblue.mail@gmail.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f991af3d
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2b976203
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "The x86 updates contain:
      
         - A fix for a longstanding PAT bug, where PAT was reported on CPUs
           that do not support it, which leads to wrong caching attributes and
           missing MTRR updates
      
         - Prevent overwriting of the e820 firmware table, which causes kexec
           kernels to lose the fake mptable which is stored there.
      
         - Cleanup of the UV/BAU code, removing unused code and making local
           functions static"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/e820: Introduce the bootloader provided e820_table_firmware[] table
        x86/boot/e820: Rename the e820_table_firmware to e820_table_kexec
        x86/boot/e820: Avoid overwriting e820_table_firmware
        x86/mm/pat: Don't report PAT on CPUs that don't support it
        x86/platform/uv/BAU: Minor cleanup, make some local functions static
      2b976203
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8d97a6c3
      Linus Torvalds authored
      Pull timers fixlet from Thomas Gleixner:
       "Add Frederic Weisbecker as NOHZ/dyntick maintainer"
      
      [ And an unmentioned and unrelated typo fix in the same commit? Hmm.. ]
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        MAINTAINERS: Add Frederic Weisbecker as nohz/dyntics maintainer
      8d97a6c3
    • Linus Torvalds's avatar
      Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d3c4a42
      Linus Torvalds authored
      Pull smp/hotplug fix from Thomas Gleixner:
       "A single fix for a brown paperbag bug:
      
        The unparking of the initial percpu threads of an upcoming CPU happens
        right now on the idle task, but that's wrong as the unpark function
        might sleep. Move it to the control CPU."
      
      * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp/hotplug: Move unparking of percpu threads to the control CPU
      4d3c4a42
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4fde846a
      Linus Torvalds authored
      Pull scheduler fixes from Thomas Gleixner:
       "This scheduler update provides:
      
         - The (hopefully) final fix for the vtime accounting issues which
           were around for quite some time
      
         - Use types known to user space in UAPI headers to unbreak user space
           builds
      
         - Make load balancing respect the current scheduling domain again
           instead of evaluating unrelated CPUs"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/headers/uapi: Fix linux/sched/types.h userspace compilation errors
        sched/fair: Fix load_balance() affinity redo path
        sched/cputime: Accumulate vtime on top of nsec clocksource
        sched/cputime: Move the vtime task fields to their own struct
        sched/cputime: Rename vtime fields
        sched/cputime: Always set tsk->vtime_snap_whence after accounting vtime
        vtime, sched/cputime: Remove vtime_account_user()
        Revert "sched/cputime: Refactor the cputime_adjust() code"
      4fde846a
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c3931a87
      Linus Torvalds authored
      Pull perf fixes from Thomas Gleixner:
       "A couple of fixes for perf and kprobes:
      
         - Add he missing exclude_kernel attribute for the precise_ip level so
           !CAP_SYS_ADMIN users get the proper results.
      
         - Warn instead of failing completely when perf has no unwind support
           for a particular architectiure built in.
      
         - Ensure that jprobes are at function entry and not at some random
           place"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        kprobes: Ensure that jprobe probepoints are at function entry
        kprobes: Simplify register_jprobes()
        kprobes: Rename [arch_]function_offset_within_entry() to [arch_]kprobe_on_func_entry()
        perf unwind: Do not fail due to missing unwind support
        perf evsel: Set attr.exclude_kernel when probing max attr.precise_ip
      c3931a87
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c8b2ba83
      Linus Torvalds authored
      Pull locking fixes from Thomas Gleixner:
      
       - Fix the EINTR logic in rwsem-spinlock to avoid double locking by a
         writer and a reader
      
       - Add a missing include to qspinlocks
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/qspinlock: Explicitly include asm/prefetch.h
        locking/rwsem-spinlock: Fix EINTR branch in __down_write_common()
      c8b2ba83
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7cb328c3
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
      
       - A few fixes mopping up the fallout of the big irq overhaul
      
       - Move the interrupt resource management logic out of the spin locked,
         irq disabled region to avoid unnecessary restrictions of the resource
         callbacks
      
       - Preparation for reworking the per cpu irq request function.
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqdomain: Allow ACPI device nodes to be used as irqdomain identifiers
        genirq/debugfs: Remove redundant NULL pointer check
        genirq: Allow to pass the IRQF_TIMER flag with percpu irq request
        genirq/timings: Move free timings out of spinlocked region
        genirq: Move irq resource handling out of spinlocked region
        genirq: Add mutex to irq desc to serialize request/free_irq()
        genirq: Move bus locking into __setup_irq()
        genirq: Force inlining of __irq_startup_managed to prevent build failure
        genirq/debugfs: Fix build for !CONFIG_IRQ_DOMAIN
      7cb328c3
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 19bf2e0e
      Linus Torvalds authored
      Pull objtool fix from Thomas Gleixner:
       "A fix to the objtool sibling call detection logic to distinguish
        normal jumps inside a function from a real sibling call"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Fix sibling call detection logic
      19bf2e0e
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · bc2c6421
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "The first major feature for ext4 this merge window is the largedir
        feature, which allows ext4 directories to support over 2 billion
        directory entries (assuming ~64 byte file names; in practice, users
        will run into practical performance limits first.) This feature was
        originally written by the Lustre team, and credit goes to Artem
        Blagodarenko from Seagate for getting this feature upstream.
      
        The second major major feature allows ext4 to support extended
        attribute values up to 64k. This feature was also originally from
        Lustre, and has been enhanced by Tahsin Erdogan from Google with a
        deduplication feature so that if multiple files have the same xattr
        value (for example, Windows ACL's stored by Samba), only one copy will
        be stored on disk for encoding and caching efficiency.
      
        We also have the usual set of bug fixes, cleanups, and optimizations"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (47 commits)
        ext4: fix spelling mistake: "prellocated" -> "preallocated"
        ext4: fix __ext4_new_inode() journal credits calculation
        ext4: skip ext4_init_security() and encryption on ea_inodes
        fs: generic_block_bmap(): initialize all of the fields in the temp bh
        ext4: change fast symlink test to not rely on i_blocks
        ext4: require key for truncate(2) of encrypted file
        ext4: don't bother checking for encryption key in ->mmap()
        ext4: check return value of kstrtoull correctly in reserved_clusters_store
        ext4: fix off-by-one fsmap error on 1k block filesystems
        ext4: return EFSBADCRC if a bad checksum error is found in ext4_find_entry()
        ext4: return EIO on read error in ext4_find_entry
        ext4: forbid encrypting root directory
        ext4: send parallel discards on commit completions
        ext4: avoid unnecessary stalls in ext4_evict_inode()
        ext4: add nombcache mount option
        ext4: strong binding of xattr inode references
        ext4: eliminate xattr entry e_hash recalculation for removes
        ext4: reserve space for xattr entries/names
        quota: add get_inode_usage callback to transfer multi-inode charges
        ext4: xattr inode deduplication
        ...
      bc2c6421
    • Linus Torvalds's avatar
      Merge tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt · 58f587cb
      Linus Torvalds authored
      Pull fscrypt updates from Ted Ts'o:
       "Add support for 128-bit AES and some cleanups to fscrypt"
      
      * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
        fscrypt: make ->dummy_context() return bool
        fscrypt: add support for AES-128-CBC
        fscrypt: inline fscrypt_free_filename()
      58f587cb