mirror of https://lore.kernel.org/lkml/
 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,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Marcel Holtmann" <marcel@holtmann.org>,
	"Ben Seri" <ben@armis.com>
Subject: [PATCH 3.16 138/192] Bluetooth: Properly check L2CAP config option output buffer length
Date: Mon, 09 Oct 2017 13:44:25 +0100	[thread overview]
Message-ID: <lsq.1507553065.432592712@decadent.org.uk> (raw)
In-Reply-To: <lsq.1507553063.449494954@decadent.org.uk>

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

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

From: Ben Seri <ben@armis.com>

commit e860d2c904d1a9f38a24eb44c9f34b8f915a6ea3 upstream.

Validate the output buffer length for L2CAP config requests and responses
to avoid overflowing the stack buffer used for building the option blocks.

Signed-off-by: Ben Seri <ben@armis.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 net/bluetooth/l2cap_core.c | 80 +++++++++++++++++++++++++---------------------
 1 file changed, 43 insertions(+), 37 deletions(-)

--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -59,7 +59,7 @@ static struct sk_buff *l2cap_build_cmd(s
 				       u8 code, u8 ident, u16 dlen, void *data);
 static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
 			   void *data);
-static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data);
+static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size);
 static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err);
 
 static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control,
@@ -1401,7 +1401,7 @@ static void l2cap_conn_start(struct l2ca
 
 			set_bit(CONF_REQ_SENT, &chan->conf_state);
 			l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
-				       l2cap_build_conf_req(chan, buf), buf);
+				       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
 			chan->num_conf_req++;
 		}
 
@@ -2978,12 +2978,15 @@ static inline int l2cap_get_conf_opt(voi
 	return len;
 }
 
-static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val)
+static void l2cap_add_conf_opt(void **ptr, u8 type, u8 len, unsigned long val, size_t size)
 {
 	struct l2cap_conf_opt *opt = *ptr;
 
 	BT_DBG("type 0x%2.2x len %u val 0x%lx", type, len, val);
 
+	if (size < L2CAP_CONF_OPT_SIZE + len)
+		return;
+
 	opt->type = type;
 	opt->len  = len;
 
@@ -3008,7 +3011,7 @@ static void l2cap_add_conf_opt(void **pt
 	*ptr += L2CAP_CONF_OPT_SIZE + len;
 }
 
-static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan)
+static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan, size_t size)
 {
 	struct l2cap_conf_efs efs;
 
@@ -3036,7 +3039,7 @@ static void l2cap_add_opt_efs(void **ptr
 	}
 
 	l2cap_add_conf_opt(ptr, L2CAP_CONF_EFS, sizeof(efs),
-			   (unsigned long) &efs);
+			   (unsigned long) &efs, size);
 }
 
 static void l2cap_ack_timeout(struct work_struct *work)
@@ -3180,11 +3183,12 @@ static inline void l2cap_txwin_setup(str
 	chan->ack_win = chan->tx_win;
 }
 
-static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data)
+static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size)
 {
 	struct l2cap_conf_req *req = data;
 	struct l2cap_conf_rfc rfc = { .mode = chan->mode };
 	void *ptr = req->data;
+	void *endptr = data + data_size;
 	u16 size;
 
 	BT_DBG("chan %p", chan);
@@ -3209,7 +3213,7 @@ static int l2cap_build_conf_req(struct l
 
 done:
 	if (chan->imtu != L2CAP_DEFAULT_MTU)
-		l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu);
+		l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr);
 
 	switch (chan->mode) {
 	case L2CAP_MODE_BASIC:
@@ -3225,7 +3229,7 @@ done:
 		rfc.max_pdu_size    = 0;
 
 		l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc),
-				   (unsigned long) &rfc);
+				   (unsigned long) &rfc, endptr - ptr);
 		break;
 
 	case L2CAP_MODE_ERTM:
@@ -3245,21 +3249,21 @@ done:
 				       L2CAP_DEFAULT_TX_WINDOW);
 
 		l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc),
-				   (unsigned long) &rfc);
+				   (unsigned long) &rfc, endptr - ptr);
 
 		if (test_bit(FLAG_EFS_ENABLE, &chan->flags))
