linux-kernel.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,
	OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
	Mathias Nyman <mathias.nyman@linux.intel.com>
Subject: [PATCH 4.9 065/206] xhci: Fix race related to abort operation
Date: Tue, 10 Jan 2017 14:35:48 +0100	[thread overview]
Message-ID: <20170110131505.540017003@linuxfoundation.org> (raw)
In-Reply-To: <20170110131502.767555407@linuxfoundation.org>

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

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

From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

commit 1c111b6c3844a142e03bcfc2fa17bfbdea08e9dc upstream.

Current abort operation has race.

    xhci_handle_command_timeout()
      xhci_abort_cmd_ring()
        xhci_write_64(CMD_RING_ABORT)
        xhci_handshake(5s)
	  do {
	    check CMD_RING_RUNNING
            udelay(1)
					 ...
					 COMP_CMD_ABORT event
					 COMP_CMD_STOP event
					 xhci_handle_stopped_cmd_ring()
					   restart cmd_ring
                                           CMD_RING_RUNNING become 1 again
	  } while ()
          return -ETIMEDOUT
        xhci_write_64(CMD_RING_ABORT)
        /* can abort random command */

To do abort operation correctly, we have to wait both of COMP_CMD_STOP
event and negation of CMD_RING_RUNNING.

But like above, while timeout handler is waiting negation of
CMD_RING_RUNNING, event handler can restart cmd_ring. So timeout
handler never be notice negation of CMD_RING_RUNNING, and retry of
CMD_RING_ABORT can abort random command (BTW, I guess retry of
CMD_RING_ABORT was workaround of this race).

To fix this race, this moves xhci_handle_stopped_cmd_ring() to
xhci_abort_cmd_ring().  And timeout handler waits COMP_CMD_STOP event.

At this point, timeout handler is owner of cmd_ring, and safely
restart cmd_ring by using xhci_handle_stopped_cmd_ring().

[FWIW, as bonus, this way would be easily extend to add CMD_RING_PAUSE
operation]

[locks edited as patch is rebased on other locking fixes -Mathias]
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/xhci-mem.c  |    1 
 drivers/usb/host/xhci-ring.c |  169 ++++++++++++++++++++++---------------------
 drivers/usb/host/xhci.h      |    1 
 3 files changed, 91 insertions(+), 80 deletions(-)

--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -2379,6 +2379,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
 
 	/* init command timeout work */
 	INIT_DELAYED_WORK(&xhci->cmd_timer, xhci_handle_command_timeout);
+	init_completion(&xhci->cmd_ring_stop_completion);
 
 	page_size = readl(&xhci->op_regs->page_size);
 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -265,23 +265,71 @@ static bool xhci_mod_cmd_timer(struct xh
 	return mod_delayed_work(system_wq, &xhci->cmd_timer, delay);
 }
 
