Skip to content
Permalink
Sargun-Dhillon…

Commits on Jul 1, 2017

  1. btrfs: Add qgroup_auto_cleanup mount flag to automatically cleanup qg…

    …roups
    
    This patch introduces a new mount option - qgroup_auto_cleanup.
    The purpose of this mount option is to cause btrfs to automatically
    delete qgroups on subvolume deletion. This only cleans up the
    associated level-0 qgroup, and not qgroups that are above it.
    
    Since this behaviour is API-changing it is opt-in. Existing software,
    and scripts may be doing qgroup cleanup on subvolume deletion explicitly,
    and the absence of a qgroup may cause failure.
    
    Signed-off-by: Sargun Dhillon <sargun@sargun.me>
    sargun authored and fengguang committed Jul 1, 2017

Commits on Jun 26, 2017

  1. Linux 4.12-rc7

    torvalds committed Jun 26, 2017

Commits on Jun 25, 2017

  1. Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull x86 fix from Thomas Gleixner:
     "A single fix to unbreak the vdso32 build for 64bit kernels caused by
      excess #includes in the mshyperv header"
    
    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/mshyperv: Remove excess #includes from mshyperv.h
    torvalds committed Jun 25, 2017
  2. Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/sc…

    …m/linux/kernel/git/tip/tip
    
    Pull timer fixes from Thomas Gleixner:
     "A few fixes for timekeeping and timers:
    
       - Plug a subtle race due to a missing READ_ONCE() in the timekeeping
         code where reloading of a pointer results in an inconsistent
         callback argument being supplied to the clocksource->read function.
    
       - Correct the CLOCK_MONOTONIC_RAW sub-nanosecond accounting in the
         time keeping core code, to prevent a possible discontuity.
    
       - Apply a similar fix to the arm64 vdso clock_gettime()
         implementation
    
       - Add missing includes to clocksource drivers, which relied on
         indirect includes which fails in certain configs.
    
       - Use the proper iomem pointer for read/iounmap in a probe function"
    
    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW
      time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting
      time: Fix clock->read(clock) race around clocksource changes
      clocksource: Explicitly include linux/clocksource.h when needed
      clocksource/drivers/arm_arch_timer: Fix read and iounmap of incorrect variable
    torvalds committed Jun 25, 2017
  3. Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/tip/tip
    
    Pull perf fixes from Thomas Gleixner:
     "Three fixlets for perf:
    
       - Return the proper error code if aux buffers for a event are not
         supported.
    
       - Calculate the probe offset for inlined functions correctly
    
       - Update the Skylake DTLB load/store miss event so it can count 1G
         TLB entries as well"
    
    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      perf probe: Fix probe definition for inlined functions
      perf/x86/intel: Add 1G DTLB load/store miss support for SKL
      perf/aux: Correct return code of rb_alloc_aux() if !has_aux(ev)
    torvalds committed Jun 25, 2017
  4. Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tip/tip
    
    Pull irq fix from Thomas Gleixner:
     "A single fix for the MIPS GIC to prevent ftrace recursion"
    
    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      irqchip/mips-gic: Mark count and compare accessors notrace
    torvalds committed Jun 25, 2017
  5. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/dtor/input
    
    Pull input fixes from Dmitry Torokhov:
    
     - a quirk to i8042 to ignore timeout bit on Lifebook AH544
    
     - a fixup to Synaptics RMI function 54 that was breaking some Dells
    
     - a fix for memory leak in soc_button_array driver
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
      Input: synaptics-rmi4 - only read the F54 query registers which are used
      Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list
      Input: soc_button_array - fix leaking the ACPI button descriptor buffer
    torvalds committed Jun 25, 2017
  6. Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending

    Pull SCSI target fixes from Nicholas Bellinger:
     "Here are the target-pending fixes for v4.12-rc7 that have been queued
      up for the last 2 weeks. This includes:
    
       - Fix a TMR related kref underflow detected by the recent refcount_t
         conversion in upstream.
    
       - Fix a iscsi-target corner case during explicit connection logout
         timeout failure.
    
       - Address last fallout in iscsi-target immediate data handling from
         v4.4 target-core now allowing control CDB payload underflow"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
      iscsi-target: Reject immediate data underflow larger than SCSI transfer length
      iscsi-target: Fix delayed logout processing greater than SECONDS_FOR_LOGOUT_COMP
      target: Fix kref->refcount underflow in transport_cmd_finish_abort
    torvalds committed Jun 25, 2017