-			l2cap_add_opt_efs(&ptr, chan);
+			l2cap_add_opt_efs(&ptr, chan, endptr - ptr);
 
 		if (test_bit(FLAG_EXT_CTRL, &chan->flags))
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2,
-					   chan->tx_win);
+					   chan->tx_win, endptr - ptr);
 
 		if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
 			if (chan->fcs == L2CAP_FCS_NONE ||
 			    test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) {
 				chan->fcs = L2CAP_FCS_NONE;
 				l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1,
-						   chan->fcs);
+						   chan->fcs, endptr - ptr);
 			}
 		break;
 
@@ -3277,17 +3281,17 @@ done:
 		rfc.max_pdu_size = cpu_to_le16(size);
 
 		l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc),
-				   (unsigned long) &rfc);
+				   (unsigned long) &rfc, endptr - ptr);
 
 		if (test_bit(FLAG_EFS_ENABLE, &chan->flags))
-			l2cap_add_opt_efs(&ptr, chan);
+			l2cap_add_opt_efs(&ptr, chan, endptr - ptr);
 
 		if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
 			if (chan->fcs == L2CAP_FCS_NONE ||
 			    test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) {
 				chan->fcs = L2CAP_FCS_NONE;
 				l2cap_add_conf_opt(&ptr, L2CAP_CONF_FCS, 1,
-						   chan->fcs);
+						   chan->fcs, endptr - ptr);
 			}
 		break;
 	}
@@ -3298,10 +3302,11 @@ done:
 	return ptr - data;
 }
 
-static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data)
+static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data_size)
 {
 	struct l2cap_conf_rsp *rsp = data;
 	void *ptr = rsp->data;
+	void *endptr = data + data_size;
 	void *req = chan->conf_req;
 	int len = chan->conf_len;
 	int type, hint, olen;
@@ -3403,7 +3408,7 @@ done:
 			return -ECONNREFUSED;
 
 		l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc),
-				   (unsigned long) &rfc);
+				   (unsigned long) &rfc, endptr - ptr);
 	}
 
 	if (result == L2CAP_CONF_SUCCESS) {
@@ -3416,7 +3421,7 @@ done:
 			chan->omtu = mtu;
 			set_bit(CONF_MTU_DONE, &chan->conf_state);
 		}
-		l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu);
+		l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu, endptr - ptr);
 
 		if (remote_efs) {
 			if (chan->local_stype != L2CAP_SERV_NOTRAFIC &&
@@ -3430,7 +3435,7 @@ done:
 
 				l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS,
 						   sizeof(efs),
-						   (unsigned long) &efs);
+						   (unsigned long) &efs, endptr - ptr);
 			} else {
 				/* Send PENDING Conf Rsp */
 				result = L2CAP_CONF_PENDING;
@@ -3463,7 +3468,7 @@ done:
 			set_bit(CONF_MODE_DONE, &chan->conf_state);
 
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC,
-					   sizeof(rfc), (unsigned long) &rfc);
+					   sizeof(rfc), (unsigned long) &rfc, endptr - ptr);
 
 			if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) {
 				chan->remote_id = efs.id;
@@ -3477,7 +3482,7 @@ done:
 					le32_to_cpu(efs.sdu_itime);
 				l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS,
 						   sizeof(efs),
-						   (unsigned long) &efs);
+						   (unsigned long) &efs, endptr - ptr);
 			}
 			break;
 
@@ -3491,7 +3496,7 @@ done:
 			set_bit(CONF_MODE_DONE, &chan->conf_state);
 
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc),
-					   (unsigned long) &rfc);
+					   (unsigned long) &rfc, endptr - ptr);
 
 			break;
 
@@ -3513,10 +3518,11 @@ done:
 }
 
 static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
-				void *data, u16 *result)
+				void *data, size_t size, u16 *result)
 {
 	struct l2cap_conf_req *req = data;
 	void *ptr = req->data;
+	void *endptr = data + size;
 	int type, olen;
 	unsigned long val;
 	struct l2cap_conf_rfc rfc = { .mode = L2CAP_MODE_BASIC };
@@ -3534,13 +3540,13 @@ static int l2cap_parse_conf_rsp(struct l
 				chan->imtu = L2CAP_DEFAULT_MIN_MTU;
 			} else
 				chan->imtu = val;
-			l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu);
+			l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu, endptr - ptr);
 			break;
 
 		case L2CAP_CONF_FLUSH_TO:
 			chan->flush_to = val;
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_FLUSH_TO,
-					   2, chan->flush_to);
+					   2, chan->flush_to, endptr - ptr);
 			break;
 
 		case L2CAP_CONF_RFC:
