stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Dmitry Vyukov <dvyukov@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>
Subject: [PATCH 4.4 022/146] locking/static_key: Fix concurrent static_key_slow_inc()
Date: Mon, 25 Jul 2016 13:54:37 -0700	[thread overview]
Message-ID: <20160725203522.289668466@linuxfoundation.org> (raw)
In-Reply-To: <20160725203521.340401316@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Paolo Bonzini <pbonzini@redhat.com>

commit 4c5ea0a9cd02d6aa8adc86e100b2a4cff8d614ff upstream.

The following scenario is possible:

    CPU 1                                   CPU 2
    static_key_slow_inc()
     atomic_inc_not_zero()
      -> key.enabled == 0, no increment
     jump_label_lock()
     atomic_inc_return()
      -> key.enabled == 1 now
                                            static_key_slow_inc()
                                             atomic_inc_not_zero()
                                              -> key.enabled == 1, inc to 2
                                             return
                                            ** static key is wrong!
     jump_label_update()
     jump_label_unlock()

Testing the static key at the point marked by (**) will follow the
wrong path for jumps that have not been patched yet.  This can
actually happen when creating many KVM virtual machines with userspace
LAPIC emulation; just run several copies of the following program:

    #include <fcntl.h>
    #include <unistd.h>
    #include <sys/ioctl.h>
    #include <linux/kvm.h>

    int main(void)
    {
        for (;;) {
            int kvmfd = open("/dev/kvm", O_RDONLY);
            int vmfd = ioctl(kvmfd, KVM_CREATE_VM, 0);
            close(ioctl(vmfd, KVM_CREATE_VCPU, 1));
            close(vmfd);
            close(kvmfd);
        }
        return 0;
    }

Every KVM_CREATE_VCPU ioctl will attempt a static_key_slow_inc() call.
The static key's purpose is to skip NULL pointer checks and indeed one
of the processes eventually dereferences NULL.

As explained in the commit that introduced the bug:

  706249c222f6 ("locking/static_keys: Rework update logic")

