stable.vger.kernel.org archive mirror
 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,
	Alex Williamson <alex.williamson@redhat.com>
Subject: [PATCH 3.17 090/146] vfio-pci: Fix remove path locking
Date: Tue, 28 Oct 2014 11:33:52 +0800	[thread overview]
Message-ID: <20141028033347.293906687@linuxfoundation.org> (raw)
In-Reply-To: <20141028033343.441992423@linuxfoundation.org>

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

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

From: Alex Williamson <alex.williamson@redhat.com>

commit 93899a679fd6b2534b5c297d9316bae039ebcbe1 upstream.

Locking both the remove() and release() path results in a deadlock
that should have been obvious.  To fix this we can get and hold the
vfio_device reference as we evaluate whether to do a bus/slot reset.
This will automatically block any remove() calls, allowing us to
remove the explict lock.  Fixes 61d792562b53.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/vfio/pci/vfio_pci.c |  138 ++++++++++++++++++--------------------------
 1 file changed, 58 insertions(+), 80 deletions(-)

--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -876,15 +876,11 @@ static void vfio_pci_remove(struct pci_d
 {
 	struct vfio_pci_device *vdev;
 
-	mutex_lock(&driver_lock);
-
 	vdev = vfio_del_group_dev(&pdev->dev);
 	if (vdev) {
 		iommu_group_put(pdev->dev.iommu_group);
 		kfree(vdev);
 	}
-
-	mutex_unlock(&driver_lock);
 }
 
 static pci_ers_result_t vfio_pci_aer_err_detected(struct pci_dev *pdev,
@@ -927,108 +923,90 @@ static struct pci_driver vfio_pci_driver
 	.err_handler	= &vfio_err_handlers,
 };
 
-/*
- * Test whether a reset is necessary and possible.  We mark devices as
- * needs_reset when they are released, but don't have a function-local reset
- * available.  If any of these exist in the affected devices, we want to do
- * a bus/slot reset.  We also need all of the affected devices to be unused,
- * so we abort if any device has a non-zero refcnt.  driver_lock prevents a
- * device from being opened during the scan or unbound from vfio-pci.
- */
-static int vfio_pci_test_bus_reset(struct pci_dev *pdev, void *data)
-{
-	bool *needs_reset = data;
-	struct pci_driver *pci_drv = ACCESS_ONCE(pdev->driver);
-	int ret = -EBUSY;
-
-	if (pci_drv == &vfio_pci_driver) {
-		struct vfio_device *device;
-		struct vfio_pci_device *vdev;
-
-		device = vfio_device_get_from_dev(&pdev->dev);
-		if (!device)
-			return ret;
-
-		vdev = vfio_device_data(device);
-		if (vdev) {
-			if (vdev->needs_reset)
-				*needs_reset = true;
-
-			if (!vdev->refcnt)
-				ret = 0;
-		}
-
-		vfio_device_put(device);
-	}
-
-	/*
-	 * TODO: vfio-core considers groups to be viable even if some devices
-	 * are attached to known drivers, like pci-stub or pcieport.  We can't
-	 * freeze devices from being unbound to those drivers like we can
-	 * here though, so it would be racy to test for them.  We also can't
-	 * use device_lock() to prevent changes as that would interfere with
-	 * PCI-core taking device_lock during bus reset.  For now, we require
-	 * devices to be bound to vfio-pci to get a bus/slot reset on release.
-	 */
-
-	return ret;
-}
+struct vfio_devices {
+	struct vfio_device **devices;
+	int cur_index;
+	int max_index;
+};
 
-/* Clear needs_reset on all affected devices after successful bus/slot reset */
-static int vfio_pci_clear_needs_reset(struct pci_dev *pdev, void *data)
+static int vfio_pci_get_devs(struct pci_dev *pdev, void *data)
 {
+	struct vfio_devices *devs = data;
 	struct pci_driver *pci_drv = ACCESS_ONCE(pdev->driver);
 
-	if (pci_drv == &vfio_pci_driver) {
-		struct vfio_device *device;
-		struct vfio_pci_device *vdev;
-
-		device = vfio_device_get_from_dev(&pdev->dev);
-		if (!device)
-			return 0;
-
-		vdev = vfio_device_data(device);
-		if (vdev)
-			vdev->needs_reset = false;
+	if (pci_drv != &vfio_pci_driver)
+		return -EBUSY;
 
-		vfio_device_put(device);
-	}
+	if (devs->cur_index == devs->max_index)
+		return -ENOSPC;
 
+	devs->devices[devs->cur_index] = vfio_device_get_from_dev(&pdev->dev);
+	if (!devs->devices[devs->cur_index])
+		return -EINVAL;
+
+	devs->cur_index++;
 	return 0;
 }
 
 /*
  * Attempt to do a bus/slot reset if there are devices affected by a reset for
  * this device that are needs_reset and all of the affected devices are unused
- * (!refcnt).  Callers of this function are required to hold driver_lock such
- * that devices can not be unbound from vfio-pci or opened by a user while we
- * test for and perform a bus/slot reset.
+ * (!refcnt).  Callers are required to hold driver_lock when calling this to
+ * prevent device opens and concurrent bus reset attempts.  We prevent device
+ * unbinds by acquiring and holding a reference to the vfio_device.
+ *
+ * NB: vfio-core considers a group to be viable even if some devices are
+ * bound to drivers like pci-stub or pcieport.  Here we require all devices
+ * to be bound to vfio_pci since that's the only way we can be sure they
+ * stay put.
  */
 static void vfio_pci_try_bus_reset(struct vfio_pci_device *vdev)
 {
+	struct vfio_devices devs = { .cur_index = 0 };
+	int i = 0, ret = -EINVAL;
 	bool needs_reset = false, slot = false;
-	int ret;
+	struct vfio_pci_device *tmp;
 
 	if (!pci_probe_reset_slot(vdev->pdev->slot))
 		slot = true;
 	else if (pci_probe_reset_bus(vdev->pdev->bus))
 		return;
 
-	if (vfio_pci_for_each_slot_or_bus(vdev->pdev,
-					  vfio_pci_test_bus_reset,
-					  &needs_reset, slot) || !needs_reset)
+	if (vfio_pci_for_each_slot_or_bus(vdev->pdev, vfio_pci_count_devs,
+					  &i, slot) || !i)
 		return;
 
-	if (slot)
-		ret = pci_try_reset_slot(vdev->pdev->slot);
-	else
-		ret = pci_try_reset_bus(vdev->pdev->bus);
-
-	if (ret)
+	devs.max_index = i;
+	devs.devices = kcalloc(i, sizeof(struct vfio_device *), GFP_KERNEL);
+	if (!devs.devices)
 		return;
 
-	vfio_pci_for_each_slot_or_bus(vdev->pdev,
-				      vfio_pci_clear_needs_reset, NULL, slot);
+	if (vfio_pci_for_each_slot_or_bus(vdev->pdev,
+					  vfio_pci_get_devs, &devs, slot))
+		goto put_devs;
+
+	for (i = 0; i < devs.cur_index; i++) {
+		tmp = vfio_device_data(devs.devices[i]);
+		if (tmp->needs_reset)
+			needs_reset = true;
+		if (tmp->refcnt)
+			goto put_devs;
+	}
+
+	if (needs_reset)
+		ret = slot ? pci_try_reset_slot(vdev->pdev->slot) :
+			     pci_try_reset_bus(vdev->pdev->bus);
+
+put_devs:
+	for (i = 0; i < devs.cur_index; i++) {
+		if (!ret) {
+			tmp = vfio_device_data(devs.devices[i]);
+			tmp->needs_reset = false;
+		}
+		vfio_device_put(devs.devices[i]);
+	}
+
+	kfree(devs.devices);
 }
 
 static void __exit vfio_pci_cleanup(void)



  parent reply	other threads:[~2014-10-28  3:33 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-28  3:32 [PATCH 3.17 000/146] 3.17.2-stable review Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 001/146] btrfs: wake up transaction thread from SYNC_FS ioctl Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 002/146] btrfs: dont go readonly on existing qgroup items Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 003/146] btrfs: Fix a deadlock in btrfs_dev_replace_finishing() Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 004/146] Btrfs: add missing compression property remove in btrfs_ioctl_setflags Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 006/146] btrfs: Fix and enhance merge_extent_mapping() to insert best fitted extent map Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 007/146] Btrfs: dont do async reclaim during log replay Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 008/146] Btrfs: try not to ENOSPC on " Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 009/146] Btrfs: cleanup error handling in build_backref_tree Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 010/146] Btrfs: fix build_backref_tree issue with multiple shared blocks Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 011/146] btrfs: Fix the wrong condition judgment about subset extent map Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 012/146] Btrfs: fix race in WAIT_SYNC ioctl Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 013/146] Revert "Btrfs: race free update of commit root for ro snapshots" Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 014/146] fs: Add a missing permission check to do_umount Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 015/146] pci_ids: Add support for Intel Quark ILB Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 016/146] kvm: x86: fix stale mmio cache bug Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 017/146] kvm: fix potentially corrupt mmio cache Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 018/146] KVM: do not bias the generation number in kvm_current_mmio_generation Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 019/146] KVM: s390: unintended fallthrough for external call Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 020/146] kvm: dont take vcpu mutex for obviously invalid vcpu ioctls Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 021/146] x86,kvm,vmx: Preserve CR4 across VM entry Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 022/146] x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 023/146] spi: dw-mid: respect 8 bit mode Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 024/146] spi/rockchip: fix bug that cause the failure to read data in DMA mode Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 025/146] spi: dw-mid: check that DMA was inited before exit Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 026/146] HID: wacom - remove report_id from wacom_get_report interface Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 027/146] HID: wacom: fix timeout on probe for some wacoms Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 028/146] HID: rmi: check sanity of the incoming report Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 029/146] mpc85xx_edac: Make L2 interrupt shared too Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 030/146] regmap: debugfs: fix possbile NULL pointer dereference Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 031/146] regmap: fix NULL pointer dereference in _regmap_write/read Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 032/146] regmap: fix possible ZERO_SIZE_PTR pointer dereferencing error Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 033/146] be2iscsi: check ip buffer before copying Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 034/146] mptfusion: enable no_write_same for vmware scsi disks Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 035/146] regulator: ltc3589: fix broken voltage transitions Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 036/146] qla2xxx: fix kernel NULL pointer access Greg Kroah-Hartman