@@ -3554,13 +3560,13 @@ static int l2cap_parse_conf_rsp(struct l
 			chan->fcs = 0;
 
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC,
-					   sizeof(rfc), (unsigned long) &rfc);
+					   sizeof(rfc), (unsigned long) &rfc, endptr - ptr);
 			break;
 
 		case L2CAP_CONF_EWS:
 			chan->ack_win = min_t(u16, val, chan->ack_win);
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_EWS, 2,
-					   chan->tx_win);
+					   chan->tx_win, endptr - ptr);
 			break;
 
 		case L2CAP_CONF_EFS:
@@ -3573,7 +3579,7 @@ static int l2cap_parse_conf_rsp(struct l
 				return -ECONNREFUSED;
 
 			l2cap_add_conf_opt(&ptr, L2CAP_CONF_EFS, sizeof(efs),
-					   (unsigned long) &efs);
+					   (unsigned long) &efs, endptr - ptr);
 			break;
 
 		case L2CAP_CONF_FCS:
@@ -3678,7 +3684,7 @@ void __l2cap_connect_rsp_defer(struct l2
 		return;
 
 	l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
-		       l2cap_build_conf_req(chan, buf), buf);
+		       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
 	chan->num_conf_req++;
 }
 
@@ -3885,7 +3891,7 @@ sendresp:
 		u8 buf[128];
 		set_bit(CONF_REQ_SENT, &chan->conf_state);
 		l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
-			       l2cap_build_conf_req(chan, buf), buf);
+			       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
 		chan->num_conf_req++;
 	}
 
@@ -3965,7 +3971,7 @@ static int l2cap_connect_create_rsp(stru
 			break;
 
 		l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
-			       l2cap_build_conf_req(chan, req), req);
+			       l2cap_build_conf_req(chan, req, sizeof(req)), req);
 		chan->num_conf_req++;
 		break;
 
@@ -4077,7 +4083,7 @@ static inline int l2cap_config_req(struc
 	}
 
 	/* Complete config. */
