mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kamal Mostafa <kamal@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Kees Cook <keescook@chromium.org>, Will Drewry <wad@chromium.org>,
	Darren Hart <dvhart@linux.intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.13 209/212] futex: Make lookup_pi_state more robust
Date: Tue, 17 Jun 2014 14:45:03 -0700	[thread overview]
Message-ID: <1403041506-13646-210-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1403041506-13646-1-git-send-email-kamal@canonical.com>

3.13.11.4 -stable review patch.  If anyone has any objections, please let me know.

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

From: Thomas Gleixner <tglx@linutronix.de>

commit 54a217887a7b658e2650c3feff22756ab80c7339 upstream.

The current implementation of lookup_pi_state has ambigous handling of
the TID value 0 in the user space futex.  We can get into the kernel
even if the TID value is 0, because either there is a stale waiters bit
or the owner died bit is set or we are called from the requeue_pi path
or from user space just for fun.

The current code avoids an explicit sanity check for pid = 0 in case
that kernel internal state (waiters) are found for the user space
address.  This can lead to state leakage and worse under some
circumstances.

Handle the cases explicit:

       Waiter | pi_state | pi->owner | uTID      | uODIED | ?

  [1]  NULL   | ---      | ---       | 0         | 0/1    | Valid
  [2]  NULL   | ---      | ---       | >0        | 0/1    | Valid

  [3]  Found  | NULL     | --        | Any       | 0/1    | Invalid

  [4]  Found  | Found    | NULL      | 0         | 1      | Valid
  [5]  Found  | Found    | NULL      | >0        | 1      | Invalid

  [6]  Found  | Found    | task      | 0         | 1      | Valid

  [7]  Found  | Found    | NULL      | Any       | 0      | Invalid

  [8]  Found  | Found    | task      | ==taskTID | 0/1    | Valid
  [9]  Found  | Found    | task      | 0         | 0      | Invalid
  [10] Found  | Found    | task      | !=taskTID | 0/1    | Invalid

 [1] Indicates that the kernel can acquire the futex atomically. We
     came came here due to a stale FUTEX_WAITERS/FUTEX_OWNER_DIED bit.

 [2] Valid, if TID does not belong to a kernel thread. If no matching
     thread is found then it indicates that the owner TID has died.

 [3] Invalid. The waiter is queued on a non PI futex

 [4] Valid state after exit_robust_list(), which sets the user space
     value to FUTEX_WAITERS | FUTEX_OWNER_DIED.

 [5] The user space value got manipulated between exit_robust_list()
     and exit_pi_state_list()

 [6] Valid state after exit_pi_state_list() which sets the new owner in
     the pi_state but cannot access the user space value.

 [7] pi_state->owner can only be NULL when the OWNER_DIED bit is set.

 [8] Owner and user space value match

 [9] There is no transient state which sets the user space TID to 0
     except exit_robust_list(), but this is indicated by the
     FUTEX_OWNER_DIED bit. See [4]

[10] There is no transient state which leaves owner and user space
     TID out of sync.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Will Drewry <wad@chromium.org>
Cc: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 kernel/futex.c | 134 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 106 insertions(+), 28 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index ab15ce8..c265aac 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -594,10 +594,58 @@ void exit_pi_state_list(struct task_struct *curr)
 	raw_spin_unlock_irq(&curr->pi_lock);
 }
 
