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, Alan Stern <stern@rowland.harvard.edu>,
	Daniel Fraga <fragabr@gmail.com>, Jiri Kosina <jkosina@suse.cz>
Subject: [PATCH 4.4 130/137] HID: usbhid: fix inconsistent reset/resume/reset-resume behavior
Date: Mon, 18 Apr 2016 11:29:52 +0900	[thread overview]
Message-ID: <20160418022515.753388551@linuxfoundation.org> (raw)
In-Reply-To: <20160418022507.236379264@linuxfoundation.org>

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

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

From: Alan Stern <stern@rowland.harvard.edu>

commit 972e6a993f278b416a8ee3ec65475724fc36feb2 upstream.

The usbhid driver has inconsistently duplicated code in its post-reset,
resume, and reset-resume pathways.

	reset-resume doesn't check HID_STARTED before trying to
	restart the I/O queues.

	resume fails to clear the HID_SUSPENDED flag if HID_STARTED
	isn't set.

	resume calls usbhid_restart_queues() with usbhid->lock held
	and the others call it without holding the lock.

The first item in particular causes a problem following a reset-resume
if the driver hasn't started up its I/O.  URB submission fails because
usbhid->urbin is NULL, and this triggers an unending reset-retry loop.

This patch fixes the problem by creating a new subroutine,
hid_restart_io(), to carry out all the common activities.  It also
adds some checks that were missing in the original code:

	After a reset, there's no need to clear any halted endpoints.

	After a resume, if a reset is pending there's no need to
	restart any I/O until the reset is finished.

	After a resume, if the interrupt-IN endpoint is halted there's
	no need to submit the input URB until the halt has been
	cleared.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Daniel Fraga <fragabr@gmail.com>
Tested-by: Daniel Fraga <fragabr@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hid/usbhid/hid-core.c |   73 +++++++++++++++++++++---------------------
 1 file changed, 37 insertions(+), 36 deletions(-)

--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -951,14 +951,6 @@ static int usbhid_output_report(struct h
 	return ret;
 }
 
-static void usbhid_restart_queues(struct usbhid_device *usbhid)
-{
-	if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl))
-		usbhid_restart_out_queue(usbhid);
-	if (!test_bit(HID_CTRL_RUNNING, &usbhid->iofl))
-		usbhid_restart_ctrl_queue(usbhid);
-}
-
 static void hid_free_buffers(struct usb_device *dev, struct hid_device *hid)
 {
 	struct usbhid_device *usbhid = hid->driver_data;
@@ -1404,6 +1396,37 @@ static void hid_cease_io(struct usbhid_d
 	usb_kill_urb(usbhid->urbout);
 }
 
+static void hid_restart_io(struct hid_device *hid)
+{
+	struct usbhid_device *usbhid = hid->driver_data;
+	int clear_halt = test_bit(HID_CLEAR_HALT, &usbhid->iofl);
+	int reset_pending = test_bit(HID_RESET_PENDING, &usbhid->iofl);
+
+	spin_lock_irq(&usbhid->lock);
+	clear_bit(HID_SUSPENDED, &usbhid->iofl);
+	usbhid_mark_busy(usbhid);
+
+	if (clear_halt || reset_pending)
+		schedule_work(&usbhid->reset_work);
+	usbhid->retry_delay = 0;
+	spin_unlock_irq(&usbhid->lock);
+
+	if (reset_pending || !test_bit(HID_STARTED, &usbhid->iofl))
+		return;
+
+	if (!clear_halt) {
+		if (hid_start_in(hid) < 0)
+			hid_io_error(hid);
+	}
+
+	spin_lock_irq(&usbhid->lock);
+	if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl))
+		usbhid_restart_out_queue(usbhid);
+	if (!test_bit(HID_CTRL_RUNNING, &usbhid->iofl))
+		usbhid_restart_ctrl_queue(usbhid);
+	spin_unlock_irq(&usbhid->lock);
+}
+
 /* Treat USB reset pretty much the same as suspend/resume */
 static int hid_pre_reset(struct usb_interface *intf)
 {
@@ -1453,14 +1476,14 @@ static int hid_post_reset(struct usb_int
 		return 1;
 	}
 
+	/* No need to do another reset or clear a halted endpoint */
 	spin_lock_irq(&usbhid->lock);
 	clear_bit(HID_RESET_PENDING, &usbhid->iofl);
+	clear_bit(HID_CLEAR_HALT, &usbhid->iofl);
 	spin_unlock_irq(&usbhid->lock);
 	hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0);