-	len = l2cap_parse_conf_req(chan, rsp);
+	len = l2cap_parse_conf_req(chan, rsp, sizeof(rsp));
 	if (len < 0) {
 		l2cap_send_disconn_req(chan, ECONNRESET);
 		goto unlock;
@@ -4111,7 +4117,7 @@ static inline int l2cap_config_req(struc
 	if (!test_and_set_bit(CONF_REQ_SENT, &chan->conf_state)) {
 		u8 buf[64];
 		l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_CONF_REQ,
-			       l2cap_build_conf_req(chan, buf), buf);
+			       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
 		chan->num_conf_req++;
 	}
 
@@ -4171,7 +4177,7 @@ static inline int l2cap_config_rsp(struc
 			char buf[64];
 
 			len = l2cap_parse_conf_rsp(chan, rsp->data, len,
-						   buf, &result);
+						   buf, sizeof(buf), &result);
 			if (len < 0) {
 				l2cap_send_disconn_req(chan, ECONNRESET);
 				goto done;
@@ -4201,7 +4207,7 @@ static inline int l2cap_config_rsp(struc
 			/* throw out any old stored conf requests */
 			result = L2CAP_CONF_SUCCESS;
 			len = l2cap_parse_conf_rsp(chan, rsp->data, len,
-						   req, &result);
+						   req, sizeof(req), &result);
 			if (len < 0) {
 				l2cap_send_disconn_req(chan, ECONNRESET);
 				goto done;
@@ -4782,7 +4788,7 @@ static void l2cap_do_create(struct l2cap
 			set_bit(CONF_REQ_SENT, &chan->conf_state);
 			l2cap_send_cmd(chan->conn, l2cap_get_ident(chan->conn),
 				       L2CAP_CONF_REQ,
-				       l2cap_build_conf_req(chan, buf), buf);
+				       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
 			chan->num_conf_req++;
 		}
 	}
@@ -7361,7 +7367,7 @@ int l2cap_security_cfm(struct hci_conn *
 				set_bit(CONF_REQ_SENT, &chan->conf_state);
 				l2cap_send_cmd(conn, l2cap_get_ident(conn),
 					       L2CAP_CONF_REQ,
-					       l2cap_build_conf_req(chan, buf),
+					       l2cap_build_conf_req(chan, buf, sizeof(buf)),
 					       buf);
 				chan->num_conf_req++;
 			}

  parent reply	other threads:[~2017-10-09 13:15 UTC|newest]

Thread overview: 195+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-09 12:44 [PATCH 3.16 000/192] 3.16.49-rc1 review Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 081/192] parisc: Report SIGSEGV instead of SIGBUS when running out of stack Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 008/192] pinctrl: imx: fix debug message for SHARE_MUX_CONF_REG case Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 087/192] IB/core: Create common start/end port functions Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 105/192] iscsi-target: Add login_keys_workaround attribute for non RFC initiators Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 118/192] ext2: preserve i_mode if ext2_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 122/192] reiserfs: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 106/192] powerpc: Fix emulation of mfocrf in emulate_step() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 047/192] spi: atmel: fix corrupted data issue on SAM9 family SoCs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 017/192] [media] mceusb: fix memory leaks in error path Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 030/192] usb: usbip: set buffer pointers to NULL after free Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 019/192] kvm: x86: Guest BNDCFGS requires guest MPX support Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 066/192] PCI: Mark Haswell Power Control Unit as having non-compliant BARs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 100/192] drm/radeon: Fix eDP for single-display iMac10,1 (v2) Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 076/192] mwifiex: do not update MCS set from hostapd Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 067/192] PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 075/192] btrfs: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 003/192] sched/fair, cpumask: Export for_each_cpu_wrap() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 068/192] PM / Domains: Fix unsafe iteration over modified list of device links Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 096/192] target: Fix COMPARE_AND_WRITE caw_sem leak during se_cmd quiesce Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 102/192] fs/dcache.c: fix spin lockup issue on nlru->lock Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 006/192] sched/topology: Fix overlapping sched_group_capacity Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 035/192] USB: serial: qcserial: new Sierra Wireless EM7305 device ID Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 050/192] af_iucv: Move sockaddr length checks to before accessing sa_family in bind and connect handlers Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 097/192] cfg80211: Check if PMKID attribute is of expected size Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 112/192] sysctl: fix lax sysctl_check_table() sanity check Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 033/192] md: don't use flush_signals in userspace processes Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 103/192] powerpc/asm: Mark cr0 as clobbered in mftb() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 116/192] mm: fix overflow check in expand_upwards() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 060/192] ath9k: fix tx99 use after free Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 121/192] hfsplus: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 124/192] jfs: " Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 042/192] Btrfs: skip commit transaction if we don't have enough pinned bytes Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 099/192] cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 110/192] PM / QoS: return -EINVAL for bogus strings Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 090/192] net: reflect mark on tcp syn ack packets Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 123/192] reiserfs: preserve i_mode if __reiserfs_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 091/192] s390/syscalls: Fix out of bounds arguments access Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 127/192] ext4: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 048/192] staging: comedi: fix clean-up of comedi_class in comedi_init() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 092/192] crypto: sha1-ssse3 - Disable avx2 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 082/192] ipv6: always add flag an address that failed DAD with DADFAILED Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 023/192] perf/core: Correct event creation with PERF_FORMAT_GROUP Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 012/192] arm64: Preventing READ_IMPLIES_EXEC propagation Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 009/192] f2fs: load inode's flag from disk Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 080/192] parisc: use compat_sys_keyctl() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 064/192] vfio: Fix group release deadlock Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 053/192] xfs: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 073/192] Add USB quirk for HVR-950q to avoid intermittent device resets Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 079/192] scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 044/192] x86/nmi: Fix timeout test in test_nmi_ipi() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 083/192] ipv6: dad: don't remove dynamic addresses if link is down Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 086/192] parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 018/192] kvm: vmx: Do not disable intercepts for BNDCFGS Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 020/192] kvm: vmx: Check value written to IA32_BNDCFGS Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 098/192] cfg80211: Define nla_policy for NL80211_ATTR_LOCAL_MESH_POWER_MODE Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 005/192] sched/topology: Fix overlapping sched_group_mask Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 101/192] mm/mmap.c: do not blow on PROT_NONE MAP_FIXED holes in the stack Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 114/192] ubifs: Correctly evict xattr inodes Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 056/192] MIPS: module: Ensure we always clean up r_mips_hi16_list Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 022/192] e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 055/192] MIPS: Bail on unsupported module relocs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 070/192] MIPS: Actually decode JALX in `__compute_return_epc_for_insn' Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 104/192] MIPS: Negate error syscall return in trace Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 013/192] Fix serial console on SNI RM400 machines Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 107/192] crypto: caam - fix signals handling Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 077/192] PCI/PM: Restore the status of PCI devices across hibernation Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 126/192] ext4: preserve i_mode if __ext4_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 025/192] vt: fix unchecked __put_user() in tioclinux ioctls Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 115/192] ubifs: Don't leak kernel memory to the MTD Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 036/192] udf: Fix races with i_size changes during readpage Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 051/192] scsi: virtio_scsi: let host do exception handling Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 069/192] MIPS: math-emu: Prevent wrong ISA mode instruction emulation Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 007/192] mwifiex: fixup error cases in mwifiex_add_virtual_intf() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 045/192] Btrfs: fix invalid extent maps due to hole punching Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 027/192] iio: accel: st_accel_spi: fix spi_device_id table Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 063/192] libertas: Fix lbs_prb_rsp_limit_set() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 094/192] rtc: rtc-nuc900: fix loop timeout test Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 011/192] wlcore: fix 64K page support Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 113/192] sunrpc: use constant time memory comparison for mac Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 037/192] udf: Fix deadlock between writeback and udf_setsize() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 088/192] IB/core: Add inline function to validate port Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 084/192] x86/xen: allow userspace access during hypercalls Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 016/192] drm/i915: Workaround VLV/CHV DSI scanline counter hardware fail Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 039/192] NFC: fix broken device allocation Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 058/192] MIPS: Save static registers before sysmips Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 120/192] ext3: preserve i_mode if ext2_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 034/192] USB: serial: option: add two Longcheer device ids Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 031/192] usb: Fix typo in the definition of Endpoint[out]Request Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 057/192] MIPS: Fix mips_atomic_set() retry condition Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 024/192] xen: avoid type warning in xchg_xen_ulong Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 071/192] MIPS: Fix unaligned PC interpretation in `compute_return_epc' Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 111/192] Input: i8042 - fix crash at boot time Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 029/192] vxlan: dont migrate permanent fdb entries during learn Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 054/192] scsi: sun_esp: fix device reference leaks Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 040/192] crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 130/192] btrfs: preserve i_mode if __btrfs_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 078/192] scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 014/192] tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 074/192] arm64: ptrace: Avoid setting compat FP[SC]R to garbage if get_user fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 061/192] ath9k: fix tx99 bus error Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 095/192] tpm: fix a kernel memory leak in tpm-sysfs.c Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 119/192] ext3: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 065/192] vfio: New external user group/file match Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 046/192] iwlwifi: mvm: fix the recovery flow while connecting Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 059/192] MIPS: Fix mips_atomic_set() with EVA Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 062/192] USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 026/192] Bluetooth: use constant time memory comparison for secret values Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 010/192] f2fs: try to freeze in gc and discard threads Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 128/192] f2fs: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 108/192] crypto: atmel - only treat EBUSY as transient if backlog Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 109/192] powerpc/64: Fix atomic64_inc_not_zero() to return an int Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 117/192] ext2: Don't clear SGID when inheriting ACLs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 002/192] sched/topology: Refactor function build_overlap_sched_groups() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 049/192] i2c: cadance: fix ctrl/addr reg write order Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 085/192] drm/i915: Disable MSI for all pre-gen5 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 004/192] sched/topology: Fix building of overlapping sched-groups Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 089/192] RDMA/uverbs: Check port number supplied by user verbs cmds Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 041/192] ASoC: compress: Derive substream from stream based on direction Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 125/192] jfs: preserve i_mode if __jfs_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 043/192] xhci: Limit USB2 port wake support for AMD Promontory hosts Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 021/192] e1000e: Fix Runtime PM blocks EEE link negotiation in S5 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 132/192] [media] saa7164: fix double fetch PCIe access condition Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 028/192] iio: magnetometer: st_magn_spi: fix spi_device_id table Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 072/192] MIPS: Send SIGILL for BPOSGE32 in `__compute_return_epc_for_insn' Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 129/192] f2fs: preserve i_mode if __f2fs_set_acl() fails Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 093/192] CIFS: fix circular locking dependency Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 015/192] Documentation: DMA API: fix a typo in a function name Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 032/192] PCI: Correct PCI_STD_RESOURCE_END usage Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 052/192] scsi: bnx2i: missing error code in bnx2i_ep_connect() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 038/192] drm/msm/hdmi: Use bitwise operators when building register values Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 001/192] sched: Rename a misleading variable in build_overlap_sched_groups() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 131/192] [media] saa7164: fix sparse warnings Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 166/192] MIPS: Fix 64k page support for 32 bit kernels Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 168/192] perf/x86: Fix undefined shift on 32-bit kernels Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 175/192] PCI: Support PCIe devices with short cfg_size Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 171/192] arm64: Rework valid_user_regs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 155/192] Revert "ACPI / EC: Add support to disallow QR_EC to be issued before completing previous QR_EC" Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 176/192] PCI: Add Netronome vendor and device IDs Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 157/192] x86/efi: Avoid triple faults during EFI mixed mode calls Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 149/192] sparc: Harden signal return frame checks Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 181/192] netvsc: fix incorrect receive checksum offloading Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 185/192] Move check for prefix path to within cifs_get_root() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 150/192] sparc64: Fix return from trap window fill crashes Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 136/192] xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 153/192] net: Don't forget pr_fmt on net_dbg_ratelimited for CONFIG_DYNAMIC_DEBUG Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 187/192] Fix match_prepath() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 152/192] net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 143/192] m32r: add io*_rep helpers Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 142/192] m32r: add definition of ioremap_wc to io.h Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 156/192] drm/irq: BUG_ON() -> WARN_ON() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 192/192] dm: flush queued bios when process blocks to avoid deadlock Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 167/192] perf/x86: Honor the architectural performance monitoring version Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 188/192] sched: move no_new_privs into new atomic flags Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 133/192] nl80211: check for the required netlink attributes presence Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 147/192] sparc/PCI: Fix for panic while enabling SR-IOV Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 139/192] l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv Ben Hutchings
2017-10-09 12:44 ` Ben Hutchings [this message]
2017-10-09 12:44 ` [PATCH 3.16 154/192] net sched filters: fix notification of filter delete with proper handle Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 179/192] PCI: Limit config space size for Netronome NFP4000 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 190/192] sched: add macros to define bitops for task atomic flags Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 183/192] Fix memory leaks in cifs_do_mount() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 134/192] kvm: nVMX: Don't allow L2 to access the hardware CR8 Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 161/192] Input: ads7846 - correct the value got from SPI Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 148/192] sparc64: Take ctx_alloc_lock properly in hugetlb_setup() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 173/192] s390/seccomp: fix error return for filtered system calls Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 151/192] net_dbg_ratelimited: turn into no-op when !DEBUG Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 177/192] PCI: Limit config space size for Netronome NFP6000 family Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 178/192] PCI: Add Netronome NFP4000 PF device ID Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 186/192] Fix regression which breaks DFS mounting Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 159/192] usb: musb: cppi41: improve rx channel abort routine Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 141/192] ipv4/fib: don't warn when primary address is missing if in_dev is dead Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 189/192] sched: fix confusing PFA_NO_NEW_PRIVS constant Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 180/192] ALSA: oxygen: Fix logical-not-parentheses warning Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 174/192] mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 145/192] sparc64: Fix bootup regressions on some Kconfig combinations Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 164/192] serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios() Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 144/192] sparc: Fix system call tracing register handling Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 162/192] ARM: OMAP3: Fix booting with thumb2 kernel Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 184/192] Compare prepaths when comparing superblocks Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 160/192] v4l2-dv-timings.h: fix polarity for 4k formats Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 163/192] Btrfs: don't use src fd for printk Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 137/192] scsi: scsi_transport_iscsi: fix the issue that iscsi_if_rx doesn't parse nlmsg properly Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 158/192] usb: musb: cppi41: correct the macro name EP_MODE_AUTOREG_* Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 140/192] net/route: enforce hoplimit max value Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 191/192] cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 182/192] fs/cifs: make share unaccessible at root level mountable Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 146/192] sparc64: Fix sparc64_set_context stack handling Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 169/192] macintosh/therm_windtunnel: Export I2C module alias information Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 170/192] MIPS: KVM: Fix modular KVM under QEMU Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 135/192] video: fbdev: aty: do not leak uninitialized padding in clk to userspace Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 172/192] mm/swap.c: flush lru pvecs on compound page arrival Ben Hutchings
2017-10-09 12:44 ` [PATCH 3.16 165/192] misc: ad525x_dpot: Fix the enabling of the "otpXen" attributes Ben Hutchings
2017-10-09 20:13 ` [PATCH 3.16 000/192] 3.16.49-rc1 review Guenter Roeck
2017-10-09 21:17   ` 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.1507553065.432592712@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=ben@armis.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=stable@vger.kernel.org \
    --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

all inboxes | Powered by JetHome®