+/*
+ * We need to check the following states:
+ *
+ *      Waiter | pi_state | pi->owner | uTID      | uODIED | ?
+ *
+ * [1]  NULL   | ---      | ---       | 0         | 0/1    | Valid
+ * [2]  NULL   | ---      | ---       | >0        | 0/1    | Valid
+ *
+ * [3]  Found  | NULL     | --        | Any       | 0/1    | Invalid
+ *
+ * [4]  Found  | Found    | NULL      | 0         | 1      | Valid
+ * [5]  Found  | Found    | NULL      | >0        | 1      | Invalid
+ *
+ * [6]  Found  | Found    | task      | 0         | 1      | Valid
+ *
+ * [7]  Found  | Found    | NULL      | Any       | 0      | Invalid
+ *
+ * [8]  Found  | Found    | task      | ==taskTID | 0/1    | Valid
+ * [9]  Found  | Found    | task      | 0         | 0      | Invalid
+ * [10] Found  | Found    | task      | !=taskTID | 0/1    | Invalid
+ *
+ * [1]	Indicates that the kernel can acquire the futex atomically. We
+ *	came came here due to a stale FUTEX_WAITERS/FUTEX_OWNER_DIED bit.
+ *
+ * [2]	Valid, if TID does not belong to a kernel thread. If no matching
+ *      thread is found then it indicates that the owner TID has died.
+ *
+ * [3]	Invalid. The waiter is queued on a non PI futex
+ *
+ * [4]	Valid state after exit_robust_list(), which sets the user space
+ *	value to FUTEX_WAITERS | FUTEX_OWNER_DIED.
+ *
+ * [5]	The user space value got manipulated between exit_robust_list()
+ *	and exit_pi_state_list()
+ *
+ * [6]	Valid state after exit_pi_state_list() which sets the new owner in
+ *	the pi_state but cannot access the user space value.
+ *
+ * [7]	pi_state->owner can only be NULL when the OWNER_DIED bit is set.
+ *
+ * [8]	Owner and user space value match
+ *
+ * [9]	There is no transient state which sets the user space TID to 0
+ *	except exit_robust_list(), but this is indicated by the
+ *	FUTEX_OWNER_DIED bit. See [4]
+ *
+ * [10] There is no transient state which leaves owner and user space
+ *	TID out of sync.
+ */
 static int
 lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