-	status = hid_start_in(hid);
-	if (status < 0)
-		hid_io_error(hid);
-	usbhid_restart_queues(usbhid);
+
+	hid_restart_io(hid);
 
 	return 0;
 }
@@ -1483,25 +1506,9 @@ void usbhid_put_power(struct hid_device
 #ifdef CONFIG_PM
 static int hid_resume_common(struct hid_device *hid, bool driver_suspended)
 {
-	struct usbhid_device *usbhid = hid->driver_data;
-	int status;
-
-	spin_lock_irq(&usbhid->lock);
-	clear_bit(HID_SUSPENDED, &usbhid->iofl);
-	usbhid_mark_busy(usbhid);
-
-	if (test_bit(HID_CLEAR_HALT, &usbhid->iofl) ||
-			test_bit(HID_RESET_PENDING, &usbhid->iofl))
-		schedule_work(&usbhid->reset_work);
-	usbhid->retry_delay = 0;
-
-	usbhid_restart_queues(usbhid);
-	spin_unlock_irq(&usbhid->lock);
-
-	status = hid_start_in(hid);
-	if (status < 0)
-		hid_io_error(hid);
+	int status = 0;
 
+	hid_restart_io(hid);
 	if (driver_suspended && hid->driver && hid->driver->resume)
 		status = hid->driver->resume(hid);
 	return status;
@@ -1570,12 +1577,8 @@ static int hid_suspend(struct usb_interf
 static int hid_resume(struct usb_interface *intf)
 {
 	struct hid_device *hid = usb_get_intfdata (intf);
-	struct usbhid_device *usbhid = hid->driver_data;
 	int status;
 
-	if (!test_bit(HID_STARTED, &usbhid->iofl))
-		return 0;
-
 	status = hid_resume_common(hid, true);
 	dev_dbg(&intf->dev, "resume status %d\n", status);
 	return 0;
@@ -1584,10 +1587,8 @@ static int hid_resume(struct usb_interfa
 static int hid_reset_resume(struct usb_interface *intf)
 {
 	struct hid_device *hid = usb_get_intfdata(intf);
-	struct usbhid_device *usbhid = hid->driver_data;
 	int status;
 
-	clear_bit(HID_SUSPENDED, &usbhid->iofl);
 	status = hid_post_reset(intf);
 	if (status >= 0 && hid->driver && hid->driver->reset_resume) {
 		int ret = hid->driver->reset_resume(hid);

  parent reply	other threads:[~2016-04-18  2:29 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-18  2:27 [PATCH 4.4 000/137] 4.4.8-stable review Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 001/137] hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 002/137] PKCS#7: pkcs7_validate_trust(): initialize the _trusted output argument Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 003/137] parisc: Avoid function pointers for kernel exception routines Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 004/137] parisc: Fix kernel crash with reversed copy_from_user() Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 005/137] parisc: Unbreak handling exceptions from kernel modules Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 006/137] ALSA: timer: Use mod_timer() for rearming the system timer Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 007/137] ALSA: hda - Asus N750JV external subwoofer fixup Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 008/137] ALSA: hda - Fix white noise on Asus N750JV headphone Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 009/137] ALSA: hda - Apply fix for white noise on Asus N550JV, too Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 010/137] mm: fix invalid node in alloc_migrate_target() Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 011/137] powerpc/mm: Fixup preempt underflow with huge pages Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 012/137] libnvdimm: fix smart data retrieval Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 013/137] libnvdimm, pfn: fix uuid validation Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 014/137] compiler-gcc: disable -ftracer for __noclone functions Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 015/137] arm64: opcodes.h: Add arm big-endian config options before including arm header Greg Kroah-Hartman
2016-04-18  2:27 ` [PATCH 4.4 017/137] drm/udl: Use unlocked gem unreferencing Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 018/137] drm/radeon: add a dpm quirk for sapphire Dual-X R7 370 2G D5 Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 019/137] drm/radeon: add another R7 370 quirk Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 020/137] drm/radeon: add a dpm quirk for all R7 370 parts Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 021/137] drm/amdgpu/gmc: move vram type fetching into sw_init Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 022/137] drm/amdgpu/gmc: use proper register for vram type on Fiji Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 023/137] xen/events: Mask a moving irq Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 024/137] tcp: convert cached rtt from usec to jiffies when feeding initial rto Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 025/137] tunnel: Clear IPCB(skb)->opt before dst_link_failure called Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 026/137] ipv4: only create late gso-skb if skb is already set up with CHECKSUM_PARTIAL Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 027/137] net: jme: fix suspend/resume on JMC260 Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 028/137] net: vrf: Remove direct access to skb->data Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 029/137] net: qca_spi: Dont clear IFF_BROADCAST Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 030/137] net: qca_spi: clear IFF_TX_SKB_SHARING Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 032/137] sctp: lack the check for ports in sctp_v6_cmp_addr Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 033/137] mld, igmp: Fix reserved tailroom calculation Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 034/137] tipc: Revert "tipc: use existing sk_write_queue for outgoing packet chain" Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 036/137] ipv6: re-enable fragment header matching in ipv6_find_hdr Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 037/137] vxlan: fix missing options_len update on RX with collect metadata Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 039/137] usbnet: cleanup after bind() in probe() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 040/137] udp6: fix UDP/IPv6 encap resubmit path Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 041/137] tcp: fix tcpi_segs_in after connection establishment Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 042/137] ppp: release rtnl mutex when interface creation fails Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 043/137] net: validate variable length ll headers Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 044/137] ax25: add link layer header validation function Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 045/137] packet: validate variable length ll headers Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 046/137] bpf: avoid copying junk bytes in bpf_get_current_comm() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 047/137] sh_eth: fix NULL pointer dereference in sh_eth_ring_format() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 048/137] sh_eth: advance rxdesc later " Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 049/137] qlcnic: Remove unnecessary usage of atomic_t Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 050/137] qlcnic: Fix mailbox completion handling during spurious interrupt Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 051/137] macvtap: always pass ethernet header in linear Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 052/137] mlxsw: spectrum: Check requested ageing time is valid Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 053/137] rocker: set FDB cleanup timer according to lowest ageing time Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 054/137] bridge: allow zero " Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 055/137] ipv4: Dont do expensive useless work during inetdev destroy Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 056/137] net: Fix use after free in the recvmmsg exit path Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 057/137] mlx4: add missing braces in verify_qp_parameters Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 058/137] farsync: fix off-by-one bug in fst_add_one Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 059/137] ath9k: fix buffer overrun for ar9287 Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 060/137] ppp: ensure file->private_data cant be overridden Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 061/137] tcp/dccp: remove obsolete WARN_ON() in icmp handlers Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 062/137] qlge: Fix receive packets drop Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 063/137] net: bcmgenet: fix dma api length mismatch Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 064/137] bonding: fix bond_get_stats() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 065/137] ipv4: fix broadcast packets reception Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 066/137] ipv4: initialize flowi4_flags before calling fib_lookup() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 067/137] ppp: take reference on channels netns Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 068/137] xfrm: Fix crash observed during device unregistration and decryption Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 070/137] ipv6: udp: fix UDP_MIB_IGNOREDMULTI updates Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 071/137] bridge: Allow set bridge ageing time when switchdev disabled Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 072/137] rtnl: fix msg size calculation in if_nlmsg_size() Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 073/137] tun, bpf: fix suspicious RCU usage in tun_{attach, detach}_filter Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 074/137] tuntap: restore default qdisc Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 075/137] ipv4: l2tp: fix a potential issue in l2tp_ip_recv Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 076/137] ipv6: l2tp: fix a potential issue in l2tp_ip6_recv Greg Kroah-Hartman
2016-04-18  2:28 ` [PATCH 4.4 077/137] ip6_tunnel: set rtnl_link_ops before calling register_netdevice Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 078/137] ipv6: Count in extension headers in skb->network_header Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 079/137] mpls: find_outdev: check for err ptr in addition to NULL check Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 080/137] USB: uas: Limit qdepth at the scsi-host level Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 081/137] USB: uas: Add a new NO_REPORT_LUNS quirk Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 082/137] cdc-acm: fix NULL pointer reference Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 083/137] KVM: x86: Inject pending interrupt even if pending nmi exist Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 084/137] KVM: x86: reduce default value of halt_poll_ns parameter Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 085/137] MIPS: Fix MSA ld unaligned failure cases Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 086/137] pinctrl: pistachio: fix mfio84-89 function description and pinmux Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 087/137] pinctrl: sh-pfc: only use dummy states for non-DT platforms Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 088/137] pinctrl: sunxi: Fix A33 external interrupts not working Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 089/137] pinctrl: nomadik: fix pull debug print inversion Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 090/137] pinctrl: freescale: imx: fix bogus check of of_iomap() return value Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 091/137] [media] au0828: fix au0828_v4l2_close() dev_state race condition Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 092/137] [media] au0828: Fix dev_state handling Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 093/137] [media] coda: fix error path in case of missing pdata on non-DT platform Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 094/137] [media] v4l: vsp1: Set the SRU CTRL0 register when starting the stream Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 095/137] pcmcia: db1xxx_ss: fix last irq_to_gpio user Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 096/137] rbd: use GFP_NOIO consistently for request allocations Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 097/137] virtio: virtio 1.0 cs04 spec compliance for reset Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 098/137] mac80211: properly deal with station hashtable insert errors Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 099/137] mac80211: avoid excessive stack usage in sta_info Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 100/137] mac80211: fix ibss scan parameters Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 101/137] mac80211: fix unnecessary frame drops in mesh fwding Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 102/137] mac80211: fix txq queue related crashes Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 103/137] usb: renesas_usbhs: avoid NULL pointer derefernce in usbhsf_pkt_handler() Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 104/137] usb: renesas_usbhs: disable TX IRQ before starting TX DMAC transfer Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 105/137] usb: renesas_usbhs: fix to avoid using a disabled ep in usbhsg_queue_done() Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 106/137] iio: st_magn: always define ST_MAGN_TRIGGER_SET_STATE Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 107/137] iio: accel: bmc150: fix endianness when reading axes Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 108/137] iio: gyro: bmg160: fix buffer read values Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 109/137] iio: gyro: bmg160: fix endianness when reading axes Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 110/137] sd: Fix excessive capacity printing on devices with blocks bigger than 512 bytes Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 111/137] fs: add file_dentry() Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 112/137] nfs: use file_dentry() Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 113/137] btrfs: fix crash/invalid memory access on fsync when using overlayfs Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 114/137] ext4: add lockdep annotations for i_data_sem Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 115/137] ext4: ignore quota mount options if the quota feature is enabled Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 116/137] iommu: Dont overwrite domain pointer when there is no default_domain Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 117/137] Btrfs: fix file/data loss caused by fsync after rename and new inode Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 118/137] arm64: replace read_lock to rcu lock in call_step_hook Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 119/137] perf: Do not double free Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 120/137] perf: Cure event->pending_disable race Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 121/137] mmc: sdhci-pci: Add support and PCI IDs for more Broxton host controllers Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 122/137] ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225 Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 123/137] ALSA: hda - Fix headset support and noise on HP EliteBook 755 G2 Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 124/137] ALSA: hda - fix front mic problem for a HP desktop Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 125/137] ALSA: hda/realtek - Enable the ALC292 dock fixup on the Thinkpad T460s Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 126/137] ALSA: usb-audio: Add a sample rate quirk for Phoenix Audio TMX320 Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 127/137] ALSA: usb-audio: Add a quirk for Plantronics BT300 Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 128/137] ALSA: usb-audio: Skip volume controls triggers hangup on Dell USB Dock Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 129/137] HID: wacom: fix Bamboo ONE oops Greg Kroah-Hartman
2016-04-18  2:29 ` Greg Kroah-Hartman [this message]
2016-04-18  2:29 ` [PATCH 4.4 131/137] Revert "x86/PCI: Dont alloc pcibios-irq when MSI is enabled" Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 132/137] Revert "PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed" Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 134/137] staging: android: ion: Set the length of the DMA sg entries in buffer Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 135/137] [media] usbvision fix overflow of interfaces array Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 136/137] [media] usbvision: fix crash on detecting device with invalid configuration Greg Kroah-Hartman
2016-04-18  2:29 ` [PATCH 4.4 137/137] Revert "usb: hub: do not clear BOS field during reset device" Greg Kroah-Hartman
2016-04-18 16:34 ` [PATCH 4.4 000/137] 4.4.8-stable review Guenter Roeck
2016-04-18 16:34 ` Shuah Khan
     [not found] ` <57149101.c7811c0a.898ff.6efb@mx.google.com>
2016-04-19  5:56   ` Greg Kroah-Hartman
2016-04-19 21:44     ` Kevin Hilman

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=20160418022515.753388551@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=fragabr@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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).