From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg KH <gregkh@linuxfoundation.org>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Dave Jones <davej@redhat.com>,
Eric Dumazet <edumazet@google.com>, Jens Axboe <axboe@kernel.dk>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Tom Herbert <therbert@google.com>,
Ben Hutchings <ben@decadent.org.uk>
Subject: [ 174/187] splice: fix racy pipe->buffers uses
Date: Thu, 12 Jul 2012 15:35:30 -0700 [thread overview]
Message-ID: <20120712191539.433405264@linuxfoundation.org> (raw)
In-Reply-To: <20120712191522.742634173@linuxfoundation.org>
From: Greg KH <gregkh@linuxfoundation.org>
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eric Dumazet <edumazet@google.com>
commit 047fe3605235888f3ebcda0c728cb31937eadfe6 upstream.
Dave Jones reported a kernel BUG at mm/slub.c:3474! triggered
by splice_shrink_spd() called from vmsplice_to_pipe()
commit 35f3d14dbbc5 (pipe: add support for shrinking and growing pipes)
added capability to adjust pipe->buffers.
Problem is some paths don't hold pipe mutex and assume pipe->buffers
doesn't change for their duration.
Fix this by adding nr_pages_max field in struct splice_pipe_desc, and
use it in place of pipe->buffers where appropriate.
splice_shrink_spd() loses its struct pipe_inode_info argument.
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Tom Herbert <therbert@google.com>
Tested-by: Dave Jones <davej@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
[bwh: Backported to 3.2:
- Adjust context in vmsplice_to_pipe()
- Update one more call to splice_shrink_spd(), from skb_splice_bits()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/splice.c | 35 ++++++++++++++++++++---------------
include/linux/splice.h | 8 ++++----
kernel/relay.c | 5 +++--
kernel/trace/trace.c | 6 ++++--
mm/shmem.c | 3 ++-
net/core/skbuff.c | 3 ++-
6 files changed, 35 insertions(+), 25 deletions(-)
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -273,13 +273,16 @@ void spd_release_page(struct splice_pipe
* Check if we need to grow the arrays holding pages and partial page
* descriptions.
*/
-int splice_grow_spd(struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)
+int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)
{
- if (pipe->buffers <= PIPE_DEF_BUFFERS)
+ unsigned int buffers = ACCESS_ONCE(pipe->buffers);
+
+ spd->nr_pages_max = buffers;
+ if (buffers <= PIPE_DEF_BUFFERS)
return 0;
- spd->pages = kmalloc(pipe->buffers * sizeof(struct page *), GFP_KERNEL);
- spd->partial = kmalloc(pipe->buffers * sizeof(struct partial_page), GFP_KERNEL);
+ spd->pages = kmalloc(buffers * sizeof(struct page *), GFP_KERNEL);
+ spd->partial = kmalloc(buffers * sizeof(struct partial_page), GFP_KERNEL);
if (spd->pages && spd->partial)
return 0;
@@ -289,10 +292,9 @@ int splice_grow_spd(struct pipe_inode_in
return -ENOMEM;
}
-void splice_shrink_spd(struct pipe_inode_info *pipe,
- struct splice_pipe_desc *spd)
+void splice_shrink_spd(struct splice_pipe_desc *spd)
{
- if (pipe->buffers <= PIPE_DEF_BUFFERS)
+ if (spd->nr_pages_max <= PIPE_DEF_BUFFERS)
return;
kfree(spd->pages);
@@ -315,6 +317,7 @@ __generic_file_splice_read(struct file *
struct splice_pipe_desc spd = {
.pages = pages,
.partial = partial,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &page_cache_pipe_buf_ops,
.spd_release = spd_release_page,
@@ -326,7 +329,7 @@ __generic_file_splice_read(struct file *
index = *ppos >> PAGE_CACHE_SHIFT;
loff = *ppos & ~PAGE_CACHE_MASK;
req_pages = (len + loff + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
- nr_pages = min(req_pages, pipe->buffers);
+ nr_pages = min(req_pages, spd.nr_pages_max);
/*
* Lookup the (hopefully) full range of pages we need.
@@ -497,7 +500,7 @@ fill_it:
if (spd.nr_pages)
error = splice_to_pipe(pipe, &spd);
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
return error;
}
@@ -598,6 +601,7 @@ ssize_t default_file_splice_read(struct
struct splice_pipe_desc spd = {
.pages = pages,
.partial = partial,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &default_pipe_buf_ops,
.spd_release = spd_release_page,
@@ -608,8 +612,8 @@ ssize_t default_file_splice_read(struct
res = -ENOMEM;
vec = __vec;
- if (pipe->buffers > PIPE_DEF_BUFFERS) {
- vec = kmalloc(pipe->buffers * sizeof(struct iovec), GFP_KERNEL);
+ if (spd.nr_pages_max > PIPE_DEF_BUFFERS) {
+ vec = kmalloc(spd.nr_pages_max * sizeof(struct iovec), GFP_KERNEL);
if (!vec)
goto shrink_ret;
}
@@ -617,7 +621,7 @@ ssize_t default_file_splice_read(struct
offset = *ppos & ~PAGE_CACHE_MASK;
nr_pages = (len + offset + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
- for (i = 0; i < nr_pages && i < pipe->buffers && len; i++) {
+ for (i = 0; i < nr_pages && i < spd.nr_pages_max && len; i++) {
struct page *page;
page = alloc_page(GFP_USER);
@@ -665,7 +669,7 @@ ssize_t default_file_splice_read(struct
shrink_ret:
if (vec != __vec)
kfree(vec);
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
return res;
err:
@@ -1612,6 +1616,7 @@ static long vmsplice_to_pipe(struct file
struct splice_pipe_desc spd = {
.pages = pages,
.partial = partial,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &user_page_pipe_buf_ops,
.spd_release = spd_release_page,
@@ -1627,13 +1632,13 @@ static long vmsplice_to_pipe(struct file
spd.nr_pages = get_iovec_page_array(iov, nr_segs, spd.pages,
spd.partial, flags & SPLICE_F_GIFT,
- pipe->buffers);
+ spd.nr_pages_max);
if (spd.nr_pages <= 0)
ret = spd.nr_pages;
else
ret = splice_to_pipe(pipe, &spd);
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
return ret;
}
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -51,7 +51,8 @@ struct partial_page {
struct splice_pipe_desc {
struct page **pages; /* page map */
struct partial_page *partial; /* pages[] may not be contig */
- int nr_pages; /* number of pages in map */
+ int nr_pages; /* number of populated pages in map */
+ unsigned int nr_pages_max; /* pages[] & partial[] arrays size */
unsigned int flags; /* splice flags */
const struct pipe_buf_operations *ops;/* ops associated with output pipe */
void (*spd_release)(struct splice_pipe_desc *, unsigned int);
@@ -85,9 +86,8 @@ extern ssize_t splice_direct_to_actor(st
/*
* for dynamic pipe sizing
*/
-extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
-extern void splice_shrink_spd(struct pipe_inode_info *,
- struct splice_pipe_desc *);
+extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *);
+extern void splice_shrink_spd(struct splice_pipe_desc *);
extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -1235,6 +1235,7 @@ static ssize_t subbuf_splice_actor(struc
struct splice_pipe_desc spd = {
.pages = pages,
.nr_pages = 0,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.partial = partial,
.flags = flags,
.ops = &relay_pipe_buf_ops,
@@ -1302,8 +1303,8 @@ static ssize_t subbuf_splice_actor(struc
ret += padding;
out:
- splice_shrink_spd(pipe, &spd);
- return ret;
+ splice_shrink_spd(&spd);
+ return ret;
}
static ssize_t relay_file_splice_read(struct file *in,
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3565,6 +3565,7 @@ static ssize_t tracing_splice_read_pipe(
.pages = pages_def,
.partial = partial_def,
.nr_pages = 0, /* This gets updated below. */
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &tracing_pipe_buf_ops,
.spd_release = tracing_spd_release_pipe,
@@ -3636,7 +3637,7 @@ static ssize_t tracing_splice_read_pipe(
ret = splice_to_pipe(pipe, &spd);
out:
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
return ret;
out_err:
@@ -4126,6 +4127,7 @@ tracing_buffers_splice_read(struct file
struct splice_pipe_desc spd = {
.pages = pages_def,
.partial = partial_def,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &buffer_pipe_buf_ops,
.spd_release = buffer_spd_release,
@@ -4213,7 +4215,7 @@ tracing_buffers_splice_read(struct file
}
ret = splice_to_pipe(pipe, &spd);
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
out:
return ret;
}
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1365,6 +1365,7 @@ static ssize_t shmem_file_splice_read(st
struct splice_pipe_desc spd = {
.pages = pages,
.partial = partial,
+ .nr_pages_max = PIPE_DEF_BUFFERS,
.flags = flags,
.ops = &page_cache_pipe_buf_ops,
.spd_release = spd_release_page,
@@ -1453,7 +1454,7 @@ static ssize_t shmem_file_splice_read(st
if (spd.nr_pages)
error = splice_to_pipe(pipe, &spd);
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
if (error > 0) {
*ppos += error;
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -1712,6 +1712,7 @@ int skb_splice_bits(struct sk_buff *skb,
struct splice_pipe_desc spd = {
.pages = pages,
.partial = partial,
+ .nr_pages_max = MAX_SKB_FRAGS,
.flags = flags,
.ops = &sock_pipe_buf_ops,
.spd_release = sock_spd_release,
@@ -1758,7 +1759,7 @@ done:
lock_sock(sk);
}
- splice_shrink_spd(pipe, &spd);
+ splice_shrink_spd(&spd);
return ret;
}
next prev parent reply other threads:[~2012-07-12 22:50 UTC|newest]
Thread overview: 191+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-12 19:24 [ 000/187] 3.4.5-stable review Greg KH
2012-07-12 22:23 ` [ 001/187] Tools: hv: verify origin of netlink connector message Greg Kroah-Hartman
2012-07-12 22:23 ` [ 002/187] ARM: tegra: make tegra_cpu_reset_handler_enable() __init Greg Kroah-Hartman
2012-07-12 22:23 ` [ 003/187] ALSA: hda - Add Realtek ALC280 codec support Greg Kroah-Hartman
2012-07-12 22:23 ` [ 004/187] ALSA: hda - Fix memory leaks at module unload Greg Kroah-Hartman
2012-07-12 22:32 ` [ 005/187] ALSA: hda - Fix power-map regression for HP dv6 & co Greg Kroah-Hartman
2012-07-12 22:32 ` [ 006/187] powerpc/ftrace: Do not trace restore_interrupts() Greg Kroah-Hartman
2012-07-12 22:32 ` [ 007/187] powerpc: Fix uninitialised error in numa.c Greg Kroah-Hartman
2012-07-12 22:32 ` [ 008/187] powerpc/pseries: Fix software invalidate TCE Greg Kroah-Hartman
2012-07-12 22:32 ` [ 009/187] powerpc: check_and_cede_processor() never cedes Greg Kroah-Hartman
2012-07-12 22:32 ` [ 010/187] ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping Greg Kroah-Hartman
2012-07-12 22:32 ` [ 011/187] ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL Greg Kroah-Hartman
2012-07-12 22:32 ` [ 012/187] ARM: 7438/1: fill possible PMD empty section gaps Greg Kroah-Hartman
2012-07-12 22:32 ` [ 013/187] powerpc/kvm: sldi should be sld Greg Kroah-Hartman
2012-07-12 22:32 ` [ 014/187] powerpc/xmon: Use cpumask iterator to avoid warning Greg Kroah-Hartman
2012-07-12 22:32 ` [ 015/187] media: smsusb: add autodetection support for USB ID 2040:f5a0 Greg Kroah-Hartman
2012-07-12 22:32 ` [ 016/187] bql: Fix POSDIFF() to integer overflow aware Greg Kroah-Hartman
2012-07-12 22:32 ` [ 017/187] bql: Avoid unneeded limit decrement Greg Kroah-Hartman
2012-07-12 22:32 ` [ 018/187] bql: Avoid possible inconsistent calculation Greg Kroah-Hartman
2012-07-12 22:32 ` [ 019/187] net: sock: validate data_len before allocating skb in sock_alloc_send_pskb() Greg Kroah-Hartman
2012-07-12 22:32 ` [ 020/187] cipso: handle CIPSO options correctly when NetLabel is disabled Greg Kroah-Hartman
2012-07-12 22:32 ` [ 021/187] r8169: call netif_napi_del at errpaths and at driver unload Greg Kroah-Hartman
2012-07-12 22:32 ` [ 022/187] drop_monitor: dont sleep in atomic context Greg Kroah-Hartman
2012-07-12 22:32 ` [ 023/187] inetpeer: fix a race in inetpeer_gc_worker() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 024/187] net: l2tp_eth: fix kernel panic on rmmod l2tp_eth Greg Kroah-Hartman
2012-07-12 22:33 ` [ 025/187] l2tp: fix a race in l2tp_ip_sendmsg() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 026/187] lpc_eth: add missing ndo_change_mtu() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 027/187] lpc_eth: fix tx completion Greg Kroah-Hartman
2012-07-12 22:33 ` [ 028/187] net: neighbour: fix neigh_dump_info() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 029/187] ipv6: fib: Restore NTF_ROUTER exception in fib6_age() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 030/187] ipv6: Move ipv6 proc file registration to end of init order Greg Kroah-Hartman
2012-07-12 22:33 ` [ 031/187] sky2: fix checksum bit management on some chips Greg Kroah-Hartman
2012-07-12 22:33 ` [ 032/187] Revert "niu: Add support for byte queue limits." Greg Kroah-Hartman
2012-07-12 22:33 ` [ 033/187] be2net: fix a race in be_xmit() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 034/187] dummy: fix rcu_sched self-detected stalls Greg Kroah-Hartman
2012-07-12 22:33 ` [ 035/187] bonding: Fix corrupted queue_mapping Greg Kroah-Hartman
2012-07-12 22:33 ` [ 036/187] netpoll: fix netpoll_send_udp() bugs Greg Kroah-Hartman
2012-07-12 22:33 ` [ 037/187] bnx2x: fix checksum validation Greg Kroah-Hartman
2012-07-12 22:33 ` [ 038/187] bnx2x: fix panic when TX ring is full Greg Kroah-Hartman
2012-07-12 22:33 ` [ 039/187] net: remove skb_orphan_try() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 040/187] bridge: Assign rtnl_link_ops to bridge devices created via ioctl (v2) Greg Kroah-Hartman
2012-07-12 22:33 ` [ 041/187] xen/netfront: teardown the device before unregistering it Greg Kroah-Hartman
2012-07-12 22:33 ` [ 042/187] mm: fix slab->page _count corruption when using slub Greg Kroah-Hartman
2012-07-12 22:33 ` [ 043/187] powerpc: More fixes for lazy IRQ vs. idle Greg Kroah-Hartman
2012-07-12 22:33 ` [ 044/187] powerpc: Fix build of some debug irq code Greg Kroah-Hartman
2012-07-12 22:33 ` [ 045/187] NFC: Return from rawsock_release when sk is NULL Greg Kroah-Hartman
2012-07-12 22:33 ` [ 046/187] NFC: Prevent multiple buffer overflows in NCI Greg Kroah-Hartman
2012-07-12 22:33 ` [ 047/187] hwmon: (applesmc) Limit key length in warning messages Greg Kroah-Hartman
2012-07-12 22:33 ` [ 048/187] staging: r8712u: Add new USB IDs Greg Kroah-Hartman
2012-07-12 22:33 ` [ 049/187] nilfs2: ensure proper cache clearing for gc-inodes Greg Kroah-Hartman
2012-07-12 22:33 ` [ 050/187] udf: Use ret instead of abusing i in udf_load_logicalvol() Greg Kroah-Hartman
2012-07-12 22:33 ` [ 051/187] udf: Avoid run away loop when partition table length is corrupted Greg Kroah-Hartman
2012-07-12 22:33 ` [ 052/187] udf: Fortify loading of sparing table Greg Kroah-Hartman
2012-07-12 22:33 ` [ 053/187] iommu/amd: Fix missing iommu_shutdown initialization in passthrough mode Greg Kroah-Hartman
2012-07-12 22:33 ` [ 054/187] iommu/amd: Initialize dma_ops for hotplug and sriov devices Greg Kroah-Hartman
2012-07-12 22:33 ` [ 055/187] iommu/tegra: smmu: Fix unsleepable memory allocation Greg Kroah-Hartman
2012-07-12 22:33 ` [ 056/187] rpmsg: avoid premature deallocation of endpoints Greg Kroah-Hartman
2012-07-12 22:33 ` [ 057/187] rpmsg: make sure inflight messages dont invoke just-removed callbacks Greg Kroah-Hartman
2012-07-12 22:33 ` [ 058/187] cifs: fix parsing of password mount option Greg Kroah-Hartman
2012-07-12 22:33 ` [ 060/187] ath9k: Fix a WARNING on suspend/resume with IBSS Greg Kroah-Hartman
2012-07-12 22:33 ` [ 061/187] ath9k: Fix softlockup in AR9485 Greg Kroah-Hartman
2012-07-12 22:33 ` [ 062/187] ath9k: fix a tx rate duration calculation bug Greg Kroah-Hartman
2012-07-12 22:33 ` =?y?q?=5B=20063/187=5D=20ath9k=3A=20fix=20invalid=20pointer=20access=20in=20the=20tx=20path?= Greg Kroah-Hartman
2012-07-12 22:33 ` [ 064/187] ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc Greg Kroah-Hartman
2012-07-12 22:33 ` [ 065/187] ath9k_htc: configure bssid on ASSOC/IBSS change Greg Kroah-Hartman
2012-07-12 22:33 ` [ 066/187] ath9k: fix dynamic WEP related regression Greg Kroah-Hartman
2012-07-12 22:33 ` [ 067/187] ath9k: enable serialize_regmode for non-PCIE AR9287 Greg Kroah-Hartman
2012-07-12 22:33 ` [ 068/187] ASoC: wm2200: Add missing BCLK rate Greg Kroah-Hartman
2012-07-12 22:33 ` [ 069/187] ASoC: tlv320aic3x: Fix codec pll configure bug Greg Kroah-Hartman
2012-07-12 22:33 ` [ 070/187] Btrfs: run delayed directory updates during log replay Greg Kroah-Hartman
2012-07-12 22:33 ` [ 071/187] drm/edid: dont return stack garbage from supports_rb Greg Kroah-Hartman
2012-07-12 22:33 ` [ 072/187] drm/nouveau/fbcon: using nv_two_heads is not a good idea Greg Kroah-Hartman
2012-07-12 22:33 ` [ 073/187] drm/i915: Fix eDP blank screen after S3 resume on HP desktops Greg Kroah-Hartman
2012-07-12 22:33 ` [ 074/187] drm/radeon: fix VM page table setup on SI Greg Kroah-Hartman
2012-07-12 22:33 ` [ 075/187] ACPI video: Still use ACPI backlight control if _DOS doesnt exist Greg Kroah-Hartman
2012-07-12 22:33 ` [ 076/187] acpi_pad: fix power_saving thread deadlock Greg Kroah-Hartman
2012-07-12 22:33 ` [ 077/187] ACPI, APEI, Avoid too much error reporting in runtime Greg Kroah-Hartman
2012-07-12 22:33 ` [ 078/187] ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases Greg Kroah-Hartman
2012-07-12 22:33 ` [ 079/187] ACPI: Remove one board specific WARN when ignoring timer overriding Greg Kroah-Hartman
2012-07-12 22:33 ` [ 080/187] ACPI: Add a quirk for "AMILO PRO V2030" to ignore the " Greg Kroah-Hartman
2012-07-12 22:33 ` [ 081/187] ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI Greg Kroah-Hartman
2012-07-12 22:33 ` [ 082/187] ACPI sysfs.c strlen fix Greg Kroah-Hartman
2012-07-12 22:33 ` [ 083/187] ARM: Orion: Fix Virtual/Physical mixup with watchdog Greg Kroah-Hartman
2012-07-12 22:34 ` [ 084/187] ARM: Orion: Fix WDT compile for Dove and MV78xx0 Greg Kroah-Hartman
2012-07-12 22:34 ` [ 085/187] xen/blkback: Copy id field when doing BLKIF_DISCARD Greg Kroah-Hartman
2012-07-12 22:34 ` [ 086/187] umem: fix up unplugging Greg Kroah-Hartman
2012-07-12 22:34 ` [ 087/187] stable: Allow merging of backports for serious user-visible performance issues Greg Kroah-Hartman
2012-07-12 22:34 ` [ 088/187] mm: correctly synchronize rss-counters at exit/exec Greg Kroah-Hartman
2012-07-12 22:34 ` [ 089/187] PM / Sleep: Prevent waiting forever on asynchronous suspend after abort Greg Kroah-Hartman
2012-07-12 22:34 ` [ 090/187] dmaengine: pl330: dont complete descriptor for cyclic dma Greg Kroah-Hartman
2012-07-12 22:34 ` [ 091/187] NFS: Force the legacy idmapper to be single threaded Greg Kroah-Hartman
2012-07-12 22:34 ` [ 092/187] clk: Allow late cache allocation for clk->parents Greg Kroah-Hartman
2012-07-12 22:34 ` [ 093/187] clk: fix parent validation in __clk_set_parent() Greg Kroah-Hartman
2012-07-12 22:34 ` [ 094/187] gpiolib: wm8994: Pay attention to the value set when enabling as output Greg Kroah-Hartman
2012-07-12 22:34 ` [ 095/187] USB: option: add id for Cellient MEN-200 Greg Kroah-Hartman
2012-07-12 22:34 ` [ 096/187] USB: option: Add USB ID for Novatel Ovation MC551 Greg Kroah-Hartman
2012-07-12 22:34 ` [ 097/187] USB: CP210x Add 10 Device IDs Greg Kroah-Hartman
2012-07-12 22:34 ` [ 098/187] SCSI & usb-storage: add try_rc_10_first flag Greg Kroah-Hartman
2012-07-12 22:34 ` [ 099/187] usb-storage: revert commit afff07e61a52 (Add 090c:1000 to unusal-devs) Greg Kroah-Hartman
2012-07-12 22:34 ` [ 100/187] cfg80211: fix potential deadlock in regulatory Greg Kroah-Hartman
2012-07-12 22:34 ` [ 101/187] batman-adv: fix skb->data assignment Greg Kroah-Hartman
2012-07-12 22:34 ` [ 102/187] batman-adv: only drop packets of known wifi clients Greg Kroah-Hartman
2012-07-12 22:34 ` [ 103/187] ixgbe: Do not pad FCoE frames as this can cause issues with FCoE DDP Greg Kroah-Hartman
2012-07-12 22:34 ` [ 104/187] can: c_can: precedence error in c_can_chip_config() Greg Kroah-Hartman
2012-07-12 22:34 ` [ 105/187] can: flexcan: use be32_to_cpup to handle the value of dt entry Greg Kroah-Hartman
2012-07-12 22:34 ` =?y?q?=5B=20106/187=5D=20USB=3A=20qmi=5Fwwan=3A=20Make=20forced=20int=204=20whitelist=20generic?= Greg Kroah-Hartman
2012-07-12 22:34 ` =?y?q?=5B=20107/187=5D=20USB=3A=20qmi=5Fwwan=3A=20Add=20ZTE=20=28Vodafone=29=20K3520-Z?= Greg Kroah-Hartman
2012-07-12 22:34 ` =?y?q?=5B=20108/187=5D=20net=3A=20qmi=5Fwwan=3A=20fix=20Gobi=20device=20probing?= Greg Kroah-Hartman
2012-07-12 22:34 ` =?y?q?=5B=20109/187=5D=20net=3A=20qmi=5Fwwan=3A=20fix=20Oops=20while=20disconnecting?= Greg Kroah-Hartman
2012-07-12 22:34 ` [ 110/187] oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array Greg Kroah-Hartman
2012-07-12 22:34 ` [ 111/187] x86, compat: Use test_thread_flag(TIF_IA32) in compat signal delivery Greg Kroah-Hartman
2012-07-12 22:34 ` [ 112/187] x86, cpufeature: Rename X86_FEATURE_DTS to X86_FEATURE_DTHERM Greg Kroah-Hartman
2012-07-12 22:34 ` [ 113/187] igbvf: fix divide by zero Greg Kroah-Hartman
2012-07-12 22:34 ` [ 114/187] rtlwifi: rtl8192cu: New USB IDs Greg Kroah-Hartman
2012-07-12 22:34 ` [ 115/187] mac80211: clear ifmgd->bssid only after building DELBA Greg Kroah-Hartman
2012-07-12 22:34 ` [ 116/187] mac80211: correct behaviour on unrecognised action frames Greg Kroah-Hartman
2012-07-12 22:34 ` [ 117/187] mwifiex: fix 11n rx packet drop issue Greg Kroah-Hartman
2012-07-12 22:34 ` [ 118/187] mwifiex: fix WPS eapol handshake failure Greg Kroah-Hartman
2012-07-12 22:34 ` =?y?q?=5B=20119/187=5D=20vfs=3A=20make=20O=5FPATH=20file=20descriptors=20usable=20for=20fchdir=28=29?= Greg Kroah-Hartman
2012-07-12 22:34 ` [ 120/187] mtd: cafe_nand: fix an & vs | mistake Greg Kroah-Hartman
2012-07-12 22:34 ` [ 121/187] aio: make kiocb->private NUll in init_sync_kiocb() Greg Kroah-Hartman
2012-07-12 22:34 ` [ 122/187] ocfs2: clear unaligned io flag when dio fails Greg Kroah-Hartman
2012-07-12 22:34 ` [ 123/187] iwlwifi: fix activating inactive stations Greg Kroah-Hartman
2012-07-12 22:34 ` [ 124/187] tcm_fc: Resolve suspicious RCU usage warnings Greg Kroah-Hartman
2012-07-12 22:34 ` [ 125/187] e1000e: remove use of IP payload checksum Greg Kroah-Hartman
2012-07-12 22:34 ` [ 126/187] remoteproc/omap: fix randconfig unmet direct dependencies Greg Kroah-Hartman
2012-07-12 22:34 ` [ 127/187] remoteproc: fix missing CONFIG_FW_LOADER configurations Greg Kroah-Hartman
2012-07-12 22:34 ` [ 128/187] hwspinlock/core: use global ID to register hwspinlocks on multiple devices Greg Kroah-Hartman
2012-07-12 22:34 ` [ 129/187] md/raid10: Dont try to recovery unmatched (and unused) chunks Greg Kroah-Hartman
2012-07-12 22:34 ` [ 130/187] md/raid10: fix failure when trying to repair a read error Greg Kroah-Hartman
2012-07-12 22:34 ` [ 131/187] md/raid5: In ops_run_io, inc nr_pending before calling md_wait_for_blocked_rdev Greg Kroah-Hartman
2012-07-12 22:34 ` [ 132/187] dm: verity fix documentation Greg Kroah-Hartman
2012-07-12 22:34 ` [ 133/187] dm persistent data: fix shadow_info_leak on dm_tm_destroy Greg Kroah-Hartman
2012-07-12 22:34 ` [ 134/187] dm persistent data: handle space map checker creation failure Greg Kroah-Hartman
2012-07-12 22:34 ` [ 135/187] dm persistent data: fix allocation failure in space map checker init Greg Kroah-Hartman
2012-07-12 22:34 ` [ 136/187] eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files Greg Kroah-Hartman
2012-07-12 22:34 ` [ 137/187] eCryptfs: Fix lockdep warning in miscdev operations Greg Kroah-Hartman
2012-07-12 22:34 ` [ 138/187] eCryptfs: Properly check for O_RDONLY flag before doing privileged open Greg Kroah-Hartman
2012-07-12 22:34 ` [ 139/187] mm/memblock: cleanup on duplicate VA/PA conversion Greg Kroah-Hartman
2012-07-12 22:34 ` [ 140/187] mm/memblock: fix memory leak on extending regions Greg Kroah-Hartman
2012-07-12 22:34 ` [ 141/187] mm/memblock: fix overlapping allocation when doubling reserved array Greg Kroah-Hartman
2012-07-12 22:34 ` [ 142/187] OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays Greg Kroah-Hartman
2012-07-12 22:34 ` [ 143/187] e1000e: test for valid check_reset_block function pointer Greg Kroah-Hartman
2012-07-12 22:35 ` [ 144/187] HID: hid-multitouch: fix wrong protocol detection Greg Kroah-Hartman
2012-07-12 22:35 ` [ 145/187] ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification Greg Kroah-Hartman
2012-07-12 22:35 ` [ 146/187] SCSI: Fix NULL dereferences in scsi_cmd_to_driver Greg Kroah-Hartman
2012-07-12 22:35 ` [ 147/187] SCSI: libsas: fix taskfile corruption in sas_ata_qc_fill_rtf Greg Kroah-Hartman
2012-07-12 22:35 ` [ 148/187] ACPI / PM: Leave Bus Master Arbitration enabled for suspend/resume Greg Kroah-Hartman
2012-07-12 22:35 ` [ 149/187] USB: metro-usb: fix tty_flip_buffer_push use Greg Kroah-Hartman
2012-07-12 22:35 ` =?y?q?=5B=20150/187=5D=20USB=3A=20cdc-wdm=3A=20fix=20lockup=20on=20error=20in=20wdm=5Fread?= Greg Kroah-Hartman
2012-07-12 22:35 ` =?y?q?=5B=20151/187=5D=20USB=3A=20option=3A=20add=20ZTE=20MF60?= Greg Kroah-Hartman
2012-07-12 22:35 ` [ 152/187] USB: option: Add MEDIATEK product ids Greg Kroah-Hartman
2012-07-12 22:35 ` [ 153/187] usb: Add support for root hub port status CAS Greg Kroah-Hartman
2012-07-12 22:35 ` [ 154/187] xhci: Fix hang on back-to-back Set TR Deq Ptr commands Greg Kroah-Hartman
2012-07-12 22:35 ` [ 155/187] PCI: EHCI: fix crash during suspend on ASUS computers Greg Kroah-Hartman
2012-07-12 22:35 ` [ 156/187] ipheth: add support for iPad Greg Kroah-Hartman
2012-07-12 22:35 ` [ 157/187] Lockd: pass network namespace to creation and destruction routines Greg Kroah-Hartman
2012-07-12 22:35 ` [ 158/187] SUNRPC: new svc_bind() routine introduced Greg Kroah-Hartman
2012-07-12 22:35 ` [ 159/187] SUNRPC: move per-net operations from svc_destroy() Greg Kroah-Hartman
2012-07-12 22:35 ` [ 160/187] NFS: hard-code init_net for NFS callback transports Greg Kroah-Hartman
2012-07-12 22:35 ` [ 161/187] mac80211: fix queues stuck issue with HT bandwidth change Greg Kroah-Hartman
2012-07-12 22:35 ` [ 162/187] iwlwifi: remove log_event debugfs file debugging is disabled Greg Kroah-Hartman
2012-07-12 22:35 ` [ 163/187] tracing: change CPU ring buffer state from tracing_cpumask Greg Kroah-Hartman
2012-07-12 22:35 ` [ 164/187] mwifiex: fix wrong return values in add_virtual_intf() error cases Greg Kroah-Hartman
2012-07-12 22:35 ` [ 165/187] gspca-core: Fix buffers staying in queued state after a stream_off Greg Kroah-Hartman
2012-07-12 22:35 ` [ 166/187] raid5: delayed stripe fix Greg Kroah-Hartman
2012-07-12 22:35 ` [ 167/187] tg3: Apply short DMA frag workaround to 5906 Greg Kroah-Hartman
2012-07-12 22:35 ` [ 168/187] ath9k: fix panic caused by returning a descriptor we have queued for reuse Greg Kroah-Hartman
2012-07-12 22:35 ` [ 169/187] mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition Greg Kroah-Hartman
2012-07-12 22:35 ` [ 170/187] thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE Greg Kroah-Hartman
2012-07-12 22:35 ` [ 171/187] rtl8187: ->brightness_set can not sleep Greg Kroah-Hartman
2012-07-12 22:35 ` [ 172/187] macvtap: zerocopy: validate vectors before building skb Greg Kroah-Hartman
2012-07-12 22:35 ` [ 173/187] net/wireless: ipw2x00: add supported cipher suites to wiphy initialization Greg Kroah-Hartman
2012-07-12 22:35 ` Greg Kroah-Hartman [this message]
2012-07-12 22:35 ` [ 175/187] drm/i915: Refactor the deferred PM_IIR handling into a single function Greg Kroah-Hartman
2012-07-12 22:35 ` [ 176/187] drm/i915: rip out the PM_IIR WARN Greg Kroah-Hartman
2012-07-12 22:35 ` [ 177/187] mm: Hold a file reference in madvise_remove Greg Kroah-Hartman
2012-07-12 22:35 ` [ 178/187] md/raid5: Do not add data_offset before call to is_badblock Greg Kroah-Hartman
2012-07-12 22:35 ` [ 179/187] staging:iio:ad7606: Re-add missing scale attribute Greg Kroah-Hartman
2012-07-12 22:35 ` [ 180/187] memory hotplug: fix invalid memory access caused by stale kswapd pointer Greg Kroah-Hartman
2012-07-12 22:35 ` [ 181/187] drivers/rtc/rtc-spear.c: fix use-after-free in spear_rtc_remove() Greg Kroah-Hartman
2012-07-12 22:35 ` [ 182/187] drivers/rtc/rtc-ab8500.c: use IRQF_ONESHOT when requesting a threaded IRQ Greg Kroah-Hartman
2012-07-12 22:35 ` =?y?q?=5B=20183/187=5D=20drivers/rtc/rtc-mxc=2Ec=3A=20fix=20irq=20enabled=20interrupts=20warning?= Greg Kroah-Hartman
2012-07-12 22:35 ` [ 184/187] mm, thp: abort compaction if migration page cannot be charged to memcg Greg Kroah-Hartman
2012-07-12 22:35 ` [ 185/187] fs: ramfs: file-nommu: add SetPageUptodate() Greg Kroah-Hartman
2012-07-12 22:35 ` [ 186/187] memblock: free allocated memblock_reserved_regions later Greg Kroah-Hartman
2012-07-12 22:35 ` [ 187/187] ocfs2: fix NULL pointer dereference in __ocfs2_change_file_space() Greg Kroah-Hartman
2012-07-13 4:42 ` [ 000/187] 3.4.5-stable review Sven Joachim
2012-07-13 14:06 ` Greg KH
2012-07-13 14:18 ` Herton Ronaldo Krzesinski
2012-07-13 14:25 ` Greg KH
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=20120712191539.433405264@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=axboe@kernel.dk \
--cc=ben@decadent.org.uk \
--cc=davej@redhat.com \
--cc=edumazet@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=therbert@google.com \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/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