stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org, Denis Kirjanov <kda@linux-powerpc.org>,
	"Josh Poimboeuf" <jpoimboe@redhat.com>,
	"Dave Hansen" <dave.hansen@intel.com>,
	"Thomas Gleixner" <tglx@linutronix.de>
Subject: [PATCH 3.16 126/157] x86/speculation: Enable Spectre v1 swapgs mitigations
Date: Sat, 10 Aug 2019 21:40:07 +0100	[thread overview]
Message-ID: <lsq.1565469607.23673488@decadent.org.uk> (raw)
In-Reply-To: <lsq.1565469607.188083258@decadent.org.uk>

3.16.72-rc1 review patch.  If anyone has any objections, please let me know.

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

From: Josh Poimboeuf <jpoimboe@redhat.com>

commit a2059825986a1c8143fd6698774fa9d83733bb11 upstream.

The previous commit added macro calls in the entry code which mitigate the
Spectre v1 swapgs issue if the X86_FEATURE_FENCE_SWAPGS_* features are
enabled.  Enable those features where applicable.

The mitigations may be disabled with "nospectre_v1" or "mitigations=off".

There are different features which can affect the risk of attack:

- When FSGSBASE is enabled, unprivileged users are able to place any
  value in GS, using the wrgsbase instruction.  This means they can
  write a GS value which points to any value in kernel space, which can
  be useful with the following gadget in an interrupt/exception/NMI
  handler:

	if (coming from user space)
		swapgs
	mov %gs:<percpu_offset>, %reg1
	// dependent load or store based on the value of %reg
	// for example: mov %(reg1), %reg2

  If an interrupt is coming from user space, and the entry code
  speculatively skips the swapgs (due to user branch mistraining), it
  may speculatively execute the GS-based load and a subsequent dependent
  load or store, exposing the kernel data to an L1 side channel leak.

  Note that, on Intel, a similar attack exists in the above gadget when
  coming from kernel space, if the swapgs gets speculatively executed to
  switch back to the user GS.  On AMD, this variant isn't possible
  because swapgs is serializing with respect to future GS-based
  accesses.

  NOTE: The FSGSBASE patch set hasn't been merged yet, so the above case
	doesn't exist quite yet.

- When FSGSBASE is disabled, the issue is mitigated somewhat because
  unprivileged users must use prctl(ARCH_SET_GS) to set GS, which
  restricts GS values to user space addresses only.  That means the
  gadget would need an additional step, since the target kernel address
  needs to be read from user space first.  Something like:

	if (coming from user space)
		swapgs
	mov %gs:<percpu_offset>, %reg1
	mov (%reg1), %reg2
	// dependent load or store based on the value of %reg2
	// for example: mov %(reg2), %reg3

  It's difficult to audit for this gadget in all the handlers, so while
  there are no known instances of it, it's entirely possible that it
  exists somewhere (or could be introduced in the future).  Without
  tooling to analyze all such code paths, consider it vulnerable.

  Effects of SMAP on the !FSGSBASE case:

  - If SMAP is enabled, and the CPU reports RDCL_NO (i.e., not
    susceptible to Meltdown), the kernel is prevented from speculatively
    reading user space memory, even L1 cached values.  This effectively
    disables the !FSGSBASE attack vector.

  - If SMAP is enabled, but the CPU *is* susceptible to Meltdown, SMAP
    still prevents the kernel from speculatively reading user space
    memory.  But it does *not* prevent the kernel from reading the
    user value from L1, if it has already been cached.  This is probably
    only a small hurdle for an attacker to overcome.

Thanks to Dave Hansen for contributing the speculative_smap() function.

Thanks to Andrew Cooper for providing the inside scoop on whether swapgs
is serializing on AMD.