-static int xhci_abort_cmd_ring(struct xhci_hcd *xhci)
+static struct xhci_command *xhci_next_queued_cmd(struct xhci_hcd *xhci)
+{
+	return list_first_entry_or_null(&xhci->cmd_list, struct xhci_command,
+					cmd_list);
+}
+
+/*
+ * Turn all commands on command ring with status set to "aborted" to no-op trbs.
+ * If there are other commands waiting then restart the ring and kick the timer.
+ * This must be called with command ring stopped and xhci->lock held.
+ */
+static void xhci_handle_stopped_cmd_ring(struct xhci_hcd *xhci,
+					 struct xhci_command *cur_cmd)
+{
+	struct xhci_command *i_cmd;
+	u32 cycle_state;
+
+	/* Turn all aborted commands in list to no-ops, then restart */
+	list_for_each_entry(i_cmd, &xhci->cmd_list, cmd_list) {
+
+		if (i_cmd->status != COMP_CMD_ABORT)
+			continue;
+
+		i_cmd->status = COMP_CMD_STOP;
+
+		xhci_dbg(xhci, "Turn aborted command %p to no-op\n",
+			 i_cmd->command_trb);
+		/* get cycle state from the original cmd trb */
+		cycle_state = le32_to_cpu(
+			i_cmd->command_trb->generic.field[3]) &	TRB_CYCLE;
+		/* modify the command trb to no-op command */
+		i_cmd->command_trb->generic.field[0] = 0;
+		i_cmd->command_trb->generic.field[1] = 0;
+		i_cmd->command_trb->generic.field[2] = 0;
+		i_cmd->command_trb->generic.field[3] = cpu_to_le32(
+			TRB_TYPE(TRB_CMD_NOOP) | cycle_state);
+
+		/*
+		 * caller waiting for completion is called when command
+		 *  completion event is received for these no-op commands
+		 */
+	}
+
+	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
+
+	/* ring command ring doorbell to restart the command ring */
+	if ((xhci->cmd_ring->dequeue != xhci->cmd_ring->enqueue) &&
+	    !(xhci->xhc_state & XHCI_STATE_DYING)) {
+		xhci->current_cmd = cur_cmd;
+		xhci_mod_cmd_timer(xhci, XHCI_CMD_DEFAULT_TIMEOUT);
+		xhci_ring_cmd_db(xhci);
+	}
+}
+
+/* Must be called with xhci->lock held, releases and aquires lock back */
+static int xhci_abort_cmd_ring(struct xhci_hcd *xhci, unsigned long flags)
 {
 	u64 temp_64;
 	int ret;
 
 	xhci_dbg(xhci, "Abort command ring\n");
 
-	temp_64 = xhci_read_64(xhci, &xhci->op_regs->cmd_ring);
-	xhci->cmd_ring_state = CMD_RING_STATE_ABORTED;
+	reinit_completion(&xhci->cmd_ring_stop_completion);
 
-	/*
-	 * Writing the CMD_RING_ABORT bit should cause a cmd completion event,
-	 * however on some host hw the CMD_RING_RUNNING bit is correctly cleared
-	 * but the completion event in never sent. Use the cmd timeout timer to
-	 * handle those cases. Use twice the time to cover the bit polling retry
-	 */
-	xhci_mod_cmd_timer(xhci, 2 * XHCI_CMD_DEFAULT_TIMEOUT);
+	temp_64 = xhci_read_64(xhci, &xhci->op_regs->cmd_ring);
 	xhci_write_64(xhci, temp_64 | CMD_RING_ABORT,
 			&xhci->op_regs->cmd_ring);
 
@@ -301,16 +349,30 @@ static int xhci_abort_cmd_ring(struct xh
 		udelay(1000);
 		ret = xhci_handshake(&xhci->op_regs->cmd_ring,
 				     CMD_RING_RUNNING, 0, 3 * 1000 * 1000);
-		if (ret == 0)
-			return 0;
-
-		xhci_err(xhci, "Stopped the command ring failed, "
-				"maybe the host is dead\n");
-		cancel_delayed_work(&xhci->cmd_timer);
-		xhci->xhc_state |= XHCI_STATE_DYING;
-		xhci_quiesce(xhci);
-		xhci_halt(xhci);
-		return -ESHUTDOWN;
+		if (ret < 0) {
+			xhci_err(xhci, "Stopped the command ring failed, "
+				 "maybe the host is dead\n");
+			xhci->xhc_state |= XHCI_STATE_DYING;
+			xhci_quiesce(xhci);
+			xhci_halt(xhci);
+			return -ESHUTDOWN;
+		}
+	}
+	/*
+	 * Writing the CMD_RING_ABORT bit should cause a cmd completion event,
+	 * however on some host hw the CMD_RING_RUNNING bit is correctly cleared
+	 * but the completion event in never sent. Wait 2 secs (arbitrary
+	 * number) to handle those cases after negation of CMD_RING_RUNNING.
+	 */
+	spin_unlock_irqrestore(&xhci->lock, flags);
+	ret = wait_for_completion_timeout(&xhci->cmd_ring_stop_completion,
+					  msecs_to_jiffies(2000));
+	spin_lock_irqsave(&xhci->lock, flags);
+	if (!ret) {
+		xhci_dbg(xhci, "No stop event for abort, ring start fail?\n");
+		xhci_cleanup_command_queue(xhci);
+	} else {
+		xhci_handle_stopped_cmd_ring(xhci, xhci_next_queued_cmd(xhci));
 	}
 
 	return 0;
@@ -1216,64 +1278,12 @@ void xhci_cleanup_command_queue(struct x
 		xhci_complete_del_and_free_cmd(cur_cmd, COMP_CMD_ABORT);
 }
 
-/*
- * Turn all commands on command ring with status set to "aborted" to no-op trbs.
- * If there are other commands waiting then restart the ring and kick the timer.
- * This must be called with command ring stopped and xhci->lock held.
- */
-static void xhci_handle_stopped_cmd_ring(struct xhci_hcd *xhci,
-					 struct xhci_command *cur_cmd)
-{
-	struct xhci_command *i_cmd, *tmp_cmd;
-	u32 cycle_state;
-
-	/* Turn all aborted commands in list to no-ops, then restart */
-	list_for_each_entry_safe(i_cmd, tmp_cmd, &xhci->cmd_list,
-				 cmd_list) {
-
-		if (i_cmd->status != COMP_CMD_ABORT)
-			continue;
-
-		i_cmd->status = COMP_CMD_STOP;
-
-		xhci_dbg(xhci, "Turn aborted command %p to no-op\n",
-			 i_cmd->command_trb);
-		/* get cycle state from the original cmd trb */
-		cycle_state = le32_to_cpu(
-			i_cmd->command_trb->generic.field[3]) &	TRB_CYCLE;
-		/* modify the command trb to no-op command */
-		i_cmd->command_trb->generic.field[0] = 0;
-		i_cmd->command_trb->generic.field[1] = 0;
-		i_cmd->command_trb->generic.field[2] = 0;
-		i_cmd->command_trb->generic.field[3] = cpu_to_le32(
-			TRB_TYPE(TRB_CMD_NOOP) | cycle_state);
-
-		/*
-		 * caller waiting for completion is called when command
-		 *  completion event is received for these no-op commands
-		 */
-	}
-
-	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
-
-	/* ring command ring doorbell to restart the command ring */
-	if ((xhci->cmd_ring->dequeue != xhci->cmd_ring->enqueue) &&
-	    !(xhci->xhc_state & XHCI_STATE_DYING)) {
-		xhci->current_cmd = cur_cmd;
-		xhci_mod_cmd_timer(xhci, XHCI_CMD_DEFAULT_TIMEOUT);
-		xhci_ring_cmd_db(xhci);
-	}
-	return;
-}
-
-
 void xhci_handle_command_timeout(struct work_struct *work)
 {
 	struct xhci_hcd *xhci;
 	int ret;
 	unsigned long flags;
 	u64 hw_ring_state;
-	bool second_timeout = false;
 
 	xhci = container_of(to_delayed_work(work), struct xhci_hcd, cmd_timer);
 
@@ -1287,18 +1297,17 @@ void xhci_handle_command_timeout(struct
 		spin_unlock_irqrestore(&xhci->lock, flags);
 		return;
 	}
-
 	/* mark this command to be cancelled */
-	if (xhci->current_cmd->status == COMP_CMD_ABORT)
-		second_timeout = true;
 	xhci->current_cmd->status = COMP_CMD_ABORT;
 
 	/* Make sure command ring is running before aborting it */
 	hw_ring_state = xhci_read_64(xhci, &xhci->op_regs->cmd_ring);
 	if ((xhci->cmd_ring_state & CMD_RING_STATE_RUNNING) &&
 	    (hw_ring_state & CMD_RING_RUNNING))  {
+		/* Prevent new doorbell, and start command abort */
+		xhci->cmd_ring_state = CMD_RING_STATE_ABORTED;
 		xhci_dbg(xhci, "Command timeout\n");
-		ret = xhci_abort_cmd_ring(xhci);
+		ret = xhci_abort_cmd_ring(xhci, flags);
 		if (unlikely(ret == -ESHUTDOWN)) {
 			xhci_err(xhci, "Abort command ring failed\n");
 			xhci_cleanup_command_queue(xhci);
@@ -1312,9 +1321,9 @@ void xhci_handle_command_timeout(struct
 		goto time_out_completed;
 	}
 
-	/* command ring failed to restart, or host removed. Bail out */
-	if (second_timeout || xhci->xhc_state & XHCI_STATE_REMOVING) {
-		xhci_dbg(xhci, "command timed out twice, ring start fail?\n");
+	/* host removed. Bail out */
+	if (xhci->xhc_state & XHCI_STATE_REMOVING) {
+		xhci_dbg(xhci, "host removed, ring start fail?\n");
 		xhci_cleanup_command_queue(xhci);
 
 		goto time_out_completed;
@@ -1365,7 +1374,7 @@ static void handle_cmd_completion(struct
 
 	/* If CMD ring stopped we own the trbs between enqueue and dequeue */
 	if (cmd_comp_code == COMP_CMD_STOP) {
-		xhci_handle_stopped_cmd_ring(xhci, cmd);
+		complete_all(&xhci->cmd_ring_stop_completion);
 		return;
 	}
 
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1572,6 +1572,7 @@ struct xhci_hcd {
 	struct list_head        cmd_list;
 	unsigned int		cmd_ring_reserved_trbs;
 	struct delayed_work	cmd_timer;
+	struct completion	cmd_ring_stop_completion;
 	struct xhci_command	*current_cmd;
 	struct xhci_ring	*event_ring;
 	struct xhci_erst	erst;

  parent reply	other threads:[~2017-01-10 14:45 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20170110134513epcas2p2c646e3ea1a7830fa21492a70ab52e81a@epcas2p2.samsung.com>
2017-01-10 13:34 ` [PATCH 4.9 000/206] 4.9.3-stable review Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 001/206] iio: common: st_sensors: fix channel data parsing Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 002/206] iio: max44000: correct value in illuminance_integration_time_available Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 003/206] iio: bmi160: Fix time needed to sleep after command execution Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 004/206] staging: octeon: Call SET_NETDEV_DEV() Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 005/206] ALSA: hda - Fix up GPIO for ASUS ROG Ranger Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 006/206] ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 007/206] ALSA: usb-audio: Fix irq/process data synchronization Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 008/206] fscrypt: fix renaming and linking special files Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 009/206] parisc: Add line-break when printing segfault info Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 010/206] parisc: Mark cr16 clocksource unstable on SMP systems Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 011/206] HID: sensor-hub: Move the memset to sensor_hub_get_feature() Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 012/206] ARM: davinci: da850: dont add emac clock to lookup table twice Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 013/206] pinctrl/amd: Set the level based on ACPI tables Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 014/206] mac80211: initialize fast-xmit info later Greg Kroah-Hartman
2017-01-10 13:34   ` [PATCH 4.9 016/206] gcc-plugins: update gcc-common.h for gcc-7 Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 021/206] KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 024/206] usb: musb: core: add clear_ep_rxintr() to musb_platform_ops Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 025/206] usb: musb: dsps: implement clear_ep_rxintr() callback Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 026/206] usb: storage: unusual_uas: Add JMicron JMS56x to unusual device Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 027/206] usb: gadgetfs: restrict upper bound on device configuration size Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 028/206] USB: gadgetfs: fix unbounded memory allocation bug Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 029/206] USB: gadgetfs: fix use-after-free bug Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 030/206] USB: gadgetfs: fix checks of wTotalLength in config descriptors Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 031/206] USB: fix problems with duplicate endpoint addresses Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 032/206] USB: dummy-hcd: fix bug in stop_activity (handle ep0) Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 033/206] usb: gadget: composite: Test get_alt() presence instead of set_alt() Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 034/206] usb: dwc3: core: avoid Overflow events Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 035/206] usb: xhci: fix possible wild pointer Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 036/206] usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Apollo Lake Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 037/206] xhci: free xhci virtual devices with leaf nodes first Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 038/206] usb: xhci: fix return value of xhci_setup_device() Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 039/206] usb: host: xhci: Fix possible wild pointer when handling abort command Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 040/206] xhci: Handle command completion and timeout race Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 041/206] usb: xhci: hold lock over xhci_abort_cmd_ring() Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 042/206] usb: return error code when platform_get_irq fails Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 043/206] USB: serial: omninet: fix NULL-derefs at open and disconnect Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 044/206] USB: serial: quatech2: fix sleep-while-atomic in close Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 045/206] USB: serial: pl2303: fix NULL-deref at open Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 046/206] USB: serial: keyspan_pda: verify endpoints at probe Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 047/206] USB: serial: spcp8x5: fix NULL-deref at open Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 048/206] USB: serial: io_ti: " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 049/206] USB: serial: io_ti: fix another " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 050/206] USB: serial: io_ti: fix I/O after disconnect Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 051/206] USB: serial: iuu_phoenix: fix NULL-deref at open Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 052/206] USB: serial: garmin_gps: fix memory leak on failed URB submit Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 053/206] USB: serial: ti_usb_3410_5052: fix NULL-deref at open Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 054/206] USB: serial: io_edgeport: " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 055/206] USB: serial: oti6858: " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 056/206] USB: serial: cyberjack: " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 057/206] USB: serial: kobil_sct: fix NULL-deref in write Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 058/206] USB: serial: mos7840: fix NULL-deref at open Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 059/206] USB: serial: mos7720: " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 060/206] USB: serial: mos7720: fix use-after-free on probe errors Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 061/206] USB: serial: mos7720: fix parport " Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 062/206] USB: serial: mos7720: fix parallel probe Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 063/206] usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 064/206] xhci: Use delayed_work instead of timer for command timeout Greg Kroah-Hartman
2017-01-10 13:35   ` Greg Kroah-Hartman [this message]
2017-01-10 13:35   ` [PATCH 4.9 066/206] usb: dwc3: pci: add Intel Gemini Lake PCI ID Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 067/206] usb: dwc3: pci: Fix dr_mode misspelling Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 068/206] usb: dwc3: gadget: Fix full speed mode Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 069/206] usb: musb: Fix trying to free already-free IRQ 4 Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 073/206] ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream() Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 074/206] USB: serial: kl5kusb105: abort on open exception path Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 075/206] usb: gadget: Fix second argument of percpu_ida_alloc() Greg Kroah-Hartman
2017-01-10 13:35   ` [PATCH 4.9 076/206] usb: gadget: fix request length error for isoc transfer Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 077/206] ARM: dts: r8a7794: Correct hsusb parent clock Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 078/206] USB: phy: am335x-control: fix device and of_node leaks Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 079/206] arm64: dts: hip06: Correct hardware pin number of usb node Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 080/206] ARM: dts: sun7i: bananapi-m1-plus: Enable USB PHY for USB host support Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 081/206] [media] dibusb: fix possible memory leak in dibusb_rc_query() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 082/206] USB: serial: io_ti: bind to interface after fw download Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 083/206] mei: fix parameter rename KDoc Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 084/206] mei: bus: fix mei_cldev_enable KDoc Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 085/206] mei: move write cb to completion on credentials failures Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 086/206] staging: iio: ad7606: fix improper setting of oversampling pins Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 087/206] iio: accel: st_accel: fix LIS3LV02 reading and scaling Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 088/206] usb: dwc3: ep0: add dwc3_ep0_prepare_one_trb() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 089/206] usb: dwc3: ep0: explicitly call dwc3_ep0_prepare_one_trb() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 090/206] usb: dwc3: gadget: always unmap EP0 requests Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 093/206] mac80211: fix tid_agg_rx NULL dereference Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 094/206] nl80211: Use different attrs for BSSID and random MAC addr in scan req Greg Kroah-Hartman
2017-07-21  9:40     ` Krishna Vamsi
2017-07-21 10:22       ` Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 095/206] ath10k: fix failure to send NULL func frame for 10.4 Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 096/206] mfd: tps65217: Fix page fault on unloading modules Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 097/206] ath10k: use the right length of "background" Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 098/206] cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 099/206] efi/efivar_ssdt_load: Dont return success on allocation failure Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 100/206] clk: renesas: cpg-mssr: Fix inverted debug check Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 102/206] x86/prctl/uapi: Remove #ifdef for CHECKPOINT_RESTORE Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 103/206] x86/cpu: Probe CPUID leaf 6 even when cpuid_level == 6 Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 105/206] hwmon: (scpi) Fix module autoload Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 106/206] hwmon: (amc6821) sign extension temperature Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 107/206] hwmon: (ds620) Fix overflows seen when writing temperature limits Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 108/206] hwmon: (nct7802) Fix overflows seen when writing into limit attributes Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 109/206] hwmon: (g762) Fix overflows and crash seen when writing " Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 110/206] hwmon: (lm90) fix temp1_max_alarm attribute Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 111/206] Input: synaptics-rmi4 - unlock on error Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 112/206] clk: qcom: ipq806x: Fix board clk rates Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 113/206] clk: clk-wm831x: fix a logic error Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 114/206] clk: ti: dra7: fix "failed to lookup clock node gmac_gmii_ref_clk_div" boot message Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 115/206] clk: sunxi-ng: sun8i-a23: Set CLK_SET_RATE_PARENT for audio module clocks Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 116/206] clk: sunxi-ng: sun8i-h3: " Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 118/206] clk: renesas: mstp: Support 8-bit registers for r7s72100 Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 119/206] iommu/amd: Missing error code in amd_iommu_init_device() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 120/206] iommu/amd: Fix the left value check of cmd buffer Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 121/206] iommu/vt-d: Fix pasid table size encoding Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 122/206] iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 124/206] ASoC: cht_bsw_rt5645: Fix leftover kmalloc Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 125/206] ASoC: Intel: Skylake: Fix a shift wrapping bug Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 126/206] ASoC: samsung: i2s: Fixup last IRQ unsafe spin lock call Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 127/206] scsi: g_NCR5380: Fix release_region in error handling Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 128/206] scsi: mvsas: fix command_active typo Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 129/206] target/iscsi: Fix double free in lio_target_tiqn_addtpg() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 130/206] sbp-target: Fix second argument of percpu_ida_alloc() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 131/206] relay: check array offset before using it Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 132/206] ima: fix memory leak in ima_release_policy Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 133/206] PCI/MSI: Check for NULL affinity mask in pci_irq_get_affinity() Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 134/206] irqchip/bcm7038-l1: Implement irq_cpu_offline() callback Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 135/206] PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend Greg Kroah-Hartman
2017-01-10 13:36   ` [PATCH 4.9 136/206] genirq/affinity: Fix node generation from cpumask Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 137/206] mmc: mmc_test: Uninitialized return value Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 138/206] rpmsg: qcom_smd: Correct return value for O_NONBLOCK Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 139/206] mm/hugetlb.c: use the right pte val for compare in hugetlb_cow Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 140/206] docs-rst: fix LaTeX \DURole renewcommand with Sphinx 1.3+ Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 141/206] mm: khugepaged: close use-after-free race during shmem collapsing Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 142/206] mm: khugepaged: fix radix tree node leak in shmem collapse error path Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 143/206] mm, compaction: fix NR_ISOLATED_* stats for pfn based migration Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 144/206] s390/crypto: unlock on error in prng_tdes_read() Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 145/206] crypto: arm64/sha2-ce - fix for big endian Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 146/206] crypto: arm64/ghash-ce " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 147/206] crypto: arm/aes-ce " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 148/206] crypto: arm64/aes-ccm-ce: " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 149/206] crypto: arm64/aes-neon - " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 150/206] crypto: arm64/sha1-ce " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 151/206] crypto: arm64/aes-xts-ce: " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 152/206] crypto: arm64/aes-ce - " Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 153/206] md: MD_RECOVERY_NEEDED is set for mddev->recovery Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 154/206] md: fix refcount problem on mddev when stopping array Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 155/206] f2fs: remove percpu_count due to performance regression Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 157/206] [media] staging: media: davinci_vpfe: unlock on error in vpfe_reqbufs() Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 158/206] PCI: rockchip: Fix negotiated lanes calculation Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 159/206] PCI: rockchip: Correct the use of FTS mask Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 160/206] PCI: Add Mellanox device IDs Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 161/206] PCI: Convert broken INTx masking quirks from HEADER to FINAL Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 162/206] PCI: Convert Mellanox broken INTx quirks to be for listed devices only Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 163/206] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 164/206] PCI: Enable access to non-standard VPD for Chelsio devices (cxgb3) Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 165/206] powerpc/pci/rpadlpar: Fix device reference leaks Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 166/206] s390/topology: always use s390 specific sched_domain_topology_level Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 167/206] s390/pci: fix dma address calculation in map_sg Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 169/206] drm/i915: disable PSR by default on HSW/BDW Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 170/206] drm/i915/gen9: unconditionally apply the memory bandwidth WA Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 171/206] drm/i915/gen9: fix the WM memory bandwidth WA for Y tiling cases Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 172/206] tpm_tis: Check return values from get_burstcount Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 173/206] xfs: dont call xfs_sb_quota_from_disk twice Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 174/206] xfs: check return value of _trans_reserve_quota_nblks Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 175/206] xfs: dont skip cow forks w/ delalloc blocks in cowblocks scan Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 176/206] xfs: dont BUG() on mixed direct and mapped I/O Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 177/206] xfs: provide helper for counting extents from if_bytes Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 178/206] xfs: check minimum block size for CRC filesystems Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 179/206] xfs: fix unbalanced inode reclaim flush locking Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 180/206] xfs: new inode extent list lookup helpers Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 181/206] xfs: factor rmap btree size into the indlen calculations Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 182/206] xfs: always succeed when deduping zero bytes Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 183/206] xfs: remove prev argument to xfs_bmapi_reserve_delalloc Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 184/206] xfs: track preallocation separately in xfs_bmapi_reserve_delalloc() Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 185/206] xfs: use new extent lookup helpers in __xfs_reflink_reserve_cow Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 186/206] xfs: clean up cow fork reservation and tag inodes correctly Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 187/206] xfs: use new extent lookup helpers xfs_file_iomap_begin_delay Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 188/206] xfs: pass post-eof speculative prealloc blocks to bmapi Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 189/206] xfs: Move AGI buffer type setting to xfs_read_agi Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 190/206] xfs: pass state not whichfork to trace_xfs_extlist Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 191/206] xfs: handle cow fork in xfs_bmap_trace_exlist Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 192/206] xfs: forbid AG btrees with level == 0 Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 193/206] xfs: check for bogus values in btree block headers Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 194/206] xfs: complain if we dont get nextents bmap records Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 195/206] xfs: dont crash if reading a directory results in an unexpected hole Greg Kroah-Hartman
2017-01-10 13:37   ` [PATCH 4.9 196/206] xfs: error out if trying to add attrs and anextents > 0 Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 197/206] xfs: dont allow di_size with high bit set Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 198/206] xfs: dont cap maximum dedupe request length Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 199/206] xfs: ignore leaf attr ichdr.count in verifier during log replay Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 200/206] xfs: use GPF_NOFS when allocating btree cursors Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 201/206] xfs: fix double-cleanup when CUI recovery fails Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 202/206] xfs: use the actual AG length when reserving blocks Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 203/206] xfs: fix crash and data corruption due to removal of busy COW extents Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 204/206] xfs: fix max_retries _show and _store functions Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 205/206] clocksource/dummy_timer: Move hotplug callback after the real timers Greg Kroah-Hartman
2017-01-10 13:38   ` [PATCH 4.9 206/206] tick/broadcast: Prevent NULL pointer dereference Greg Kroah-Hartman
2017-01-10 17:33   ` [PATCH 4.9 000/206] 4.9.3-stable review Shuah Khan
2017-01-10 17:40     ` Greg Kroah-Hartman
2017-01-10 22:28   ` Guenter Roeck
2017-01-11  6:51     ` Greg Kroah-Hartman
2017-01-11 11:05       ` Guenter Roeck

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=20170110131505.540017003@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --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).