jump_label_update() needs key.enabled to be true.  The solution adopted
here is to temporarily make key.enabled == -1, and use go down the
slow path when key.enabled <= 0.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 706249c222f6 ("locking/static_keys: Rework update logic")
Link: http://lkml.kernel.org/r/1466527937-69798-1-git-send-email-pbonzini@redhat.com
[ Small stylistic edits to the changelog and the code. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/jump_label.h |   16 +++++++++++++---
 kernel/jump_label.c        |   36 +++++++++++++++++++++++++++++++++---
 2 files changed, 46 insertions(+), 6 deletions(-)

--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -117,13 +117,18 @@ struct module;
 
 #include <linux/atomic.h>
 
+#ifdef HAVE_JUMP_LABEL
+
 static inline int static_key_count(struct static_key *key)
 {
-	return atomic_read(&key->enabled);
+	/*
+	 * -1 means the first static_key_slow_inc() is in progress.
+	 *  static_key_enabled() must return true, so return 1 here.
+	 */
+	int n = atomic_read(&key->enabled);
+	return n >= 0 ? n : 1;
 }
 
-#ifdef HAVE_JUMP_LABEL
-
 #define JUMP_TYPE_FALSE	0UL
 #define JUMP_TYPE_TRUE	1UL
 #define JUMP_TYPE_MASK	1UL
@@ -162,6 +167,11 @@ extern void jump_label_apply_nops(struct
 
 #else  /* !HAVE_JUMP_LABEL */
 
+static inline int static_key_count(struct static_key *key)
+{
+	return atomic_read(&key->enabled);
+}
+
 static __always_inline void jump_label_init(void)
 {
 	static_key_initialized = true;
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -58,13 +58,36 @@ static void jump_label_update(struct sta
 
 void static_key_slow_inc(struct static_key *key)
 {
+	int v, v1;
+
 	STATIC_KEY_CHECK_USE();
-	if (atomic_inc_not_zero(&key->enabled))
-		return;
+
+	/*
+	 * Careful if we get concurrent static_key_slow_inc() calls;
+	 * later calls must wait for the first one to _finish_ the
+	 * jump_label_update() process.  At the same time, however,
+	 * the jump_label_update() call below wants to see
+	 * static_key_enabled(&key) for jumps to be updated properly.
+	 *
+	 * So give a special meaning to negative key->enabled: it sends
+	 * static_key_slow_inc() down the slow path, and it is non-zero
+	 * so it counts as "enabled" in jump_label_update().  Note that
+	 * atomic_inc_unless_negative() checks >= 0, so roll our own.
+	 */
+	for (v = atomic_read(&key->enabled); v > 0; v = v1) {
+		v1 = atomic_cmpxchg(&key->enabled, v, v + 1);
+		if (likely(v1 == v))
+			return;
+	}
 
 	jump_label_lock();
-	if (atomic_inc_return(&key->enabled) == 1)
+	if (atomic_read(&key->enabled) == 0) {
+		atomic_set(&key->enabled, -1);
 		jump_label_update(key);
+		atomic_set(&key->enabled, 1);
+	} else {
+		atomic_inc(&key->enabled);
+	}
 	jump_label_unlock();
 }
 EXPORT_SYMBOL_GPL(static_key_slow_inc);
@@ -72,6 +95,13 @@ EXPORT_SYMBOL_GPL(static_key_slow_inc);
 static void __static_key_slow_dec(struct static_key *key,
 		unsigned long rate_limit, struct delayed_work *work)
 {
+	/*
+	 * The negative count check is valid even when a negative
+	 * key->enabled is in use by static_key_slow_inc(); a
+	 * __static_key_slow_dec() before the first static_key_slow_inc()
+	 * returns is unbalanced, because all other static_key_slow_inc()
+	 * instances block while the update is in progress.
+	 */
 	if (!atomic_dec_and_mutex_lock(&key->enabled, &jump_label_mutex)) {
 		WARN(atomic_read(&key->enabled) < 0,
 		     "jump label: negative count!\n");



  parent reply	other threads:[~2016-07-25 21:17 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-25 20:54 [PATCH 4.4 000/146] 4.4.16-stable review Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 001/146] mac80211: fix fast_tx header alignment Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 002/146] mac80211: mesh: flush mesh paths unconditionally Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 003/146] mac80211_hwsim: Add missing check for HWSIM_ATTR_SIGNAL Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 004/146] mac80211: Fix mesh estab_plinks counting in STA removal case Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 005/146] EDAC, sb_edac: Fix rank lookup on Broadwell Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 006/146] IB/cm: Fix a recently introduced locking bug Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 007/146] IB/mlx4: Properly initialize GRH TClass and FlowLabel in AHs Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 008/146] powerpc/iommu: Remove the dependency on EEH struct in DDW mechanism Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 009/146] powerpc/pseries: Fix PCI config address for DDW Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 010/146] powerpc/pseries: Fix IBM_ARCH_VEC_NRCORES_OFFSET since POWER8NVL was added Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 011/146] powerpc/tm: Always reclaim in start_thread() for exec() class syscalls Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 012/146] usb: dwc2: fix regression on big-endian PowerPC/ARM systems Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 013/146] USB: EHCI: declare hostpc register as zero-length array Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 014/146] usb: common: otg-fsm: add license to usb-otg-fsm Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 015/146] mnt: fs_fully_visible test the proper mount for MNT_LOCKED Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 016/146] mnt: Account for MS_RDONLY in fs_fully_visible Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 017/146] mnt: If fs_fully_visible fails call put_filesystem Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 018/146] of: fix autoloading due to broken modalias with no compatible Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 019/146] of: irq: fix of_irq_get[_byname]() kernel-doc Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 020/146] locking/ww_mutex: Report recursive ww_mutex locking early Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 021/146] locking/qspinlock: Fix spin_unlock_wait() some more Greg Kroah-Hartman