Commits on Jun 24, 2017

  1. Merge tag 'kbuild-fixes-v4.12-2' of git://git.kernel.org/pub/scm/linu…

    …x/kernel/git/masahiroy/linux-kbuild
    
    Pull Kbuild fixes from Masahiro Yamada:
     "Nothing scary, just some random fixes:
    
       - fix warnings of host programs
    
       - fix "make tags" when COMPILED_SOURCE=1 is specified along with O=
    
       - clarify help message of C=1 option
    
       - fix dependency for ncurses compatibility check
    
       - fix "make headers_install" for fakechroot environment"
    
    * tag 'kbuild-fixes-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
      kconfig: fix sparse warnings in nconfig
      kbuild: fix header installation under fakechroot environment
      kconfig: Check for libncurses before menuconfig
      Kbuild: tiny correction on `make help`
      tags: honor COMPILED_SOURCE with apart output directory
      genksyms: add printf format attribute to error_with_pos()
    torvalds committed Jun 24, 2017
  2. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/ebiederm/user-namespace
    
    Pull timer fix from Eric Biederman:
     "This fixes an issue of confusing injected signals with the signals
      from posix timers that has existed since posix timers have been in the
      kernel.
    
      This patch is slightly simpler than my earlier version of this patch
      as I discovered in testing that I had misspelled "#ifdef
      CONFIG_POSIX_TIMERS". So I deleted that unnecessary test and made
      setting of resched_timer uncondtional.
    
      I have tested this and verified that without this patch there is a
      nasty hang that is easy to trigger, and with this patch everything
      works properly"
    
    Thomas Gleixner dixit:
     "It fixes the problem at hand and covers the ptrace case as well, which
      I missed.
    
      Reviewed-and-tested-by: Thomas Gleixner <tglx@linutronix.de>"
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
      signal: Only reschedule timers on signals timers have sent
    torvalds committed Jun 24, 2017
  3. x86/mshyperv: Remove excess #includes from mshyperv.h

    A recent commit included linux/slab.h in linux/irq.h. This breaks the build
    of vdso32 on a 64-bit kernel.
    
    The reason is that linux/irq.h gets included into the vdso code via
    linux/interrupt.h which is included from asm/mshyperv.h. That makes the
    32-bit vdso compile fail, because slab.h includes the pgtable headers for
    64-bit on a 64-bit build.
    
    Neither linux/clocksource.h nor linux/interrupt.h are needed in the
    mshyperv.h header file itself - it has a dependency on <linux/atomic.h>.
    
    Remove the includes and unbreak the build.
    
    Reported-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: devel@linuxdriverproject.org
    Fixes: dee863b ("hv: export current Hyper-V clocksource")
    Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1706231038460.2647@nanos
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Thomas Gleixner Ingo Molnar
    Thomas Gleixner authored and Ingo Molnar committed Jun 24, 2017
  4. Merge tag 'powerpc-4.12-7' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/powerpc/linux
    
    Pull powerpc fixes from Michael Ellerman:
     "Some more powerpc fixes for 4.12. Most of these actually came in last
      week but got held up for some more testing.
    
       - three fixes for kprobes/ftrace/livepatch interactions.
    
       - properly handle data breakpoints when using the Radix MMU.
    
       - fix for perf sampling of registers during call_usermodehelper().
    
       - properly initialise the thread_info on our emergency stacks
    
       - add an explicit flush when doing TLB invalidations for a process
         using NPU2.
    
      Thanks to: Alistair Popple, Naveen N. Rao, Nicholas Piggin, Ravi
      Bangoria, Masami Hiramatsu"
    
    * tag 'powerpc-4.12-7' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
      powerpc/64: Initialise thread_info for emergency stacks
      powerpc/powernv/npu-dma: Add explicit flush when sending an ATSD
      powerpc/perf: Fix oops when kthread execs user process
      powerpc/64s: Handle data breakpoints in Radix mode
      powerpc/kprobes: Skip livepatch_handler() for jprobes
      powerpc/ftrace: Pass the correct stack pointer for DYNAMIC_FTRACE_WITH_REGS
      powerpc/kprobes: Pause function_graph tracing during jprobes handling
    torvalds committed Jun 24, 2017
  5. Merge tag 'acpi-4.12-rc7' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/rafael/linux-pm
    
    Pull ACPI fix from Rafael Wysocki:
     "This fixes the ACPI-based enumeration of some I2C and SPI devices
      broken in 4.11.
    
      Specifics:
    
       - I2C and SPI devices are expected to be enumerated by the I2C and
         SPI subsystems, respectively, but due to a change made during the
         4.11 cycle, in some cases the ACPI core marks them as already
         enumerated which causes the I2C and SPI subsystems to overlook
         them, so fix that (Jarkko Nikula)"
    
    * tag 'acpi-4.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      ACPI / scan: Fix enumeration for special SPI and I2C devices
    torvalds committed Jun 24, 2017
  6. Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/…

    …linux/kernel/git/wsa/linux
    
    Pull i2c fix from Wolfram Sang.
    
    * 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
      i2c: imx: Use correct function to write to register
    torvalds committed Jun 24, 2017
  7. Merge tag 'gpio-v4.12-3' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/linusw/linux-gpio
    
    Pull GPIO fix from Linus Walleij:
     "A single GPIO patch fixing the compatible string for the MVEBU PWM
      controller embedded in the GPIO controller before we release v4.12.
      Hopefully"
    
    * tag 'gpio-v4.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
      gpio: mvebu: change compatible string for PWM support
    torvalds committed Jun 24, 2017
  8. Merge tag 'sound-4.12-rc7' of git://git.kernel.org/pub/scm/linux/kern…

    …el/git/tiwai/sound
    
    Pull sound fixes from Takashi Iwai:
     "Nothing exciting here, just a few stable fixes:
    
       - suppress spurious kernel WARNING in PCM core
    
       - fix potential spin deadlock at error handling in firewire
    
       - HD-audio PCI ID addition / fixup"
    
    * tag 'sound-4.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: hda - Apply quirks to Broxton-T, too
      ALSA: firewire-lib: Fix stall of process context at packet error
      ALSA: pcm: Don't treat NULL chmap as a fatal error
      ALSA: hda - Add Coffelake PCI ID
    torvalds committed Jun 24, 2017
  9. Merge tag 'drm-fixes-for-v4.12-rc7' of git://people.freedesktop.org/~…

    …airlied/linux
    
    Pull drm fixes from Dave Airlie:
     "A varied bunch of fixes, one for an API regression with connectors.
    
      Otherwise amdgpu and i915 have a bunch of varied fixes, the shrinker
      ones being the most important"
    
    * tag 'drm-fixes-for-v4.12-rc7' of git://people.freedesktop.org/~airlied/linux:
      drm: Fix GETCONNECTOR regression
      drm/radeon: add a quirk for Toshiba Satellite L20-183
      drm/radeon: add a PX quirk for another K53TK variant
      drm/amdgpu: adjust default display clock
      drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
      drm/amdgpu: add Polaris12 DID
      drm/i915: Don't enable backlight at setup time.
      drm/i915: Plumb the correct acquire ctx into intel_crtc_disable_noatomic()
      drm/i915: Fix deadlock witha the pipe A quirk during resume
      drm/i915: Remove __GFP_NORETRY from our buffer allocator
      drm/i915: Encourage our shrinker more when our shmemfs allocations fails
      drm/i915: Differentiate between sw write location into ring and last hw read
    torvalds committed Jun 24, 2017
  10. Merge tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/l…

    …inux/kernel/git/tytso/random
    
    Pull random fixes from Ted Ts'o:
     "Fix some locking and gcc optimization issues from the most recent
      random_for_linus_stable pull request"
    
    * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
      random: silence compiler warnings and fix race
    torvalds committed Jun 24, 2017
  11. Merge tag 'for-4.12/dm-fixes-4' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/device-mapper/linux-dm
    
    Pull device mapper fixes from Mike Snitzer:
    
     - a revert of a DM mirror commit that has proven to make the code prone
       to crash
    
     - a DM io reference count fix that resolves a NULL pointer seen when
       issuing discards to a DM mirror target's device whose mirror legs do
       not all support discards
    
     - a couple DM integrity fixes
    
    * tag 'for-4.12/dm-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
      dm io: fix duplicate bio completion due to missing ref count
      dm integrity: fix to not disable/enable interrupts from interrupt context
      Revert "dm mirror: use all available legs on multiple failures"
      dm integrity: reject mappings too large for device
    torvalds committed Jun 24, 2017

