mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: <stable@kernel.org>, <linux-kernel@vger.kernel.org>
Subject: [34-longterm 167/179] futex: Fix regression with read only mappings
Date: Mon, 14 May 2012 22:14:23 -0400	[thread overview]
Message-ID: <1337048075-6132-168-git-send-email-paul.gortmaker@windriver.com> (raw)
In-Reply-To: <1337048075-6132-1-git-send-email-paul.gortmaker@windriver.com>

From: Shawn Bohrer <sbohrer@rgmadvisors.com>

                   -------------------
    This is a commit scheduled for the next v2.6.34 longterm release.
    http://git.kernel.org/?p=linux/kernel/git/paulg/longterm-queue-2.6.34.git
    If you see a problem with using this for longterm, please comment.
                   -------------------

commit 9ea71503a8ed9184d2d0b8ccc4d269d05f7940ae upstream.

commit 7485d0d3758e8e6491a5c9468114e74dc050785d (futexes: Remove rw
parameter from get_futex_key()) in 2.6.33 fixed two problems:  First, It
prevented a loop when encountering a ZERO_PAGE. Second, it fixed RW
MAP_PRIVATE futex operations by forcing the COW to occur by
unconditionally performing a write access get_user_pages_fast() to get
the page.  The commit also introduced a user-mode regression in that it
broke futex operations on read-only memory maps.  For example, this
breaks workloads that have one or more reader processes doing a
FUTEX_WAIT on a futex within a read only shared file mapping, and a
writer processes that has a writable mapping issuing the FUTEX_WAKE.

This fixes the regression for valid futex operations on RO mappings by
trying a RO get_user_pages_fast() when the RW get_user_pages_fast()
fails. This change makes it necessary to also check for invalid use
cases, such as anonymous RO mappings (which can never change) and the
ZERO_PAGE which the commit referenced above was written to address.

This patch does restore the original behavior with RO MAP_PRIVATE
mappings, which have inherent user-mode usage problems and don't really
make sense.  With this patch performing a FUTEX_WAIT within a RO
MAP_PRIVATE mapping will be successfully woken provided another process
updates the region of the underlying mapped file.  However, the mmap()
man page states that for a MAP_PRIVATE mapping:

  It is unspecified whether changes made to the file after
  the mmap() call are visible in the mapped region.

So user-mode users attempting to use futex operations on RO MAP_PRIVATE
mappings are depending on unspecified behavior.  Additionally a
RO MAP_PRIVATE mapping could fail to wake up in the following case.

  Thread-A: call futex(FUTEX_WAIT, memory-region-A).
            get_futex_key() return inode based key.
            sleep on the key
  Thread-B: call mprotect(PROT_READ|PROT_WRITE, memory-region-A)
  Thread-B: write memory-region-A.
            COW happen. This process's memory-region-A become related
            to new COWed private (ie PageAnon=1) page.
  Thread-B: call futex(FUETX_WAKE, memory-region-A).
            get_futex_key() return mm based key.
            IOW, we fail to wake up Thread-A.

Once again doing something like this is just silly and users who do
something like this get what they deserve.

While RO MAP_PRIVATE mappings are nonsensical, checking for a private
mapping requires walking the vmas and was deemed too costly to avoid a
userspace hang.

This Patch is based on Peter Zijlstra's initial patch with modifications to
only allow RO mappings for futex operations that need VERIFY_READ access.

Reported-by: David Oliver <david@rgmadvisors.com>
Signed-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: peterz@infradead.org
Cc: eric.dumazet@gmail.com
Cc: zvonler@rgmadvisors.com
Cc: hughd@google.com
Link: http://lkml.kernel.org/r/1309450892-30676-1-git-send-email-sbohrer@rgmadvisors.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[PG: in 34, the variable is "page"; in original 9ea71503a it is page_head]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 kernel/futex.c |   54 ++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 42 insertions(+), 12 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index e328f57..98a354d 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -203,6 +203,8 @@ static void drop_futex_key_refs(union futex_key *key)
  * @uaddr:	virtual address of the futex
  * @fshared:	0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED
  * @key:	address where result is stored.