2016-07-25 20:54 ` Greg Kroah-Hartman [this message]
2016-07-25 20:54 ` [PATCH 4.4 023/146] x86, build: copy ldlinux.c32 to image.iso Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 024/146] kprobes/x86: Clear TF bit in fault on single-stepping Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 025/146] x86/amd_nb: Fix boot crash on non-AMD systems Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 026/146] Revert "gpiolib: Split GPIO flags parsing and GPIO configuration" Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 027/146] uvc: Forward compat ioctls to their handlers directly Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 028/146] thermal: cpu_cooling: fix improper order during initialization Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 029/146] writeback: use higher precision calculation in domain_dirty_limits() Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 030/146] nfsd4/rpc: move backchannel create logic into rpc code Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 031/146] nfsd: Always lock state exclusively Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 032/146] nfsd: Extend the mutex holding region around in nfsd4_process_open2() Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 033/146] posix_acl: Add set_posix_acl Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 034/146] nfsd: check permissions when setting ACLs Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 035/146] make nfs_atomic_open() call d_drop() on all ->open_context() errors Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 036/146] NFS: Fix another OPEN_DOWNGRADE bug Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 037/146] ARM: imx6ul: Fix Micrel PHY mask Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 038/146] ARM: 8578/1: mm: ensure pmd_present only checks the valid bit Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 039/146] ARM: 8579/1: mm: Fix definition of pmd_mknotpresent Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 041/146] mm: Export migrate_page_move_mapping and migrate_page_copy Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 042/146] UBIFS: Implement ->migratepage() Greg Kroah-Hartman
2016-07-25 20:54 ` [PATCH 4.4 043/146] sched/fair: Fix cfs_rq avg tracking underflow Greg Kroah-Hartman
2016-07-25 22:12   ` bsegall
2016-08-02 11:24     ` Peter Zijlstra
2016-07-25 20:54 ` [PATCH 4.4 044/146] packet: Use symmetric hash for PACKET_FANOUT_HASH Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 045/146] net_sched: fix mirrored packets checksum Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 047/146] ipv6: Fix mem leak in rt6i_pcpu Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 048/146] ARCv2: Check for LL-SC livelock only if LLSC is enabled Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 049/146] ARCv2: LLSC: software backoff is NOT needed starting HS2.1c Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 050/146] KEYS: potential uninitialized variable Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 051/146] kvm: Fix irq route entries exceeding KVM_MAX_IRQ_ROUTES Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 053/146] HID: elo: kill not flush the work Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 054/146] HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 055/146] HID: multitouch: enable palm rejection for Windows Precision Touchpad Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 056/146] tracing: Handle NULL formats in hold_module_trace_bprintk_format() Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 057/146] base: make module_create_drivers_dir race-free Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 058/146] iommu/arm-smmu: Wire up map_sg for arm-smmu-v3 Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 059/146] iommu/vt-d: Enable QI on all IOMMUs before setting root entry Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 060/146] iommu/amd: Fix unity mapping initialization race Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 061/146] drm/mgag200: Black screen fix for G200e rev 4 Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 062/146] ipmi: Remove smi_msg from waiting_rcv_msgs list before handle_one_recv_msg() Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 063/146] arm64: Rework valid_user_regs Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 064/146] vfs: add d_real_inode() helper Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 065/146] af_unix: fix hard linked sockets on overlay Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 066/146] percpu: fix synchronization between chunk->map_extend_work and chunk destruction Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 067/146] percpu: fix synchronization between synchronous map extension " Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 068/146] btrfs: account for non-CoWd blocks in btrfs_abort_transaction Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 069/146] drm/radeon: fix asic initialization for virtualized environments Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 070/146] drm/amdgpu/gfx7: fix broken condition check Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 072/146] drm/amdkfd: unbind only existing processes Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 073/146] drm/amdkfd: destroy dbgmgr in notifier release Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 074/146] drm/dp/mst: Always clear proposed vcpi table for port Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 075/146] virtio_balloon: fix PFN format for virtio-1 Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 076/146] drm/nouveau/disp/sor/gf119: both links use the same training register Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 077/146] drm/nouveau/gr/gf100-: update sm error decoding from gk20a nvgpu headers Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 078/146] drm/nouveau/fbcon: fix out-of-bounds memory accesses Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 079/146] drm/nouveau: fix for disabled fbdev emulation Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 080/146] drm/nouveau/disp/sor/gf119: select correct sor when poking training pattern Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 083/146] drm/i915: Update ifdeffery for mutex->owner Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 085/146] drm: add missing drm_mode_set_crtcinfo call Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 086/146] drm: make drm_atomic_set_mode_prop_for_crtc() more reliable Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 087/146] drm: atmel-hlcdc: actually disable scaling when no scaling is required Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 088/146] drm/ttm: Make ttm_bo_mem_compat available Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 089/146] drm/vmwgfx: Add an option to change assumed FB bpp Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 090/146] drm/vmwgfx: Work around mode set failure in 2D VMs Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 091/146] drm/vmwgfx: Check pin count before attempting to move a buffer Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 092/146] drm/vmwgfx: Delay pinning fbdev framebuffer until after mode set Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 093/146] drm/vmwgfx: Fix error paths when mapping framebuffer Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 095/146] perf/x86: Fix undefined shift on 32-bit kernels Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 096/146] xen/balloon: Fix declared-but-not-defined warning Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 097/146] iio: Fix error handling in iio_trigger_attach_poll_func Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 098/146] iio:st_pressure: fix sampling gains (bring inline with ABI) Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 099/146] iio: light apds9960: Add the missing dev.parent Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 100/146] iio: proximity: as3935: correct IIO_CHAN_INFO_RAW output Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 101/146] iio: proximity: as3935: remove triggered buffer processing Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 102/146] iio: proximity: as3935: fix buffer stack trashing Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 103/146] iio: humidity: hdc100x: correct humidity integration time mask Greg Kroah-Hartman
2016-07-25 20:55 ` [PATCH 4.4 104/146] iio: humidity: hdc100x: fix IIO_TEMP channel reporting Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 105/146] iio: hudmidity: hdc100x: fix incorrect shifting and scaling Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 106/146] staging: iio: accel: fix error check Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 107/146] iio: accel: kxsd9: fix the usage of spi_w8r8() Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 108/146] iio:ad7266: Fix broken regulator error handling Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 109/146] iio:ad7266: Fix support for optional regulators Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 110/146] iio:ad7266: Fix probe deferral for vref Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 111/146] tty: vt: Fix soft lockup in fbcon cursor blink timer Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 112/146] tty/vt/keyboard: fix OOB access in do_compute_shiftstate() Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 116/146] ALSA: dummy: Fix a use-after-free at closing Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 117/146] ALSA: hda - Fix the headset mic jack detection on Dell machine Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 118/146] ALSA: hda / realtek - add two more Thinkpad IDs (5050,5053) for tpt460 fixup Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 119/146] ALSA: au88x0: Fix calculation in vortex_wtdma_bufshift() Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 120/146] ALSA: echoaudio: Fix memory allocation Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 121/146] ALSA: timer: Fix negative queue usage by racy accesses Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 122/146] ALSA: hda/realtek: Add Lenovo L460 to docking unit fixup Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 123/146] ALSA: hda - Add PCI ID for Kabylake-H Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 124/146] ALSA: hda - fix read before array start Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 125/146] ALSA: hda/realtek - add new pin definition in alc225 pin quirk table Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 126/146] ALSA: pcm: Free chmap at PCM free callback, too Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 127/146] ALSA: ctl: Stop notification after disconnection Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 128/146] ALSA: hda - fix use-after-free after module unload Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 129/146] ALSA: hda: add AMD Stoney PCI ID with proper driver caps Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 130/146] ARM: sunxi/dt: make the CHIP inherit from allwinner,sun5i-a13 Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 131/146] ARM: dts: armada-38x: fix MBUS_ID for crypto SRAM on Armada 385 Linksys Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 132/146] ARM: mvebu: fix HW I/O coherency related deadlocks Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 133/146] ovl: Copy up underlying inodes ->i_mode to overlay inode Greg Kroah-Hartman
2016-08-03  7:36   ` Eryu Guan
2016-08-03  7:45     ` Greg Kroah-Hartman
2016-08-03  8:04       ` Eryu Guan
2016-08-03  8:30         ` Greg Kroah-Hartman
2016-08-14 14:52         ` Greg Kroah-Hartman
2016-08-15  2:27           ` Eryu Guan
2016-07-25 20:56 ` [PATCH 4.4 134/146] ovl: verify upper dentry in ovl_remove_and_whiteout() Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 135/146] scsi: fix race between simultaneous decrements of ->host_failed Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 136/146] s390: fix test_fp_ctl inline assembly contraints Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 137/146] 53c700: fix BUG on untagged commands Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 138/146] Fix reconnect to not defer smb3 session reconnect long after socket reconnect Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 139/146] cifs: dynamic allocation of ntlmssp blob Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 140/146] File names with trailing period or space need special case conversion Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 141/146] xen/acpi: allow xen-acpi-processor driver to load on Xen 4.7 Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 142/146] crypto: qat - make qat_asym_algs.o depend on asn1 headers Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 143/146] tmpfs: dont undo fallocate past its last page Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 144/146] tmpfs: fix regression hang in fallocate undo Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 145/146] drm/i915: Revert DisplayPort fast link training feature Greg Kroah-Hartman
2016-07-25 20:56 ` [PATCH 4.4 146/146] ovl: verify upper dentry before unlink and rename Greg Kroah-Hartman
2016-07-26  1:51 ` [PATCH 4.4 000/146] 4.4.16-stable review Shuah Khan
2016-07-26 13:51 ` Guenter Roeck
     [not found] ` <579750a0.262ec20a.6250f.349d@mx.google.com>
     [not found]   ` <m2eg6gukrs.fsf@baylibre.com>
2016-07-27  4:42     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160725203522.289668466@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dvyukov@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).