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, "Sage Weil" <sage@redhat.com>,
	"Ilya Dryomov" <idryomov@redhat.com>
Subject: [PATCH 3.2 126/164] libceph: do not crash on large auth tickets
Date: Fri, 12 Dec 2014 06:14:25 +0000	[thread overview]
Message-ID: <lsq.1418364865.669840763@decadent.org.uk> (raw)
In-Reply-To: <lsq.1418364865.554543691@decadent.org.uk>

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

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

From: Ilya Dryomov <idryomov@redhat.com>

commit aaef31703a0cf6a733e651885bfb49edc3ac6774 upstream.

Large (greater than 32k, the value of PAGE_ALLOC_COSTLY_ORDER) auth
tickets will have their buffers vmalloc'ed, which leads to the
following crash in crypto:

[   28.685082] BUG: unable to handle kernel paging request at ffffeb04000032c0
[   28.686032] IP: [<ffffffff81392b42>] scatterwalk_pagedone+0x22/0x80
[   28.686032] PGD 0
[   28.688088] Oops: 0000 [#1] PREEMPT SMP
[   28.688088] Modules linked in:
[   28.688088] CPU: 0 PID: 878 Comm: kworker/0:2 Not tainted 3.17.0-vm+ #305
[   28.688088] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[   28.688088] Workqueue: ceph-msgr con_work
[   28.688088] task: ffff88011a7f9030 ti: ffff8800d903c000 task.ti: ffff8800d903c000
[   28.688088] RIP: 0010:[<ffffffff81392b42>]  [<ffffffff81392b42>] scatterwalk_pagedone+0x22/0x80
[   28.688088] RSP: 0018:ffff8800d903f688  EFLAGS: 00010286
[   28.688088] RAX: ffffeb04000032c0 RBX: ffff8800d903f718 RCX: ffffeb04000032c0
[   28.688088] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff8800d903f750
[   28.688088] RBP: ffff8800d903f688 R08: 00000000000007de R09: ffff8800d903f880
[   28.688088] R10: 18df467c72d6257b R11: 0000000000000000 R12: 0000000000000010
[   28.688088] R13: ffff8800d903f750 R14: ffff8800d903f8a0 R15: 0000000000000000
[   28.688088] FS:  00007f50a41c7700(0000) GS:ffff88011fc00000(0000) knlGS:0000000000000000
[   28.688088] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   28.688088] CR2: ffffeb04000032c0 CR3: 00000000da3f3000 CR4: 00000000000006b0
[   28.688088] Stack:
[   28.688088]  ffff8800d903f698 ffffffff81392ca8 ffff8800d903f6e8 ffffffff81395d32
[   28.688088]  ffff8800dac96000 ffff880000000000 ffff8800d903f980 ffff880119b7e020
[   28.688088]  ffff880119b7e010 0000000000000000 0000000000000010 0000000000000010
[   28.688088] Call Trace:
[   28.688088]  [<ffffffff81392ca8>] scatterwalk_done+0x38/0x40
[   28.688088]  [<ffffffff81392ca8>] scatterwalk_done+0x38/0x40
[   28.688088]  [<ffffffff81395d32>] blkcipher_walk_done+0x182/0x220
[   28.688088]  [<ffffffff813990bf>] crypto_cbc_encrypt+0x15f/0x180
[   28.688088]  [<ffffffff81399780>] ? crypto_aes_set_key+0x30/0x30
[   28.688088]  [<ffffffff8156c40c>] ceph_aes_encrypt2+0x29c/0x2e0
[   28.688088]  [<ffffffff8156d2a3>] ceph_encrypt2+0x93/0xb0
[   28.688088]  [<ffffffff8156d7da>] ceph_x_encrypt+0x4a/0x60
[   28.688088]  [<ffffffff8155b39d>] ? ceph_buffer_new+0x5d/0xf0
[   28.688088]  [<ffffffff8156e837>] ceph_x_build_authorizer.isra.6+0x297/0x360
[   28.688088]  [<ffffffff8112089b>] ? kmem_cache_alloc_trace+0x11b/0x1c0
[   28.688088]  [<ffffffff8156b496>] ? ceph_auth_create_authorizer+0x36/0x80
[   28.688088]  [<ffffffff8156ed83>] ceph_x_create_authorizer+0x63/0xd0
[   28.688088]  [<ffffffff8156b4b4>] ceph_auth_create_authorizer+0x54/0x80
[   28.688088]  [<ffffffff8155f7c0>] get_authorizer+0x80/0xd0
[   28.688088]  [<ffffffff81555a8b>] prepare_write_connect+0x18b/0x2b0
[   28.688088]  [<ffffffff81559289>] try_read+0x1e59/0x1f10