Commits on Jun 23, 2017

  1. Merge branch 'akpm' (patches from Andrew)

    Merge misc fixes from Andrew Morton:
     "8 fixes"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
      fs/exec.c: account for argv/envp pointers
      ocfs2: fix deadlock caused by recursive locking in xattr
      slub: make sysfs file removal asynchronous
      lib/cmdline.c: fix get_options() overflow while parsing ranges
      fs/dax.c: fix inefficiency in dax_writeback_mapping_range()
      autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL
      mm/vmalloc.c: huge-vmap: fail gracefully on unexpected huge vmap mappings
      mm, thp: remove cond_resched from __collapse_huge_page_copy
    torvalds committed Jun 23, 2017
  2. fs/exec.c: account for argv/envp pointers

    When limiting the argv/envp strings during exec to 1/4 of the stack limit,
    the storage of the pointers to the strings was not included.  This means
    that an exec with huge numbers of tiny strings could eat 1/4 of the stack
    limit in strings and then additional space would be later used by the
    pointers to the strings.
    
    For example, on 32-bit with a 8MB stack rlimit, an exec with 1677721
    single-byte strings would consume less than 2MB of stack, the max (8MB /
    4) amount allowed, but the pointers to the strings would consume the
    remaining additional stack space (1677721 * 4 == 6710884).
    
    The result (1677721 + 6710884 == 8388605) would exhaust stack space
    entirely.  Controlling this stack exhaustion could result in
    pathological behavior in setuid binaries (CVE-2017-1000365).
    
    [akpm@linux-foundation.org: additional commenting from Kees]
    Fixes: b6a2fea ("mm: variable length argument support")
    Link: http://lkml.kernel.org/r/20170622001720.GA32173@beast
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Acked-by: Rik van Riel <riel@redhat.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Qualys Security Advisory <qsa@qualys.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    kees authored and torvalds committed Jun 23, 2017
  3. ocfs2: fix deadlock caused by recursive locking in xattr

    Another deadlock path caused by recursive locking is reported.  This
    kind of issue was introduced since commit 743b5f1 ("ocfs2: take
    inode lock in ocfs2_iop_set/get_acl()").  Two deadlock paths have been
    fixed by commit b891fa5 ("ocfs2: fix deadlock issue when taking
    inode lock at vfs entry points").  Yes, we intend to fix this kind of
    case in incremental way, because it's hard to find out all possible
    paths at once.
    
    This one can be reproduced like this.  On node1, cp a large file from
    home directory to ocfs2 mountpoint.  While on node2, run
    setfacl/getfacl.  Both nodes will hang up there.  The backtraces:
    
    On node1:
      __ocfs2_cluster_lock.isra.39+0x357/0x740 [ocfs2]
      ocfs2_inode_lock_full_nested+0x17d/0x840 [ocfs2]
      ocfs2_write_begin+0x43/0x1a0 [ocfs2]
      generic_perform_write+0xa9/0x180
      __generic_file_write_iter+0x1aa/0x1d0
      ocfs2_file_write_iter+0x4f4/0xb40 [ocfs2]
      __vfs_write+0xc3/0x130
      vfs_write+0xb1/0x1a0
      SyS_write+0x46/0xa0
    
    On node2:
      __ocfs2_cluster_lock.isra.39+0x357/0x740 [ocfs2]
      ocfs2_inode_lock_full_nested+0x17d/0x840 [ocfs2]
      ocfs2_xattr_set+0x12e/0xe80 [ocfs2]
      ocfs2_set_acl+0x22d/0x260 [ocfs2]
      ocfs2_iop_set_acl+0x65/0xb0 [ocfs2]
      set_posix_acl+0x75/0xb0
      posix_acl_xattr_set+0x49/0xa0
      __vfs_setxattr+0x69/0x80
      __vfs_setxattr_noperm+0x72/0x1a0
      vfs_setxattr+0xa7/0xb0
      setxattr+0x12d/0x190
      path_setxattr+0x9f/0xb0
      SyS_setxattr+0x14/0x20
    
    Fix this one by using ocfs2_inode_{lock|unlock}_tracker, which is
    exported by commit 439a36b ("ocfs2/dlmglue: prepare tracking logic
    to avoid recursive cluster lock").
    
    Link: http://lkml.kernel.org/r/20170622014746.5815-1-zren@suse.com
    Fixes: 743b5f1 ("ocfs2: take inode lock in ocfs2_iop_set/get_acl()")
    Signed-off-by: Eric Ren <zren@suse.com>
    Reported-by: Thomas Voegtle <tv@lio96.de>
    Tested-by: Thomas Voegtle <tv@lio96.de>
    Reviewed-by: Joseph Qi <jiangqi903@gmail.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Eric Ren authored and torvalds committed Jun 23, 2017
  4. slub: make sysfs file removal asynchronous

    Commit bf5eb3d ("slub: separate out sysfs_slab_release() from
    sysfs_slab_remove()") made slub sysfs file removals synchronous to
    kmem_cache shutdown.
    
    Unfortunately, this created a possible ABBA deadlock between slab_mutex
    and sysfs draining mechanism triggering the following lockdep warning.
    
      ======================================================
      [ INFO: possible circular locking dependency detected ]
      4.10.0-test+ torvalds#48 Not tainted
      -------------------------------------------------------
      rmmod/1211 is trying to acquire lock:
       (s_active#120){++++.+}, at: [<ffffffff81308073>] kernfs_remove+0x23/0x40
    
      but task is already holding lock:
       (slab_mutex){+.+.+.}, at: [<ffffffff8120f691>] kmem_cache_destroy+0x41/0x2d0
    
      which lock already depends on the new lock.
    
      the existing dependency chain (in reverse order) is:
    
      -> #1 (slab_mutex){+.+.+.}:
    	 lock_acquire+0xf6/0x1f0
    	 __mutex_lock+0x75/0x950
    	 mutex_lock_nested+0x1b/0x20
    	 slab_attr_store+0x75/0xd0
    	 sysfs_kf_write+0x45/0x60
    	 kernfs_fop_write+0x13c/0x1c0
    	 __vfs_write+0x28/0x120
    	 vfs_write+0xc8/0x1e0
    	 SyS_write+0x49/0xa0
    	 entry_SYSCALL_64_fastpath+0x1f/0xc2
    
      -> #0 (s_active#120){++++.+}:
    	 __lock_acquire+0x10ed/0x1260
    	 lock_acquire+0xf6/0x1f0
    	 __kernfs_remove+0x254/0x320
    	 kernfs_remove+0x23/0x40
    	 sysfs_remove_dir+0x51/0x80
    	 kobject_del+0x18/0x50
    	 __kmem_cache_shutdown+0x3e6/0x460
    	 kmem_cache_destroy+0x1fb/0x2d0
    	 kvm_exit+0x2d/0x80 [kvm]
    	 vmx_exit+0x19/0xa1b [kvm_intel]
    	 SyS_delete_module+0x198/0x1f0
    	 entry_SYSCALL_64_fastpath+0x1f/0xc2
    
      other info that might help us debug this:
    
       Possible unsafe locking scenario:
    
    	 CPU0                    CPU1
    	 ----                    ----
        lock(slab_mutex);
    				 lock(s_active#120);
    				 lock(slab_mutex);
        lock(s_active#120);
    
       *** DEADLOCK ***
    
      2 locks held by rmmod/1211:
       #0:  (cpu_hotplug.dep_map){++++++}, at: [<ffffffff810a7877>] get_online_cpus+0x37/0x80
       #1:  (slab_mutex){+.+.+.}, at: [<ffffffff8120f691>] kmem_cache_destroy+0x41/0x2d0
    
      stack backtrace:
      CPU: 3 PID: 1211 Comm: rmmod Not tainted 4.10.0-test+ torvalds#48
      Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v02.05 05/07/2012
      Call Trace:
       print_circular_bug+0x1be/0x210
       __lock_acquire+0x10ed/0x1260
       lock_acquire+0xf6/0x1f0
       __kernfs_remove+0x254/0x320
       kernfs_remove+0x23/0x40
       sysfs_remove_dir+0x51/0x80
       kobject_del+0x18/0x50
       __kmem_cache_shutdown+0x3e6/0x460
       kmem_cache_destroy+0x1fb/0x2d0
       kvm_exit+0x2d/0x80 [kvm]
       vmx_exit+0x19/0xa1b [kvm_intel]
       SyS_delete_module+0x198/0x1f0
       ? SyS_delete_module+0x5/0x1f0
       entry_SYSCALL_64_fastpath+0x1f/0xc2
    
    It'd be the cleanest to deal with the issue by removing sysfs files
    without holding slab_mutex before the rest of shutdown; however, given
    the current code structure, it is pretty difficult to do so.
    
    This patch punts sysfs file removal to a work item.  Before commit
    bf5eb3d, the removal was punted to a RCU delayed work item which is
    executed after release.  Now, we're punting to a different work item on
    shutdown which still maintains the goal removing the sysfs files earlier
    when destroying kmem_caches.
    
    Link: http://lkml.kernel.org/r/20170620204512.GI21326@htj.duckdns.org
    Fixes: bf5eb3d ("slub: separate out sysfs_slab_release() from sysfs_slab_remove()")
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Tested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    htejun authored and torvalds committed Jun 23, 2017
  5. lib/cmdline.c: fix get_options() overflow while parsing ranges

    When using get_options() it's possible to specify a range of numbers,
    like 1-100500.  The problem is that it doesn't track array size while
    calling internally to get_range() which iterates over the range and
    fills the memory with numbers.
    
    Link: http://lkml.kernel.org/r/2613C75C-B04D-4BFF-82A6-12F97BA0F620@gmail.com
    Signed-off-by: Ilya V. Matveychikov <matvejchikov@gmail.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    milabs authored and torvalds committed Jun 23, 2017
  6. fs/dax.c: fix inefficiency in dax_writeback_mapping_range()

    dax_writeback_mapping_range() fails to update iteration index when
    searching radix tree for entries needing cache flushing.  Thus each
    pagevec worth of entries is searched starting from the start which is
    inefficient and prone to livelocks.  Update index properly.
    
    Link: http://lkml.kernel.org/r/20170619124531.21491-1-jack@suse.cz
    Fixes: 9973c98 ("dax: add support for fsync/sync")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    jankara authored and torvalds committed Jun 23, 2017
  7. autofs: sanity check status reported with AUTOFS_DEV_IOCTL_FAIL

    If a positive status is passed with the AUTOFS_DEV_IOCTL_FAIL ioctl,
    autofs4_d_automount() will return
    
       ERR_PTR(status)
    
    with that status to follow_automount(), which will then dereference an
    invalid pointer.
    
    So treat a positive status the same as zero, and map to ENOENT.
    
    See comment in systemd src/core/automount.c::automount_send_ready().
    
    Link: http://lkml.kernel.org/r/871sqwczx5.fsf@notabene.neil.brown.name
    Signed-off-by: NeilBrown <neilb@suse.com>
    Cc: Ian Kent <raven@themaw.net>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    NeilBrown authored and torvalds committed Jun 23, 2017
  8. mm/vmalloc.c: huge-vmap: fail gracefully on unexpected huge vmap mapp…

    …ings
    
    Existing code that uses vmalloc_to_page() may assume that any address
    for which is_vmalloc_addr() returns true may be passed into
    vmalloc_to_page() to retrieve the associated struct page.
    
    This is not un unreasonable assumption to make, but on architectures
    that have CONFIG_HAVE_ARCH_HUGE_VMAP=y, it no longer holds, and we need
    to ensure that vmalloc_to_page() does not go off into the weeds trying
    to dereference huge PUDs or PMDs as table entries.
    
    Given that vmalloc() and vmap() themselves never create huge mappings or
    deal with compound pages at all, there is no correct answer in this
    case, so return NULL instead, and issue a warning.
    
    When reading /proc/kcore on arm64, you will hit an oops as soon as you
    hit the huge mappings used for the various segments that make up the
    mapping of vmlinux.  With this patch applied, you will no longer hit the
    oops, but the kcore contents willl be incorrect (these regions will be
    zeroed out)
    
    We are fixing this for kcore specifically, so it avoids vread() for
    those regions.  At least one other problematic user exists, i.e.,
    /dev/kmem, but that is currently broken on arm64 for other reasons.
    
    Link: http://lkml.kernel.org/r/20170609082226.26152-1-ard.biesheuvel@linaro.org
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: Laura Abbott <labbott@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: zhong jiang <zhongjiang@huawei.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Ard Biesheuvel authored and torvalds committed Jun 23, 2017
  9. mm, thp: remove cond_resched from __collapse_huge_page_copy

    This is a partial revert of commit 338a16b ("mm, thp: copying user
    pages must schedule on collapse") which added a cond_resched() to
    __collapse_huge_page_copy().
    
    On x86 with CONFIG_HIGHPTE, __collapse_huge_page_copy is called in
    atomic context and thus scheduling is not possible.  This is only a
    possible config on arm and i386.
    
    Although need_resched has been shown to be set for over 100 jiffies
    while doing the iteration in __collapse_huge_page_copy, this is better
    than doing
    
    	if (in_atomic())
    		cond_resched()
    
    to cover only non-CONFIG_HIGHPTE configs.
    
    Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1706191341550.97821@chino.kir.corp.google.com
    Signed-off-by: David Rientjes <rientjes@google.com>
    Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
    Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    David Rientjes authored and torvalds committed Jun 23, 2017
  10. Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/jejb/scsi
    
    Pull SCSI fixes from James Bottomley:
     "Two fixes to remove spurious WARN_ONs from the new(ish) qedi driver.
    
      The driver already prints a warning message, there's no need to panic
      users by printing something that looks like an oops as well"
    
    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
      scsi: qedi: Remove WARN_ON from clear task context.
      scsi: qedi: Remove WARN_ON for untracked cleanup.
    torvalds committed Jun 23, 2017
  11. Merge tag 'xfs-4.12-fixes-5' of git://git.kernel.org/pub/scm/fs/xfs/x…

    …fs-linux
    
    Pull xfs fixes from Darrick Wong:
     "I have one more bugfix for you for 4.12-rc7 to fix a disk corruption
      problem:
    
       - don't allow swapon on files on the realtime device, because the
         swap code will swap pages out to blocks on the data device, thereby
         corrupting the filesystem"
    
    * tag 'xfs-4.12-fixes-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
      xfs: don't allow bmap on rt files
    torvalds committed Jun 23, 2017
  12. Merge tag 'perf-urgent-for-mingo-4.12-20170622' of git://git.kernel.o…

    …rg/pub/scm/linux/kernel/git/acme/linux into perf/urgent
    
    Pull 'perf probe' fix from Arnaldo Carvalho de Melo:
    
     - Do not double the offset of inline expansions when using
       'perf probe' on inlined functions (Björn Töpel)
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Ingo Molnar
    Ingo Molnar committed Jun 23, 2017
  13. Input: synaptics-rmi4 - only read the F54 query registers which are used

    The F54 driver is currently only using the first 6 bytes of F54 so there is
    no need to read all 27 bytes. Some Dell systems (Dell XP13 9333 and
    similar) have an issue with the touchpad or I2C bus when reading reports
    larger then 16 bytes. Reads larger then 16 bytes are reported in two HID
    reports. Something about the back to back reports seems to cause the next
    read to report incorrect data. This results in F30 failing to load and the
    click button failing to work.
    
    Previous issues with the I2C controller or touchpad were addressed in:
    commit 5b65c2a ("HID: rmi: check sanity of the incoming report")
    
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=195949
    Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Reviewed-by: Nick Dyer <nick@shmanahar.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    aduggan authored and dtor committed Jun 23, 2017
  14. powerpc/64: Initialise thread_info for emergency stacks

    Emergency stacks have their thread_info mostly uninitialised, which in
    particular means garbage preempt_count values.
    
    Emergency stack code runs with interrupts disabled entirely, and is
    used very rarely, so this has been unnoticed so far. It was found by a
    proposed new powerpc watchdog that takes a soft-NMI directly from the
    masked_interrupt handler and using the emergency stack. That crashed
    at BUG_ON(in_nmi()) in nmi_enter(). preempt_count()s were found to be
    garbage.
    
    To fix this, zero the entire THREAD_SIZE allocation, and initialize
    the thread_info.
    
    Cc: stable@vger.kernel.org
    Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    [mpe: Move it all into setup_64.c, use a function not a macro. Fix
          crashes on Cell by setting preempt_count to 0 not HARDIRQ_OFFSET]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    npiggin authored and mpe committed Jun 23, 2017
  15. Merge tag 'drm-misc-fixes-2017-06-22' of git://anongit.freedesktop.or…

    …g/git/drm-misc into drm-fixes
    
    UAPI Changes:
    - drm: Fix regression in GETCONNECTOR ioctl returning stale properties (Daniel)
    
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    
    * tag 'drm-misc-fixes-2017-06-22' of git://anongit.freedesktop.org/git/drm-misc:
      drm: Fix GETCONNECTOR regression
    airlied committed Jun 23, 2017

Commits on Jun 22, 2017

  1. kconfig: fix sparse warnings in nconfig

    Fix sparse warnings in scripts/kconfig/nconf* ('make nconfig'):
    
    ../scripts/kconfig/nconf.c:1071:32: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:1238:30: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:511:51: warning: Using plain integer as NULL pointer
    ../scripts/kconfig/nconf.c:1460:6: warning: symbol 'setup_windows' was not declared. Should it be static?
    ../scripts/kconfig/nconf.c:274:12: warning: symbol 'current_instructions' was not declared. Should it be static?
    ../scripts/kconfig/nconf.c:308:22: warning: symbol 'function_keys' was not declared. Should it be static?
    ../scripts/kconfig/nconf.gui.c:132:17: warning: non-ANSI function declaration of function 'set_colors'
    ../scripts/kconfig/nconf.gui.c:195:24: warning: Using plain integer as NULL pointer
    
    nconf.gui.o before/after files are the same.
    nconf.o before/after files are the same until the 'static' function
    declarations are added.
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Randy Dunlap authored and masahir0y committed Jun 22, 2017
Older
You can’t perform that action at this time.