2014-10-28  3:32 ` [PATCH 3.17 037/146] qla2xxx: Use correct offset to req-q-out for reserve calculation Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 038/146] qla2xxx: Fix shost use-after-free on device removal Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 039/146] dmaengine: fix xor sources continuation Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 040/146] dmaengine: pl330: Fix NULL pointer dereference on probe failure Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 041/146] dmaengine: pl330: Fix NULL pointer dereference on driver unbind Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 042/146] firmware_class: make sure fw requests contain a name Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 043/146] arm64: debug: dont re-enable debug exceptions on return from el1_dbg Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 044/146] Drivers: hv: util: Properly pack the data for file copy functionality Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 045/146] Drivers: hv: vmbus: Cleanup vmbus_post_msg() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 046/146] Drivers: hv: vmbus: Cleanup vmbus_teardown_gpadl() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 047/146] Drivers: hv: vmbus: Cleanup vmbus_close_internal() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 048/146] Drivers: hv: vmbus: Cleanup vmbus_establish_gpadl() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 049/146] Drivers: hv: vmbus: Fix a bug in vmbus_open() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 050/146] Drivers: hv: vmbus: Cleanup hv_post_message() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 051/146] mei: bus: fix possible boundaries violation Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 052/146] m68k: Disable/restore interrupts in hwreg_present()/hwreg_write() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 053/146] Fixing lease renewal Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 054/146] Documentation: lzo: document part of the encoding Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 055/146] Revert "lzo: properly check for overruns" Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 056/146] lzo: check for length overrun in variable length encoding Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 057/146] tty: omap-serial: fix division by zero Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 058/146] nfs: fix duplicate proc entries Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 059/146] NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 060/146] NFSv4: fix open/lock state recovery error handling Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 061/146] NFSv4.1: Fix an NFSv4.1 state renewal regression Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 062/146] nfsd4: reserve adequate space for LOCK op Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 063/146] NFS: Fix an uninitialised pointer Oops in the writeback error path Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 064/146] NFS: Fix a bogus warning in nfs_generic_pgio Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 065/146] NFSv4.1/pnfs: replace broken pnfs_put_lseg_async Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 066/146] iwlwifi: mvm: disable BT Co-running by default Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 067/146] iwlwifi: Add missing PCI IDs for the 7260 series Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 068/146] spi: dw-mid: terminate ongoing transfers at exit Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 069/146] arm64: Fix compilation error on UP builds Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 070/146] arm64: compat: fix compat types affecting struct compat_elf_prpsinfo Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 071/146] ALSA: pcm: use the same dma mmap codepath both for arm and arm64 Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 073/146] ALSA: emu10k1: Fix deadlock in synth voice lookup Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 074/146] ALSA: ALC283 codec - Avoid pop noise on headphones during suspend/resume Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 075/146] ALSA: usb-audio: Add support for Steinberg UR22 USB interface Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 076/146] ALSA: hda - hdmi: Fix missing ELD change event on plug/unplug Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 077/146] ALSA: hda - Fix inverted LED gpio setup for Lenovo Ideapad Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 078/146] ALSA: hda - Add missing terminating entry to SND_HDA_PIN_QUIRK macro Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 079/146] clk: qcom: Add IPQ8064 PLL required for USB Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 080/146] ARM: at91/dt: Fix typo regarding can0_clk Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 081/146] ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 082/146] ARM: at91/PMC: dont forget to write PMC_PCDR register to disable clocks Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 083/146] ARM: Kirkwood: Fix DT based DSA Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 084/146] ARM: mvebu: Netgear RN104: Use Hardware BCH ECC Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 085/146] ARM: mvebu: Netgear RN2120: " Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 086/146] ARM: mvebu: Netgear RN102: " Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 087/146] ARM: dts: imx28-evk: Let i2c0 run at 100kHz Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 088/146] ecryptfs: avoid to access NULL pointer when write metadata in xattr Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 089/146] udf: Fix loading of special inodes Greg Kroah-Hartman
2014-10-28  3:33 ` Greg Kroah-Hartman [this message]
2014-10-28  3:33 ` [PATCH 3.17 091/146] xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 092/146] xfs: fix agno increment in xfs_inumbers() loop Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 093/146] PCI: mvebu: Fix uninitialized variable in mvebu_get_tgt_attr() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 094/146] PCI: Add missing MEM_64 mask in pci_assign_unassigned_bridge_resources() Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 095/146] PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 096/146] PCI: Generate uppercase hex for modalias interface class Greg Kroah-Hartman
2014-10-28  3:33 ` [PATCH 3.17 097/146] rt2800: correct BBP1_TX_POWER_CTRL mask Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 098/146] Revert "ath9k_hw: reduce ANI firstep range for older chips" Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 099/146] Bluetooth: Fix HCI H5 corrupted ack value Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 100/146] Bluetooth: Fix incorrect LE CoC PDU length restriction based on HCI MTU Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 101/146] Bluetooth: Fix issue with USB suspend in btusb driver Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 102/146] Bluetooth: Fix setting correct security level when initiating SMP Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 103/146] Bluetooth: 6lowpan: Increase the connection timeout value Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 104/146] Bluetooth: 6lowpan: Set the peer IPv6 address correctly Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 105/146] Bluetooth: 6lowpan: Route packets that are not meant to peer via correct device Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 106/146] mm: clear __GFP_FS when PF_MEMALLOC_NOIO is set Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 108/146] mm/cma: fix cma bitmap aligned mask computing Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 109/146] kernel: add support for gcc 5 Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 111/146] mm/balloon_compaction: redesign ballooned pages management Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 112/146] futex: Ensure get_futex_key_refs() always implies a barrier Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 113/146] powerpc: Fix warning reported by verify_cpu_node_mapping() Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 114/146] powerpc: Only set numa node information for present cpus at boottime Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 115/146] powerpc/iommu/ddw: Fix endianness Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 116/146] powerpc/eeh: Clear frozen device state in time Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 117/146] ima: fix fallback to use new_sync_read() Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 118/146] ima: provide flag to identify new empty files Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 119/146] ima: pass opened flag to identify newly created files Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 120/146] sparc32: dma_alloc_coherent must honour gfp flags Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 121/146] sparc64: sun4v TLB error power off events Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 122/146] sparc64: Fix corrupted thread fault code Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 123/146] sparc64: find_node adjustment Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 124/146] sparc64: Move request_irq() from ldc_bind() to ldc_alloc() Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 125/146] sparc: Let memset return the address argument Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 126/146] sparc64: Fix reversed start/end in flush_tlb_kernel_range() Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 127/146] sparc64: Fix lockdep warnings on reboot on Ultra-5 Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 128/146] sparc64: Fix FPU register corruption with AES crypto offload Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 129/146] sparc64: Do not define thread fpregs save area as zero-length array Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 130/146] sparc64: Fix hibernation code refrence to PAGE_OFFSET Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 131/146] sparc64: correctly recognise M6 and M7 cpu type Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 132/146] sparc64: support M6 and M7 for building CPU distribution map Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 133/146] sparc64: cpu hardware caps support for sparc M6 and M7 Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 134/146] sparc64: T5 PMU Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 135/146] sparc64: Switch to 4-level page tables Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 136/146] sparc64: Define VA hole at run time, rather than at compile time Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 137/146] sparc64: Adjust KTSB assembler to support larger physical addresses Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 138/146] sparc64: Fix physical memory management regressions with large max_phys_bits Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 139/146] sparc64: Use kernel page tables for vmemmap Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 140/146] sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53 Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 141/146] sparc64: Adjust vmalloc region size based upon available virtual address bits Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 142/146] sparc64: sparse irq Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 143/146] sparc64: Kill unnecessary tables and increase MAX_BANKS Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 144/146] sparc64: Increase size of boot string to 1024 bytes Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 145/146] sparc64: Fix register corruption in top-most kernel stack frame during boot Greg Kroah-Hartman
2014-10-28  3:34 ` [PATCH 3.17 146/146] sparc64: Implement __get_user_pages_fast() Greg Kroah-Hartman
2014-10-28 15:15 ` [PATCH 3.17 000/146] 3.17.2-stable review Guenter Roeck
2014-10-28 23:40   ` Greg Kroah-Hartman
2014-10-28 16:15 ` Shuah Khan
2014-10-28 23:40   ` 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=20141028033347.293906687@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alex.williamson@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).