This is because we set up crypto scatterlists as if all buffers were
kmalloc'ed.  Fix it.

Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 net/ceph/crypto.c | 169 ++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 132 insertions(+), 37 deletions(-)

--- a/net/ceph/crypto.c
+++ b/net/ceph/crypto.c
@@ -90,11 +90,82 @@ static struct crypto_blkcipher *ceph_cry
 
 static const u8 *aes_iv = (u8 *)CEPH_AES_IV;
 
+/*
+ * Should be used for buffers allocated with ceph_kvmalloc().
+ * Currently these are encrypt out-buffer (ceph_buffer) and decrypt
+ * in-buffer (msg front).
+ *
+ * Dispose of @sgt with teardown_sgtable().
+ *
+ * @prealloc_sg is to avoid memory allocation inside sg_alloc_table()
+ * in cases where a single sg is sufficient.  No attempt to reduce the
+ * number of sgs by squeezing physically contiguous pages together is
+ * made though, for simplicity.
+ */
+static int setup_sgtable(struct sg_table *sgt, struct scatterlist *prealloc_sg,
+			 const void *buf, unsigned int buf_len)
+{
+	struct scatterlist *sg;
+	const bool is_vmalloc = is_vmalloc_addr(buf);
+	unsigned int off = offset_in_page(buf);
+	unsigned int chunk_cnt = 1;
+	unsigned int chunk_len = PAGE_ALIGN(off + buf_len);
+	int i;
+	int ret;
+
+	if (buf_len == 0) {
+		memset(sgt, 0, sizeof(*sgt));
+		return -EINVAL;
+	}
+
+	if (is_vmalloc) {
+		chunk_cnt = chunk_len >> PAGE_SHIFT;
+		chunk_len = PAGE_SIZE;
+	}
+
+	if (chunk_cnt > 1) {
+		ret = sg_alloc_table(sgt, chunk_cnt, GFP_NOFS);
+		if (ret)
+			return ret;
+	} else {
+		WARN_ON(chunk_cnt != 1);
+		sg_init_table(prealloc_sg, 1);
+		sgt->sgl = prealloc_sg;
+		sgt->nents = sgt->orig_nents = 1;
+	}
+
+	for_each_sg(sgt->sgl, sg, sgt->orig_nents, i) {
+		struct page *page;
+		unsigned int len = min(chunk_len - off, buf_len);
+
+		if (is_vmalloc)
+			page = vmalloc_to_page(buf);
+		else
+			page = virt_to_page(buf);
+
+		sg_set_page(sg, page, len, off);
+
+		off = 0;
+		buf += len;
+		buf_len -= len;
+	}
+	WARN_ON(buf_len != 0);
+
+	return 0;
+}
+
+static void teardown_sgtable(struct sg_table *sgt)
+{
+	if (sgt->orig_nents > 1)
+		sg_free_table(sgt);
+}
+
 static int ceph_aes_encrypt(const void *key, int key_len,
 			    void *dst, size_t *dst_len,
 			    const void *src, size_t src_len)
 {
-	struct scatterlist sg_in[2], sg_out[1];
+	struct scatterlist sg_in[2], prealloc_sg;
+	struct sg_table sg_out;
 	struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
 	struct blkcipher_desc desc = { .tfm = tfm, .flags = 0 };
 	int ret;
@@ -110,16 +181,18 @@ static int ceph_aes_encrypt(const void *
 
 	*dst_len = src_len + zero_padding;
 
-	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	sg_init_table(sg_in, 2);
 	sg_set_buf(&sg_in[0], src, src_len);
 	sg_set_buf(&sg_in[1], pad, zero_padding);
-	sg_init_table(sg_out, 1);
-	sg_set_buf(sg_out, dst, *dst_len);
+	ret = setup_sgtable(&sg_out, &prealloc_sg, dst, *dst_len);
+	if (ret)
+		goto out_tfm;
+
+	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	iv = crypto_blkcipher_crt(tfm)->iv;
 	ivsize = crypto_blkcipher_ivsize(tfm);
-
 	memcpy(iv, aes_iv, ivsize);
+
 	/*
 	print_hex_dump(KERN_ERR, "enc key: ", DUMP_PREFIX_NONE, 16, 1,
 		       key, key_len, 1);
@@ -128,16 +201,22 @@ static int ceph_aes_encrypt(const void *
 	print_hex_dump(KERN_ERR, "enc pad: ", DUMP_PREFIX_NONE, 16, 1,
 			pad, zero_padding, 1);
 	*/
-	ret = crypto_blkcipher_encrypt(&desc, sg_out, sg_in,
+	ret = crypto_blkcipher_encrypt(&desc, sg_out.sgl, sg_in,
 				     src_len + zero_padding);
-	crypto_free_blkcipher(tfm);
-	if (ret < 0)
+	if (ret < 0) {
 		pr_err("ceph_aes_crypt failed %d\n", ret);
+		goto out_sg;
+	}
 	/*
 	print_hex_dump(KERN_ERR, "enc out: ", DUMP_PREFIX_NONE, 16, 1,
 		       dst, *dst_len, 1);
 	*/
-	return 0;
+
+out_sg:
+	teardown_sgtable(&sg_out);
+out_tfm:
+	crypto_free_blkcipher(tfm);
+	return ret;
 }
 
 static int ceph_aes_encrypt2(const void *key, int key_len, void *dst,
@@ -145,7 +224,8 @@ static int ceph_aes_encrypt2(const void
 			     const void *src1, size_t src1_len,
 			     const void *src2, size_t src2_len)
 {
-	struct scatterlist sg_in[3], sg_out[1];
+	struct scatterlist sg_in[3], prealloc_sg;
+	struct sg_table sg_out;
 	struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
 	struct blkcipher_desc desc = { .tfm = tfm, .flags = 0 };
 	int ret;
@@ -161,17 +241,19 @@ static int ceph_aes_encrypt2(const void
 
 	*dst_len = src1_len + src2_len + zero_padding;
 
-	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	sg_init_table(sg_in, 3);
 	sg_set_buf(&sg_in[0], src1, src1_len);
 	sg_set_buf(&sg_in[1], src2, src2_len);
 	sg_set_buf(&sg_in[2], pad, zero_padding);
-	sg_init_table(sg_out, 1);
-	sg_set_buf(sg_out, dst, *dst_len);
+	ret = setup_sgtable(&sg_out, &prealloc_sg, dst, *dst_len);
+	if (ret)
+		goto out_tfm;
+
+	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	iv = crypto_blkcipher_crt(tfm)->iv;
 	ivsize = crypto_blkcipher_ivsize(tfm);
-
 	memcpy(iv, aes_iv, ivsize);
+
 	/*
 	print_hex_dump(KERN_ERR, "enc  key: ", DUMP_PREFIX_NONE, 16, 1,
 		       key, key_len, 1);
@@ -182,23 +264,30 @@ static int ceph_aes_encrypt2(const void
 	print_hex_dump(KERN_ERR, "enc  pad: ", DUMP_PREFIX_NONE, 16, 1,
 			pad, zero_padding, 1);
 	*/
-	ret = crypto_blkcipher_encrypt(&desc, sg_out, sg_in,
+	ret = crypto_blkcipher_encrypt(&desc, sg_out.sgl, sg_in,
 				     src1_len + src2_len + zero_padding);
-	crypto_free_blkcipher(tfm);
-	if (ret < 0)
+	if (ret < 0) {
 		pr_err("ceph_aes_crypt2 failed %d\n", ret);
+		goto out_sg;
+	}
 	/*
 	print_hex_dump(KERN_ERR, "enc  out: ", DUMP_PREFIX_NONE, 16, 1,
 		       dst, *dst_len, 1);
 	*/
-	return 0;
+
+out_sg:
+	teardown_sgtable(&sg_out);
+out_tfm:
+	crypto_free_blkcipher(tfm);
+	return ret;
 }
 
 static int ceph_aes_decrypt(const void *key, int key_len,
 			    void *dst, size_t *dst_len,
 			    const void *src, size_t src_len)
 {
-	struct scatterlist sg_in[1], sg_out[2];
+	struct sg_table sg_in;
+	struct scatterlist sg_out[2], prealloc_sg;
 	struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
 	struct blkcipher_desc desc = { .tfm = tfm };
 	char pad[16];
@@ -210,16 +299,16 @@ static int ceph_aes_decrypt(const void *
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
-	crypto_blkcipher_setkey((void *)tfm, key, key_len);
-	sg_init_table(sg_in, 1);
 	sg_init_table(sg_out, 2);
-	sg_set_buf(sg_in, src, src_len);
 	sg_set_buf(&sg_out[0], dst, *dst_len);
 	sg_set_buf(&sg_out[1], pad, sizeof(pad));
+	ret = setup_sgtable(&sg_in, &prealloc_sg, src, src_len);
+	if (ret)
+		goto out_tfm;
 
+	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	iv = crypto_blkcipher_crt(tfm)->iv;
 	ivsize = crypto_blkcipher_ivsize(tfm);
-
 	memcpy(iv, aes_iv, ivsize);
 
 	/*
@@ -228,12 +317,10 @@ static int ceph_aes_decrypt(const void *
 	print_hex_dump(KERN_ERR, "dec  in: ", DUMP_PREFIX_NONE, 16, 1,
 		       src, src_len, 1);
 	*/
-
-	ret = crypto_blkcipher_decrypt(&desc, sg_out, sg_in, src_len);
-	crypto_free_blkcipher(tfm);
+	ret = crypto_blkcipher_decrypt(&desc, sg_out, sg_in.sgl, src_len);
 	if (ret < 0) {
 		pr_err("ceph_aes_decrypt failed %d\n", ret);
-		return ret;
+		goto out_sg;
 	}
 
 	if (src_len <= *dst_len)
@@ -251,7 +338,12 @@ static int ceph_aes_decrypt(const void *
 	print_hex_dump(KERN_ERR, "dec out: ", DUMP_PREFIX_NONE, 16, 1,
 		       dst, *dst_len, 1);
 	*/
-	return 0;
+
+out_sg:
+	teardown_sgtable(&sg_in);
+out_tfm:
+	crypto_free_blkcipher(tfm);
+	return ret;
 }
 
 static int ceph_aes_decrypt2(const void *key, int key_len,
@@ -259,7 +351,8 @@ static int ceph_aes_decrypt2(const void
 			     void *dst2, size_t *dst2_len,
 			     const void *src, size_t src_len)
 {
-	struct scatterlist sg_in[1], sg_out[3];
+	struct sg_table sg_in;
+	struct scatterlist sg_out[3], prealloc_sg;
 	struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
 	struct blkcipher_desc desc = { .tfm = tfm };
 	char pad[16];
@@ -271,17 +364,17 @@ static int ceph_aes_decrypt2(const void
 	if (IS_ERR(tfm))
 		return PTR_ERR(tfm);
 
-	sg_init_table(sg_in, 1);
-	sg_set_buf(sg_in, src, src_len);
 	sg_init_table(sg_out, 3);
 	sg_set_buf(&sg_out[0], dst1, *dst1_len);
 	sg_set_buf(&sg_out[1], dst2, *dst2_len);
 	sg_set_buf(&sg_out[2], pad, sizeof(pad));
+	ret = setup_sgtable(&sg_in, &prealloc_sg, src, src_len);
+	if (ret)
+		goto out_tfm;
 
 	crypto_blkcipher_setkey((void *)tfm, key, key_len);
 	iv = crypto_blkcipher_crt(tfm)->iv;
 	ivsize = crypto_blkcipher_ivsize(tfm);
-
 	memcpy(iv, aes_iv, ivsize);
 
 	/*
@@ -290,12 +383,10 @@ static int ceph_aes_decrypt2(const void
 	print_hex_dump(KERN_ERR, "dec   in: ", DUMP_PREFIX_NONE, 16, 1,
 		       src, src_len, 1);
 	*/
-
-	ret = crypto_blkcipher_decrypt(&desc, sg_out, sg_in, src_len);
-	crypto_free_blkcipher(tfm);
+	ret = crypto_blkcipher_decrypt(&desc, sg_out, sg_in.sgl, src_len);
 	if (ret < 0) {
 		pr_err("ceph_aes_decrypt failed %d\n", ret);
-		return ret;
+		goto out_sg;
 	}
 
 	if (src_len <= *dst1_len)
@@ -325,7 +416,11 @@ static int ceph_aes_decrypt2(const void
 		       dst2, *dst2_len, 1);
 	*/
 
-	return 0;
+out_sg:
+	teardown_sgtable(&sg_in);
+out_tfm:
+	crypto_free_blkcipher(tfm);
+	return ret;
 }
 
 


  parent reply	other threads:[~2014-12-12  6:36 UTC|newest]

Thread overview: 170+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-12  6:14 [PATCH 3.2 000/164] 3.2.65-rc1 review Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 031/164] rt2800: correct BBP1_TX_POWER_CTRL mask Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 123/164] scsi: only re-lock door after EH on devices that were reset Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 097/164] ext4: fix overflow when updating superblock backups after resize Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 125/164] rt2x00: do not align payload on modern H/W Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 013/164] USB: cp210x: add support for Seluxit USB dongle Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 055/164] Input: synaptics - gate forcepad support by DMI check Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 025/164] spi: dw-mid: respect 8 bit mode Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 091/164] zap_pte_range: update addr when forcing flush after TLB batching faiure Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 158/164] mei: add mei_quirk_probe function Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 056/164] Input: i8042 - add noloop quirk for Asus X750LN Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 135/164] of/base: Fix PowerPC address parsing hack Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 119/164] spi: dw: Fix dynamic speed change Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 090/164] drm/radeon: remove invalid pci id Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 076/164] usb: serial: ftdi_sio: add "bricked" FTDI device PID Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 045/164] dm log userspace: fix memory leak in dm_ulog_tfr_init failure path Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 143/164] nfsd: Fix slot wake up race in the nfsv4.1 callback code Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 132/164] can: esd_usb2: fix memory leak on disconnect Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 157/164] Input: xpad - use proper endpoint type Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 059/164] kernel: add support for gcc 5 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 146/164] USB: xhci: don't start a halted endpoint before its new dequeue is set Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 096/164] mac80211: properly flush delayed scan work on interface removal Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 105/164] block: Fix computation of merged request priority Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 120/164] Input: alps - ignore potential bare packets when device is out of sync Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 010/164] ext4: don't check quota format when there are no quota files Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 033/164] Documentation: lzo: document part of the encoding Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 005/164] Bluetooth: Fix issue with USB suspend in btusb driver Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 140/164] sunrpc: fix byte-swapping of displayed XID Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 081/164] kvm: fix excessive pages un-pinning in kvm_iommu_map error path Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 117/164] tty: Fix high cpu load if tty is unreleaseable Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 015/164] [media] v4l2-common: fix overflow in v4l_bound_align_image() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 051/164] fs: make cont_expand_zero interruptible Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 012/164] USB: serial: cp210x: added Ketra N1 wireless interface support Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 114/164] staging:iio:ade7758: Remove "raw" from channel name Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 067/164] dm raid: ensure superblock's size matches device's logical block size Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 057/164] ext4: fix reservation overflow in ext4_da_write_begin Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 099/164] ext4: bail out from make_indexed_dir() on first error Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 009/164] PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 100/164] [media] ds3000: fix LNB supply voltage on Tevii S480 on initialization Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 027/164] spi: dw-mid: terminate ongoing transfers at exit Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 094/164] mm, thp: fix collapsing of hugepages on madvise Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 128/164] firewire: cdev: prevent kernel stack leaking into ioctl arguments Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 063/164] dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 080/164] kvm: x86: don't kill guest on unknown exit reason Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 107/164] USB: opticon: fix non-atomic allocation in write path Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 153/164] x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 095/164] lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 072/164] USB: option: add Haier CE81B CDMA modem Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 020/164] Drivers: hv: vmbus: Cleanup vmbus_teardown_gpadl() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 151/164] x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 079/164] MIPS: ftrace: Fix a microMIPS build problem Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 083/164] posix-timers: Fix stack info leak in timer_create() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 004/164] UBIFS: fix free log space calculation Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 150/164] x86_64, traps: Stop using IST for #SS Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 014/164] PCI: Generate uppercase hex for modalias interface class Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 053/164] block: fix alignment_offset math that assumes io_min is a power-of-2 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 118/164] tty/vt: don't set font mappings on vc not supporting this Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 139/164] USB: ssu100: fix overrun-error reporting Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 052/164] fix misuses of f_count() in ppp and netlink Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 124/164] audit: keep inode pinned Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 144/164] bnx2fc: do not add shared skbs to the fcoe_rx_list Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 018/164] firmware_class: make sure fw requests contain a name Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 106/164] USB: kobil_sct: fix non-atomic allocation in write path Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 073/164] x86: Conditionally update time when ack-ing pending irqs Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 110/164] usb: Do not allow usb_alloc_streams on unconfigured devices Ben Hutchings
2014-12-12  6:14 ` Ben Hutchings [this message]
2014-12-12  6:14 ` [PATCH 3.2 062/164] selinux: fix inode security list corruption Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 016/164] USB: add reset resume quirk for usb3503 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 082/164] Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 108/164] mac80211: fix use-after-free in defragmentation Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 075/164] scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 044/164] dm bufio: update last_accessed when relinking a buffer Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 074/164] x86, apic: Handle a bad TSC more gracefully Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 130/164] x86: Require exact match for 'noxsave' command line option Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 133/164] x86, 64bit, mm: Mark data/bss/brk to nx Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 028/164] kvm: don't take vcpu mutex for obviously invalid vcpu ioctls Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 121/164] Input: alps - allow up to 2 invalid packets without resetting device Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 002/164] UBIFS: remove mst_mutex Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 147/164] Revert "xhci: clear root port wake on bits if controller isn't wake-up capable" Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 036/164] libata-sff: Fix controllers with no ctl port Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 011/164] [media] media: usb: uvc: add a quirk for Dell XPS M1330 webcam Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 122/164] USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 007/164] ext4: check EA value offset when loading Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 102/164] tracing/syscalls: Fix perf syscall tracing when syscall_nr == -1 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 042/164] vfs: fix data corruption when blocksize < pagesize for mmaped data Ben Hutchings
2014-12-12  8:48   ` Jan Kara
2014-12-12 16:58     ` Ben Hutchings
2014-12-24  7:56     ` Zefan Li
2014-12-12  6:14 ` [PATCH 3.2 127/164] ASoC: sgtl5000: Fix SMALL_POP bit definition Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 049/164] pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 113/164] ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 060/164] ALSA: emu10k1: Fix deadlock in synth voice lookup Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 155/164] MIPS: Loongson: Make platform serial setup always built-in Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 046/164] ext4: don't orphan or truncate the boot loader inode Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 017/164] USB: Add device quirk for ASUS T100 Base Station keyboard Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 138/164] USB: keyspan: fix overrun-error reporting Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 136/164] usb: serial: ftdi_sio: add PIDs for Matrix Orbital products Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 029/164] x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 077/164] usb: gadget: udc: core: fix kernel oops with soft-connect Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 134/164] x86, mm: Set NX across entire PMD at boot Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 043/164] m68k: Disable/restore interrupts in hwreg_present()/hwreg_write() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 019/164] Drivers: hv: vmbus: Cleanup vmbus_post_msg() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 001/164] kvm: x86: fix stale mmio cache bug Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 141/164] SUNRPC: Fix locking around callback channel reply receive Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 058/164] spi: pl022: Fix incorrect dma_unmap_sg Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 035/164] lzo: check for length overrun in variable length encoding Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 069/164] USB: serial: cp210x: add Silicon Labs 358x VID and PID Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 145/164] ARM: 8216/1: xscale: correct auxiliary register in suspend/resume Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 109/164] USB: cdc-acm: add device id for GW Instek AFG-2225 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 086/164] ahci: Add Device IDs for Intel Sunrise Point PCH Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 154/164] ALSA: hda - Limit 40bit DMA for AMD HDMI controllers Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 129/164] iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 065/164] random: add and use memzero_explicit() for clearing data Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 103/164] tracing/syscalls: Ignore numbers outside NR_syscalls' range Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 078/164] nfsd4: fix crash on unknown operation number Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 116/164] serial: Fix divide-by-zero fault in uart_get_divisor() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 026/164] spi: dw-mid: check that DMA was inited before exit Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 092/164] ASoC: fsi: remove unsupported PAUSE flag Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 149/164] usb: xhci: rework root port wake bits if controller isn't allowed to wakeup Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 093/164] cgroup/kmemleak: add kmemleak_free() for cgroup deallocations Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 006/164] KVM: s390: unintended fallthrough for external call Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 156/164] usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 041/164] target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 054/164] fanotify: enable close-on-exec on events' fd when requested in fanotify_init() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 070/164] usb: serial: ftdi_sio: add Awinda Station and Dongle products Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 142/164] MIPS: oprofile: Fix backtrace on 64-bit kernel Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 148/164] USB: xhci: Reset a halted endpoint immediately when we encounter a stall Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 087/164] PM / Sleep: fix recovery during resuming from hibernation Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 040/164] NFSv4.1: Fix an NFSv4.1 state renewal regression Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 021/164] Drivers: hv: vmbus: Cleanup vmbus_establish_gpadl() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 089/164] evm: check xattr value length and type in evm_inode_setxattr() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 088/164] ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 008/164] PCI: pciehp: Prevent NULL dereference during probe Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 131/164] can: dev: avoid calling kfree_skb() from interrupt context Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 066/164] xtensa: re-wire umount syscall to sys_oldumount Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 071/164] usb: option: add support for Telit LE910 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 048/164] ecryptfs: avoid to access NULL pointer when write metadata in xattr Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 112/164] xhci: no switching back on non-ULT Haswell Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 038/164] framebuffer: fix border color Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 034/164] Revert "lzo: properly check for overruns" Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 032/164] staging:iio:ad5933: Drop "raw" from channel names Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 152/164] x86_64, traps: Rework bad_iret Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 050/164] fs: Fix theoretical division by 0 in super_cache_scan() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 061/164] libceph: ceph-msgr workqueue needs a resque worker Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 039/164] framebuffer: fix screen corruption when copying Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 115/164] USB: cdc-acm: only raise DTR on transitions from B0 Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 047/164] ext4: add ext4_iget_normal() which is to be used for dir tree lookups Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 104/164] drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 024/164] Drivers: hv: vmbus: Cleanup hv_post_message() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 037/164] NFSv4: fix open/lock state recovery error handling Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 023/164] Drivers: hv: vmbus: Cleanup vmbus_close_internal() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 084/164] futex: Fix a race condition between REQUEUE_PI and task death Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 030/164] lockd: Try to reconnect if statd has moved Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 137/164] USB: keyspan: fix tty line-status reporting Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 064/164] compiler: Define OPTIMIZER_HIDE_VAR Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 068/164] ext3: Don't check quota format when there are no quota files Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 101/164] wireless: rt2x00: add new rt2800usb device Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 098/164] ext4: fix oops when loading block bitmap failed Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 111/164] usb-storage: handle a skipped data phase Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 022/164] Drivers: hv: vmbus: Fix a bug in vmbus_open() Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 085/164] ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 003/164] UBIFS: fix a race condition Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 159/164] mei: limit the number of consecutive resets Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 161/164] [SCSI] hpsa: fix a race in cmd_free/scsi_done Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 164/164] perf: Handle compat ioctl Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 162/164] Patch for 3.2.x, 3.4.x IP identifier regression Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 163/164] crypto: algif - avoid excessive use of socket buffer in skcipher Ben Hutchings
2014-12-12  6:14 ` [PATCH 3.2 160/164] tcp: be more strict before accepting ECN negociation Ben Hutchings
2014-12-12 16:26 ` [PATCH 3.2 000/164] 3.2.65-rc1 review Guenter Roeck
2014-12-12 16:55   ` 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.1418364865.669840763@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=idryomov@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sage@redhat.com \
    --cc=stable@vger.kernel.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®