-		union futex_key *key, struct futex_pi_state **ps,
-		struct task_struct *task)
+		union futex_key *key, struct futex_pi_state **ps)
 {
 	struct futex_pi_state *pi_state = NULL;
 	struct futex_q *this, *next;
@@ -610,12 +658,13 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
 	plist_for_each_entry_safe(this, next, head, list) {
 		if (match_futex(&this->key, key)) {
 			/*
-			 * Another waiter already exists - bump up
-			 * the refcount and return its pi_state:
+			 * Sanity check the waiter before increasing
+			 * the refcount and attaching to it.
 			 */
 			pi_state = this->pi_state;
 			/*
-			 * Userspace might have messed up non-PI and PI futexes
+			 * Userspace might have messed up non-PI and
+			 * PI futexes [3]
 			 */
 			if (unlikely(!pi_state))
 				return -EINVAL;
@@ -623,44 +672,70 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
 			WARN_ON(!atomic_read(&pi_state->refcount));
 
 			/*
-			 * When pi_state->owner is NULL then the owner died
-			 * and another waiter is on the fly. pi_state->owner
-			 * is fixed up by the task which acquires
-			 * pi_state->rt_mutex.
-			 *
-			 * We do not check for pid == 0 which can happen when
-			 * the owner died and robust_list_exit() cleared the
-			 * TID.
+			 * Handle the owner died case:
 			 */
-			if (pid && pi_state->owner) {
+			if (uval & FUTEX_OWNER_DIED) {
 				/*
-				 * Bail out if user space manipulated the
-				 * futex value.
+				 * exit_pi_state_list sets owner to NULL and
+				 * wakes the topmost waiter. The task which
+				 * acquires the pi_state->rt_mutex will fixup
+				 * owner.
 				 */
-				if (pid != task_pid_vnr(pi_state->owner))
+				if (!pi_state->owner) {
+					/*
+					 * No pi state owner, but the user
+					 * space TID is not 0. Inconsistent
+					 * state. [5]
+					 */
+					if (pid)
+						return -EINVAL;
+					/*
+					 * Take a ref on the state and
+					 * return. [4]
+					 */
+					goto out_state;
+				}
+
+				/*
+				 * If TID is 0, then either the dying owner
+				 * has not yet executed exit_pi_state_list()
+				 * or some waiter acquired the rtmutex in the
+				 * pi state, but did not yet fixup the TID in
+				 * user space.
+				 *
+				 * Take a ref on the state and return. [6]
+				 */
+				if (!pid)
+					goto out_state;
+			} else {
+				/*
+				 * If the owner died bit is not set,
+				 * then the pi_state must have an
+				 * owner. [7]
+				 */
+				if (!pi_state->owner)
 					return -EINVAL;
 			}
 
 			/*
-			 * Protect against a corrupted uval. If uval
-			 * is 0x80000000 then pid is 0 and the waiter
-			 * bit is set. So the deadlock check in the
-			 * calling code has failed and we did not fall
-			 * into the check above due to !pid.
+			 * Bail out if user space manipulated the
+			 * futex value. If pi state exists then the
+			 * owner TID must be the same as the user
+			 * space TID. [9/10]
 			 */
-			if (task && pi_state->owner == task)
-				return -EDEADLK;
+			if (pid != task_pid_vnr(pi_state->owner))
+				return -EINVAL;
 
+		out_state:
 			atomic_inc(&pi_state->refcount);
 			*ps = pi_state;
-
 			return 0;
 		}
 	}
 
 	/*
 	 * We are the first waiter - try to look up the real owner and attach
-	 * the new pi_state to it, but bail out when TID = 0
+	 * the new pi_state to it, but bail out when TID = 0 [1]
 	 */
 	if (!pid)
 		return -ESRCH;
@@ -693,6 +768,9 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb,
 		return ret;
 	}
 
+	/*
+	 * No existing pi state. First waiter. [2]
+	 */
 	pi_state = alloc_pi_state();
 
 	/*
@@ -813,7 +891,7 @@ retry:
 	 * We dont have the lock. Look up the PI state (or create it if
 	 * we are the first waiter):
 	 */
-	ret = lookup_pi_state(uval, hb, key, ps, task);
+	ret = lookup_pi_state(uval, hb, key, ps);
 
 	if (unlikely(ret)) {
 		switch (ret) {
@@ -1416,7 +1494,7 @@ retry_private:
 			 * rereading and handing potential crap to
 			 * lookup_pi_state.
 			 */
-			ret = lookup_pi_state(ret, hb2, &key2, &pi_state, NULL);
+			ret = lookup_pi_state(ret, hb2, &key2, &pi_state);
 		}
 
 		switch (ret) {
-- 
1.9.1


  parent reply	other threads:[~2014-06-17 22:33 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 21:41 [3.13.y.z extended stable] Linux 3.13.11.4 stable review Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 001/212] SUNRPC: Ensure that call_connect times out correctly Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 002/212] SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN tasks Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 003/212] net: sctp: wake up all assocs if sndbuf policy is per socket Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 004/212] net: sctp: test if association is dead in sctp_wake_up_waiters Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 005/212] l2tp: take PMTU from tunnel UDP socket Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 006/212] net: core: don't account for udp header size when computing seglen Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 007/212] bonding: Remove debug_fs files when module init fails Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 008/212] bridge: Fix double free and memory leak around br_allowed_ingress Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 009/212] ipv6: Limit mtu to 65575 bytes Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 010/212] gre: don't allow to add the same tunnel twice Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 011/212] vti: " Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 012/212] net: ipv4: current group_info should be put after using Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 013/212] ipv4: return valid RTA_IIF on ip route get Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 014/212] filter: prevent nla extensions to peek beyond the end of the message Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 015/212] ip6_gre: don't allow to remove the fb_tunnel_dev Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 016/212] vlan: Fix lockdep warning when vlan dev handle notification Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 017/212] net: Find the nesting level of a given device by type Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 018/212] net: Allow for more then a single subclass for netif_addr_lock Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 019/212] vlan: Fix lockdep warning with stacked vlan devices Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 020/212] macvlan: Fix lockdep warnings with stacked macvlan devices Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 021/212] tg3: update rx_jumbo_pending ring param only when jumbo frames are enabled Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 022/212] net: sctp: cache auth_enable per endpoint Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 023/212] rtnetlink: Warn when interface's information won't fit in our packet Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 024/212] rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF is set Kamal Mostafa