+ * @rw:		mapping needs to be read/write (values: VERIFY_READ,
+ *              VERIFY_WRITE)
  *
  * Returns a negative error code or 0
  * The key words are stored in *key on success.
@@ -214,12 +216,12 @@ static void drop_futex_key_refs(union futex_key *key)
  * lock_page() might sleep, the caller should not hold a spinlock.
  */
 static int
-get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key)
+get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
 {
 	unsigned long address = (unsigned long)uaddr;
 	struct mm_struct *mm = current->mm;
 	struct page *page;
-	int err;
+	int err, ro = 0;
 
 	/*
 	 * The futex address must be "naturally" aligned.
@@ -247,14 +249,31 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key)
 
 again:
 	err = get_user_pages_fast(address, 1, 1, &page);
+	/*
+	 * If write access is not required (eg. FUTEX_WAIT), try
+	 * and get read-only access.
+	 */
+	if (err == -EFAULT && rw == VERIFY_READ) {
+		err = get_user_pages_fast(address, 1, 0, &page);
+		ro = 1;
+	}
 	if (err < 0)
 		return err;
+	else
+		err = 0;
 
 	page = compound_head(page);
 	lock_page(page);
 	if (!page->mapping) {
 		unlock_page(page);
 		put_page(page);
+		/*
+		* ZERO_PAGE pages don't have a mapping. Avoid a busy loop
+		* trying to find one. RW mapping would have COW'd (and thus
+		* have a mapping) so this page is RO and won't ever change.
+		*/
+		if ((page == ZERO_PAGE(address)))
+			return -EFAULT;
 		goto again;
 	}
 
@@ -266,6 +285,15 @@ again:
 	 * the object not the particular process.
 	 */
 	if (PageAnon(page)) {
+		/*
+		 * A RO anonymous page will never change and thus doesn't make
+		 * sense for futex operations.
+		 */
+		if (ro) {
+			err = -EFAULT;
+			goto out;
+		}
+
 		key->both.offset |= FUT_OFF_MMSHARED; /* ref taken on mm */
 		key->private.mm = mm;
 		key->private.address = address;
@@ -277,9 +305,10 @@ again:
 
 	get_futex_key_refs(key);
 
+out:
 	unlock_page(page);
 	put_page(page);
-	return 0;
+	return err;
 }
 
 static inline
@@ -880,7 +909,7 @@ static int futex_wake(u32 __user *uaddr, int fshared, int nr_wake, u32 bitset)
 	if (!bitset)
 		return -EINVAL;
 
-	ret = get_futex_key(uaddr, fshared, &key);
+	ret = get_futex_key(uaddr, fshared, &key, VERIFY_READ);
 	if (unlikely(ret != 0))
 		goto out;
 
@@ -926,10 +955,10 @@ futex_wake_op(u32 __user *uaddr1, int fshared, u32 __user *uaddr2,
 	int ret, op_ret;
 
 retry:
-	ret = get_futex_key(uaddr1, fshared, &key1);
+	ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ);
 	if (unlikely(ret != 0))
 		goto out;
-	ret = get_futex_key(uaddr2, fshared, &key2);
+	ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_WRITE);
 	if (unlikely(ret != 0))
 		goto out_put_key1;
 
@@ -1188,10 +1217,11 @@ retry:
 		pi_state = NULL;
 	}
 
-	ret = get_futex_key(uaddr1, fshared, &key1);
+	ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ);
 	if (unlikely(ret != 0))
 		goto out;