[ tglx: Fixed the USER fence decision and polished the comment as suggested
  	by Dave Hansen ]

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Dave Hansen <dave.hansen@intel.com>
[bwh: Backported to 3.16:
 - Check for X86_FEATURE_KAISER instead of X86_FEATURE_PTI
 - mitigations= parameter is x86-only here
 - powerpc doesn't have Spectre mitigations
 - Don't use __ro_after_init
 - Adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1917,6 +1917,7 @@ bytes respectively. Such letter suffixes
 				improves system performance, but it may also
 				expose users to several CPU vulnerabilities.
 				Equivalent to: nopti [X86]
+					       nospectre_v1 [X86]
 					       nospectre_v2 [X86]
 					       spectre_v2_user=off [X86]
 					       spec_store_bypass_disable=off [X86]
@@ -2215,6 +2216,10 @@ bytes respectively. Such letter suffixes
 			register save and restore. The kernel will only save
 			legacy floating-point registers on task switch.
 
+	nospectre_v1	[X86] Disable mitigations for Spectre Variant 1
+			(bounds check bypass). With this option data leaks are
+			possible in the system.
+
 	nospectre_v2	[X86] Disable all mitigations for the Spectre variant 2
 			(indirect branch prediction) vulnerability. System may
 			allow data leaks with this option, which is equivalent
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -30,6 +30,7 @@
 #include <asm/intel-family.h>
 #include <asm/e820.h>
 
+static void __init spectre_v1_select_mitigation(void);
 static void __init spectre_v2_select_mitigation(void);
 static void __init ssb_select_mitigation(void);
 static void __init l1tf_select_mitigation(void);
@@ -148,17 +149,11 @@ void __init check_bugs(void)
 	if (boot_cpu_has(X86_FEATURE_STIBP))
 		x86_spec_ctrl_mask |= SPEC_CTRL_STIBP;
 
-	/* Select the proper spectre mitigation before patching alternatives */
+	/* Select the proper CPU mitigations before patching alternatives: */
+	spectre_v1_select_mitigation();
 	spectre_v2_select_mitigation();
-
-	/*
-	 * Select proper mitigation for any exposure to the Speculative Store
-	 * Bypass vulnerability.
-	 */
 	ssb_select_mitigation();
-
 	l1tf_select_mitigation();
-
 	mds_select_mitigation();
 
 	arch_smt_update();
@@ -318,6 +313,108 @@ static int __init mds_cmdline(char *str)
 early_param("mds", mds_cmdline);
 
 #undef pr_fmt
+#define pr_fmt(fmt)     "Spectre V1 : " fmt
+
+enum spectre_v1_mitigation {
+	SPECTRE_V1_MITIGATION_NONE,
+	SPECTRE_V1_MITIGATION_AUTO,
+};
+
+static enum spectre_v1_mitigation spectre_v1_mitigation =
+	SPECTRE_V1_MITIGATION_AUTO;
+
+static const char * const spectre_v1_strings[] = {
+	[SPECTRE_V1_MITIGATION_NONE] = "Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers",
+	[SPECTRE_V1_MITIGATION_AUTO] = "Mitigation: usercopy/swapgs barriers and __user pointer sanitization",
+};
+
+static bool is_swapgs_serializing(void)
+{
+	/*
+	 * Technically, swapgs isn't serializing on AMD (despite it previously
+	 * being documented as such in the APM).  But according to AMD, %gs is
+	 * updated non-speculatively, and the issuing of %gs-relative memory
+	 * operands will be blocked until the %gs update completes, which is
+	 * good enough for our purposes.
+	 */
+	return boot_cpu_data.x86_vendor == X86_VENDOR_AMD;
+}
+
+/*
+ * Does SMAP provide full mitigation against speculative kernel access to
+ * userspace?
+ */
+static bool smap_works_speculatively(void)
+{
+	if (!boot_cpu_has(X86_FEATURE_SMAP))
+		return false;
+
+	/*
+	 * On CPUs which are vulnerable to Meltdown, SMAP does not
+	 * prevent speculative access to user data in the L1 cache.
+	 * Consider SMAP to be non-functional as a mitigation on these
+	 * CPUs.
+	 */
+	if (boot_cpu_has(X86_BUG_CPU_MELTDOWN))
+		return false;
+
+	return true;
+}
+
+static void __init spectre_v1_select_mitigation(void)
+{
+	if (!boot_cpu_has_bug(X86_BUG_SPECTRE_V1) || cpu_mitigations_off()) {
+		spectre_v1_mitigation = SPECTRE_V1_MITIGATION_NONE;
+		return;
+	}
+
+	if (spectre_v1_mitigation == SPECTRE_V1_MITIGATION_AUTO) {
+		/*
+		 * With Spectre v1, a user can speculatively control either
+		 * path of a conditional swapgs with a user-controlled GS
+		 * value.  The mitigation is to add lfences to both code paths.
+		 *
+		 * If FSGSBASE is enabled, the user can put a kernel address in
+		 * GS, in which case SMAP provides no protection.
+		 *
+		 * [ NOTE: Don't check for X86_FEATURE_FSGSBASE until the
+		 *	   FSGSBASE enablement patches have been merged. ]
+		 *
+		 * If FSGSBASE is disabled, the user can only put a user space
+		 * address in GS.  That makes an attack harder, but still
+		 * possible if there's no SMAP protection.
+		 */
+		if (!smap_works_speculatively()) {
+			/*
+			 * Mitigation can be provided from SWAPGS itself or
+			 * PTI as the CR3 write in the Meltdown mitigation
+			 * is serializing.
+			 *
+			 * If neither is there, mitigate with an LFENCE.
+			 */
+			if (!is_swapgs_serializing() && !boot_cpu_has(X86_FEATURE_KAISER))
+				setup_force_cpu_cap(X86_FEATURE_FENCE_SWAPGS_USER);
+
+			/*
+			 * Enable lfences in the kernel entry (non-swapgs)
+			 * paths, to prevent user entry from speculatively
+			 * skipping swapgs.
+			 */
+			setup_force_cpu_cap(X86_FEATURE_FENCE_SWAPGS_KERNEL);
+		}
+	}
+
+	pr_info("%s\n", spectre_v1_strings[spectre_v1_mitigation]);
+}
+
+static int __init nospectre_v1_cmdline(char *str)
+{
+	spectre_v1_mitigation = SPECTRE_V1_MITIGATION_NONE;
+	return 0;
+}
+early_param("nospectre_v1", nospectre_v1_cmdline);
+
+#undef pr_fmt
 #define pr_fmt(fmt)     "Spectre V2 : " fmt
 
 static enum spectre_v2_mitigation spectre_v2_enabled = SPECTRE_V2_NONE;
@@ -1210,7 +1307,7 @@ static ssize_t cpu_show_common(struct de
 		break;
 
 	case X86_BUG_SPECTRE_V1:
-		return sprintf(buf, "Mitigation: __user pointer sanitization\n");
+		return sprintf(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]);
 
 	case X86_BUG_SPECTRE_V2:
 		return sprintf(buf, "%s%s%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled],


  parent reply	other threads:[~2019-08-10 20:48 UTC|newest]

Thread overview: 164+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-10 20:40 [PATCH 3.16 000/157] 3.16.72-rc1 review Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 121/157] x86: cpufeatures: Renumber feature word 7 Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 150/157] ipv6: call ipv6_proxy_select_ident instead of ipv6_select_ident in udp6_ufo_fragment Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 071/157] ALSA: seq: Fix OOB-reads from strlcpy Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 148/157] ipv6: Fix fragment id assignment on LE arches Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 083/157] locking/lockdep: Add IRQs disabled/enabled assertion APIs: lockdep_assert_irqs_enabled()/disabled() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 105/157] cifs: do not attempt cifs operation on smb2+ rename error Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 008/157] ext4: fix data corruption caused by unaligned direct AIO Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 030/157] tcp: do not use ipv6 header for ipv4 flow Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 123/157] x86/entry/64: Really create an error-entry-from-usermode code path Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 015/157] netfilter: bridge: set skb transport_header before entering NF_INET_PRE_ROUTING Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 130/157] vhost_net: use packet weight for rx handler, too Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 156/157] netfilter: ctnetlink: don't use conntrack/expect object addresses as id Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 029/157] net-sysfs: call dev_hold if kobject_init_and_add success Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 147/157] Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets" Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 131/157] vhost_net: introduce vhost_exceeds_weight() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 149/157] ipv6: Make __ipv6_select_ident static Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 099/157] mm/vmstat.c: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 018/157] mac8390: Fix mmio access size probe Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 116/157] ipv6/flowlabel: wait rcu grace period before put_pid() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 152/157] ipv4: ip_tunnel: use net namespace from rtable not socket Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 023/157] serial: max310x: Fix to avoid potential NULL pointer dereference Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 028/157] perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 085/157] MIPS: scall64-o32: Fix indirect syscall number load Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 137/157] powerpc/tm: Fix oops on sigreturn on systems without TM Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 025/157] tty: mxs-auart: fix a potential NULL pointer dereference Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 019/157] sctp: get sctphdr by offset in sctp_compute_cksum Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 011/157] iio: dac: mcp4725: add missing powerdown bits in store eeprom Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 094/157] ALSA: core: Fix card races between register and disconnect Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 048/157] ALSA: pcm: Don't suspend stream in unrecoverable PCM state Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 079/157] net: bridge: multicast: use rcu to access port list from br_multicast_start_querier Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 058/157] iio: core: fix a possible circular locking dependency Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 095/157] tipc: set sysctl_tipc_rmem and named_timeout right range Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 078/157] block: do not leak memory in bio_copy_user_iov() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 056/157] KVM: x86: Emulate MSR_IA32_ARCH_CAPABILITIES on AMD hosts Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 134/157] vhost: scsi: add weight support Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 081/157] rt2x00: do not increment sequence number while re-transmitting Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 154/157] siphash: add cryptographically secure PRF Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 100/157] USB: core: Fix bug caused by duplicate interface PM usage counter Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 003/157] Staging: iio: meter: fixed typo Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 070/157] xen: Prevent buffer overflow in privcmd ioctl Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 009/157] ext4: add missing brelse() in add_new_gdb_meta_bg() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 109/157] usb: usbip: fix isoc packet num validation in get_pipe Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 074/157] lib/string.c: implement a basic bcmp Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 050/157] scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 157/157] scsi: libsas: fix a race condition when smp task timeout Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 024/157] tty: atmel_serial: fix a potential NULL pointer dereference Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 064/157] sched/fair: Do not re-read ->h_load_next during hierarchical load calculation Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 103/157] mac80211: don't attempt to rename ERR_PTR() debugfs dirs Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 104/157] ceph: ensure d_name stability in ceph_dentry_hash() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 144/157] xen: let alloc_xenballooned_pages() fail if not enough memory free Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 002/157] xfrm: policy: Fix out-of-bound array accesses in __xfrm_policy_unlink Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 021/157] ARM: imx6q: cpuidle: fix bug that CPU might not wake up at expected time Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 115/157] ipv6: invert flowlabel sharing check in process and user mode Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 102/157] netfilter: ebtables: CONFIG_COMPAT: drop a bogus WARN_ON Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 051/157] scsi: zfcp: fix scsi_eh host reset with port_forced ERP for non-NPIV FCP devices Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 073/157] sunrpc: don't mark uninitialised items as VALID Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 026/157] serial: sh-sci: Fix setting SCSCR_TIE while transferring data Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 069/157] mtd: cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 082/157] vxge: fix return of a free'd memblock on a failed dma mapping Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 062/157] xfrm4: Reload skb header pointers after calling pskb_may_pull Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 080/157] iommu/amd: Set exclusion range correctly Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 128/157] x86/speculation/swapgs: Exclude ATOMs from speculation through SWAPGS Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 139/157] floppy: fix out-of-bounds read in next_valid_format Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 119/157] packet: validate msg_namelen in send directly Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 091/157] cifs: fix handle leak in smb2_query_symlink() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 142/157] proc: meminfo: estimate available memory more conservatively Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 027/157] device_cgroup: fix RCU imbalance in error case Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 034/157] USB: serial: mos7720: fix mos_parport refcount imbalance on error path Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 042/157] xhci: Don't let USB3 ports stuck in polling state prevent suspend Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 063/157] xfrm4: Fix uninitialized memory read in _decode_session4 Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 031/157] dccp: do not use ipv6 header for ipv4 flow Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 145/157] Revert "inet: update the IP ID generation algorithm to higher standards." Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 132/157] vhost: introduce vhost_exceeds_weight() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 136/157] Input: gtco - bounds check collection indent level Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 114/157] slip: make slhc_free() silently accept an error pointer Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 001/157] ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 076/157] powerpc/vdso32: fix CLOCK_MONOTONIC on PPC64 Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 036/157] ALSA: rawmidi: Fix potential Spectre v1 vulnerability Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 155/157] inet: switch IP ID generator to siphash Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 127/157] x86/entry/64: Use JMP instead of JMPQ Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 061/157] xfrm4: Fix header checks in _decode_session4 Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 086/157] USB: core: Fix unterminated string returned by usb_string() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 111/157] l2tp: use rcu_dereference_sk_user_data() in l2tp_udp_encap_recv() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 075/157] xsysace: Fix error handling in ace_setup Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 140/157] floppy: fix invalid pointer dereference in drive_name Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 072/157] PCI: Add function 1 DMA alias quirk for Marvell 9170 SATA controller Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 065/157] btrfs: prop: fix vanished compression property after failed set Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 097/157] kprobes: Mark ftrace mcount handler functions nokprobe Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 012/157] IB/mlx4: Fix race condition between catas error reset and aliasguid flows Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 053/157] afs: Fix StoreData op marshalling Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 120/157] ufs: fix braino in ufs_get_inode_gid() for solaris UFS flavour Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 038/157] iommu/vt-d: Check capability before disabling protected memory Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 135/157] Bluetooth: hci_uart: check for missing tty operations Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 087/157] staging: comedi: vmk80xx: Fix use of uninitialized semaphore Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 153/157] ipv6: hash net ptr into fragmentation bucket selection Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 124/157] x86/entry/64: Fix context tracking state warning when load_gs_index fails Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 016/157] udf: Fix crash on IO error during truncate Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 045/157] batman-adv: Reduce claim hash refcnt only for removed entry Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 133/157] vhost_net: fix possible infinite loop Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 113/157] fs/proc/proc_sysctl.c: Fix a NULL pointer dereference Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 108/157] USB: w1 ds2490: Fix bug caused by improper use of altsetting array Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 112/157] trace: Fix preempt_enable_no_resched() abuse Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 138/157] floppy: fix div-by-zero in setup_format_params Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 092/157] CIFS: keep FileInfo handle live during oplock break Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 017/157] net: mac8390: Use standard memcpy_{from,to}io() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 007/157] perf/core: Restore mmap record type correctly Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 151/157] ipv4: hash net ptr into fragmentation bucket selection Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 125/157] x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 032/157] 3c515: fix integer overflow warning Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 010/157] xfrm6_tunnel: Fix potential panic when unloading xfrm6_tunnel module Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 006/157] iio: adc: at91: disable adc channel interrupt in timeout case Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 117/157] l2ip: fix possible use-after-free Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 093/157] sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 054/157] KVM: Reject device ioctls from processes other than the VM's creator Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 040/157] ALSA: pcm: Fix possible OOB access in PCM oss plugins Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 088/157] staging: comedi: vmk80xx: Fix possible double-free of ->usb_rx_buf Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 013/157] staging: speakup_soft: Fix alternate speech with other synths Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 090/157] tools lib traceevent: Fix missing equality check for strcmp Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 107/157] USB: yurex: Fix protection fault after device removal Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 014/157] powerpc/vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038 Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 055/157] kvm: x86: IA32_ARCH_CAPABILITIES is always supported Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 046/157] batman-adv: Reduce tt_local hash refcnt only for removed entry Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 059/157] dm table: propagate BDI_CAP_STABLE_WRITES to fix sporadic checksum errors Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 004/157] iio: Use kmalloc_array() in iio_scan_mask_set() Ben Hutchings
2019-08-10 21:02   ` Joe Perches
2019-08-11 12:28     ` Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 049/157] net: phy: don't clear BMCR in genphy_soft_reset Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 084/157] x86/speculation: Prevent deadlock on ssb_state::lock Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 118/157] packet: in recvmsg msg_name return at least sizeof sockaddr_ll Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 077/157] ACPICA: Namespace: remove address node from global list after method termination Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 037/157] ALSA: seq: oss: Fix Spectre v1 vulnerability Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 110/157] sched/numa: Fix a possible divide-by-zero Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 033/157] ARM: dts: pfla02: increase phy reset duration Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 098/157] x86/kprobes: Avoid kretprobe recursion bug Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 041/157] gpio: adnp: Fix testing wrong value in adnp_gpio_direction_input Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 035/157] staging: rtl8712: uninitialized memory in read_bbreg_hdl() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 022/157] USB: serial: ftdi_sio: add additional NovaTech products Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 060/157] dccp: Fix memleak in __feat_register_sp Ben Hutchings
2019-08-10 20:40 ` Ben Hutchings [this message]
2019-08-10 20:40 ` [PATCH 3.16 068/157] dm: disable DISCARD if the underlying storage no longer supports it Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 044/157] iio: ad_sigma_delta: select channel when reading register Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 096/157] x86/kprobes: Verify stack frame on kretprobe Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 101/157] team: fix possible recursive locking when add slaves Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 052/157] USB: serial: cp210x: add new device id Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 122/157] x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 129/157] vhost-net: set packet weight of tx polling to 2 * vq size Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 066/157] btrfs: correctly validate compression type Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 089/157] kvm: mmu: Fix overflow on kvm mmu page limit calculation Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 106/157] net/rose: fix unbound loop in rose_loopback_timer() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 020/157] NFS: fix mount/umount race in nlmclnt Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 146/157] ipv6: Select fragment id during UFO segmentation if not set Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 043/157] ext4: brelse all indirect buffer in ext4_ind_remove_space() Ben Hutchings
2019-08-13  4:06   ` [PATCH 3.16 043/157] ext4: brelse all indirect buffer inext4_ind_remove_space() Jari Ruusu
2019-08-13 11:37     ` Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 057/157] fs/proc/proc_sysctl.c: fix NULL pointer dereference in put_links Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 143/157] mm/page_alloc.c: calculate 'available' memory in a separate function Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 005/157] iio: Fix scan mask selection Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 047/157] batman-adv: Reduce tt_global hash refcnt only for removed entry Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 141/157] floppy: fix out-of-bounds read in copy_buffer Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 039/157] futex: Ensure that futex address is aligned in handle_futex_death() Ben Hutchings
2019-08-10 20:40 ` [PATCH 3.16 067/157] xtensa: fix return_address Ben Hutchings
2019-08-11 14:05 ` [PATCH 3.16 000/157] 3.16.72-rc1 review Guenter Roeck
2019-08-11 15:25   ` Ben Hutchings

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=lsq.1565469607.23673488@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=dave.hansen@intel.com \
    --cc=jpoimboe@redhat.com \
    --cc=kda@linux-powerpc.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /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).