2014-06-17 21:41 ` [PATCH 3.13 025/212] ipv6: fib: fix fib dump restart Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 026/212] bridge: Handle IFLA_ADDRESS correctly when creating bridge device Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 027/212] sctp: reset flowi4_oif parameter on route lookup Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 028/212] net: qmi_wwan: add Sierra Wireless EM7355 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 029/212] net: qmi_wwan: add Sierra Wireless MC73xx Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 030/212] net: qmi_wwan: add Sierra Wireless MC7305/MC7355 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 031/212] net: qmi_wwan: add Olivetti Olicard 500 Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 032/212] net: qmi_wwan: add Alcatel L800MA Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 033/212] net: qmi_wwan: add a number of CMOTech devices Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 034/212] net: qmi_wwan: add a number of Dell devices Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 035/212] slip: fix spinlock variant Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 036/212] net: sctp: Potentially-Failed state should not be reached from unconfirmed state Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 037/212] net: sctp: Don't transition to PF state when transport has exhausted 'Path.Max.Retrans' Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 038/212] mactap: Fix checksum errors for non-gso packets in bridge mode Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 039/212] Revert "macvlan : fix checksums error when we are in bridge mode" Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 040/212] tcp_cubic: fix the range of delayed_ack Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 041/212] vsock: Make transport the proto owner Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 042/212] net: cdc_ncm: fix buffer overflow Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 043/212] ip_tunnel: Set network header properly for IP_ECN_decapsulate() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 044/212] net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 045/212] net: ipv4: ip_forward: fix inverted local_df test Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 046/212] net: ipv6: send pkttoobig immediately if orig frag size > mtu Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 047/212] ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 048/212] net: cdc_mbim: handle unaccelerated VLAN tagged frames Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 049/212] macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 050/212] sfc: fix calling of free_irq with already free vector Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 051/212] ip6_tunnel: fix potential NULL pointer dereference Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 052/212] net: filter: x86: fix JIT address randomization Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 053/212] net: filter: s390: " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 054/212] net: avoid dependency of net_get_random_once on nop patching Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 055/212] ipv6: fix calculation of option len in ip6_append_data Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 056/212] rtnetlink: wait for unregistering devices in rtnl_link_unregister() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 057/212] net: gro: make sure skb->cb[] initial content has not to be zero Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 058/212] batman-adv: fix reference counting imbalance while sending fragment Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 059/212] batman-adv: increase orig refcount when storing ref in gw_node Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 060/212] batman-adv: fix local TT check for outgoing arp requests in DAT Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 061/212] ip_tunnel: Initialize the fallback device properly Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 062/212] ipv4: initialise the itag variable in __mkroute_input Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 063/212] net-gro: reset skb->truesize in napi_reuse_skb() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 064/212] netfilter: ipv4: defrag: set local_df flag on defragmented skb Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 065/212] ima: introduce ima_kernel_read() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 066/212] ima: audit log files opened with O_DIRECT flag Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 067/212] percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 068/212] workqueue: fix bugs in wq_update_unbound_numa() failure path Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 069/212] [media] fc2580: fix tuning failure on 32-bit arch Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 070/212] memory: mvebu-devbus: fix the conversion of the bus width Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 071/212] ARM: orion5x: fix target ID for crypto SRAM window Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 072/212] workqueue: make rescuer_thread() empty wq->maydays list before exiting Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 073/212] workqueue: fix a possible race condition between rescuer and pwq-release Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 074/212] spi: core: Ignore unsupported Dual/Quad Transfer Mode bits Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 075/212] device_cgroup: rework device access check and exception checking Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 076/212] PCI: mvebu: fix off-by-one in the computed size of the mbus windows Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 077/212] bus: mvebu-mbus: allow several windows with the same target/attribute Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 078/212] PCI: mvebu: split PCIe BARs into multiple MBus windows when needed Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 079/212] ARM: mvebu: fix NOR bus-width in Armada XP GP Device Tree Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 080/212] ARM: mvebu: fix NOR bus-width in Armada XP DB " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 081/212] ARM: mvebu: fix NOR bus-width in Armada XP OpenBlocks AX3 " Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 082/212] crypto: caam - add allocation failure handling in SPRINTFCAT macro Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 083/212] ARM: common: edma: Fix xbar mapping Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 084/212] clk: Fix double free due to devm_clk_register() Kamal Mostafa
2014-06-17 21:42 ` [PATCH 3.13 085/212] [media] media-device: fix infoleak in ioctl media_enum_entities() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 086/212] ARM: dts: kirkwood: fix mislocated pcie-controller nodes Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 087/212] device_cgroup: check if exception removal is allowed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 088/212] md: avoid possible spinning md thread at shutdown Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 089/212] ACPI: Remove Kconfig symbol ACPI_PROCFS Kamal Mostafa
2014-06-17 22:26   ` Paul Bolle
2014-06-17 22:41     ` Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 090/212] ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 091/212] ACPI: Revert "ACPI / Battery: Remove battery's proc directory" Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 092/212] NFSd: Move default initialisers from create_client() to alloc_client() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 093/212] NFSd: call rpc_destroy_wait_queue() from free_client() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 094/212] genirq: Provide irq_force_affinity fallback for non-SMP Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 095/212] libata: clean up ZPODD when a port is detached Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 096/212] ACPI: blacklist win8 OSI for Dell Inspiron 7737 Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 097/212] ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 098/212] ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 099/212] ACPI / processor: do not mark present at boot but not onlined CPU as onlined Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 100/212] NFSD: Call ->set_acl with a NULL ACL structure if no entries Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 101/212] ALSA: hda - add headset mic detect quirks for three Dell laptops Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 102/212] gpio: mcp23s08: Bug fix of SPI device tree registration Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 103/212] drm/i915/vlv: reset VLV media force wake request register Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 104/212] ARM: dts: i.MX53: Fix ipu register space size Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 105/212] mm, thp: close race between mremap() and split_huge_page() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 106/212] intel_pstate: Set turbo VID for BayTrail Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 107/212] powerpc/powernv: Reset root port in firmware Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 108/212] hrtimer: Set expiry time before switch_hrtimer_base() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 109/212] hwmon: (emc1403) fix inverted store_hyst() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 110/212] hwmon: (emc1403) Fix resource leak on module unload Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 111/212] hwmon: (emc1403) Support full range of known chip revision numbers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 112/212] iommu/amd: Fix interrupt remapping for aliased devices Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 113/212] ASoC: wm8962: Update register CLASS_D_CONTROL_1 to be non-volatile Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 114/212] [media] V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 115/212] [media] V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 116/212] x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 117/212] i2c: designware: Mask all interrupts during i2c controller enable Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 118/212] i2c: s3c2410: resume race fix Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 119/212] i2c: rcar: bail out on zero length transfers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 120/212] dm crypt: fix cpu hotplug crash by removing per-cpu structure Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 121/212] metag: fix memory barriers Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 122/212] metag: Reduce maximum stack size to 256MB Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 123/212] x86-64, modify_ldt: Make support for 16-bit segments a runtime option Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 124/212] drm/i915: restore backlight precision when converting from ACPI Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 125/212] drm/i915: Increase WM memory latency values on SNB Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 126/212] PCI: shpchp: Check bridge's secondary (not primary) bus speed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 127/212] parisc: ratelimit userspace segfault printing Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 128/212] parisc: Improve LWS-CAS performance Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 129/212] Target/iser: Fix wrong connection requests list addition Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 130/212] Target/iser: Fix iscsit_accept_np and rdma_cm racy flow Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 131/212] iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 132/212] tcm_fc: Fix free-after-use regression in ft_free_cmd Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 133/212] target: Don't allow setting WC emulation if device doesn't support Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 134/212] arm: dts: Fix missing device_type="memory" for ste-ccu8540 Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 135/212] mips: dts: Fix missing device_type="memory" property in memory nodes Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 136/212] arm64: fix pud_huge() for 2-level pagetables Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 137/212] libceph: fix corruption when using page_count 0 page in rbd Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 138/212] clk: tegra: use pll_ref as the pll_e parent Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 139/212] clk: tegra: Fix wrong value written to PLLE_AUX Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 140/212] target: fix memory leak on XCOPY Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 141/212] sysfs: make sure read buffer is zeroed Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 142/212] cfg80211: free sme on connection failures Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 143/212] sched: Sanitize irq accounting madness Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 144/212] sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check Kamal Mostafa
2014-06-17 21:43 ` [PATCH 3.13 145/212] mac80211: fix suspend vs. association race Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 146/212] mac80211: fix on-channel remain-on-channel Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 147/212] af_iucv: wrong mapping of sent and confirmed skbs Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 148/212] perf: Limit perf_event_attr::sample_period to 63 bits Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 149/212] perf: Prevent false warning in perf_swevent_add Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 150/212] drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 151/212] drm/radeon: also try GART for CPU accessed buffers Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 152/212] drm/radeon: handle non-VGA class pci devices with ATRM Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 153/212] drm/radeon: fix register typo on si Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 154/212] drm/radeon: avoid segfault on device open when accel is not working Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 155/212] drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off (v2) Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 156/212] can: peak_pci: prevent use after free at netdev removal Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 157/212] nfsd4: remove lockowner when removing lock stateid Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 158/212] nfsd4: warn on finding lockowner without stateid's Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 159/212] dma: mv_xor: Flush descriptors before activating a channel Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 160/212] dmaengine: fix dmaengine_unmap failure Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 161/212] hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 162/212] mm/memory-failure.c: fix memory leak by race between poison and unpoison Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 163/212] ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5 on all OMAP3 platforms Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 164/212] dmaengine: dw: went back to plain {request,free}_irq() calls Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 165/212] ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 166/212] Input: synaptics - add min/max quirk for the ThinkPad W540 Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 167/212] ARM: OMAP2+: nand: Fix NAND on OMAP2 and OMAP3 boards Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 168/212] futex: Add another early deadlock detection check Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 169/212] futex: Prevent attaching to kernel threads Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 170/212] ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 171/212] cpufreq: remove race while accessing cur_policy Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 172/212] cpufreq: cpu0: drop wrong devm usage Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 173/212] ARM: imx: fix error handling in ipu device registration Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 174/212] ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 175/212] ARM: 8051/1: put_user: fix possible data corruption in put_user Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 176/212] ARM: 8064/1: fix v7-M signal return Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 177/212] Input: synaptics - T540p - unify with other LEN0034 models Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 178/212] drm/i915: Only copy back the modified fields to userspace from execbuffer Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 179/212] dm cache: always split discards on cache block boundaries Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 180/212] virtio_blk: don't crash, report error if virtqueue is broken Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 181/212] virtio_blk: fix race between start and stop queue Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 182/212] powerpc: Fix 64 bit builds with binutils 2.24 Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 183/212] powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 184/212] rtmutex: Fix deadlock detector for real Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 185/212] drm/radeon: avoid crash if VM command submission isn't available Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 186/212] drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 187/212] iwlwifi: mvm: fix setting channel in monitor mode Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 188/212] Staging: speakup: Move pasting into a work item Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 189/212] USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 190/212] can: only rename enabled led triggers when changing the netdev name Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 191/212] USB: io_ti: fix firmware download on big-endian machines (part 2) Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 192/212] USB: ftdi_sio: add NovaTech OrionLXm product ID Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 193/212] USB: serial: option: add support for Novatel E371 PCIe card Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 194/212] USB: cdc-wdm: properly include types.h Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 195/212] md: always set MD_RECOVERY_INTR when aborting a reshape or other "resync" Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 196/212] xhci: delete endpoints from bandwidth list before freeing whole device Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 197/212] md: always set MD_RECOVERY_INTR when interrupting a reshape thread Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 198/212] ALSA: hda/analog - Fix silent output on ASUS A8JN Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 199/212] drm/radeon/dpm: resume fixes for some systems Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 200/212] drm/radeon: use the CP DMA on CIK Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 201/212] ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 202/212] ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 203/212] iser-target: Add missing target_put_sess_cmd for ImmedateData failure Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 204/212] iscsi-target: Fix wrong buffer / buffer overrun in iscsi_change_param_value() Kamal Mostafa
2014-06-17 21:44 ` [PATCH 3.13 205/212] percpu-refcount: fix usage of this_cpu_ops Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 206/212] futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 207/212] futex: Validate atomic acquisition in futex_lock_pi_atomic() Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 208/212] futex: Always cleanup owner tid in unlock_pi Kamal Mostafa
2014-06-17 21:45 ` Kamal Mostafa [this message]
2014-06-17 21:45 ` [PATCH 3.13 210/212] target: Fix alua_access_state attribute OOPs for un-configured devices Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 211/212] mm: rmap: fix use-after-free in __put_anon_vma Kamal Mostafa
2014-06-17 21:45 ` [PATCH 3.13 212/212] mm: add !pte_present() check on existing hugetlb_entry callbacks Kamal Mostafa

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=1403041506-13646-210-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=dvhart@linux.intel.com \
    --cc=keescook@chromium.org \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=wad@chromium.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®