-	ret = get_futex_key(uaddr2, fshared, &key2);
+	ret = get_futex_key(uaddr2, fshared, &key2,
+			    requeue_pi ? VERIFY_WRITE : VERIFY_READ);
 	if (unlikely(ret != 0))
 		goto out_put_key1;
 
@@ -1746,7 +1776,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, int fshared,
 	 */
 retry:
 	q->key = FUTEX_KEY_INIT;
-	ret = get_futex_key(uaddr, fshared, &q->key);
+	ret = get_futex_key(uaddr, fshared, &q->key, VERIFY_READ);
 	if (unlikely(ret != 0))
 		return ret;
 
@@ -1912,7 +1942,7 @@ static int futex_lock_pi(u32 __user *uaddr, int fshared,
 	q.requeue_pi_key = NULL;
 retry:
 	q.key = FUTEX_KEY_INIT;
-	ret = get_futex_key(uaddr, fshared, &q.key);
+	ret = get_futex_key(uaddr, fshared, &q.key, VERIFY_WRITE);
 	if (unlikely(ret != 0))
 		goto out;
 
@@ -2031,7 +2061,7 @@ retry:
 	if ((uval & FUTEX_TID_MASK) != task_pid_vnr(current))
 		return -EPERM;
 
-	ret = get_futex_key(uaddr, fshared, &key);
+	ret = get_futex_key(uaddr, fshared, &key, VERIFY_WRITE);
 	if (unlikely(ret != 0))
 		goto out;
 
@@ -2223,7 +2253,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
 	rt_waiter.task = NULL;
 
 	key2 = FUTEX_KEY_INIT;
-	ret = get_futex_key(uaddr2, fshared, &key2);
+	ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_WRITE);
 	if (unlikely(ret != 0))
 		goto out;
 
-- 
1.7.9.6


  parent reply	other threads:[~2012-05-15  2:28 UTC|newest]

