public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, cgroups@vger.kernel.org,
	Tejun Heo <tj@kernel.org>,
	Serge Hallyn <serge.hallyn@canonical.com>,
	Li Zefan <lizefan@huawei.com>,
	Aristeu Rozanski <arozansk@redhat.com>
Subject: [PATCH 3.14 125/228] device_cgroup: rework device access check and exception checking
Date: Wed,  4 Jun 2014 16:22:34 -0700	[thread overview]
Message-ID: <20140604232352.053369539@linuxfoundation.org> (raw)
In-Reply-To: <20140604232347.966798903@linuxfoundation.org>

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

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

From: Aristeu Rozanski <aris@redhat.com>

commit 79d719749d23234e9b725098aa49133f3ef7299d upstream.

Whenever a device file is opened and checked against current device
cgroup rules, it uses the same function (may_access()) as when a new
exception rule is added by writing devices.{allow,deny}. And in both
cases, the algorithm is the same, doesn't matter the behavior.

First problem is having device access to be considered the same as rule
checking. Consider the following structure:

	A	(default behavior: allow, exceptions disallow access)
	 \
	  B	(default behavior: allow, exceptions disallow access)

A new exception is added to B by writing devices.deny:

	c 12:34 rw

When checking if that exception is allowed in may_access():

	if (dev_cgroup->behavior == DEVCG_DEFAULT_ALLOW) {
		if (behavior == DEVCG_DEFAULT_ALLOW) {
			/* the exception will deny access to certain devices */
			return true;

Which is ok, since B is not getting more privileges than A, it doesn't
matter and the rule is accepted

Now, consider it's a device file open check and the process belongs to
cgroup B. The access will be generated as:

	behavior: allow
	exception: c 12:34 rw

The very same chunk of code will allow it, even if there's an explicit
exception telling to do otherwise.

A simple test case:

	# mkdir new_group
	# cd new_group
	# echo $$ >tasks
	# echo "c 1:3 w" >devices.deny
	# echo >/dev/null
	# echo $?
	0

This is a serious bug and was introduced on

	c39a2a3018f8 devcg: prepare may_access() for hierarchy support

To solve this problem, the device file open function was split from the
new exception check.

Second problem is how exceptions are processed by may_access(). The
first part of the said function tries to match fully with an existing
exception:

	list_for_each_entry_rcu(ex, &dev_cgroup->exceptions, list) {
		if ((refex->type & DEV_BLOCK) && !(ex->type & DEV_BLOCK))
			continue;
		if ((refex->type & DEV_CHAR) && !(ex->type & DEV_CHAR))
			continue;
		if (ex->major != ~0 && ex->major != refex->major)
			continue;
		if (ex->minor != ~0 && ex->minor != refex->minor)
			continue;
		if (refex->access & (~ex->access))
			continue;
		match = true;
		break;
	}

That means the new exception should be contained into an existing one to
be considered a match:

	New exception		Existing	match?	notes
	b 12:34 rwm		b 12:34 rwm	yes
	b 12:34 r		b *:34 rw	yes
	b 12:34 rw		b 12:34 w	no	extra "r"
	b *:34 rw		b 12:34 rw	no	too broad "*"
	b *:34 rw		b *:34 rwm	yes

Which is fine in some cases. Consider:

	A	(default behavior: deny, exceptions allow access)
	 \
	  B	(default behavior: deny, exceptions allow access)

In this case the full match makes sense, the new exception cannot add
more access than the parent allows

But this doesn't always work, consider:

	A	(default behavior: allow, exceptions disallow access)
	 \
	  B	(default behavior: deny, exceptions allow access)

In this case, a new exception in B shouldn't match any of the exceptions
in A, after all you can't allow something that was forbidden by A. But
consider this scenario:

	New exception	Existing in A	match?	outcome
	b 12:34 rw	b 12:34 r	no	exception is accepted

Because the new exception has "w" as extra, it doesn't match, so it'll
be added to B's exception list.

The same problem can happen during a file access check. Consider a
cgroup with allow as default behavior:

	Access		Exception	match?
	b 12:34 rw	b 12:34 r	no

In this case, the access didn't match any of the exceptions in the
cgroup, which is required since exceptions will disallow access.

To solve this problem, two new functions were created to match an
exception either fully or partially. In the example above, a partial
check will be performed and it'll produce a match since at least
"b 12:34 r" from "b 12:34 rw" access matches.

Cc: cgroups@vger.kernel.org
Cc: Tejun Heo <tj@kernel.org>
Cc: Serge Hallyn <serge.hallyn@canonical.com>
Cc: Li Zefan <lizefan@huawei.com>
Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 security/device_cgroup.c |  162 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 122 insertions(+), 40 deletions(-)

--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -308,57 +308,139 @@ static int devcgroup_seq_show(struct seq
 }
 
 /**
- * may_access - verifies if a new exception is part of what is allowed
- *		by a dev cgroup based on the default policy +
- *		exceptions. This is used to make sure a child cgroup
- *		won't have more privileges than its parent or to
- *		verify if a certain access is allowed.
- * @dev_cgroup: dev cgroup to be tested against
- * @refex: new exception
- * @behavior: behavior of the exception
+ * match_exception	- iterates the exception list trying to match a rule
+ * 			  based on type, major, minor and access type. It is
+ * 			  considered a match if an exception is found that
+ * 			  will contain the entire range of provided parameters.
+ * @exceptions: list of exceptions
+ * @type: device type (DEV_BLOCK or DEV_CHAR)
+ * @major: device file major number, ~0 to match all
+ * @minor: device file minor number, ~0 to match all
+ * @access: permission mask (ACC_READ, ACC_WRITE, ACC_MKNOD)
+ *
+ * returns: true in case it matches an exception completely
  */
-static bool may_access(struct dev_cgroup *dev_cgroup,
-		       struct dev_exception_item *refex,
-		       enum devcg_behavior behavior)
+static bool match_exception(struct list_head *exceptions, short type,
+			    u32 major, u32 minor, short access)
 {
 	struct dev_exception_item *ex;
-	bool match = false;
 
-	rcu_lockdep_assert(rcu_read_lock_held() ||
-			   lockdep_is_held(&devcgroup_mutex),
-			   "device_cgroup::may_access() called without proper synchronization");
+	list_for_each_entry_rcu(ex, exceptions, list) {
+		if ((type & DEV_BLOCK) && !(ex->type & DEV_BLOCK))
+			continue;
+		if ((type & DEV_CHAR) && !(ex->type & DEV_CHAR))
+			continue;
+		if (ex->major != ~0 && ex->major != major)
+			continue;
+		if (ex->minor != ~0 && ex->minor != minor)
+			continue;
+		/* provided access cannot have more than the exception rule */
+		if (access & (~ex->access))
+			continue;
+		return true;
+	}
+	return false;
+}
+
+/**
+ * match_exception_partial - iterates the exception list trying to match a rule
+ * 			     based on type, major, minor and access type. It is
+ * 			     considered a match if an exception's range is
+ * 			     found to contain *any* of the devices specified by
+ * 			     provided parameters. This is used to make sure no
+ * 			     extra access is being granted that is forbidden by
+ * 			     any of the exception list.
+ * @exceptions: list of exceptions
+ * @type: device type (DEV_BLOCK or DEV_CHAR)
+ * @major: device file major number, ~0 to match all
+ * @minor: device file minor number, ~0 to match all
+ * @access: permission mask (ACC_READ, ACC_WRITE, ACC_MKNOD)
+ *
+ * returns: true in case the provided range mat matches an exception completely
+ */
+static bool match_exception_partial(struct list_head *exceptions, short type,
+				    u32 major, u32 minor, short access)
+{
+	struct dev_exception_item *ex;
 
-	list_for_each_entry_rcu(ex, &dev_cgroup->exceptions, list) {
-		if ((refex->type & DEV_BLOCK) && !(ex->type & DEV_BLOCK))
+	list_for_each_entry_rcu(ex, exceptions, list) {
+		if ((type & DEV_BLOCK) && !(ex->type & DEV_BLOCK))
 			continue;
-		if ((refex->type & DEV_CHAR) && !(ex->type & DEV_CHAR))
+		if ((type & DEV_CHAR) && !(ex->type & DEV_CHAR))
 			continue;
-		if (ex->major != ~0 && ex->major != refex->major)
+		/*
+		 * We must be sure that both the exception and the provided
+		 * range aren't masking all devices
+		 */
+		if (ex->major != ~0 && major != ~0 && ex->major != major)
 			continue;
-		if (ex->minor != ~0 && ex->minor != refex->minor)
+		if (ex->minor != ~0 && minor != ~0 && ex->minor != minor)
 			continue;
-		if (refex->access & (~ex->access))
+		/*
+		 * In order to make sure the provided range isn't matching
+		 * an exception, all its access bits shouldn't match the
+		 * exception's access bits
+		 */
+		if (!(access & ex->access))
 			continue;
-		match = true;
-		break;
+		return true;
 	}
+	return false;
+}
+
+/**
+ * verify_new_ex - verifies if a new exception is part of what is allowed
+ *		   by a dev cgroup based on the default policy +
+ *		   exceptions. This is used to make sure a child cgroup
+ *		   won't have more privileges than its parent
+ * @dev_cgroup: dev cgroup to be tested against
+ * @refex: new exception
+ * @behavior: behavior of the exception's dev_cgroup
+ */
+static bool verify_new_ex(struct dev_cgroup *dev_cgroup,
+		          struct dev_exception_item *refex,
+		          enum devcg_behavior behavior)
+{
+	bool match = false;
+
+	rcu_lockdep_assert(rcu_read_lock_held() ||
+			   lockdep_is_held(&devcgroup_mutex),
+			   "device_cgroup:verify_new_ex called without proper synchronization");
 
 	if (dev_cgroup->behavior == DEVCG_DEFAULT_ALLOW) {
 		if (behavior == DEVCG_DEFAULT_ALLOW) {
-			/* the exception will deny access to certain devices */
+			/*
+			 * new exception in the child doesn't matter, only
+			 * adding extra restrictions
+			 */
 			return true;
 		} else {
-			/* the exception will allow access to certain devices */
+			/*
+			 * new exception in the child will add more devices
+			 * that can be acessed, so it can't match any of
+			 * parent's exceptions, even slightly
+			 */
+			match = match_exception_partial(&dev_cgroup->exceptions,
+							refex->type,
+							refex->major,
+							refex->minor,
+							refex->access);
+
 			if (match)
-				/*
-				 * a new exception allowing access shouldn't
-				 * match an parent's exception
-				 */
 				return false;
 			return true;
 		}
 	} else {
-		/* only behavior == DEVCG_DEFAULT_DENY allowed here */
+		/*
+		 * Only behavior == DEVCG_DEFAULT_DENY allowed here, therefore
+		 * the new exception will add access to more devices and must
+		 * be contained completely in an parent's exception to be
+		 * allowed
+		 */
+		match = match_exception(&dev_cgroup->exceptions, refex->type,
+					refex->major, refex->minor,
+					refex->access);
+
 		if (match)
 			/* parent has an exception that matches the proposed */
 			return true;
@@ -380,7 +462,7 @@ static int parent_has_perm(struct dev_cg
 
 	if (!parent)
 		return 1;
-	return may_access(parent, ex, childcg->behavior);
+	return verify_new_ex(parent, ex, childcg->behavior);
 }
 
 /**
@@ -708,18 +790,18 @@ static int __devcgroup_check_permission(
 				        short access)
 {
 	struct dev_cgroup *dev_cgroup;
-	struct dev_exception_item ex;
-	int rc;
-
-	memset(&ex, 0, sizeof(ex));
-	ex.type = type;
-	ex.major = major;
-	ex.minor = minor;
-	ex.access = access;
+	bool rc;
 
 	rcu_read_lock();
 	dev_cgroup = task_devcgroup(current);
-	rc = may_access(dev_cgroup, &ex, dev_cgroup->behavior);
+	if (dev_cgroup->behavior == DEVCG_DEFAULT_ALLOW)
+		/* Can't match any of the exceptions, even partially */
+		rc = !match_exception_partial(&dev_cgroup->exceptions,
+					      type, major, minor, access);
+	else
+		/* Need to match completely one exception to be allowed */
+		rc = match_exception(&dev_cgroup->exceptions, type, major,
+				     minor, access);
 	rcu_read_unlock();
 
 	if (!rc)



  parent reply	other threads:[~2014-06-05  0:24 UTC|newest]

Thread overview: 224+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 23:20 [PATCH 3.14 000/228] 3.14.6-stable review Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 001/228] futex: Add another early deadlock detection check Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 002/228] futex: Prevent attaching to kernel threads Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 003/228] MIPS/loongson2_cpufreq: Fix CPU clock rate setting Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 004/228] mips: dts: Fix missing device_type="memory" property in memory nodes Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 005/228] rtmutex: Fix deadlock detector for real Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 006/228] ftrace/module: Hardcode ftrace_module_init() call into load_module() Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 007/228] of/irq: do irq resolution in platform_get_irq Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 012/228] kernfs: add back missing error check in kernfs_fop_mmap() Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 013/228] pata_at91: fix ata_host_activate() failure handling Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 014/228] coredump: fix va_list corruption Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 016/228] mm: make fixup_user_fault() check the vma access rights too Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 017/228] serial: 8250: Fix thread unsafe __dma_tx_complete function Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 018/228] 8250_core: Fix unwanted TX chars write Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 019/228] iwlwifi: add MODULE_FIRMWARE for 7265 Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 020/228] iwlwifi: mvm: rs: fix mimo delimiter in LQ cmd Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 021/228] iwlwifi: add new 7265 HW IDs Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 022/228] iwlwifi: mvm: rs: fallback to legacy Tx columns Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 023/228] iwlwifi: mvm: avoid searching unnecessary columns Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 024/228] iwlwifi: mvm: rs: fix and cleanup rs_get_rate_action Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 025/228] iwlwifi: mvm: rs: reinit rs if no tx for a long time Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 026/228] iwlwifi: 7000: bump API to 9 Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 027/228] gpu: host1x: handle the correct # of syncpt regs Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 028/228] timer: Prevent overflow in apply_slack Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 029/228] ipmi: Fix a race restarting the timer Greg Kroah-Hartman
2014-06-04 23:20 ` [PATCH 3.14 030/228] ipmi: Reset the KCS timeout when starting error recovery Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 031/228] cfg80211: fix few minor issues in reg_process_hint() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 032/228] cfg80211: free sme on connection failures Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 033/228] cfg80211: add cfg80211_sched_scan_stopped_rtnl Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 034/228] mac80211: fix nested rtnl locking on ieee80211_reconfig Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 035/228] mac80211: fix suspend vs. association race Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 036/228] mac80211: fix on-channel remain-on-channel Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 037/228] mm, thp: close race between mremap() and split_huge_page() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 038/228] drivers/rtc/rtc-hym8563.c: set uie_unsupported Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 039/228] x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 040/228] arm64: fix pud_huge() for 2-level pagetables Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 041/228] hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 042/228] iwlwifi: mvm: delay enabling smart FIFO until after beacon RX Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 043/228] aio: fix potential leak in aio_run_iocb() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 044/228] module: remove warning about waiting module removal Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 045/228] Revert "hwmon: (coretemp) Refine TjMax detection" Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 046/228] hwmon: (emc1403) fix inverted store_hyst() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 047/228] hwmon: (emc1403) Fix resource leak on module unload Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 048/228] hwmon: (emc1403) Support full range of known chip revision numbers Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 049/228] drivercore: deferral race condition fix Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 050/228] hrtimer: Prevent all reprogramming if hang detected Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 051/228] hrtimer: Prevent remote enqueue of leftmost timers Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 052/228] hrtimer: Set expiry time before switch_hrtimer_base() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 053/228] dm verity: fix biovecs hash calculation regression Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 054/228] dm cache: fix writethrough mode quiescing in cache_map Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 055/228] md/raid10: call wait_barrier() for each request submitted Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 056/228] md: avoid possible spinning md thread at shutdown Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 057/228] PNP / ACPI: Do not return errors if _DIS or _SRS are not present Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 058/228] ACPI / EC: Process rather than discard events in acpi_ec_clear Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 059/228] irqchip: armada-370-xp: fix invalid cast of signed value into unsigned variable Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 060/228] irqchip: armada-370-xp: implement the ->check_device() msi_chip operation Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 061/228] irqchip: armada-370-xp: Fix releasing of MSIs Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 063/228] drm/i915: Dont check gmch state on inherited configs Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 064/228] drm/i915: Dont WARN nor handle unexpected hpd interrupts on gmch platforms Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 065/228] drm/i915: Break encoder->crtc link separately in intel_sanitize_crtc() Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 067/228] drm/radeon: fix runpm handling on APUs (v4) Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 068/228] drm/radeon: disable mclk dpm on R7 260X Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 069/228] drm/radeon: add support for newer mc ucode on SI (v2) Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 070/228] drm/radeon: add support for newer mc ucode on CI (v2) Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 071/228] drm/radeon: re-enable mclk dpm on R7 260X asics Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 072/228] drm/radeon/si: make sure mc ucode is loaded before checking the size Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 073/228] drm/radeon/ci: " Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 074/228] drm/radeon: properly unregister hwmon interface (v2) Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 076/228] drm/radeon/pm: dont walk the crtc list before it has been initialized (v2) Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 077/228] drm/radeon: dont allow runpm=1 on systems with out ATPX Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 078/228] drm/radeon: disable dpm on rv770 by default Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 083/228] drm/tegra: Remove gratuitous pad field Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 084/228] clk: tegra: Fix wrong value written to PLLE_AUX Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 085/228] iio:imu:mpu6050: Fixed segfault in Invensens MPU driver due to null dereference Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 086/228] fsl-usb: do not test for PHY_CLK_VALID bit on controller version 1.6 Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 087/228] usb: gadget: at91-udc: fix irq and iomem resource retrieval Greg Kroah-Hartman
2014-06-04 23:21 ` [PATCH 3.14 090/228] usb: storage: shuttle_usbat: fix discs being detected twice Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 091/228] USB: Nokia 305 should be treated as unusual dev Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 092/228] USB: Nokia 5300 " Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 093/228] rt2x00: fix beaconing on USB Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 094/228] ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback data Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 095/228] Bluetooth: Fix triggering BR/EDR L2CAP Connect too early Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 096/228] Bluetooth: Fix redundant encryption request for reauthentication Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 097/228] Bluetooth: Add support for Lite-on [04ca:3007] Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 098/228] Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device" Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 099/228] posix_acl: handle NULL ACL in posix_acl_equiv_mode Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 100/228] fs/affs/super.c: bugfix / double free Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 101/228] mm/page-writeback.c: fix divide by zero in pos_ratio_polynom Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 102/228] mm/compaction: make isolate_freepages start at pageblock boundary Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 103/228] revert "mm: vmscan: do not swap anon pages just because free+file is low" Greg Kroah-Hartman
2014-06-08  2:03   ` Ben Hutchings
2014-06-08  2:09     ` Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 104/228] ARM: orion5x: fix target ID for crypto SRAM window Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 105/228] ARM: dts: kirkwood: fix mislocated pcie-controller nodes Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 106/228] ARM: dts: i.MX53: Fix ipu register space size Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 107/228] ARM: common: edma: Fix xbar mapping Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 108/228] ARM: mvebu: fix NOR bus-width in Armada XP GP Device Tree Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 109/228] ARM: mvebu: fix NOR bus-width in Armada XP DB " Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 110/228] ARM: mvebu: fix NOR bus-width in Armada XP OpenBlocks AX3 " Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 111/228] arm: dts: Fix missing device_type="memory" for ste-ccu8540 Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 112/228] ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 113/228] rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init() Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 114/228] drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 115/228] drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 116/228] drm/i915/vlv: reset VLV media force wake request register Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 117/228] drm/i915: restore backlight precision when converting from ACPI Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 118/228] i40e: potential array underflow in i40e_vc_process_vf_msg() Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 119/228] igb: Fix Null-pointer dereference in igb_reset_q_vector Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 120/228] igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 122/228] leds: leds-pwm: properly clean up after probe failure Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 123/228] brcmsmac: fix deadlock on missing firmware Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 124/228] Documentation: Update stable address in Chinese and Japanese translations Greg Kroah-Hartman
2014-06-04 23:22 ` Greg Kroah-Hartman [this message]
2014-06-04 23:22 ` [PATCH 3.14 126/228] device_cgroup: check if exception removal is allowed Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 127/228] crypto: crypto_wq - Fix late crypto work queue initialization Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 128/228] clk: vexpress: NULL dereference on error path Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 130/228] i2c: i801: enable Intel BayTrail SMBUS Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 131/228] Input: serio - add firmware_id sysfs attribute Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 132/228] Input: i8042 - add firmware_id support Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 133/228] Input: Add INPUT_PROP_TOPBUTTONPAD device property Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 134/228] Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 135/228] e1000e: Fix no connectivity when driver loaded with cable out Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 136/228] ceph: clear directorys completeness when creating file Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 137/228] autofs: fix lockref lookup Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 138/228] fix races between __d_instantiate() and checks of dentry flags Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 139/228] trace: module: Maintain a valid user count Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 140/228] Input: atkbd - fix keyboard not working on some LG laptops Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 141/228] Input: elantech - fix touchpad initialization on Gigabyte U2442 Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 142/228] Input: synaptics - add min/max quirk for the ThinkPad W540 Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 143/228] Input: synaptics - T540p - unify with other LEN0034 models Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 144/228] Input: synaptics - add a matches_pnp_id helper function Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 145/228] Input: synaptics - change min/max quirk table to pnp-id matching Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 146/228] ALSA: hda - hdmi: Set converter channel count even without sink Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 147/228] ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 148/228] NFSd: Move default initialisers from create_client() to alloc_client() Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 149/228] NFSd: call rpc_destroy_wait_queue() from free_client() Greg Kroah-Hartman
2014-06-04 23:22 ` [PATCH 3.14 150/228] NFSD: Call ->set_acl with a NULL ACL structure if no entries Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 151/228] nfsd4: warn on finding lockowner without stateids Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 152/228] nfsd4: remove lockowner when removing lock stateid Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 153/228] workqueue: fix bugs in wq_update_unbound_numa() failure path Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 154/228] workqueue: fix a possible race condition between rescuer and pwq-release Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 155/228] workqueue: make rescuer_thread() empty wq->maydays list before exiting Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 156/228] memory: mvebu-devbus: fix the conversion of the bus width Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 157/228] PCI: mvebu: fix off-by-one in the computed size of the mbus windows Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 158/228] bus: mvebu-mbus: allow several windows with the same target/attribute Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 159/228] PCI: mvebu: split PCIe BARs into multiple MBus windows when needed Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 160/228] ARM: mvebu: mvebu-soc-id: add missing clk_put() call Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 161/228] ARM: mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 162/228] percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 163/228] iwlwifi: pcie: disable interrupts upon PCIe alloc Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 164/228] iwlwifi: mvm: fix setting channel in monitor mode Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 165/228] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 166/228] ASoC: wm8962: Update register CLASS_D_CONTROL_1 to be non-volatile Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 167/228] parisc: ratelimit userspace segfault printing Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 168/228] parisc: Improve LWS-CAS performance Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 169/228] metag: fix memory barriers Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 170/228] metag: Reduce maximum stack size to 256MB Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 171/228] x86-64, modify_ldt: Make support for 16-bit segments a runtime option Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 172/228] genirq: Provide irq_force_affinity fallback for non-SMP Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 173/228] sysfs: make sure read buffer is zeroed Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 174/228] PCI: shpchp: Check bridges secondary (not primary) bus speed Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 175/228] target: Allow non-supporting backends to set pi_prot_type to 0 Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 176/228] Target/iser: Fix wrong connection requests list addition Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 177/228] Target/iser: Fix iscsit_accept_np and rdma_cm racy flow Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 178/228] iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 179/228] target: Dont allow setting WC emulation if device doesnt support Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 180/228] target: fix memory leak on XCOPY Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 182/228] drm/i915: move power domain init earlier during system resume Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 183/228] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 185/228] iwlwifi: mvm: BT Coex - fix Look Up Table Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 186/228] PCI: Wrong register used to check pending traffic Greg Kroah-Hartman
2014-06-08  3:02   ` Ben Hutchings
2014-06-11 21:15     ` Bjorn Helgaas
2014-06-11 22:07       ` Alex Williamson
2014-06-12  0:24         ` Gavin Shan
2014-06-04 23:23 ` [PATCH 3.14 187/228] dm crypt: fix cpu hotplug crash by removing per-cpu structure Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 188/228] dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 189/228] dm thin: add timeout to stop out-of-data-space mode holding IO forever Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 190/228] dmaengine: fix dmaengine_unmap failure Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 191/228] dma: mv_xor: Flush descriptors before activating a channel Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 192/228] dmaengine: dw: went back to plain {request,free}_irq() calls Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 193/228] tcm_fc: Fix free-after-use regression in ft_free_cmd Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 194/228] libata: clean up ZPODD when a port is detached Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 195/228] ACPICA: Tables: Fix invalid pointer accesses in acpi_tb_parse_root_table() Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 196/228] ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 197/228] ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 198/228] ACPI: Revert "ACPI / Battery: Remove batterys proc directory" Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 199/228] ACPI / video: Add use_native_backlight quirks for more systems Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 200/228] ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 201/228] ACPI / processor: do not mark present at boot but not onlined CPU as onlined Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 202/228] ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 203/228] ACPI: blacklist win8 OSI for Dell Inspiron 7737 Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 204/228] ACPI / TPM: Fix resume regression on Chromebooks Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 206/228] ACPI / video: Revert native brightness quirk for ThinkPad T530 Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 207/228] i2c: rcar: bail out on zero length transfers Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 208/228] i2c: designware: Mask all interrupts during i2c controller enable Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 209/228] i2c: s3c2410: resume race fix Greg Kroah-Hartman
2014-06-04 23:23 ` [PATCH 3.14 210/228] intel_pstate: Set turbo VID for BayTrail Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 211/228] intel_pstate: remove setting P state to MAX on init Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 212/228] crypto: caam - add allocation failure handling in SPRINTFCAT macro Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 213/228] crypto: s390 - fix aes,des ctr mode concurrency finding Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 214/228] clk: Fix double free due to devm_clk_register() Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 215/228] clk: Fix slab corruption in clk_unregister() Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 216/228] powerpc/powernv: Reset root port in firmware Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 217/228] powerpc: irq work racing with timer interrupt can result in timer interrupt hang Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 218/228] powerpc: Fix 64 bit builds with binutils 2.24 Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 219/228] powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 220/228] spi: core: Ignore unsupported Dual/Quad Transfer Mode bits Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 221/228] libceph: fix corruption when using page_count 0 page in rbd Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 222/228] iommu/amd: Fix interrupt remapping for aliased devices Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 223/228] media: fc2580: fix tuning failure on 32-bit arch Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 224/228] iwlwifi: mvm: disable beacon filtering Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 225/228] iwlwifi: add rs_rate_scale_clear_tbl_windows helper function Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 226/228] iwlwifi: mvm: rs: clear per rate stats when aggregation changes Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 227/228] media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space Greg Kroah-Hartman
2014-06-04 23:24 ` [PATCH 3.14 228/228] media: V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode Greg Kroah-Hartman
     [not found] ` <pan.2014.06.05.08.15.58@googlemail.com>
2014-06-05 16:01   ` [PATCH 3.14 000/228] 3.14.6-stable review Greg KH
     [not found] ` <20140604232348.349139944@linuxfoundation.org>
2014-06-05 16:08   ` [PATCH 3.14 008/228] irqchip: Gic: Support forced affinity setting Mark Rutland
2014-06-05 17:20 ` [PATCH 3.14 000/228] 3.14.6-stable review Guenter Roeck
2014-06-05 17:55 ` Shuah Khan
2014-06-05 23:20 ` Greg Kroah-Hartman
2014-06-06  7:53   ` Guenter Roeck
2014-06-06 14:51     ` Satoru Takeuchi
2014-06-06 15:32       ` Greg Kroah-Hartman

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=20140604232352.053369539@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=arozansk@redhat.com \
    --cc=cgroups@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=serge.hallyn@canonical.com \
    --cc=stable@vger.kernel.org \
    --cc=tj@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