Thread overview: 190+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-15  2:11 [34-longterm 000/179] v2.6.34.12 longterm review Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 001/179] ftrace: Only update the function code on write to filter files Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 002/179] kmemleak: Do not return a pointer to an object that kmemleak did not get Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 003/179] CPU hotplug, re-create sysfs directory and symlinks Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 004/179] Fix memory leak in cpufreq_stat Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 005/179] powerpc/kexec: Fix memory corruption from unallocated slaves Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 006/179] powerpc/oprofile: Handle events that raise an exception without overflowing Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 007/179] block: add proper state guards to __elv_next_request Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 008/179] mtd: mtdconcat: fix NAND OOB write Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 009/179] x86, 64-bit: Fix copy_[to/from]_user() checks for the userspace address limit Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 010/179] ext3: Fix fs corruption when make_indexed_dir() fails Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 011/179] jbd: Fix forever sleeping process in do_get_write_access() Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 012/179] jbd: fix fsync() tid wraparound bug Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 013/179] ext4: release page cache in ext4_mb_load_buddy error path Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 014/179] Fix Ultrastor asm snippet Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 015/179] x86, amd: Use _safe() msr access for GartTlbWlk disable code Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 016/179] rcu: Fix unpaired rcu_irq_enter() from locking selftests Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 017/179] staging: usbip: fix wrong endian conversion Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 018/179] seqlock: Don't smp_rmb in seqlock reader spin loop Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 019/179] ALSA: HDA: Use one dmic only for Dell Studio 1558 Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 020/179] ASoC: Ensure output PGA is enabled for line outputs in wm_hubs Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 021/179] ASoC: Add some missing volume update bit sets for wm_hubs devices Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 022/179] mm/page_alloc.c: prevent unending loop in __alloc_pages_slowpath() Paul Gortmaker
2012-05-15  2:11 ` [34-longterm 023/179] loop: limit 'max_part' module param to DISK_MAX_PARTS Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 024/179] loop: handle on-demand devices correctly Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 025/179] USB: CP210x Add 4 Device IDs for AC-Services Devices Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 026/179] USB: moto_modem: Add USB identifier for the Motorola VE240 Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 027/179] USB: serial: ftdi_sio: adding support for TavIR STK500 Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 028/179] USB: gamin_gps: Fix for data transfer problems in native mode Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 029/179] usb/gadget: at91sam9g20 fix end point max packet size Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 030/179] usb: gadget: rndis: don't test against req->length Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 031/179] xhci: Fix full speed bInterval encoding Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 032/179] p54usb: add zoom 4410 usbid Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 033/179] eCryptfs: Allow 2 scatterlist entries for encrypted filenames Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 034/179] UBIFS: fix a rare memory leak in ro to rw remounting path Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 035/179] i8k: Avoid lahf in 64-bit code Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 036/179] cpuidle: menu: fixed wrapping timers at 4.294 seconds Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 037/179] dm table: reject devices without request fns Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 038/179] atm: expose ATM device index in sysfs Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 039/179] brd: limit 'max_part' module param to DISK_MAX_PARTS Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 040/179] brd: handle on-demand devices correctly Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 041/179] SUNRPC: Deal with the lack of a SYN_SENT sk->sk_state_change callback Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 042/179] PCI: Add quirk for setting valid class for TI816X Endpoint Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 043/179] xen mmu: fix a race window causing leave_mm BUG() Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 044/179] UBIFS: fix shrinker object count reports Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 045/179] UBIFS: fix memory leak on error path Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 046/179] nbd: limit module parameters to a sane value Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 047/179] block: export blk_{get,put}_queue() Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 048/179] Fix oops caused by queue refcounting failure Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 049/179] mm: fix ENOSPC returned by handle_mm_fault() Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 050/179] PCI: Set PCIE maxpayload for card during hotplug insertion Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 051/179] nl80211: fix check for valid SSID size in scan operations Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 052/179] lockdep: Fix lock_is_held() on recursion Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 053/179] drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007 Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 054/179] drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 055/179] fat: Fix corrupt inode flags when remove ATTR_SYS flag Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 056/179] xen: off by one errors in multicalls.c Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 057/179] x86/amd-iommu: Fix 3 possible endless loops Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 058/179] USB: cdc-acm: Adding second ACM channel support for Nokia E7 and C7 Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 059/179] USB: core: Tolerate protocol stall during hub and port status read Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 060/179] USB: serial: add another 4N-GALAXY.DE PID to ftdi_sio driver Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 061/179] USB: xhci - fix interval calculation for FS isoc endpoints Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 062/179] oprofile, dcookies: Fix possible circular locking dependency Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 063/179] Remove cpufreq_stats sysfs entries on module unload Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 064/179] md: check ->hot_remove_disk when removing disk Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 065/179] md/raid5: fix raid5_set_bi_hw_segments Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 066/179] md/raid5: fix FUA request handling in ops_run_io() Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 067/179] pata_cm64x: fix boot crash on parisc Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 068/179] xfs: properly account for reclaimed inodes Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 069/179] exec: delay address limit change until point of no return Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 070/179] netfilter: IPv6: initialize TOS field in REJECT target module Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 071/179] netfilter: IPv6: fix DSCP mangle code Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 072/179] xen: events: do not unmask event channels on resume Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 073/179] genirq: Add IRQF_FORCE_RESUME Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 074/179] xen: Use IRQF_FORCE_RESUME Paul Gortmaker
2012-05-15  5:02   ` Jonathan Nieder
2012-05-15 16:33     ` Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 075/179] time: Compensate for rounding on odd-frequency clocksources Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 076/179] ksm: fix NULL pointer dereference in scan_get_next_rmap_item() Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 077/179] migrate: don't account swapcache as shmem Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 078/179] xen: partially revert "xen: set max_pfn_mapped to the last pfn mapped" Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 079/179] clocksource: Make watchdog robust vs. interruption Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 080/179] TTY: ldisc, do not close until there are readers Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 081/179] xhci: Reject double add of active endpoints Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 082/179] PM: Free memory bitmaps if opening /dev/snapshot fails Paul Gortmaker
2012-05-15  2:12 ` [34-longterm 083/179] ath5k: fix memory leak when fewer than N_PD_CURVES are in use Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 084/179] mm: fix negative commitlimit when gigantic hugepages are allocated Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 085/179] uvcvideo: Remove buffers from the queues when freeing Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 086/179] watchdog: mtx1-wdt: request gpio before using it Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 087/179] debugobjects: Fix boot crash when kmemleak and debugobjects enabled Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 088/179] cfq-iosched: fix locking around ioc->ioc_data assignment Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 089/179] cfq-iosched: fix a rcu warning Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 090/179] i2c-taos-evm: Fix log messages Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 091/179] md: avoid endless recovery loop when waiting for fail device to complete Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 092/179] SUNRPC: Ensure the RPC client only quits on fatal signals Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 093/179] 6pack,mkiss: fix lock inconsistency Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 094/179] USB: don't let errors prevent system sleep Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 095/179] USB: don't let the hub driver " Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 096/179] uml: fix CONFIG_STATIC_LINK=y build failure with newer glibc Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 097/179] PM / Hibernate: Avoid hitting OOM during preallocation of memory Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 098/179] PM / Hibernate: Fix free_unnecessary_pages() Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 099/179] bug.h: Add WARN_RATELIMIT Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 100/179] net: filter: Use WARN_RATELIMIT Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 101/179] af_packet: prevent information leak Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 102/179] net/ipv4: Check for mistakenly passed in non-IPv4 address Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 103/179] ipv6/udp: Use the correct variable to determine non-blocking condition Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 104/179] udp/recvmsg: Clear MSG_TRUNC flag when starting over for a new packet Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 105/179] mm: prevent concurrent unmap_mapping_range() on the same inode Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 106/179] ASoC: Fix Blackfin I2S _pointer() implementation return in bounds values Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 107/179] v4l2-ioctl.c: prefill tuner type for g_frequency and g/s_tuner Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 108/179] pvrusb2: fix g/s_tuner support Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 109/179] bttv: fix s_tuner for radio Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 110/179] NFSv4.1: update nfs4_fattr_bitmap_maxsz Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 111/179] SUNRPC: Fix a race between work-queue and rpc_killall_tasks Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 112/179] SUNRPC: Fix use of static variable in rpcb_getport_async Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 113/179] si4713-i2c: avoid potential buffer overflow on si4713 Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 114/179] hwmon: (max1111) Fix race condition causing NULL pointer exception Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 115/179] bridge: send proper message_age in config BPDU Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 116/179] davinci: DM365 EVM: fix video input mux bits Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 117/179] libata: fix unexpectedly frozen port after ata_eh_reset() Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 118/179] x86: Make Dell Latitude E5420 use reboot=pci Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 119/179] USB: pl2303.h: checkpatch cleanups Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 120/179] USB: serial: add IDs for WinChipHead USB->RS232 adapter Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 121/179] staging: comedi: fix infoleak to userspace Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 122/179] USB: OHCI: fix another regression for NVIDIA controllers Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 123/179] ARM: pxa/cm-x300: fix V3020 RTC functionality Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 124/179] jme: Fix unmap error (Causing system freeze) Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 125/179] libsas: remove expander from dev list on error Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 126/179] mac80211: Restart STA timers only on associated state Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 127/179] Blacklist Traxdata CDR4120 and IOMEGA Zip drive to avoid lock ups Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 128/179] ses: requesting a fault indication Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 129/179] pmcraid: reject negative request size Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 130/179] kexec, x86: Fix incorrect jump back address if not preserving context Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 131/179] powerpc/kdump: Fix timeout in crash_kexec_wait_realmode Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 132/179] PCI: ARI is a PCIe v2 feature Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 133/179] cciss: do not attempt to read from a write-only register Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 134/179] xtensa: prevent arbitrary read in ptrace Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 135/179] ext3: Fix oops in ext3_try_to_allocate_with_rsv() Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 136/179] svcrpc: fix list-corrupting race on nfsd shutdown Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 137/179] EHCI: only power off port if over-current is active Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 138/179] EHCI: fix direction handling for interrupt data toggles Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 139/179] powerpc/pseries/hvconsole: Fix dropped console output Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 140/179] cifs: clean up cifs_find_smb_ses (try #2) Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 141/179] cifs: fix NULL pointer dereference in cifs_find_smb_ses Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 142/179] cifs: check for NULL session password Paul Gortmaker
2012-05-15  2:13 ` [34-longterm 143/179] alpha: fix several security issues Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 144/179] proc: restrict access to /proc/PID/io Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 145/179] ALSA: sound/core/pcm_compat.c: adjust array index Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 146/179] dm mpath: fix potential NULL pointer in feature arg processing Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 147/179] dm: fix idr leak on module removal Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 148/179] x86: Hpet: Avoid the comparator readback penalty Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 149/179] x86: HPET: Chose a paranoid safe value for the ETIME check Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 150/179] crypto: Move md5_transform to lib/md5.c Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 151/179] net: Compute protocol sequence numbers and fragment IDs using MD5 Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 152/179] ALSA: timer - Fix Oops at closing slave timer Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 153/179] ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3 Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 154/179] powerpc: Fix device tree claim code Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 155/179] powerpc: pseries: Fix kexec on machines with more than 4TB of RAM Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 156/179] USB: xhci: fix OS want to own HC Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 157/179] USB: assign instead of equal in usbtmc.c Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 158/179] USB: usb-storage: unusual_devs entry for ARM V2M motherboard Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 159/179] USB: Serial: Added device ID for Qualcomm Modem in Sagemcom's HiLo3G Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 160/179] atm: br2864: sent packets truncated in VC routed mode Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 161/179] hwmon: (ibmaem) add missing kfree Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 162/179] ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 163/179] mm: fix wrong vmap address calculations with odd NR_CPUS values Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 164/179] perf tools: do not look at ./config for configuration Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 165/179] ALSA: snd_usb_caiaq: track submitted output urbs Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 166/179] ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist Paul Gortmaker
2012-05-15  2:14 ` Paul Gortmaker [this message]
2012-05-15  4:38   ` [34-longterm 167/179] futex: Fix regression with read only mappings Hugh Dickins
2012-05-15 10:51     ` Peter Zijlstra
2012-05-15 16:02       ` Paul Gortmaker
2012-05-15 18:55         ` Willy Tarreau
2012-05-15  2:14 ` [34-longterm 168/179] x86-32, vdso: On system call restart after SYSENTER, use int $0x80 Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 169/179] x86, UV: Remove UV delay in starting slave cpus Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 170/179] drm/ttm: fix ttm_bo_add_ttm(user) failure path Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 171/179] fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 172/179] igb: Fix lack of flush after register write and before delay Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 173/179] tty: Make tiocgicount a handler Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 174/179] tty: icount changeover for other main devices Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 175/179] nozomi: Fix warning from the previous TIOCGCOUNT changes Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 176/179] tty: fix warning in synclink driver Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 177/179] score: fix off-by-one index into syscall table Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 178/179] x86/PCI: use host bridge _CRS info on MSI MS-7253 Paul Gortmaker
2012-05-15  2:14 ` [34-longterm 179/179] x86/PCI: do not tie MSI MS-7253 use_crs quirk to BIOS version Paul Gortmaker
2012-05-15 14:44   ` Alan Cox
2012-05-15 14:47     ` Alan Cox
2012-05-15 16:03       ` Paul Gortmaker
2012-05-15  3:01 ` [34-longterm 000/179] v2.6.34.12 longterm review Paul Gortmaker

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=1337048075-6132-168-git-send-email-paul.gortmaker@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@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

Powered by JetHome