linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Linux 3.7.5
@ 2013-01-28  4:56 Greg KH
  2013-01-28  4:57 ` Greg KH
       [not found] ` <pan.2013.01.28.11.42.16.556318@googlemail.com>
  0 siblings, 2 replies; 19+ messages in thread
From: Greg KH @ 2013-01-28  4:56 UTC (permalink / raw)
  To: linux-kernel, Andrew Morton, torvalds, stable; +Cc: lwn, Jiri Slaby

[-- Attachment #1: Type: text/plain, Size: 7330 bytes --]

I'm announcing the release of the 3.7.5 kernel.

All users of the 3.7 kernel series must upgrade.

The updated 3.7.y git tree can be found at:
        git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.7.y
and can be browsed at the normal kernel.org git web browser:
        http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

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

 Makefile                                   |    4 
 arch/arm64/include/asm/elf.h               |    5 
 arch/x86/kernel/cpu/perf_event.c           |    6 -
 arch/x86/kernel/step.c                     |    9 -
 drivers/acpi/processor_idle.c              |    4 
 drivers/acpi/processor_perflib.c           |    7 +
 drivers/ata/ahci.c                         |    8 +
 drivers/ata/libahci.c                      |    6 -
 drivers/ata/libata-core.c                  |   22 ++--
 drivers/ata/libata-eh.c                    |    2 
 drivers/block/virtio_blk.c                 |    7 +
 drivers/cpufreq/Kconfig.x86                |    2 
 drivers/cpufreq/acpi-cpufreq.c             |    7 +
 drivers/dma/ioat/dma_v3.c                  |    2 
 drivers/dma/tegra20-apb-dma.c              |    8 +
 drivers/firmware/dmi_scan.c                |   78 ++++++++++++---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c |   21 ++++
 drivers/gpu/drm/i915/i915_reg.h            |    1 
 drivers/gpu/drm/i915/intel_pm.c            |    4 
 drivers/i2c/busses/i2c-mxs.c               |    2 
 drivers/idle/intel_idle.c                  |    3 
 drivers/media/usb/gspca/kinect.c           |    1 
 drivers/misc/ti-st/st_kim.c                |   37 +++++++
 drivers/pci/hotplug/pciehp.h               |    2 
 drivers/pci/hotplug/pciehp_core.c          |   11 --
 drivers/pci/hotplug/pciehp_ctrl.c          |    8 -
 drivers/pci/hotplug/pciehp_hpc.c           |   11 +-
 drivers/pci/hotplug/shpchp.h               |    3 
 drivers/pci/hotplug/shpchp_core.c          |   35 ++----
 drivers/pci/hotplug/shpchp_ctrl.c          |    6 -
 drivers/pci/pcie/aer/aerdrv_core.c         |    1 
 drivers/pci/pcie/aspm.c                    |    3 
 drivers/scsi/sd.c                          |   13 +-
 drivers/usb/dwc3/gadget.c                  |    1 
 drivers/usb/gadget/f_fs.c                  |    6 -
 drivers/usb/host/uhci-hcd.c                |   15 +-
 drivers/usb/musb/cppi_dma.c                |    4 
 drivers/vfio/pci/vfio_pci_rdwr.c           |    4 
 include/linux/ata.h                        |    8 -
 include/linux/libata.h                     |    4 
 include/linux/module.h                     |   10 -
 include/linux/sched.h                      |   11 +-
 init/do_mounts_initrd.c                    |    4 
 init/main.c                                |    4 
 kernel/async.c                             |   27 +++--
 kernel/debug/kdb/kdb_main.c                |    2 
 kernel/module.c                            |  147 +++++++++++++++++++----------
 kernel/ptrace.c                            |   72 +++++++++++---
 kernel/sched/core.c                        |    3 
 kernel/signal.c                            |   19 +--
 kernel/trace/ftrace.c                      |    2 
 lib/bug.c                                  |    1 
 security/integrity/evm/evm_crypto.c        |    4 
 sound/pci/hda/patch_conexant.c             |    9 +
 sound/pci/hda/patch_realtek.c              |    1 
 tools/perf/Makefile                        |    2 
 56 files changed, 491 insertions(+), 208 deletions(-)

Al Viro (1):
      make sure that /linuxrc has std{in,out,err}

Alan Stern (1):
      USB: UHCI: fix IRQ race during initialization

Alex Williamson (1):
      vfio-pci: Fix buffer overfill

Alexander Graf (1):
      virtio-blk: Don't free ida when disk is in use

Benoit Goby (1):
      usb: gadget: FunctionFS: Fix missing braces in parse_opts

Betty Dall (1):
      PCI/AER: pci_get_domain_bus_and_slot() call missing required pci_dev_put()

Bian Yu (1):
      libata: ahci: Fix lack of command retry after a success error handler.

Bjorn Helgaas (2):
      PCI: shpchp: Handle push button event asynchronously
      PCI: shpchp: Use per-slot workqueues to avoid deadlock

Borislav Petkov (1):
      powernow-k8: Add a kconfig dependency on acpi-cpufreq

Chris Wilson (1):
      drm/i915: Invalidate the relocation presumed_offsets along the slow path

Colin Ian King (1):
      PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported

Daniel Vetter (1):
      drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled

David Ahern (1):
      perf x86: revert 20b279 - require exclude_guest to use PEBS - kernel side

David Henningsson (1):
      ALSA: hda - Fix mute led for another HP machine

Dmitry Kasatkin (1):
      evm: checking if removexattr is not a NULL

Fabio Estevam (1):
      i2c: mxs: Fix type of error code

Greg Kroah-Hartman (1):
      Linux 3.7.5

Hugh Daschbach (1):
      libata: ahci: Add support for Enmotus Bobcat device.

Jacob Schloss (1):
      media: gspca_kinect: add Kinect for Windows USB id

Joel D. Diaz (1):
      SCSI: sd: Reshuffle init_sd to avoid crash

Konrad Rzeszutek Wilk (2):
      ACPI / cpuidle: Fix NULL pointer issues when cpuidle is disabled
      intel_idle: Don't register CPU notifier if we are not running.

Laxman Dewangan (1):
      dma: tegra: implement flags parameters for cyclic transfer

Linus Torvalds (1):
      module: fix missing module_mutex unlock

Luciano Coelho (1):
      Revert "drivers/misc/ti-st: remove gpio handling"

Matthew Garrett (1):
      cpufreq: Add module aliases for acpi-cpufreq

Oleg Nesterov (3):
      ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
      ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
      wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task

Pratyush Anand (1):
      usb: dwc3: gadget: fix ep->maxburst for ep0

Rusty Russell (2):
      module: add new state MODULE_STATE_UNFORMED.
      module: put modules in list much earlier.

Sergei Shtylyov (1):
      usb: musb: cppi_dma: drop '__init' annotation

Shane Huang (1):
      libata: replace sata_settings with devslp_timing

Shuah Khan (1):
      ioat: Fix DMA memory sync direction correct flag

Stefan Bader (1):
      ACPI: Check MSR valid bit before using P-state frequencies

Steven Rostedt (1):
      ftrace: Be first to run code modification on modules

Takashi Iwai (1):
      ALSA: hda - Add Conexant CX20755/20756/20757 codec IDs

Tejun Heo (1):
      async: fix __lowest_in_progress()

Thomas Schlichter (1):
      ACPI / processor: Get power info before updating the C-states

Vineet Gupta (1):
      Ensure that kernel_init_freeable() is not inlined into non __init code

Will Deacon (2):
      arm64: makefile: fix uname munging when setting ARCH on native machine
      arm64: elf: fix core dumping to match what glibc expects

Yijing Wang (1):
      PCI: pciehp: Use per-slot workqueues to avoid deadlock

Zhenzhong Duan (2):
      drivers/firmware/dmi_scan.c: check dmi version when get system uuid
      drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists


[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Linux 3.7.5
  2013-01-28  4:56 Linux 3.7.5 Greg KH
@ 2013-01-28  4:57 ` Greg KH
       [not found] ` <pan.2013.01.28.11.42.16.556318@googlemail.com>
  1 sibling, 0 replies; 19+ messages in thread
From: Greg KH @ 2013-01-28  4:57 UTC (permalink / raw)
  To: linux-kernel, Andrew Morton, torvalds, stable; +Cc: lwn, Jiri Slaby

diff --git a/Makefile b/Makefile
index f9196bc..ecf87b1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 7
-SUBLEVEL = 4
+SUBLEVEL = 5
 EXTRAVERSION =
 NAME = Terrified Chipmunk
 
@@ -169,7 +169,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
 				  -e s/arm.*/arm/ -e s/sa110/arm/ \
 				  -e s/s390x/s390/ -e s/parisc64/parisc/ \
 				  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-				  -e s/sh[234].*/sh/ )
+				  -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ )
 
 # Cross compiling and selecting different set of gcc/bin-utils
 # ---------------------------------------------------------------------------
diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h
index 07fea29..fe32c0e 100644
--- a/arch/arm64/include/asm/elf.h
+++ b/arch/arm64/include/asm/elf.h
@@ -26,7 +26,10 @@
 
 typedef unsigned long elf_greg_t;
 
-#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
+#define ELF_NGREG (sizeof(struct user_pt_regs) / sizeof(elf_greg_t))
+#define ELF_CORE_COPY_REGS(dest, regs)	\
+	*(struct user_pt_regs *)&(dest) = (regs)->user_regs;
+
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
 typedef struct user_fpsimd_state elf_fpregset_t;
 
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index 4a3374e..d18b2b8 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -340,9 +340,6 @@ int x86_setup_perfctr(struct perf_event *event)
 		/* BTS is currently only allowed for user-mode. */
 		if (!attr->exclude_kernel)
 			return -EOPNOTSUPP;
-
-		if (!attr->exclude_guest)
-			return -EOPNOTSUPP;
 	}
 
 	hwc->config |= config;
@@ -385,9 +382,6 @@ int x86_pmu_hw_config(struct perf_event *event)
 	if (event->attr.precise_ip) {
 		int precise = 0;
 
-		if (!event->attr.exclude_guest)
-			return -EOPNOTSUPP;
-
 		/* Support for constant skid */
 		if (x86_pmu.pebs_active && !x86_pmu.pebs_broken) {
 			precise++;
diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
index cd3b243..9b4d51d 100644
--- a/arch/x86/kernel/step.c
+++ b/arch/x86/kernel/step.c
@@ -165,10 +165,11 @@ void set_task_blockstep(struct task_struct *task, bool on)
 	 * Ensure irq/preemption can't change debugctl in between.
 	 * Note also that both TIF_BLOCKSTEP and debugctl should
 	 * be changed atomically wrt preemption.
-	 * FIXME: this means that set/clear TIF_BLOCKSTEP is simply
-	 * wrong if task != current, SIGKILL can wakeup the stopped
-	 * tracee and set/clear can play with the running task, this
-	 * can confuse the next __switch_to_xtra().
+	 *
+	 * NOTE: this means that set/clear TIF_BLOCKSTEP is only safe if
+	 * task is current or it can't be running, otherwise we can race
+	 * with __switch_to_xtra(). We rely on ptrace_freeze_traced() but
+	 * PTRACE_KILL is not safe.
 	 */
 	local_irq_disable();
 	debugctl = get_debugctlmsr();
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index e8086c7..53dc256 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -1009,6 +1009,9 @@ static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr)
 		return -EINVAL;
 	}
 
+	if (!dev)
+		return -EINVAL;
+
 	dev->cpu = pr->id;
 
 	if (max_cstate == 0)
@@ -1200,6 +1203,7 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
 		}
 
 		/* Populate Updated C-state information */
+		acpi_processor_get_power_info(pr);
 		acpi_processor_setup_cpuidle_states(pr);
 
 		/* Enable all cpuidle devices */
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 836bfe0..53e7ac9 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -340,6 +340,13 @@ static void amd_fixup_frequency(struct acpi_processor_px *px, int i)
 	if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
 	    || boot_cpu_data.x86 == 0x11) {
 		rdmsr(MSR_AMD_PSTATE_DEF_BASE + index, lo, hi);
+		/*
+		 * MSR C001_0064+:
+		 * Bit 63: PstateEn. Read-write. If set, the P-state is valid.
+		 */
+		if (!(hi & BIT(31)))
+			return;
+
 		fid = lo & 0x3f;
 		did = (lo >> 6) & 7;
 		if (boot_cpu_data.x86 == 0x10)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 7862d17..4979127 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -53,6 +53,7 @@
 
 enum {
 	AHCI_PCI_BAR_STA2X11	= 0,
+	AHCI_PCI_BAR_ENMOTUS	= 2,
 	AHCI_PCI_BAR_STANDARD	= 5,
 };
 
@@ -410,6 +411,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	{ PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci },	/* ASM1061 */
 	{ PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },	/* ASM1062 */
 
+	/* Enmotus */
+	{ PCI_DEVICE(0x1c44, 0x8000), board_ahci },
+
 	/* Generic, PCI class code for AHCI */
 	{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
 	  PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci },
@@ -1098,9 +1102,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 		dev_info(&pdev->dev,
 			 "PDC42819 can only drive SATA devices with this driver\n");
 
-	/* The Connext uses non-standard BAR */
+	/* Both Connext and Enmotus devices use non-standard BARs */
 	if (pdev->vendor == PCI_VENDOR_ID_STMICRO && pdev->device == 0xCC06)
 		ahci_pci_bar = AHCI_PCI_BAR_STA2X11;
+	else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000)
+		ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS;
 
 	/* acquire resources */
 	rc = pcim_enable_device(pdev);
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 4201e53..1d40fe8 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -1951,13 +1951,13 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
 	/* Use the nominal value 10 ms if the read MDAT is zero,
 	 * the nominal value of DETO is 20 ms.
 	 */
-	if (dev->sata_settings[ATA_LOG_DEVSLP_VALID] &
+	if (dev->devslp_timing[ATA_LOG_DEVSLP_VALID] &
 	    ATA_LOG_DEVSLP_VALID_MASK) {
-		mdat = dev->sata_settings[ATA_LOG_DEVSLP_MDAT] &
+		mdat = dev->devslp_timing[ATA_LOG_DEVSLP_MDAT] &
 		       ATA_LOG_DEVSLP_MDAT_MASK;
 		if (!mdat)
 			mdat = 10;
-		deto = dev->sata_settings[ATA_LOG_DEVSLP_DETO];
+		deto = dev->devslp_timing[ATA_LOG_DEVSLP_DETO];
 		if (!deto)
 			deto = 20;
 	} else {
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 586362e..c8ac4fe 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2324,24 +2324,28 @@ int ata_dev_configure(struct ata_device *dev)
 			}
 		}
 
-		/* check and mark DevSlp capability */
-		if (ata_id_has_devslp(dev->id))
-			dev->flags |= ATA_DFLAG_DEVSLP;
-
-		/* Obtain SATA Settings page from Identify Device Data Log,
-		 * which contains DevSlp timing variables etc.
-		 * Exclude old devices with ata_id_has_ncq()
+		/* Check and mark DevSlp capability. Get DevSlp timing variables
+		 * from SATA Settings page of Identify Device Data Log.
 		 */
-		if (ata_id_has_ncq(dev->id)) {
+		if (ata_id_has_devslp(dev->id)) {
+			u8 sata_setting[ATA_SECT_SIZE];
+			int i, j;
+
+			dev->flags |= ATA_DFLAG_DEVSLP;
 			err_mask = ata_read_log_page(dev,
 						     ATA_LOG_SATA_ID_DEV_DATA,
 						     ATA_LOG_SATA_SETTINGS,
-						     dev->sata_settings,
+						     sata_setting,
 						     1);
 			if (err_mask)
 				ata_dev_dbg(dev,
 					    "failed to get Identify Device Data, Emask 0x%x\n",
 					    err_mask);
+			else
+				for (i = 0; i < ATA_LOG_DEVSLP_SIZE; i++) {
+					j = ATA_LOG_DEVSLP_OFFSET + i;
+					dev->devslp_timing[i] = sata_setting[j];
+				}
 		}
 
 		dev->cdb_len = 16;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index bf039b0..bcf4437 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2094,7 +2094,7 @@ static unsigned int ata_eh_speed_down(struct ata_device *dev,
  */
 static inline int ata_eh_worth_retry(struct ata_queued_cmd *qc)
 {
-	if (qc->flags & AC_ERR_MEDIA)
+	if (qc->err_mask & AC_ERR_MEDIA)
 		return 0;	/* don't retry media errors */
 	if (qc->flags & ATA_QCFLAG_IO)
 		return 1;	/* otherwise retry anything from fs stack */
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 0bdde8f..07a18e2 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -889,6 +889,7 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
 {
 	struct virtio_blk *vblk = vdev->priv;
 	int index = vblk->index;
+	int refc;
 
 	/* Prevent config work handler from accessing the device. */
 	mutex_lock(&vblk->config_lock);
@@ -903,11 +904,15 @@ static void __devexit virtblk_remove(struct virtio_device *vdev)
 
 	flush_work(&vblk->config_work);
 
+	refc = atomic_read(&disk_to_dev(vblk->disk)->kobj.kref.refcount);
 	put_disk(vblk->disk);
 	mempool_destroy(vblk->pool);
 	vdev->config->del_vqs(vdev);
 	kfree(vblk);
-	ida_simple_remove(&vd_index_ida, index);
+
+	/* Only free device id if we don't have any users */
+	if (refc == 1)
+		ida_simple_remove(&vd_index_ida, index);
 }
 
 #ifdef CONFIG_PM
diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
index 934854a..7227cd7 100644
--- a/drivers/cpufreq/Kconfig.x86
+++ b/drivers/cpufreq/Kconfig.x86
@@ -106,7 +106,7 @@ config X86_POWERNOW_K7_ACPI
 config X86_POWERNOW_K8
 	tristate "AMD Opteron/Athlon64 PowerNow!"
 	select CPU_FREQ_TABLE
-	depends on ACPI && ACPI_PROCESSOR
+	depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
 	help
 	  This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
 	  Support for K10 and newer processors is now in acpi-cpufreq.
diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index 0d048f6..7b0d49d 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -1030,4 +1030,11 @@ MODULE_PARM_DESC(acpi_pstate_strict,
 late_initcall(acpi_cpufreq_init);
 module_exit(acpi_cpufreq_exit);
 
+static const struct x86_cpu_id acpi_cpufreq_ids[] = {
+	X86_FEATURE_MATCH(X86_FEATURE_ACPI),
+	X86_FEATURE_MATCH(X86_FEATURE_HW_PSTATE),
+	{}
+};
+MODULE_DEVICE_TABLE(x86cpu, acpi_cpufreq_ids);
+
 MODULE_ALIAS("acpi");
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
index f7f1dc6..ed0e8b7 100644
--- a/drivers/dma/ioat/dma_v3.c
+++ b/drivers/dma/ioat/dma_v3.c
@@ -951,7 +951,7 @@ static int __devinit ioat_xor_val_self_test(struct ioatdma_device *device)
 			goto free_resources;
 		}
 	}
-	dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_TO_DEVICE);
+	dma_sync_single_for_device(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE);
 
 	/* skip validate if the capability is not present */
 	if (!dma_has_cap(DMA_XOR_VAL, dma_chan->device->cap_mask))
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 528c62d..3cf2ca8 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -266,6 +266,7 @@ static struct tegra_dma_desc *tegra_dma_desc_get(
 		if (async_tx_test_ack(&dma_desc->txd)) {
 			list_del(&dma_desc->node);
 			spin_unlock_irqrestore(&tdc->lock, flags);
+			dma_desc->txd.flags = 0;
 			return dma_desc;
 		}
 	}
@@ -1050,7 +1051,9 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
 					TEGRA_APBDMA_AHBSEQ_WRAP_SHIFT;
 	ahb_seq |= TEGRA_APBDMA_AHBSEQ_BUS_WIDTH_32;
 
-	csr |= TEGRA_APBDMA_CSR_FLOW | TEGRA_APBDMA_CSR_IE_EOC;
+	csr |= TEGRA_APBDMA_CSR_FLOW;
+	if (flags & DMA_PREP_INTERRUPT)
+		csr |= TEGRA_APBDMA_CSR_IE_EOC;
 	csr |= tdc->dma_sconfig.slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT;
 
 	apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1;
@@ -1095,7 +1098,8 @@ struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic(
 		mem += len;
 	}
 	sg_req->last_sg = true;
-	dma_desc->txd.flags = 0;
+	if (flags & DMA_CTRL_ACK)
+		dma_desc->txd.flags = DMA_CTRL_ACK;
 
 	/*
 	 * Make sure that mode should not be conflicting with currently
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index b298158..fd3ae62 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -16,6 +16,7 @@
  */
 static char dmi_empty_string[] = "        ";
 
+static u16 __initdata dmi_ver;
 /*
  * Catch too early calls to dmi_check_system():
  */
@@ -118,12 +119,12 @@ static int __init dmi_walk_early(void (*decode)(const struct dmi_header *,
 	return 0;
 }
 
-static int __init dmi_checksum(const u8 *buf)
+static int __init dmi_checksum(const u8 *buf, u8 len)
 {
 	u8 sum = 0;
 	int a;
 
-	for (a = 0; a < 15; a++)
+	for (a = 0; a < len; a++)
 		sum += buf[a];
 
 	return sum == 0;
@@ -161,8 +162,10 @@ static void __init dmi_save_uuid(const struct dmi_header *dm, int slot, int inde
 		return;
 
 	for (i = 0; i < 16 && (is_ff || is_00); i++) {
-		if(d[i] != 0x00) is_ff = 0;
-		if(d[i] != 0xFF) is_00 = 0;
+		if (d[i] != 0x00)
+			is_00 = 0;
+		if (d[i] != 0xFF)
+			is_ff = 0;
 	}
 
 	if (is_ff || is_00)
@@ -172,7 +175,15 @@ static void __init dmi_save_uuid(const struct dmi_header *dm, int slot, int inde
 	if (!s)
 		return;
 
-	sprintf(s, "%pUB", d);
+	/*
+	 * As of version 2.6 of the SMBIOS specification, the first 3 fields of
+	 * the UUID are supposed to be little-endian encoded.  The specification
+	 * says that this is the defacto standard.
+	 */
+	if (dmi_ver >= 0x0206)
+		sprintf(s, "%pUL", d);
+	else
+		sprintf(s, "%pUB", d);
 
         dmi_ident[slot] = s;
 }
@@ -404,29 +415,57 @@ static int __init dmi_present(const char __iomem *p)
 	u8 buf[15];
 
 	memcpy_fromio(buf, p, 15);
-	if ((memcmp(buf, "_DMI_", 5) == 0) && dmi_checksum(buf)) {
+	if (dmi_checksum(buf, 15)) {
 		dmi_num = (buf[13] << 8) | buf[12];
 		dmi_len = (buf[7] << 8) | buf[6];
 		dmi_base = (buf[11] << 24) | (buf[10] << 16) |
 			(buf[9] << 8) | buf[8];
 
-		/*
-		 * DMI version 0.0 means that the real version is taken from
-		 * the SMBIOS version, which we don't know at this point.
-		 */
-		if (buf[14] != 0)
-			printk(KERN_INFO "DMI %d.%d present.\n",
-			       buf[14] >> 4, buf[14] & 0xF);
-		else
-			printk(KERN_INFO "DMI present.\n");
 		if (dmi_walk_early(dmi_decode) == 0) {
+			if (dmi_ver)
+				pr_info("SMBIOS %d.%d present.\n",
+				       dmi_ver >> 8, dmi_ver & 0xFF);
+			else {
+				dmi_ver = (buf[14] & 0xF0) << 4 |
+					   (buf[14] & 0x0F);
+				pr_info("Legacy DMI %d.%d present.\n",
+				       dmi_ver >> 8, dmi_ver & 0xFF);
+			}
 			dmi_dump_ids();
 			return 0;
 		}
 	}
+	dmi_ver = 0;
 	return 1;
 }
 
+static int __init smbios_present(const char __iomem *p)
+{
+	u8 buf[32];
+	int offset = 0;
+
+	memcpy_fromio(buf, p, 32);
+	if ((buf[5] < 32) && dmi_checksum(buf, buf[5])) {
+		dmi_ver = (buf[6] << 8) + buf[7];
+
+		/* Some BIOS report weird SMBIOS version, fix that up */
+		switch (dmi_ver) {
+		case 0x021F:
+		case 0x0221:
+			pr_debug("SMBIOS version fixup(2.%d->2.%d)\n",
+			       dmi_ver & 0xFF, 3);
+			dmi_ver = 0x0203;
+			break;
+		case 0x0233:
+			pr_debug("SMBIOS version fixup(2.%d->2.%d)\n", 51, 6);
+			dmi_ver = 0x0206;
+			break;
+		}
+		offset = 16;
+	}
+	return dmi_present(buf + offset);
+}
+
 void __init dmi_scan_machine(void)
 {
 	char __iomem *p, *q;
@@ -444,7 +483,7 @@ void __init dmi_scan_machine(void)
 		if (p == NULL)
 			goto error;
 
-		rc = dmi_present(p + 0x10); /* offset of _DMI_ string */
+		rc = smbios_present(p);
 		dmi_iounmap(p, 32);
 		if (!rc) {
 			dmi_available = 1;
@@ -462,7 +501,12 @@ void __init dmi_scan_machine(void)
 			goto error;
 
 		for (q = p; q < p + 0x10000; q += 16) {
-			rc = dmi_present(q);
+			if (memcmp(q, "_SM_", 4) == 0 && q - p <= 0xFFE0)
+				rc = smbios_present(q);
+			else if (memcmp(q, "_DMI_", 5) == 0)
+				rc = dmi_present(q);
+			else
+				continue;
 			if (!rc) {
 				dmi_available = 1;
 				dmi_iounmap(p, 0x10000);
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 3eea143..67036e9 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -548,6 +548,8 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
 	total = 0;
 	for (i = 0; i < count; i++) {
 		struct drm_i915_gem_relocation_entry __user *user_relocs;
+		u64 invalid_offset = (u64)-1;
+		int j;
 
 		user_relocs = (void __user *)(uintptr_t)exec[i].relocs_ptr;
 
@@ -558,6 +560,25 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev,
 			goto err;
 		}
 
+		/* As we do not update the known relocation offsets after
+		 * relocating (due to the complexities in lock handling),
+		 * we need to mark them as invalid now so that we force the
+		 * relocation processing next time. Just in case the target
+		 * object is evicted and then rebound into its old
+		 * presumed_offset before the next execbuffer - if that
+		 * happened we would make the mistake of assuming that the
+		 * relocations were valid.
+		 */
+		for (j = 0; j < exec[i].relocation_count; j++) {
+			if (copy_to_user(&user_relocs[j].presumed_offset,
+					 &invalid_offset,
+					 sizeof(invalid_offset))) {
+				ret = -EFAULT;
+				mutex_lock(&dev->struct_mutex);
+				goto err;
+			}
+		}
+
 		reloc_offset[i] = total;
 		total += exec[i].relocation_count;
 	}
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 09ae4b0..ecec134 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -514,6 +514,7 @@
  * the enables for writing to the corresponding low bit.
  */
 #define _3D_CHICKEN	0x02084
+#define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
 #define _3D_CHICKEN2	0x0208c
 /* Disables pipelining of read flushes past the SF-WIZ interface.
  * Required on all Ironlake steppings according to the B-Spec, but the
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index eaaff3c..e87fa47 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3412,6 +3412,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
 		   I915_READ(ILK_DISPLAY_CHICKEN2) |
 		   ILK_ELPIN_409_SELECT);
 
+	/* WaDisableHiZPlanesWhenMSAAEnabled */
+	I915_WRITE(_3D_CHICKEN,
+		   _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
+
 	I915_WRITE(WM3_LP_ILK, 0);
 	I915_WRITE(WM2_LP_ILK, 0);
 	I915_WRITE(WM1_LP_ILK, 0);
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
index 0670da7..a6fad94 100644
--- a/drivers/i2c/busses/i2c-mxs.c
+++ b/drivers/i2c/busses/i2c-mxs.c
@@ -127,7 +127,7 @@ struct mxs_i2c_dev {
 	struct device *dev;
 	void __iomem *regs;
 	struct completion cmd_complete;
-	u32 cmd_err;
+	int cmd_err;
 	struct i2c_adapter adapter;
 	const struct mxs_i2c_speed_config *speed;
 
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index b0f6b4c..e0fbe77 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -460,8 +460,6 @@ static int intel_idle_probe(void)
 	else
 		on_each_cpu(__setup_broadcast_timer, (void *)true, 1);
 
-	register_cpu_notifier(&cpu_hotplug_notifier);
-
 	pr_debug(PREFIX "v" INTEL_IDLE_VERSION
 		" model 0x%X\n", boot_cpu_data.x86_model);
 
@@ -624,6 +622,7 @@ static int __init intel_idle_init(void)
 			return retval;
 		}
 	}
+	register_cpu_notifier(&cpu_hotplug_notifier);
 
 	return 0;
 }
diff --git a/drivers/media/usb/gspca/kinect.c b/drivers/media/usb/gspca/kinect.c
index 40ad668..3773a8a7 100644
--- a/drivers/media/usb/gspca/kinect.c
+++ b/drivers/media/usb/gspca/kinect.c
@@ -381,6 +381,7 @@ static const struct sd_desc sd_desc = {
 /* -- module initialisation -- */
 static const struct usb_device_id device_table[] = {
 	{USB_DEVICE(0x045e, 0x02ae)},
+	{USB_DEVICE(0x045e, 0x02bf)},
 	{}
 };
 
diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c
index 04a8199..988da4d 100644
--- a/drivers/misc/ti-st/st_kim.c
+++ b/drivers/misc/ti-st/st_kim.c
@@ -468,6 +468,11 @@ long st_kim_start(void *kim_data)
 		if (pdata->chip_enable)
 			pdata->chip_enable(kim_gdata);
 
+		/* Configure BT nShutdown to HIGH state */
+		gpio_set_value(kim_gdata->nshutdown, GPIO_LOW);
+		mdelay(5);	/* FIXME: a proper toggle */
+		gpio_set_value(kim_gdata->nshutdown, GPIO_HIGH);
+		mdelay(100);
 		/* re-initialize the completion */
 		INIT_COMPLETION(kim_gdata->ldisc_installed);
 		/* send notification to UIM */
@@ -509,7 +514,8 @@ long st_kim_start(void *kim_data)
  *	(b) upon failure to either install ldisc or download firmware.
  *	The function is responsible to (a) notify UIM about un-installation,
  *	(b) flush UART if the ldisc was installed.
- *	(c) invoke platform's chip disabling routine.
+ *	(c) reset BT_EN - pull down nshutdown at the end.
+ *	(d) invoke platform's chip disabling routine.
  */
 long st_kim_stop(void *kim_data)
 {
@@ -541,6 +547,13 @@ long st_kim_stop(void *kim_data)
 		err = -ETIMEDOUT;
 	}
 
+	/* By default configure BT nShutdown to LOW state */
+	gpio_set_value(kim_gdata->nshutdown, GPIO_LOW);
+	mdelay(1);
+	gpio_set_value(kim_gdata->nshutdown, GPIO_HIGH);
+	mdelay(1);
+	gpio_set_value(kim_gdata->nshutdown, GPIO_LOW);
+
 	/* platform specific disable */
 	if (pdata->chip_disable)
 		pdata->chip_disable(kim_gdata);
@@ -732,6 +745,20 @@ static int kim_probe(struct platform_device *pdev)
 	/* refer to itself */
 	kim_gdata->core_data->kim_data = kim_gdata;
 
+	/* Claim the chip enable nShutdown gpio from the system */
+	kim_gdata->nshutdown = pdata->nshutdown_gpio;
+	status = gpio_request(kim_gdata->nshutdown, "kim");
+	if (unlikely(status)) {
+		pr_err(" gpio %ld request failed ", kim_gdata->nshutdown);
+		return status;
+	}
+
+	/* Configure nShutdown GPIO as output=0 */
+	status = gpio_direction_output(kim_gdata->nshutdown, 0);
+	if (unlikely(status)) {
+		pr_err(" unable to configure gpio %ld", kim_gdata->nshutdown);
+		return status;
+	}
 	/* get reference of pdev for request_firmware
 	 */
 	kim_gdata->kim_pdev = pdev;
@@ -767,10 +794,18 @@ static int kim_probe(struct platform_device *pdev)
 
 static int kim_remove(struct platform_device *pdev)
 {
+	/* free the GPIOs requested */
+	struct ti_st_plat_data	*pdata = pdev->dev.platform_data;
 	struct kim_data_s	*kim_gdata;
 
 	kim_gdata = dev_get_drvdata(&pdev->dev);
 
+	/* Free the Bluetooth/FM/GPIO
+	 * nShutdown gpio from the system
+	 */
+	gpio_free(pdata->nshutdown_gpio);
+	pr_info("nshutdown GPIO Freed");
+
 	debugfs_remove_recursive(kim_debugfs_dir);
 	sysfs_remove_group(&pdev->dev.kobj, &uim_attr_grp);
 	pr_info("sysfs entries removed");
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index 26ffd3e..2c113de 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -44,7 +44,6 @@ extern bool pciehp_poll_mode;
 extern int pciehp_poll_time;
 extern bool pciehp_debug;
 extern bool pciehp_force;
-extern struct workqueue_struct *pciehp_wq;
 
 #define dbg(format, arg...)						\
 do {									\
@@ -78,6 +77,7 @@ struct slot {
 	struct hotplug_slot *hotplug_slot;
 	struct delayed_work work;	/* work for button event */
 	struct mutex lock;
+	struct workqueue_struct *wq;
 };
 
 struct event_info {
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 916bf4f..939bd1d 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -42,7 +42,6 @@ bool pciehp_debug;
 bool pciehp_poll_mode;
 int pciehp_poll_time;
 bool pciehp_force;
-struct workqueue_struct *pciehp_wq;
 
 #define DRIVER_VERSION	"0.4"
 #define DRIVER_AUTHOR	"Dan Zink <dan.zink@compaq.com>, Greg Kroah-Hartman <greg@kroah.com>, Dely Sy <dely.l.sy@intel.com>"
@@ -340,18 +339,13 @@ static int __init pcied_init(void)
 {
 	int retval = 0;
 
-	pciehp_wq = alloc_workqueue("pciehp", 0, 0);
-	if (!pciehp_wq)
-		return -ENOMEM;
-
 	pciehp_firmware_init();
 	retval = pcie_port_service_register(&hpdriver_portdrv);
  	dbg("pcie_port_service_register = %d\n", retval);
   	info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
- 	if (retval) {
-		destroy_workqueue(pciehp_wq);
+	if (retval)
 		dbg("Failure to register service\n");
-	}
+
 	return retval;
 }
 
@@ -359,7 +353,6 @@ static void __exit pcied_cleanup(void)
 {
 	dbg("unload_pciehpd()\n");
 	pcie_port_service_unregister(&hpdriver_portdrv);
-	destroy_workqueue(pciehp_wq);
 	info(DRIVER_DESC " version: " DRIVER_VERSION " unloaded\n");
 }
 
diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
index 27f4429..38f0186 100644
--- a/drivers/pci/hotplug/pciehp_ctrl.c
+++ b/drivers/pci/hotplug/pciehp_ctrl.c
@@ -49,7 +49,7 @@ static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
 	info->p_slot = p_slot;
 	INIT_WORK(&info->work, interrupt_event_handler);
 
-	queue_work(pciehp_wq, &info->work);
+	queue_work(p_slot->wq, &info->work);
 
 	return 0;
 }
@@ -344,7 +344,7 @@ void pciehp_queue_pushbutton_work(struct work_struct *work)
 		kfree(info);
 		goto out;
 	}
-	queue_work(pciehp_wq, &info->work);
+	queue_work(p_slot->wq, &info->work);
  out:
 	mutex_unlock(&p_slot->lock);
 }
@@ -377,7 +377,7 @@ static void handle_button_press_event(struct slot *p_slot)
 		if (ATTN_LED(ctrl))
 			pciehp_set_attention_status(p_slot, 0);
 
-		queue_delayed_work(pciehp_wq, &p_slot->work, 5*HZ);
+		queue_delayed_work(p_slot->wq, &p_slot->work, 5*HZ);
 		break;
 	case BLINKINGOFF_STATE:
 	case BLINKINGON_STATE:
@@ -439,7 +439,7 @@ static void handle_surprise_event(struct slot *p_slot)
 	else
 		p_slot->state = POWERON_STATE;
 
-	queue_work(pciehp_wq, &info->work);
+	queue_work(p_slot->wq, &info->work);
 }
 
 static void interrupt_event_handler(struct work_struct *work)
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 13b2eaf..5127f3f 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -773,23 +773,32 @@ static void pcie_shutdown_notification(struct controller *ctrl)
 static int pcie_init_slot(struct controller *ctrl)
 {
 	struct slot *slot;
+	char name[32];
 
 	slot = kzalloc(sizeof(*slot), GFP_KERNEL);
 	if (!slot)
 		return -ENOMEM;
 
+	snprintf(name, sizeof(name), "pciehp-%u", PSN(ctrl));
+	slot->wq = alloc_workqueue(name, 0, 0);
+	if (!slot->wq)
+		goto abort;
+
 	slot->ctrl = ctrl;
 	mutex_init(&slot->lock);
 	INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work);
 	ctrl->slot = slot;
 	return 0;
+abort:
+	kfree(slot);
+	return -ENOMEM;
 }
 
 static void pcie_cleanup_slot(struct controller *ctrl)
 {
 	struct slot *slot = ctrl->slot;
 	cancel_delayed_work(&slot->work);
-	flush_workqueue(pciehp_wq);
+	destroy_workqueue(slot->wq);
 	kfree(slot);
 }
 
diff --git a/drivers/pci/hotplug/shpchp.h b/drivers/pci/hotplug/shpchp.h
index ca64932..b849f995 100644
--- a/drivers/pci/hotplug/shpchp.h
+++ b/drivers/pci/hotplug/shpchp.h
@@ -46,8 +46,6 @@
 extern bool shpchp_poll_mode;
 extern int shpchp_poll_time;
 extern bool shpchp_debug;
-extern struct workqueue_struct *shpchp_wq;
-extern struct workqueue_struct *shpchp_ordered_wq;
 
 #define dbg(format, arg...)						\
 do {									\
@@ -91,6 +89,7 @@ struct slot {
 	struct list_head	slot_list;
 	struct delayed_work work;	/* work for button event */
 	struct mutex lock;
+	struct workqueue_struct *wq;
 	u8 hp_slot;
 };
 
diff --git a/drivers/pci/hotplug/shpchp_core.c b/drivers/pci/hotplug/shpchp_core.c
index b6de307..ea15fdc 100644
--- a/drivers/pci/hotplug/shpchp_core.c
+++ b/drivers/pci/hotplug/shpchp_core.c
@@ -39,8 +39,6 @@
 bool shpchp_debug;
 bool shpchp_poll_mode;
 int shpchp_poll_time;
-struct workqueue_struct *shpchp_wq;
-struct workqueue_struct *shpchp_ordered_wq;
 
 #define DRIVER_VERSION	"0.4"
 #define DRIVER_AUTHOR	"Dan Zink <dan.zink@compaq.com>, Greg Kroah-Hartman <greg@kroah.com>, Dely Sy <dely.l.sy@intel.com>"
@@ -129,6 +127,14 @@ static int init_slots(struct controller *ctrl)
 		slot->device = ctrl->slot_device_offset + i;
 		slot->hpc_ops = ctrl->hpc_ops;
 		slot->number = ctrl->first_slot + (ctrl->slot_num_inc * i);
+
+		snprintf(name, sizeof(name), "shpchp-%d", slot->number);
+		slot->wq = alloc_workqueue(name, 0, 0);
+		if (!slot->wq) {
+			retval = -ENOMEM;
+			goto error_info;
+		}
+
 		mutex_init(&slot->lock);
 		INIT_DELAYED_WORK(&slot->work, shpchp_queue_pushbutton_work);
 
@@ -148,7 +154,7 @@ static int init_slots(struct controller *ctrl)
 		if (retval) {
 			ctrl_err(ctrl, "pci_hp_register failed with error %d\n",
 				 retval);
-			goto error_info;
+			goto error_slotwq;
 		}
 
 		get_power_status(hotplug_slot, &info->power_status);
@@ -160,6 +166,8 @@ static int init_slots(struct controller *ctrl)
 	}
 
 	return 0;
+error_slotwq:
+	destroy_workqueue(slot->wq);
 error_info:
 	kfree(info);
 error_hpslot:
@@ -180,8 +188,7 @@ void cleanup_slots(struct controller *ctrl)
 		slot = list_entry(tmp, struct slot, slot_list);
 		list_del(&slot->slot_list);
 		cancel_delayed_work(&slot->work);
-		flush_workqueue(shpchp_wq);
-		flush_workqueue(shpchp_ordered_wq);
+		destroy_workqueue(slot->wq);
 		pci_hp_deregister(slot->hotplug_slot);
 	}
 }
@@ -364,25 +371,11 @@ static struct pci_driver shpc_driver = {
 
 static int __init shpcd_init(void)
 {
-	int retval = 0;
-
-	shpchp_wq = alloc_ordered_workqueue("shpchp", 0);
-	if (!shpchp_wq)
-		return -ENOMEM;
-
-	shpchp_ordered_wq = alloc_ordered_workqueue("shpchp_ordered", 0);
-	if (!shpchp_ordered_wq) {
-		destroy_workqueue(shpchp_wq);
-		return -ENOMEM;
-	}
+	int retval;
 
 	retval = pci_register_driver(&shpc_driver);
 	dbg("%s: pci_register_driver = %d\n", __func__, retval);
 	info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
-	if (retval) {
-		destroy_workqueue(shpchp_ordered_wq);
-		destroy_workqueue(shpchp_wq);
-	}
 	return retval;
 }
 
@@ -390,8 +383,6 @@ static void __exit shpcd_cleanup(void)
 {
 	dbg("unload_shpchpd()\n");
 	pci_unregister_driver(&shpc_driver);
-	destroy_workqueue(shpchp_ordered_wq);
-	destroy_workqueue(shpchp_wq);
 	info(DRIVER_DESC " version: " DRIVER_VERSION " unloaded\n");
 }
 
diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c
index f9b5a52..5849927 100644
--- a/drivers/pci/hotplug/shpchp_ctrl.c
+++ b/drivers/pci/hotplug/shpchp_ctrl.c
@@ -51,7 +51,7 @@ static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
 	info->p_slot = p_slot;
 	INIT_WORK(&info->work, interrupt_event_handler);
 
-	queue_work(shpchp_wq, &info->work);
+	queue_work(p_slot->wq, &info->work);
 
 	return 0;
 }
@@ -453,7 +453,7 @@ void shpchp_queue_pushbutton_work(struct work_struct *work)
 		kfree(info);
 		goto out;
 	}
-	queue_work(shpchp_ordered_wq, &info->work);
+	queue_work(p_slot->wq, &info->work);
  out:
 	mutex_unlock(&p_slot->lock);
 }
@@ -501,7 +501,7 @@ static void handle_button_press_event(struct slot *p_slot)
 		p_slot->hpc_ops->green_led_blink(p_slot);
 		p_slot->hpc_ops->set_attention_status(p_slot, 0);
 
-		queue_delayed_work(shpchp_wq, &p_slot->work, 5*HZ);
+		queue_delayed_work(p_slot->wq, &p_slot->work, 5*HZ);
 		break;
 	case BLINKINGOFF_STATE:
 	case BLINKINGON_STATE:
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
index af4e31c..43caf53 100644
--- a/drivers/pci/pcie/aer/aerdrv_core.c
+++ b/drivers/pci/pcie/aer/aerdrv_core.c
@@ -616,6 +616,7 @@ static void aer_recover_work_func(struct work_struct *work)
 			continue;
 		}
 		do_recovery(pdev, entry.severity);
+		pci_dev_put(pdev);
 	}
 }
 #endif
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 213753b..449f257 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -773,6 +773,9 @@ void pcie_clear_aspm(struct pci_bus *bus)
 {
 	struct pci_dev *child;
 
+	if (aspm_force)
+		return;
+
 	/*
 	 * Clear any ASPM setup that the firmware has carried out on this bus
 	 */
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 352bc77..a45e12a 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -3116,10 +3116,6 @@ static int __init init_sd(void)
 	if (err)
 		goto err_out;
 
-	err = scsi_register_driver(&sd_template.gendrv);
-	if (err)
-		goto err_out_class;
-
 	sd_cdb_cache = kmem_cache_create("sd_ext_cdb", SD_EXT_CDB_SIZE,
 					 0, 0, NULL);
 	if (!sd_cdb_cache) {
@@ -3133,8 +3129,15 @@ static int __init init_sd(void)
 		goto err_out_cache;
 	}
 
+	err = scsi_register_driver(&sd_template.gendrv);
+	if (err)
+		goto err_out_driver;
+
 	return 0;
 
+err_out_driver:
+	mempool_destroy(sd_cdb_pool);
+
 err_out_cache:
 	kmem_cache_destroy(sd_cdb_cache);
 
@@ -3157,10 +3160,10 @@ static void __exit exit_sd(void)
 
 	SCSI_LOG_HLQUEUE(3, printk("exit_sd: exiting sd driver\n"));
 
+	scsi_unregister_driver(&sd_template.gendrv);
 	mempool_destroy(sd_cdb_pool);
 	kmem_cache_destroy(sd_cdb_cache);
 
-	scsi_unregister_driver(&sd_template.gendrv);
 	class_unregister(&sd_disk_class);
 
 	for (i = 0; i < SD_MAJORS; i++)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7b7dedd..57f0859 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1605,6 +1605,7 @@ static int __devinit dwc3_gadget_init_endpoints(struct dwc3 *dwc)
 
 		if (epnum == 0 || epnum == 1) {
 			dep->endpoint.maxpacket = 512;
+			dep->endpoint.maxburst = 1;
 			dep->endpoint.ops = &dwc3_gadget_ep0_ops;
 			if (!epnum)
 				dwc->gadget.ep0 = &dep->endpoint;
diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c
index 64c4ec1..7c52ed4 100644
--- a/drivers/usb/gadget/f_fs.c
+++ b/drivers/usb/gadget/f_fs.c
@@ -1153,15 +1153,15 @@ static int ffs_fs_parse_opts(struct ffs_sb_fill_data *data, char *opts)
 					pr_err("%s: unmapped value: %lu\n", opts, value);
 					return -EINVAL;
 				}
-			}
-			else if (!memcmp(opts, "gid", 3))
+			} else if (!memcmp(opts, "gid", 3)) {
 				data->perms.gid = make_kgid(current_user_ns(), value);
 				if (!gid_valid(data->perms.gid)) {
 					pr_err("%s: unmapped value: %lu\n", opts, value);
 					return -EINVAL;
 				}
-			else
+			} else {
 				goto invalid;
+			}
 			break;
 
 		default:
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 4b9e9ab..4f64d24 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -447,6 +447,10 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
 		return IRQ_NONE;
 	uhci_writew(uhci, status, USBSTS);		/* Clear it */
 
+	spin_lock(&uhci->lock);
+	if (unlikely(!uhci->is_initialized))	/* not yet configured */
+		goto done;
+
 	if (status & ~(USBSTS_USBINT | USBSTS_ERROR | USBSTS_RD)) {
 		if (status & USBSTS_HSE)
 			dev_err(uhci_dev(uhci), "host system error, "
@@ -455,7 +459,6 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
 			dev_err(uhci_dev(uhci), "host controller process "
 					"error, something bad happened!\n");
 		if (status & USBSTS_HCH) {
-			spin_lock(&uhci->lock);
 			if (uhci->rh_state >= UHCI_RH_RUNNING) {
 				dev_err(uhci_dev(uhci),
 					"host controller halted, "
@@ -473,15 +476,15 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
 				 * pending unlinks */
 				mod_timer(&hcd->rh_timer, jiffies);
 			}
-			spin_unlock(&uhci->lock);
 		}
 	}
 
-	if (status & USBSTS_RD)
+	if (status & USBSTS_RD) {
+		spin_unlock(&uhci->lock);
 		usb_hcd_poll_rh_status(hcd);
-	else {
-		spin_lock(&uhci->lock);
+	} else {
 		uhci_scan_schedule(uhci);
+ done:
 		spin_unlock(&uhci->lock);
 	}
 
@@ -662,9 +665,9 @@ static int uhci_start(struct usb_hcd *hcd)
 	 */
 	mb();
 
+	spin_lock_irq(&uhci->lock);
 	configure_hc(uhci);
 	uhci->is_initialized = 1;
-	spin_lock_irq(&uhci->lock);
 	start_rh(uhci);
 	spin_unlock_irq(&uhci->lock);
 	return 0;
diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index 3a6c2fd..3d37b5d 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -105,7 +105,7 @@ static void cppi_reset_tx(struct cppi_tx_stateram __iomem *tx, u32 ptr)
 	musb_writel(&tx->tx_complete, 0, ptr);
 }
 
-static void __init cppi_pool_init(struct cppi *cppi, struct cppi_channel *c)
+static void cppi_pool_init(struct cppi *cppi, struct cppi_channel *c)
 {
 	int	j;
 
@@ -150,7 +150,7 @@ static void cppi_pool_free(struct cppi_channel *c)
 	c->last_processed = NULL;
 }
 
-static int __init cppi_controller_start(struct dma_controller *c)
+static int cppi_controller_start(struct dma_controller *c)
 {
 	struct cppi	*controller;
 	void __iomem	*tibase;
diff --git a/drivers/vfio/pci/vfio_pci_rdwr.c b/drivers/vfio/pci/vfio_pci_rdwr.c
index 4362d9e..f72323e 100644
--- a/drivers/vfio/pci/vfio_pci_rdwr.c
+++ b/drivers/vfio/pci/vfio_pci_rdwr.c
@@ -240,17 +240,17 @@ ssize_t vfio_pci_mem_readwrite(struct vfio_pci_device *vdev, char __user *buf,
 			filled = 1;
 		} else {
 			/* Drop writes, fill reads with FF */
+			filled = min((size_t)(x_end - pos), count);
 			if (!iswrite) {
 				char val = 0xFF;
 				size_t i;
 
-				for (i = 0; i < x_end - pos; i++) {
+				for (i = 0; i < filled; i++) {
 					if (put_user(val, buf + i))
 						goto out;
 				}
 			}
 
-			filled = x_end - pos;
 		}
 
 		count -= filled;
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 408da95..8f7a3d6 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -297,10 +297,12 @@ enum {
 	ATA_LOG_SATA_NCQ	= 0x10,
 	ATA_LOG_SATA_ID_DEV_DATA  = 0x30,
 	ATA_LOG_SATA_SETTINGS	  = 0x08,
-	ATA_LOG_DEVSLP_MDAT	  = 0x30,
+	ATA_LOG_DEVSLP_OFFSET	  = 0x30,
+	ATA_LOG_DEVSLP_SIZE	  = 0x08,
+	ATA_LOG_DEVSLP_MDAT	  = 0x00,
 	ATA_LOG_DEVSLP_MDAT_MASK  = 0x1F,
-	ATA_LOG_DEVSLP_DETO	  = 0x31,
-	ATA_LOG_DEVSLP_VALID	  = 0x37,
+	ATA_LOG_DEVSLP_DETO	  = 0x01,
+	ATA_LOG_DEVSLP_VALID	  = 0x07,
 	ATA_LOG_DEVSLP_VALID_MASK = 0x80,
 
 	/* READ/WRITE LONG (obsolete) */
diff --git a/include/linux/libata.h b/include/linux/libata.h
index e931c9a..1e36c63 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -652,8 +652,8 @@ struct ata_device {
 		u32		gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */
 	};
 
-	/* Identify Device Data Log (30h), SATA Settings (page 08h) */
-	u8			sata_settings[ATA_SECT_SIZE];
+	/* DEVSLP Timing Variables from Identify Device Data Log */
+	u8			devslp_timing[ATA_LOG_DEVSLP_SIZE];
 
 	/* error history */
 	int			spdn_cnt;
diff --git a/include/linux/module.h b/include/linux/module.h
index 7760c6d..1375ee3 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -199,11 +199,11 @@ struct module_use {
 	struct module *source, *target;
 };
 
-enum module_state
-{
-	MODULE_STATE_LIVE,
-	MODULE_STATE_COMING,
-	MODULE_STATE_GOING,
+enum module_state {
+	MODULE_STATE_LIVE,	/* Normal state. */
+	MODULE_STATE_COMING,	/* Full formed, running module_init. */
+	MODULE_STATE_GOING,	/* Going away. */
+	MODULE_STATE_UNFORMED,	/* Still setting it up. */
 };
 
 /**
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 0dd42a0..3e63925 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2654,7 +2654,16 @@ static inline void thread_group_cputime_init(struct signal_struct *sig)
 extern void recalc_sigpending_and_wake(struct task_struct *t);
 extern void recalc_sigpending(void);
 
-extern void signal_wake_up(struct task_struct *t, int resume_stopped);
+extern void signal_wake_up_state(struct task_struct *t, unsigned int state);
+
+static inline void signal_wake_up(struct task_struct *t, bool resume)
+{
+	signal_wake_up_state(t, resume ? TASK_WAKEKILL : 0);
+}
+static inline void ptrace_signal_wake_up(struct task_struct *t, bool resume)
+{
+	signal_wake_up_state(t, resume ? __TASK_TRACED : 0);
+}
 
 /*
  * Wrappers for p->thread_info->cpu access. No-op on UP.
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 5e4ded5..f9acf71 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -36,6 +36,10 @@ __setup("noinitrd", no_initrd);
 static int init_linuxrc(struct subprocess_info *info, struct cred *new)
 {
 	sys_unshare(CLONE_FS | CLONE_FILES);
+	/* stdin/stdout/stderr for /linuxrc */
+	sys_open("/dev/console", O_RDWR, 0);
+	sys_dup(0);
+	sys_dup(0);
 	/* move initrd over / and chdir/chroot in initrd root */
 	sys_chdir("/root");
 	sys_mount(".", "/", NULL, MS_MOVE, NULL);
diff --git a/init/main.c b/init/main.c
index e33e09d..cd147a9 100644
--- a/init/main.c
+++ b/init/main.c
@@ -800,7 +800,7 @@ static int run_init_process(const char *init_filename)
 	return kernel_execve(init_filename, argv_init, envp_init);
 }
 
-static void __init kernel_init_freeable(void);
+static noinline void __init kernel_init_freeable(void);
 
 static int __ref kernel_init(void *unused)
 {
@@ -844,7 +844,7 @@ static int __ref kernel_init(void *unused)
 	      "See Linux Documentation/init.txt for guidance.");
 }
 
-static void __init kernel_init_freeable(void)
+static noinline void __init kernel_init_freeable(void)
 {
 	/*
 	 * Wait until kthreadd is all set-up.
diff --git a/kernel/async.c b/kernel/async.c
index 9d31183..8f9f5cf 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -86,18 +86,27 @@ static atomic_t entry_count;
  */
 static async_cookie_t  __lowest_in_progress(struct async_domain *running)
 {
+	async_cookie_t first_running = next_cookie;	/* infinity value */
+	async_cookie_t first_pending = next_cookie;	/* ditto */
 	struct async_entry *entry;
 
+	/*
+	 * Both running and pending lists are sorted but not disjoint.
+	 * Take the first cookies from both and return the min.
+	 */
 	if (!list_empty(&running->domain)) {
 		entry = list_first_entry(&running->domain, typeof(*entry), list);
-		return entry->cookie;
+		first_running = entry->cookie;
 	}
 
-	list_for_each_entry(entry, &async_pending, list)
-		if (entry->running == running)
-			return entry->cookie;
+	list_for_each_entry(entry, &async_pending, list) {
+		if (entry->running == running) {
+			first_pending = entry->cookie;
+			break;
+		}
+	}
 
-	return next_cookie;	/* "infinity" value */
+	return min(first_running, first_pending);
 }
 
 static async_cookie_t  lowest_in_progress(struct async_domain *running)
@@ -118,13 +127,17 @@ static void async_run_entry_fn(struct work_struct *work)
 {
 	struct async_entry *entry =
 		container_of(work, struct async_entry, work);
+	struct async_entry *pos;
 	unsigned long flags;
 	ktime_t uninitialized_var(calltime), delta, rettime;
 	struct async_domain *running = entry->running;
 
-	/* 1) move self to the running queue */
+	/* 1) move self to the running queue, make sure it stays sorted */
 	spin_lock_irqsave(&async_lock, flags);
-	list_move_tail(&entry->list, &running->domain);
+	list_for_each_entry_reverse(pos, &running->domain, list)
+		if (entry->cookie < pos->cookie)
+			break;
+	list_move_tail(&entry->list, &pos->list);
 	spin_unlock_irqrestore(&async_lock, flags);
 
 	/* 2) run (and print duration) */
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index 4d5f8d5..8875254 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -1970,6 +1970,8 @@ static int kdb_lsmod(int argc, const char **argv)
 
 	kdb_printf("Module                  Size  modstruct     Used by\n");
 	list_for_each_entry(mod, kdb_modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 
 		kdb_printf("%-20s%8u  0x%p ", mod->name,
 			   mod->core_size, (void *)mod);
diff --git a/kernel/module.c b/kernel/module.c
index 6e48c3a..3e544f4 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -185,6 +185,7 @@ struct load_info {
    ongoing or failed initialization etc. */
 static inline int strong_try_module_get(struct module *mod)
 {
+	BUG_ON(mod && mod->state == MODULE_STATE_UNFORMED);
 	if (mod && mod->state == MODULE_STATE_COMING)
 		return -EBUSY;
 	if (try_module_get(mod))
@@ -340,6 +341,9 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
 #endif
 		};
 
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
+
 		if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
 			return true;
 	}
@@ -450,16 +454,24 @@ const struct kernel_symbol *find_symbol(const char *name,
 EXPORT_SYMBOL_GPL(find_symbol);
 
 /* Search for module by name: must hold module_mutex. */
-struct module *find_module(const char *name)
+static struct module *find_module_all(const char *name,
+				      bool even_unformed)
 {
 	struct module *mod;
 
 	list_for_each_entry(mod, &modules, list) {
+		if (!even_unformed && mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (strcmp(mod->name, name) == 0)
 			return mod;
 	}
 	return NULL;
 }
+
+struct module *find_module(const char *name)
+{
+	return find_module_all(name, false);
+}
 EXPORT_SYMBOL_GPL(find_module);
 
 #ifdef CONFIG_SMP
@@ -525,6 +537,8 @@ bool is_module_percpu_address(unsigned long addr)
 	preempt_disable();
 
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (!mod->percpu_size)
 			continue;
 		for_each_possible_cpu(cpu) {
@@ -1048,6 +1062,8 @@ static ssize_t show_initstate(struct module_attribute *mattr,
 	case MODULE_STATE_GOING:
 		state = "going";
 		break;
+	default:
+		BUG();
 	}
 	return sprintf(buffer, "%s\n", state);
 }
@@ -1786,6 +1802,8 @@ void set_all_modules_text_rw(void)
 
 	mutex_lock(&module_mutex);
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if ((mod->module_core) && (mod->core_text_size)) {
 			set_page_attributes(mod->module_core,
 						mod->module_core + mod->core_text_size,
@@ -1807,6 +1825,8 @@ void set_all_modules_text_ro(void)
 
 	mutex_lock(&module_mutex);
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if ((mod->module_core) && (mod->core_text_size)) {
 			set_page_attributes(mod->module_core,
 						mod->module_core + mod->core_text_size,
@@ -2938,8 +2958,9 @@ static bool finished_loading(const char *name)
 	bool ret;
 
 	mutex_lock(&module_mutex);
-	mod = find_module(name);
-	ret = !mod || mod->state != MODULE_STATE_COMING;
+	mod = find_module_all(name, true);
+	ret = !mod || mod->state == MODULE_STATE_LIVE
+		|| mod->state == MODULE_STATE_GOING;
 	mutex_unlock(&module_mutex);
 
 	return ret;
@@ -2970,6 +2991,32 @@ static struct module *load_module(void __user *umod,
 		goto free_copy;
 	}
 
+	/*
+	 * We try to place it in the list now to make sure it's unique
+	 * before we dedicate too many resources.  In particular,
+	 * temporary percpu memory exhaustion.
+	 */
+	mod->state = MODULE_STATE_UNFORMED;
+again:
+	mutex_lock(&module_mutex);
+	if ((old = find_module_all(mod->name, true)) != NULL) {
+		if (old->state == MODULE_STATE_COMING
+		    || old->state == MODULE_STATE_UNFORMED) {
+			/* Wait in case it fails to load. */
+			mutex_unlock(&module_mutex);
+			err = wait_event_interruptible(module_wq,
+					       finished_loading(mod->name));
+			if (err)
+				goto free_module;
+			goto again;
+		}
+		err = -EEXIST;
+		mutex_unlock(&module_mutex);
+		goto free_module;
+	}
+	list_add_rcu(&mod->list, &modules);
+	mutex_unlock(&module_mutex);
+
 #ifdef CONFIG_MODULE_SIG
 	mod->sig_ok = info.sig_ok;
 	if (!mod->sig_ok)
@@ -2979,7 +3026,7 @@ static struct module *load_module(void __user *umod,
 	/* Now module is in final location, initialize linked lists, etc. */
 	err = module_unload_init(mod);
 	if (err)
-		goto free_module;
+		goto unlink_mod;
 
 	/* Now we've got everything in the final locations, we can
 	 * find optional sections. */
@@ -3014,54 +3061,33 @@ static struct module *load_module(void __user *umod,
 		goto free_arch_cleanup;
 	}
 
-	/* Mark state as coming so strong_try_module_get() ignores us. */
-	mod->state = MODULE_STATE_COMING;
-
-	/* Now sew it into the lists so we can get lockdep and oops
-	 * info during argument parsing.  No one should access us, since
-	 * strong_try_module_get() will fail.
-	 * lockdep/oops can run asynchronous, so use the RCU list insertion
-	 * function to insert in a way safe to concurrent readers.
-	 * The mutex protects against concurrent writers.
-	 */
-again:
-	mutex_lock(&module_mutex);
-	if ((old = find_module(mod->name)) != NULL) {
-		if (old->state == MODULE_STATE_COMING) {
-			/* Wait in case it fails to load. */
-			mutex_unlock(&module_mutex);
-			err = wait_event_interruptible(module_wq,
-					       finished_loading(mod->name));
-			if (err)
-				goto free_arch_cleanup;
-			goto again;
-		}
-		err = -EEXIST;
-		goto unlock;
-	}
-
-	/* This has to be done once we're sure module name is unique. */
 	dynamic_debug_setup(info.debug, info.num_debug);
 
-	/* Find duplicate symbols */
+	mutex_lock(&module_mutex);
+	/* Find duplicate symbols (must be called under lock). */
 	err = verify_export_symbols(mod);
 	if (err < 0)
-		goto ddebug;
+		goto ddebug_cleanup;
 
+	/* This relies on module_mutex for list integrity. */
 	module_bug_finalize(info.hdr, info.sechdrs, mod);
-	list_add_rcu(&mod->list, &modules);
+
+	/* Mark state as coming so strong_try_module_get() ignores us,
+	 * but kallsyms etc. can see us. */
+	mod->state = MODULE_STATE_COMING;
+
 	mutex_unlock(&module_mutex);
 
 	/* Module is ready to execute: parsing args may do that. */
 	err = parse_args(mod->name, mod->args, mod->kp, mod->num_kp,
 			 -32768, 32767, &ddebug_dyndbg_module_param_cb);
 	if (err < 0)
-		goto unlink;
+		goto bug_cleanup;
 
 	/* Link in to syfs. */
 	err = mod_sysfs_setup(mod, &info, mod->kp, mod->num_kp);
 	if (err < 0)
-		goto unlink;
+		goto bug_cleanup;
 
 	/* Get rid of temporary copy. */
 	free_copy(&info);
@@ -3070,16 +3096,13 @@ again:
 	trace_module_load(mod);
 	return mod;
 
- unlink:
+ bug_cleanup:
+	/* module_bug_cleanup needs module_mutex protection */
 	mutex_lock(&module_mutex);
-	/* Unlink carefully: kallsyms could be walking list. */
-	list_del_rcu(&mod->list);
 	module_bug_cleanup(mod);
-	wake_up_all(&module_wq);
- ddebug:
-	dynamic_debug_remove(info.debug);
- unlock:
+ ddebug_cleanup:
 	mutex_unlock(&module_mutex);
+	dynamic_debug_remove(info.debug);
 	synchronize_sched();
 	kfree(mod->args);
  free_arch_cleanup:
@@ -3088,6 +3111,12 @@ again:
 	free_modinfo(mod);
  free_unload:
 	module_unload_free(mod);
+ unlink_mod:
+	mutex_lock(&module_mutex);
+	/* Unlink carefully: kallsyms could be walking list. */
+	list_del_rcu(&mod->list);
+	wake_up_all(&module_wq);
+	mutex_unlock(&module_mutex);
  free_module:
 	module_deallocate(mod, &info);
  free_copy:
@@ -3264,6 +3293,8 @@ const char *module_address_lookup(unsigned long addr,
 
 	preempt_disable();
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (within_module_init(addr, mod) ||
 		    within_module_core(addr, mod)) {
 			if (modname)
@@ -3287,6 +3318,8 @@ int lookup_module_symbol_name(unsigned long addr, char *symname)
 
 	preempt_disable();
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (within_module_init(addr, mod) ||
 		    within_module_core(addr, mod)) {
 			const char *sym;
@@ -3311,6 +3344,8 @@ int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size,
 
 	preempt_disable();
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (within_module_init(addr, mod) ||
 		    within_module_core(addr, mod)) {
 			const char *sym;
@@ -3338,6 +3373,8 @@ int module_get_kallsym(unsigned int symnum, unsigned long *value, char *type,
 
 	preempt_disable();
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (symnum < mod->num_symtab) {
 			*value = mod->symtab[symnum].st_value;
 			*type = mod->symtab[symnum].st_info;
@@ -3380,9 +3417,12 @@ unsigned long module_kallsyms_lookup_name(const char *name)
 			ret = mod_find_symname(mod, colon+1);
 		*colon = ':';
 	} else {
-		list_for_each_entry_rcu(mod, &modules, list)
+		list_for_each_entry_rcu(mod, &modules, list) {
+			if (mod->state == MODULE_STATE_UNFORMED)
+				continue;
 			if ((ret = mod_find_symname(mod, name)) != 0)
 				break;
+		}
 	}
 	preempt_enable();
 	return ret;
@@ -3397,6 +3437,8 @@ int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *,
 	int ret;
 
 	list_for_each_entry(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		for (i = 0; i < mod->num_symtab; i++) {
 			ret = fn(data, mod->strtab + mod->symtab[i].st_name,
 				 mod, mod->symtab[i].st_value);
@@ -3412,6 +3454,7 @@ static char *module_flags(struct module *mod, char *buf)
 {
 	int bx = 0;
 
+	BUG_ON(mod->state == MODULE_STATE_UNFORMED);
 	if (mod->taints ||
 	    mod->state == MODULE_STATE_GOING ||
 	    mod->state == MODULE_STATE_COMING) {
@@ -3453,6 +3496,10 @@ static int m_show(struct seq_file *m, void *p)
 	struct module *mod = list_entry(p, struct module, list);
 	char buf[8];
 
+	/* We always ignore unformed modules. */
+	if (mod->state == MODULE_STATE_UNFORMED)
+		return 0;
+
 	seq_printf(m, "%s %u",
 		   mod->name, mod->init_size + mod->core_size);
 	print_unload_info(m, mod);
@@ -3513,6 +3560,8 @@ const struct exception_table_entry *search_module_extables(unsigned long addr)
 
 	preempt_disable();
 	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (mod->num_exentries == 0)
 			continue;
 
@@ -3561,10 +3610,13 @@ struct module *__module_address(unsigned long addr)
 	if (addr < module_addr_min || addr > module_addr_max)
 		return NULL;
 
-	list_for_each_entry_rcu(mod, &modules, list)
+	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		if (within_module_core(addr, mod)
 		    || within_module_init(addr, mod))
 			return mod;
+	}
 	return NULL;
 }
 EXPORT_SYMBOL_GPL(__module_address);
@@ -3617,8 +3669,11 @@ void print_modules(void)
 	printk(KERN_DEFAULT "Modules linked in:");
 	/* Most callers should already have preempt disabled, but make sure */
 	preempt_disable();
-	list_for_each_entry_rcu(mod, &modules, list)
+	list_for_each_entry_rcu(mod, &modules, list) {
+		if (mod->state == MODULE_STATE_UNFORMED)
+			continue;
 		printk(" %s%s", mod->name, module_flags(mod, buf));
+	}
 	preempt_enable();
 	if (last_unloaded_module[0])
 		printk(" [last unloaded: %s]", last_unloaded_module);
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 1f5e55d..fbea91d 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -117,11 +117,45 @@ void __ptrace_unlink(struct task_struct *child)
 	 * TASK_KILLABLE sleeps.
 	 */
 	if (child->jobctl & JOBCTL_STOP_PENDING || task_is_traced(child))
-		signal_wake_up(child, task_is_traced(child));
+		ptrace_signal_wake_up(child, true);
 
 	spin_unlock(&child->sighand->siglock);
 }
 
+/* Ensure that nothing can wake it up, even SIGKILL */
+static bool ptrace_freeze_traced(struct task_struct *task)
+{
+	bool ret = false;
+
+	/* Lockless, nobody but us can set this flag */
+	if (task->jobctl & JOBCTL_LISTENING)
+		return ret;
+
+	spin_lock_irq(&task->sighand->siglock);
+	if (task_is_traced(task) && !__fatal_signal_pending(task)) {
+		task->state = __TASK_TRACED;
+		ret = true;
+	}
+	spin_unlock_irq(&task->sighand->siglock);
+
+	return ret;
+}
+
+static void ptrace_unfreeze_traced(struct task_struct *task)
+{
+	if (task->state != __TASK_TRACED)
+		return;
+
+	WARN_ON(!task->ptrace || task->parent != current);
+
+	spin_lock_irq(&task->sighand->siglock);
+	if (__fatal_signal_pending(task))
+		wake_up_state(task, __TASK_TRACED);
+	else
+		task->state = TASK_TRACED;
+	spin_unlock_irq(&task->sighand->siglock);
+}
+
 /**
  * ptrace_check_attach - check whether ptracee is ready for ptrace operation
  * @child: ptracee to check for
@@ -151,24 +185,29 @@ int ptrace_check_attach(struct task_struct *child, bool ignore_state)
 	 * be changed by us so it's not changing right after this.
 	 */
 	read_lock(&tasklist_lock);
-	if ((child->ptrace & PT_PTRACED) && child->parent == current) {
+	if (child->ptrace && child->parent == current) {
+		WARN_ON(child->state == __TASK_TRACED);
 		/*
 		 * child->sighand can't be NULL, release_task()
 		 * does ptrace_unlink() before __exit_signal().
 		 */
-		spin_lock_irq(&child->sighand->siglock);
-		WARN_ON_ONCE(task_is_stopped(child));
-		if (ignore_state || (task_is_traced(child) &&
-				     !(child->jobctl & JOBCTL_LISTENING)))
+		if (ignore_state || ptrace_freeze_traced(child))
 			ret = 0;
-		spin_unlock_irq(&child->sighand->siglock);
 	}
 	read_unlock(&tasklist_lock);
 
-	if (!ret && !ignore_state)
-		ret = wait_task_inactive(child, TASK_TRACED) ? 0 : -ESRCH;
+	if (!ret && !ignore_state) {
+		if (!wait_task_inactive(child, __TASK_TRACED)) {
+			/*
+			 * This can only happen if may_ptrace_stop() fails and
+			 * ptrace_stop() changes ->state back to TASK_RUNNING,
+			 * so we should not worry about leaking __TASK_TRACED.
+			 */
+			WARN_ON(child->state == __TASK_TRACED);
+			ret = -ESRCH;
+		}
+	}
 
-	/* All systems go.. */
 	return ret;
 }
 
@@ -311,7 +350,7 @@ static int ptrace_attach(struct task_struct *task, long request,
 	 */
 	if (task_is_stopped(task) &&
 	    task_set_jobctl_pending(task, JOBCTL_TRAP_STOP | JOBCTL_TRAPPING))
-		signal_wake_up(task, 1);
+		signal_wake_up_state(task, __TASK_STOPPED);
 
 	spin_unlock(&task->sighand->siglock);
 
@@ -728,7 +767,7 @@ int ptrace_request(struct task_struct *child, long request,
 		 * tracee into STOP.
 		 */
 		if (likely(task_set_jobctl_pending(child, JOBCTL_TRAP_STOP)))
-			signal_wake_up(child, child->jobctl & JOBCTL_LISTENING);
+			ptrace_signal_wake_up(child, child->jobctl & JOBCTL_LISTENING);
 
 		unlock_task_sighand(child, &flags);
 		ret = 0;
@@ -754,7 +793,7 @@ int ptrace_request(struct task_struct *child, long request,
 			 * start of this trap and now.  Trigger re-trap.
 			 */
 			if (child->jobctl & JOBCTL_TRAP_NOTIFY)
-				signal_wake_up(child, true);
+				ptrace_signal_wake_up(child, true);
 			ret = 0;
 		}
 		unlock_task_sighand(child, &flags);
@@ -891,6 +930,8 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
 		goto out_put_task_struct;
 
 	ret = arch_ptrace(child, request, addr, data);
+	if (ret || request != PTRACE_DETACH)
+		ptrace_unfreeze_traced(child);
 
  out_put_task_struct:
 	put_task_struct(child);
@@ -1030,8 +1071,11 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
 
 	ret = ptrace_check_attach(child, request == PTRACE_KILL ||
 				  request == PTRACE_INTERRUPT);
-	if (!ret)
+	if (!ret) {
 		ret = compat_arch_ptrace(child, request, addr, data);
+		if (ret || request != PTRACE_DETACH)
+			ptrace_unfreeze_traced(child);
+	}
 
  out_put_task_struct:
 	put_task_struct(child);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 2d8927f..c529d00 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1497,7 +1497,8 @@ out:
  */
 int wake_up_process(struct task_struct *p)
 {
-	return try_to_wake_up(p, TASK_ALL, 0);
+	WARN_ON(task_is_stopped_or_traced(p));
+	return try_to_wake_up(p, TASK_NORMAL, 0);
 }
 EXPORT_SYMBOL(wake_up_process);
 
diff --git a/kernel/signal.c b/kernel/signal.c
index e4d4014..57dde52 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -679,23 +679,17 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
  * No need to set need_resched since signal event passing
  * goes through ->blocked
  */
-void signal_wake_up(struct task_struct *t, int resume)
+void signal_wake_up_state(struct task_struct *t, unsigned int state)
 {
-	unsigned int mask;
-
 	set_tsk_thread_flag(t, TIF_SIGPENDING);
-
 	/*
-	 * For SIGKILL, we want to wake it up in the stopped/traced/killable
+	 * TASK_WAKEKILL also means wake it up in the stopped/traced/killable
 	 * case. We don't check t->state here because there is a race with it
 	 * executing another processor and just now entering stopped state.
 	 * By using wake_up_state, we ensure the process will wake up and
 	 * handle its death signal.
 	 */
-	mask = TASK_INTERRUPTIBLE;
-	if (resume)
-		mask |= TASK_WAKEKILL;
-	if (!wake_up_state(t, mask))
+	if (!wake_up_state(t, state | TASK_INTERRUPTIBLE))
 		kick_process(t);
 }
 
@@ -843,7 +837,7 @@ static void ptrace_trap_notify(struct task_struct *t)
 	assert_spin_locked(&t->sighand->siglock);
 
 	task_set_jobctl_pending(t, JOBCTL_TRAP_NOTIFY);
-	signal_wake_up(t, t->jobctl & JOBCTL_LISTENING);
+	ptrace_signal_wake_up(t, t->jobctl & JOBCTL_LISTENING);
 }
 
 /*
@@ -1798,6 +1792,10 @@ static inline int may_ptrace_stop(void)
 	 * If SIGKILL was already sent before the caller unlocked
 	 * ->siglock we must see ->core_state != NULL. Otherwise it
 	 * is safe to enter schedule().
+	 *
+	 * This is almost outdated, a task with the pending SIGKILL can't
+	 * block in TASK_TRACED. But PTRACE_EVENT_EXIT can be reported
+	 * after SIGKILL was already dequeued.
 	 */
 	if (unlikely(current->mm->core_state) &&
 	    unlikely(current->mm == current->parent->mm))
@@ -1923,6 +1921,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
 		if (gstop_done)
 			do_notify_parent_cldstop(current, false, why);
 
+		/* tasklist protects us from ptrace_freeze_traced() */
 		__set_current_state(TASK_RUNNING);
 		if (clear_code)
 			current->exit_code = 0;
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 51b7159..356bc2f 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -3998,7 +3998,7 @@ static int ftrace_module_notify(struct notifier_block *self,
 
 struct notifier_block ftrace_module_nb = {
 	.notifier_call = ftrace_module_notify,
-	.priority = 0,
+	.priority = INT_MAX,	/* Run before anything that can use kprobes */
 };
 
 extern unsigned long __start_mcount_loc[];
diff --git a/lib/bug.c b/lib/bug.c
index a28c141..d0cdf14 100644
--- a/lib/bug.c
+++ b/lib/bug.c
@@ -55,6 +55,7 @@ static inline unsigned long bug_addr(const struct bug_entry *bug)
 }
 
 #ifdef CONFIG_MODULES
+/* Updates are protected by module mutex */
 static LIST_HEAD(module_bug_list);
 
 static const struct bug_entry *module_find_bug(unsigned long bugaddr)
diff --git a/security/integrity/evm/evm_crypto.c b/security/integrity/evm/evm_crypto.c
index dfb2691..7dd538e 100644
--- a/security/integrity/evm/evm_crypto.c
+++ b/security/integrity/evm/evm_crypto.c
@@ -205,9 +205,9 @@ int evm_update_evmxattr(struct dentry *dentry, const char *xattr_name,
 		rc = __vfs_setxattr_noperm(dentry, XATTR_NAME_EVM,
 					   &xattr_data,
 					   sizeof(xattr_data), 0);
-	}
-	else if (rc == -ENODATA)
+	} else if (rc == -ENODATA && inode->i_op->removexattr) {
 		rc = inode->i_op->removexattr(dentry, XATTR_NAME_EVM);
+	}
 	return rc;
 }
 
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 8799cf1..63a6801 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -4580,6 +4580,12 @@ static const struct hda_codec_preset snd_hda_preset_conexant[] = {
 	  .patch = patch_conexant_auto },
 	{ .id = 0x14f15111, .name = "CX20753/4",
 	  .patch = patch_conexant_auto },
+	{ .id = 0x14f15113, .name = "CX20755",
+	  .patch = patch_conexant_auto },
+	{ .id = 0x14f15114, .name = "CX20756",
+	  .patch = patch_conexant_auto },
+	{ .id = 0x14f15115, .name = "CX20757",
+	  .patch = patch_conexant_auto },
 	{} /* terminator */
 };
 
@@ -4603,6 +4609,9 @@ MODULE_ALIAS("snd-hda-codec-id:14f150b9");
 MODULE_ALIAS("snd-hda-codec-id:14f1510f");
 MODULE_ALIAS("snd-hda-codec-id:14f15110");
 MODULE_ALIAS("snd-hda-codec-id:14f15111");
+MODULE_ALIAS("snd-hda-codec-id:14f15113");
+MODULE_ALIAS("snd-hda-codec-id:14f15114");
+MODULE_ALIAS("snd-hda-codec-id:14f15115");
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Conexant HD-audio codec");
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 4bbabdc..bbaf67c 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6211,6 +6211,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC),
 	SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED),
 	SND_PCI_QUIRK(0x103c, 0x1972, "HP Pavilion 17", ALC269_FIXUP_MIC1_MUTE_LED),
+	SND_PCI_QUIRK(0x103c, 0x1977, "HP Pavilion 14", ALC269_FIXUP_MIC1_MUTE_LED),
 	SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC),
 	SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC),
 	SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 0a619af..627849f 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -58,7 +58,7 @@ ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
 				  -e s/arm.*/arm/ -e s/sa110/arm/ \
 				  -e s/s390x/s390/ -e s/parisc64/parisc/ \
 				  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-				  -e s/sh[234].*/sh/ )
+				  -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ )
 NO_PERF_REGS := 1
 
 CC = $(CROSS_COMPILE)gcc

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: Linux 3.7.5
       [not found] ` <pan.2013.01.28.11.42.16.556318@googlemail.com>
@ 2013-01-28 14:39   ` Greg KH
       [not found]     ` <pan.2013.01.28.20.33.44.918987@googlemail.com>
  0 siblings, 1 reply; 19+ messages in thread
From: Greg KH @ 2013-01-28 14:39 UTC (permalink / raw)
  To: Holger Hoffstaette; +Cc: stable, linux-kernel

On Mon, Jan 28, 2013 at 12:42:16PM +0100, Holger Hoffstaette wrote:
> On Sun, 27 Jan 2013 20:56:58 -0800, Greg KH wrote:
> 
> > I'm announcing the release of the 3.7.5 kernel.
> 
> Apologies for being late but I'm afraid I just found at least one
> regression in this release.
> 
> I have an external HDD in an USB3 enclosure for the occasional backup. I
> turn it on, it gets registered as sdX, I mount it/use it/unmount it and
> turn it off, which worked fine with kernels including 3.7.4.
> With 3.7.5 the kernel seems no longer notified of the changed device power
> status; nothing in dmesg and the device stays in the list of SCSI devices
> as e.g. shown by lsscsi. This is repeatable. Turning the device back
> on/using it works fine, it's just that I cannot dynamically remove it any
> longer.
> 
> I cannot run a bisect at the moment, but reading the changelog points
> to a few USB and libata related changes. I hope this helps.

If you could run 'git bisect' to determine which patch causes this
problem, that would be wonderful.

Also, does 3.8-rc5 work for you properly or not on this hardware?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
       [not found]     ` <pan.2013.01.28.20.33.44.918987@googlemail.com>
@ 2013-01-28 20:46       ` Jonathan Nieder
  2013-02-12  0:40         ` Sarah Sharp
  0 siblings, 1 reply; 19+ messages in thread
From: Jonathan Nieder @ 2013-01-28 20:46 UTC (permalink / raw)
  To: Holger Hoffstaette; +Cc: stable, linux-kernel, linux-usb, sarah.a.sharp

Hi Holger,

Holger Hoffstaette wrote:
>> On Mon, Jan 28, 2013 at 12:42:16PM +0100, Holger Hoffstaette wrote:

>>> Apologies for being late but I'm afraid I just found at least one
>>> regression in this release.
>>>
>>> I have an external HDD in an USB3 enclosure for the occasional backup. I
>>> turn it on, it gets registered as sdX, I mount it/use it/unmount it and
>>> turn it off, which worked fine with kernels including 3.7.4. With 3.7.5
>
> FWIW it didn't really work with 3.7.4 either - just didn't notice before.
>
>>> the kernel seems no longer notified of the changed device power status;
>>> nothing in dmesg and the device stays in the list of SCSI devices as
>>> e.g. shown by lsscsi. This is repeatable. Turning the device back
>>> on/using it works fine, it's just that I cannot dynamically remove it
>>> any longer.
[...]
> No, current 3.8-rc5 did not work either. I first found 3.7.2 OK and 3.7.3
> bad. Bisecting found:
>
> --snip--
> f7965c0846d74b270e246c1470ca955d5078eb07 is the first bad commit
> commit f7965c0846d74b270e246c1470ca955d5078eb07
> Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
> Date:   Wed Nov 14 17:58:04 2012 -0800
>
>     USB: Handle warm reset failure on empty port.
>
>     commit 65bdac5effd15d6af619b3b7218627ef4d84ed6a upstream.
[...]
> Reverting this from 3.7.3 all the way to 3.8-rc5 makes USB 3.0
> disconnection/power-off device removal work again. Verified both on the
> bisection box and by now also the original machine.

Thanks for tracking this down.  Forwarding to relevant people.

Hope that helps,
Jonathan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-01-28 20:46       ` [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5) Jonathan Nieder
@ 2013-02-12  0:40         ` Sarah Sharp
  2013-02-12  0:54           ` Jonathan Nieder
  2013-02-12 10:35           ` Holger Hoffstätte
  0 siblings, 2 replies; 19+ messages in thread
From: Sarah Sharp @ 2013-02-12  0:40 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: Holger Hoffstaette, stable, linux-kernel, linux-usb

Hi Holger,

Can you turn on CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING,
recompile the 3.7.5 kernel, and send me dmesg starting from the point
you unmount the device and then power it off?

I'd like to keep that patch in stable, but I need to understand what
exactly is failing with it.

Sarah Sharp

On Mon, Jan 28, 2013 at 12:46:39PM -0800, Jonathan Nieder wrote:
> Hi Holger,
> 
> Holger Hoffstaette wrote:
> >> On Mon, Jan 28, 2013 at 12:42:16PM +0100, Holger Hoffstaette wrote:
> 
> >>> Apologies for being late but I'm afraid I just found at least one
> >>> regression in this release.
> >>>
> >>> I have an external HDD in an USB3 enclosure for the occasional backup. I
> >>> turn it on, it gets registered as sdX, I mount it/use it/unmount it and
> >>> turn it off, which worked fine with kernels including 3.7.4. With 3.7.5
> >
> > FWIW it didn't really work with 3.7.4 either - just didn't notice before.
> >
> >>> the kernel seems no longer notified of the changed device power status;
> >>> nothing in dmesg and the device stays in the list of SCSI devices as
> >>> e.g. shown by lsscsi. This is repeatable. Turning the device back
> >>> on/using it works fine, it's just that I cannot dynamically remove it
> >>> any longer.
> [...]
> > No, current 3.8-rc5 did not work either. I first found 3.7.2 OK and 3.7.3
> > bad. Bisecting found:
> >
> > --snip--
> > f7965c0846d74b270e246c1470ca955d5078eb07 is the first bad commit
> > commit f7965c0846d74b270e246c1470ca955d5078eb07
> > Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
> > Date:   Wed Nov 14 17:58:04 2012 -0800
> >
> >     USB: Handle warm reset failure on empty port.
> >
> >     commit 65bdac5effd15d6af619b3b7218627ef4d84ed6a upstream.
> [...]
> > Reverting this from 3.7.3 all the way to 3.8-rc5 makes USB 3.0
> > disconnection/power-off device removal work again. Verified both on the
> > bisection box and by now also the original machine.
> 
> Thanks for tracking this down.  Forwarding to relevant people.
> 
> Hope that helps,
> Jonathan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-12  0:40         ` Sarah Sharp
@ 2013-02-12  0:54           ` Jonathan Nieder
  2013-02-12  8:36             ` Holger Hoffstätte
  2013-02-12 10:35           ` Holger Hoffstätte
  1 sibling, 1 reply; 19+ messages in thread
From: Jonathan Nieder @ 2013-02-12  0:54 UTC (permalink / raw)
  To: Sarah Sharp; +Cc: Holger Hoffstaette, stable, linux-kernel, linux-usb

Sarah Sharp wrote:

> Can you turn on CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING,
> recompile the 3.7.5 kernel, and send me dmesg starting from the point
> you unmount the device and then power it off?
>
> I'd like to keep that patch in stable, but I need to understand what
> exactly is failing with it.

Note that Holger ran into the same problem using a mainline (3.8-rc5)
kernel.

Thanks,
Jonathan

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-12  0:54           ` Jonathan Nieder
@ 2013-02-12  8:36             ` Holger Hoffstätte
  0 siblings, 0 replies; 19+ messages in thread
From: Holger Hoffstätte @ 2013-02-12  8:36 UTC (permalink / raw)
  To: Jonathan Nieder; +Cc: Sarah Sharp, stable, linux-kernel, linux-usb

On 12.02.2013 01:54, Jonathan Nieder wrote:
> Sarah Sharp wrote:
> 
>> Can you turn on CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING,
>> recompile the 3.7.5 kernel, and send me dmesg starting from the point
>> you unmount the device and then power it off?
>>
>> I'd like to keep that patch in stable, but I need to understand what
>> exactly is failing with it.
> 
> Note that Holger ran into the same problem using a mainline (3.8-rc5)
> kernel.

Yup, which is why I'll try 3.8-rc7 first. Glad this has some attention. :)

-h


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-12  0:40         ` Sarah Sharp
  2013-02-12  0:54           ` Jonathan Nieder
@ 2013-02-12 10:35           ` Holger Hoffstätte
  2013-02-12 20:42             ` Sarah Sharp
  1 sibling, 1 reply; 19+ messages in thread
From: Holger Hoffstätte @ 2013-02-12 10:35 UTC (permalink / raw)
  To: Sarah Sharp; +Cc: Jonathan Nieder, stable, linux-kernel, linux-usb

On 02/12/13 01:40, Sarah Sharp wrote:
> Can you turn on CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING,
> recompile the 3.7.5 kernel, and send me dmesg starting from the point
> you unmount the device and then power it off?

I don't even need to mount/unmount; just plugging in/unplugging
reproduces the problem. Note again that this is independent of both the
used USB 3.0 card (might be the same chipset though?) and the attached
device/enclosure.

So time to make a freshly built 3.8-rc7 go Ding Dong! :)

Here I attach the enclosure (TrekStor pocket click 2.5"):

[  110.651262] xhci_hcd 0000:03:00.0: Port Status Change Event for port 1
[  110.651267] xhci_hcd 0000:03:00.0: resume root hub
[  110.651274] xhci_hcd 0000:03:00.0: handle_port_status: starting port
polling.
[  110.651293] usb usb3: usb wakeup-resume
[  110.651297] usb usb3: usb auto-resume
[  110.651312] hub 3-0:1.0: hub_resume
[  110.651318] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x21203
[  110.651321] xhci_hcd 0000:03:00.0: Get port status returned 0x10203
[  110.651325] hub 3-0:1.0: port 1: status 0203 change 0001
[  110.651331] xhci_hcd 0000:03:00.0: clear port connect change, actual
port 0 status  = 0x1203
[  110.651336] xhci_hcd 0000:03:00.0: get port status, actual port 1
status  = 0x2a0
[  110.651338] xhci_hcd 0000:03:00.0: Get port status returned 0x2a0
[  110.754185] hub 3-0:1.0: state 7 ports 2 chg 0002 evt 0000
[  110.754194] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x1203
[  110.754196] xhci_hcd 0000:03:00.0: Get port status returned 0x203
[  110.754200] hub 3-0:1.0: port 1, status 0203, change 0000, 5.0 Gb/s
[  110.754204] xhci_hcd 0000:03:00.0: // Ding dong!
[  110.754304] xhci_hcd 0000:03:00.0: Slot 1 output ctx = 0x32b91000 (dma)
[  110.754308] xhci_hcd 0000:03:00.0: Slot 1 input ctx = 0x33397000 (dma)
[  110.754314] xhci_hcd 0000:03:00.0: Set slot id 1 dcbaa entry f2694008
to 0x32b91000
[  110.754327] xhci_hcd 0000:03:00.0: set port reset, actual port 0
status  = 0x1311
[  110.754335] xhci_hcd 0000:03:00.0: Port Status Change Event for port 1
[  110.754340] xhci_hcd 0000:03:00.0: handle_port_status: starting port
polling.
[  110.807366] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x201203
[  110.807369] xhci_hcd 0000:03:00.0: Get port status returned 0x100203
[  110.860548] xhci_hcd 0000:03:00.0: clear port reset change, actual
port 0 status  = 0x1203
[  110.860557] xhci_hcd 0000:03:00.0: clear port warm(BH) reset change,
actual port 0 status  = 0x1203
[  110.860563] xhci_hcd 0000:03:00.0: clear port link state change,
actual port 0 status  = 0x1203
[  110.860567] xhci_hcd 0000:03:00.0: Set root hub portnum to 1
[  110.860569] xhci_hcd 0000:03:00.0: Set fake root hub portnum to 1
[  110.860571] xhci_hcd 0000:03:00.0: udev->tt =   (null)
[  110.860573] xhci_hcd 0000:03:00.0: udev->ttport = 0x0
[  110.860575] xhci_hcd 0000:03:00.0: Slot ID 1 Input Context:
[  110.860578] xhci_hcd 0000:03:00.0: @f3397000 (virt) @33397000 (dma)
0x000000 - drop flags
[  110.860580] xhci_hcd 0000:03:00.0: @f3397004 (virt) @33397004 (dma)
0x000003 - add flags
[  110.860583] xhci_hcd 0000:03:00.0: @f3397008 (virt) @33397008 (dma)
0x000000 - rsvd2[0]
[  110.860585] xhci_hcd 0000:03:00.0: @f339700c (virt) @3339700c (dma)
0x000000 - rsvd2[1]
[  110.860587] xhci_hcd 0000:03:00.0: @f3397010 (virt) @33397010 (dma)
0x000000 - rsvd2[2]
[  110.860589] xhci_hcd 0000:03:00.0: @f3397014 (virt) @33397014 (dma)
0x000000 - rsvd2[3]
[  110.860592] xhci_hcd 0000:03:00.0: @f3397018 (virt) @33397018 (dma)
0x000000 - rsvd2[4]
[  110.860594] xhci_hcd 0000:03:00.0: @f339701c (virt) @3339701c (dma)
0x000000 - rsvd2[5]
[  110.860595] xhci_hcd 0000:03:00.0: Slot Context:
[  110.860598] xhci_hcd 0000:03:00.0: @f3397020 (virt) @33397020 (dma)
0x8400000 - dev_info
[  110.860600] xhci_hcd 0000:03:00.0: @f3397024 (virt) @33397024 (dma)
0x010000 - dev_info2
[  110.860602] xhci_hcd 0000:03:00.0: @f3397028 (virt) @33397028 (dma)
0x000000 - tt_info
[  110.860604] xhci_hcd 0000:03:00.0: @f339702c (virt) @3339702c (dma)
0x000000 - dev_state
[  110.860606] xhci_hcd 0000:03:00.0: @f3397030 (virt) @33397030 (dma)
0x000000 - rsvd[0]
[  110.860609] xhci_hcd 0000:03:00.0: @f3397034 (virt) @33397034 (dma)
0x000000 - rsvd[1]
[  110.860611] xhci_hcd 0000:03:00.0: @f3397038 (virt) @33397038 (dma)
0x000000 - rsvd[2]
[  110.860613] xhci_hcd 0000:03:00.0: @f339703c (virt) @3339703c (dma)
0x000000 - rsvd[3]
[  110.860615] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
[  110.860617] xhci_hcd 0000:03:00.0: @f3397040 (virt) @33397040 (dma)
0x000000 - ep_info
[  110.860619] xhci_hcd 0000:03:00.0: @f3397044 (virt) @33397044 (dma)
0x2000026 - ep_info2
[  110.860621] xhci_hcd 0000:03:00.0: @f3397048 (virt) @33397048 (dma)
0x32695801 - deq
[  110.860624] xhci_hcd 0000:03:00.0: @f3397050 (virt) @33397050 (dma)
0x000000 - tx_info
[  110.860626] xhci_hcd 0000:03:00.0: @f3397054 (virt) @33397054 (dma)
0x000000 - rsvd[0]
[  110.860628] xhci_hcd 0000:03:00.0: @f3397058 (virt) @33397058 (dma)
0x000000 - rsvd[1]
[  110.860630] xhci_hcd 0000:03:00.0: @f339705c (virt) @3339705c (dma)
0x000000 - rsvd[2]
[  110.860632] xhci_hcd 0000:03:00.0: Endpoint 01 Context:
[  110.860634] xhci_hcd 0000:03:00.0: @f3397060 (virt) @33397060 (dma)
0x000000 - ep_info
[  110.860636] xhci_hcd 0000:03:00.0: @f3397064 (virt) @33397064 (dma)
0x000000 - ep_info2
[  110.860638] xhci_hcd 0000:03:00.0: @f3397068 (virt) @33397068 (dma)
0x000000 - deq
[  110.860640] xhci_hcd 0000:03:00.0: @f3397070 (virt) @33397070 (dma)
0x000000 - tx_info
[  110.860643] xhci_hcd 0000:03:00.0: @f3397074 (virt) @33397074 (dma)
0x000000 - rsvd[0]
[  110.860645] xhci_hcd 0000:03:00.0: @f3397078 (virt) @33397078 (dma)
0x000000 - rsvd[1]
[  110.860647] xhci_hcd 0000:03:00.0: @f339707c (virt) @3339707c (dma)
0x000000 - rsvd[2]
[  110.860649] xhci_hcd 0000:03:00.0: Endpoint 02 Context:
[  110.860651] xhci_hcd 0000:03:00.0: @f3397080 (virt) @33397080 (dma)
0x000000 - ep_info
[  110.860653] xhci_hcd 0000:03:00.0: @f3397084 (virt) @33397084 (dma)
0x000000 - ep_info2
[  110.860655] xhci_hcd 0000:03:00.0: @f3397088 (virt) @33397088 (dma)
0x000000 - deq
[  110.860657] xhci_hcd 0000:03:00.0: @f3397090 (virt) @33397090 (dma)
0x000000 - tx_info
[  110.860659] xhci_hcd 0000:03:00.0: @f3397094 (virt) @33397094 (dma)
0x000000 - rsvd[0]
[  110.860661] xhci_hcd 0000:03:00.0: @f3397098 (virt) @33397098 (dma)
0x000000 - rsvd[1]
[  110.860664] xhci_hcd 0000:03:00.0: @f339709c (virt) @3339709c (dma)
0x000000 - rsvd[2]
[  110.860666] xhci_hcd 0000:03:00.0: // Ding dong!
[  110.860880] xhci_hcd 0000:03:00.0: Successful Address Device command
[  110.860887] xhci_hcd 0000:03:00.0: Op regs DCBAA ptr = 0x00000032694000
[  110.860889] xhci_hcd 0000:03:00.0: Slot ID 1 dcbaa entry @f2694008 =
0x00000032b91000
[  110.860892] xhci_hcd 0000:03:00.0: Output Context DMA address =
0x32b91000
[  110.860893] xhci_hcd 0000:03:00.0: Slot ID 1 Input Context:
[  110.860896] xhci_hcd 0000:03:00.0: @f3397000 (virt) @33397000 (dma)
0x000000 - drop flags
[  110.860898] xhci_hcd 0000:03:00.0: @f3397004 (virt) @33397004 (dma)
0x000003 - add flags
[  110.860900] xhci_hcd 0000:03:00.0: @f3397008 (virt) @33397008 (dma)
0x000000 - rsvd2[0]
[  110.860903] xhci_hcd 0000:03:00.0: @f339700c (virt) @3339700c (dma)
0x000000 - rsvd2[1]
[  110.860905] xhci_hcd 0000:03:00.0: @f3397010 (virt) @33397010 (dma)
0x000000 - rsvd2[2]
[  110.860907] xhci_hcd 0000:03:00.0: @f3397014 (virt) @33397014 (dma)
0x000000 - rsvd2[3]
[  110.860909] xhci_hcd 0000:03:00.0: @f3397018 (virt) @33397018 (dma)
0x000000 - rsvd2[4]
[  110.860912] xhci_hcd 0000:03:00.0: @f339701c (virt) @3339701c (dma)
0x000000 - rsvd2[5]
[  110.860913] xhci_hcd 0000:03:00.0: Slot Context:
[  110.860916] xhci_hcd 0000:03:00.0: @f3397020 (virt) @33397020 (dma)
0x8400000 - dev_info
[  110.860918] xhci_hcd 0000:03:00.0: @f3397024 (virt) @33397024 (dma)
0x010000 - dev_info2
[  110.860920] xhci_hcd 0000:03:00.0: @f3397028 (virt) @33397028 (dma)
0x000000 - tt_info
[  110.860922] xhci_hcd 0000:03:00.0: @f339702c (virt) @3339702c (dma)
0x000000 - dev_state
[  110.860924] xhci_hcd 0000:03:00.0: @f3397030 (virt) @33397030 (dma)
0x000000 - rsvd[0]
[  110.860927] xhci_hcd 0000:03:00.0: @f3397034 (virt) @33397034 (dma)
0x000000 - rsvd[1]
[  110.860929] xhci_hcd 0000:03:00.0: @f3397038 (virt) @33397038 (dma)
0x000000 - rsvd[2]
[  110.860931] xhci_hcd 0000:03:00.0: @f339703c (virt) @3339703c (dma)
0x000000 - rsvd[3]
[  110.860933] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
[  110.860935] xhci_hcd 0000:03:00.0: @f3397040 (virt) @33397040 (dma)
0x000000 - ep_info
[  110.860937] xhci_hcd 0000:03:00.0: @f3397044 (virt) @33397044 (dma)
0x2000026 - ep_info2
[  110.860939] xhci_hcd 0000:03:00.0: @f3397048 (virt) @33397048 (dma)
0x32695801 - deq
[  110.860942] xhci_hcd 0000:03:00.0: @f3397050 (virt) @33397050 (dma)
0x000000 - tx_info
[  110.860944] xhci_hcd 0000:03:00.0: @f3397054 (virt) @33397054 (dma)
0x000000 - rsvd[0]
[  110.860946] xhci_hcd 0000:03:00.0: @f3397058 (virt) @33397058 (dma)
0x000000 - rsvd[1]
[  110.860948] xhci_hcd 0000:03:00.0: @f339705c (virt) @3339705c (dma)
0x000000 - rsvd[2]
[  110.860950] xhci_hcd 0000:03:00.0: Endpoint 01 Context:
[  110.860952] xhci_hcd 0000:03:00.0: @f3397060 (virt) @33397060 (dma)
0x000000 - ep_info
[  110.860954] xhci_hcd 0000:03:00.0: @f3397064 (virt) @33397064 (dma)
0x000000 - ep_info2
[  110.860956] xhci_hcd 0000:03:00.0: @f3397068 (virt) @33397068 (dma)
0x000000 - deq
[  110.860958] xhci_hcd 0000:03:00.0: @f3397070 (virt) @33397070 (dma)
0x000000 - tx_info
[  110.860961] xhci_hcd 0000:03:00.0: @f3397074 (virt) @33397074 (dma)
0x000000 - rsvd[0]
[  110.860963] xhci_hcd 0000:03:00.0: @f3397078 (virt) @33397078 (dma)
0x000000 - rsvd[1]
[  110.860965] xhci_hcd 0000:03:00.0: @f339707c (virt) @3339707c (dma)
0x000000 - rsvd[2]
[  110.860967] xhci_hcd 0000:03:00.0: Endpoint 02 Context:
[  110.860969] xhci_hcd 0000:03:00.0: @f3397080 (virt) @33397080 (dma)
0x000000 - ep_info
[  110.860971] xhci_hcd 0000:03:00.0: @f3397084 (virt) @33397084 (dma)
0x000000 - ep_info2
[  110.860973] xhci_hcd 0000:03:00.0: @f3397088 (virt) @33397088 (dma)
0x000000 - deq
[  110.860975] xhci_hcd 0000:03:00.0: @f3397090 (virt) @33397090 (dma)
0x000000 - tx_info
[  110.860977] xhci_hcd 0000:03:00.0: @f3397094 (virt) @33397094 (dma)
0x000000 - rsvd[0]
[  110.860980] xhci_hcd 0000:03:00.0: @f3397098 (virt) @33397098 (dma)
0x000000 - rsvd[1]
[  110.860982] xhci_hcd 0000:03:00.0: @f339709c (virt) @3339709c (dma)
0x000000 - rsvd[2]
[  110.860984] xhci_hcd 0000:03:00.0: Slot ID 1 Output Context:
[  110.860985] xhci_hcd 0000:03:00.0: Slot Context:
[  110.860987] xhci_hcd 0000:03:00.0: @f2b91000 (virt) @32b91000 (dma)
0x8400000 - dev_info
[  110.860989] xhci_hcd 0000:03:00.0: @f2b91004 (virt) @32b91004 (dma)
0x010000 - dev_info2
[  110.860992] xhci_hcd 0000:03:00.0: @f2b91008 (virt) @32b91008 (dma)
0x000000 - tt_info
[  110.860994] xhci_hcd 0000:03:00.0: @f2b9100c (virt) @32b9100c (dma)
0x10000001 - dev_state
[  110.860996] xhci_hcd 0000:03:00.0: @f2b91010 (virt) @32b91010 (dma)
0x000000 - rsvd[0]
[  110.860998] xhci_hcd 0000:03:00.0: @f2b91014 (virt) @32b91014 (dma)
0x000000 - rsvd[1]
[  110.861001] xhci_hcd 0000:03:00.0: @f2b91018 (virt) @32b91018 (dma)
0x000000 - rsvd[2]
[  110.861003] xhci_hcd 0000:03:00.0: @f2b9101c (virt) @32b9101c (dma)
0x000000 - rsvd[3]
[  110.861005] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
[  110.861007] xhci_hcd 0000:03:00.0: @f2b91020 (virt) @32b91020 (dma)
0x000001 - ep_info
[  110.861009] xhci_hcd 0000:03:00.0: @f2b91024 (virt) @32b91024 (dma)
0x2000026 - ep_info2
[  110.861011] xhci_hcd 0000:03:00.0: @f2b91028 (virt) @32b91028 (dma)
0x32695801 - deq
[  110.861013] xhci_hcd 0000:03:00.0: @f2b91030 (virt) @32b91030 (dma)
0x000000 - tx_info
[  110.861015] xhci_hcd 0000:03:00.0: @f2b91034 (virt) @32b91034 (dma)
0x000000 - rsvd[0]
[  110.861017] xhci_hcd 0000:03:00.0: @f2b91038 (virt) @32b91038 (dma)
0x000000 - rsvd[1]
[  110.861019] xhci_hcd 0000:03:00.0: @f2b9103c (virt) @32b9103c (dma)
0x000000 - rsvd[2]
[  110.861021] xhci_hcd 0000:03:00.0: Endpoint 01 Context:
[  110.861023] xhci_hcd 0000:03:00.0: @f2b91040 (virt) @32b91040 (dma)
0x000000 - ep_info
[  110.861025] xhci_hcd 0000:03:00.0: @f2b91044 (virt) @32b91044 (dma)
0x000000 - ep_info2
[  110.861027] xhci_hcd 0000:03:00.0: @f2b91048 (virt) @32b91048 (dma)
0x000000 - deq
[  110.861030] xhci_hcd 0000:03:00.0: @f2b91050 (virt) @32b91050 (dma)
0x000000 - tx_info
[  110.861032] xhci_hcd 0000:03:00.0: @f2b91054 (virt) @32b91054 (dma)
0x000000 - rsvd[0]
[  110.861034] xhci_hcd 0000:03:00.0: @f2b91058 (virt) @32b91058 (dma)
0x000000 - rsvd[1]
[  110.861036] xhci_hcd 0000:03:00.0: @f2b9105c (virt) @32b9105c (dma)
0x000000 - rsvd[2]
[  110.861038] xhci_hcd 0000:03:00.0: Endpoint 02 Context:
[  110.861040] xhci_hcd 0000:03:00.0: @f2b91060 (virt) @32b91060 (dma)
0x000000 - ep_info
[  110.861042] xhci_hcd 0000:03:00.0: @f2b91064 (virt) @32b91064 (dma)
0x000000 - ep_info2
[  110.861044] xhci_hcd 0000:03:00.0: @f2b91068 (virt) @32b91068 (dma)
0x000000 - deq
[  110.861046] xhci_hcd 0000:03:00.0: @f2b91070 (virt) @32b91070 (dma)
0x000000 - tx_info
[  110.861048] xhci_hcd 0000:03:00.0: @f2b91074 (virt) @32b91074 (dma)
0x000000 - rsvd[0]
[  110.861050] xhci_hcd 0000:03:00.0: @f2b91078 (virt) @32b91078 (dma)
0x000000 - rsvd[1]
[  110.861053] xhci_hcd 0000:03:00.0: @f2b9107c (virt) @32b9107c (dma)
0x000000 - rsvd[2]
[  110.861054] xhci_hcd 0000:03:00.0: Internal device address = 2
[  110.861058] usb 3-1: new SuperSpeed USB device number 2 using xhci_hcd
[  110.876390] usb 3-1: Parent hub missing LPM exit latency info.  Power
management will be impacted.
[  110.877638] usb 3-1: skipped 1 descriptor after endpoint
[  110.877641] usb 3-1: skipped 1 descriptor after endpoint
[  110.877991] xhci_hcd 0000:03:00.0: Waiting for status stage event
[  110.878267] usb 3-1: default language 0x0409
[  110.878613] xhci_hcd 0000:03:00.0: Waiting for status stage event
[  110.879176] xhci_hcd 0000:03:00.0: Waiting for status stage event
[  110.879798] xhci_hcd 0000:03:00.0: Waiting for status stage event
[  110.880055] usb 3-1: udev 2, busnum 3, minor = 257
[  110.880058] usb 3-1: New USB device found, idVendor=1e68, idProduct=004c
[  110.880060] usb 3-1: New USB device strings: Mfr=2, Product=3,
SerialNumber=1
[  110.880062] usb 3-1: Product: pocket click 3.0
[  110.880064] usb 3-1: Manufacturer: TrekStor DS
[  110.880066] usb 3-1: SerialNumber: B00000000000000E2D
[  110.880189] usb 3-1: usb_probe_device
[  110.880192] usb 3-1: configuration #1 chosen from 1 choice
[  110.880199] xhci_hcd 0000:03:00.0: add ep 0x81, slot id 1, new drop
flags = 0x0, new add flags = 0x8, new slot info = 0x18400000
[  110.880205] xhci_hcd 0000:03:00.0: add ep 0x2, slot id 1, new drop
flags = 0x0, new add flags = 0x18, new slot info = 0x20400000
[  110.880207] xhci_hcd 0000:03:00.0: xhci_check_bandwidth called for
udev f29dbc00
[  110.880209] xhci_hcd 0000:03:00.0: New Input Control Context:
[  110.880212] xhci_hcd 0000:03:00.0: @f3397000 (virt) @33397000 (dma)
0x000000 - drop flags
[  110.880214] xhci_hcd 0000:03:00.0: @f3397004 (virt) @33397004 (dma)
0x000019 - add flags
[  110.880216] xhci_hcd 0000:03:00.0: @f3397008 (virt) @33397008 (dma)
0x000000 - rsvd2[0]
[  110.880219] xhci_hcd 0000:03:00.0: @f339700c (virt) @3339700c (dma)
0x000000 - rsvd2[1]
[  110.880221] xhci_hcd 0000:03:00.0: @f3397010 (virt) @33397010 (dma)
0x000000 - rsvd2[2]
[  110.880223] xhci_hcd 0000:03:00.0: @f3397014 (virt) @33397014 (dma)
0x000000 - rsvd2[3]
[  110.880225] xhci_hcd 0000:03:00.0: @f3397018 (virt) @33397018 (dma)
0x000000 - rsvd2[4]
[  110.880228] xhci_hcd 0000:03:00.0: @f339701c (virt) @3339701c (dma)
0x000000 - rsvd2[5]
[  110.880229] xhci_hcd 0000:03:00.0: Slot Context:
[  110.880232] xhci_hcd 0000:03:00.0: @f3397020 (virt) @33397020 (dma)
0x20400000 - dev_info
[  110.880234] xhci_hcd 0000:03:00.0: @f3397024 (virt) @33397024 (dma)
0x010000 - dev_info2
[  110.880236] xhci_hcd 0000:03:00.0: @f3397028 (virt) @33397028 (dma)
0x000000 - tt_info
[  110.880238] xhci_hcd 0000:03:00.0: @f339702c (virt) @3339702c (dma)
0x000000 - dev_state
[  110.880240] xhci_hcd 0000:03:00.0: @f3397030 (virt) @33397030 (dma)
0x000000 - rsvd[0]
[  110.880242] xhci_hcd 0000:03:00.0: @f3397034 (virt) @33397034 (dma)
0x000000 - rsvd[1]
[  110.880245] xhci_hcd 0000:03:00.0: @f3397038 (virt) @33397038 (dma)
0x000000 - rsvd[2]
[  110.880247] xhci_hcd 0000:03:00.0: @f339703c (virt) @3339703c (dma)
0x000000 - rsvd[3]
[  110.880249] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
[  110.880251] xhci_hcd 0000:03:00.0: @f3397040 (virt) @33397040 (dma)
0x000000 - ep_info
[  110.880253] xhci_hcd 0000:03:00.0: @f3397044 (virt) @33397044 (dma)
0x2000026 - ep_info2
[  110.880255] xhci_hcd 0000:03:00.0: @f3397048 (virt) @33397048 (dma)
0x32695801 - deq
[  110.880257] xhci_hcd 0000:03:00.0: @f3397050 (virt) @33397050 (dma)
0x000000 - tx_info
[  110.880260] xhci_hcd 0000:03:00.0: @f3397054 (virt) @33397054 (dma)
0x000000 - rsvd[0]
[  110.880262] xhci_hcd 0000:03:00.0: @f3397058 (virt) @33397058 (dma)
0x000000 - rsvd[1]
[  110.880264] xhci_hcd 0000:03:00.0: @f339705c (virt) @3339705c (dma)
0x000000 - rsvd[2]
[  110.880266] xhci_hcd 0000:03:00.0: Endpoint 01 Context:
[  110.880268] xhci_hcd 0000:03:00.0: @f3397060 (virt) @33397060 (dma)
0x000000 - ep_info
[  110.880270] xhci_hcd 0000:03:00.0: @f3397064 (virt) @33397064 (dma)
0x000000 - ep_info2
[  110.880272] xhci_hcd 0000:03:00.0: @f3397068 (virt) @33397068 (dma)
0x000000 - deq
[  110.880274] xhci_hcd 0000:03:00.0: @f3397070 (virt) @33397070 (dma)
0x000000 - tx_info
[  110.880276] xhci_hcd 0000:03:00.0: @f3397074 (virt) @33397074 (dma)
0x000000 - rsvd[0]
[  110.880278] xhci_hcd 0000:03:00.0: @f3397078 (virt) @33397078 (dma)
0x000000 - rsvd[1]
[  110.880281] xhci_hcd 0000:03:00.0: @f339707c (virt) @3339707c (dma)
0x000000 - rsvd[2]
[  110.880282] xhci_hcd 0000:03:00.0: Endpoint 02 Context:
[  110.880284] xhci_hcd 0000:03:00.0: @f3397080 (virt) @33397080 (dma)
0x000000 - ep_info
[  110.880287] xhci_hcd 0000:03:00.0: @f3397084 (virt) @33397084 (dma)
0x4000f36 - ep_info2
[  110.880289] xhci_hcd 0000:03:00.0: @f3397088 (virt) @33397088 (dma)
0x32183401 - deq
[  110.880291] xhci_hcd 0000:03:00.0: @f3397090 (virt) @33397090 (dma)
0x000000 - tx_info
[  110.880293] xhci_hcd 0000:03:00.0: @f3397094 (virt) @33397094 (dma)
0x000000 - rsvd[0]
[  110.880295] xhci_hcd 0000:03:00.0: @f3397098 (virt) @33397098 (dma)
0x000000 - rsvd[1]
[  110.880297] xhci_hcd 0000:03:00.0: @f339709c (virt) @3339709c (dma)
0x000000 - rsvd[2]
[  110.880299] xhci_hcd 0000:03:00.0: Endpoint 03 Context:
[  110.880301] xhci_hcd 0000:03:00.0: @f33970a0 (virt) @333970a0 (dma)
0x000000 - ep_info
[  110.880303] xhci_hcd 0000:03:00.0: @f33970a4 (virt) @333970a4 (dma)
0x4000f16 - ep_info2
[  110.880305] xhci_hcd 0000:03:00.0: @f33970a8 (virt) @333970a8 (dma)
0x329f6001 - deq
[  110.880307] xhci_hcd 0000:03:00.0: @f33970b0 (virt) @333970b0 (dma)
0x000000 - tx_info
[  110.880310] xhci_hcd 0000:03:00.0: @f33970b4 (virt) @333970b4 (dma)
0x000000 - rsvd[0]
[  110.880312] xhci_hcd 0000:03:00.0: @f33970b8 (virt) @333970b8 (dma)
0x000000 - rsvd[1]
[  110.880314] xhci_hcd 0000:03:00.0: @f33970bc (virt) @333970bc (dma)
0x000000 - rsvd[2]
[  110.880316] xhci_hcd 0000:03:00.0: // Ding dong!
[  110.880677] xhci_hcd 0000:03:00.0: Completed config ep cmd
[  110.880695] usb 3-1: Successful Endpoint Configure command
[  110.880698] xhci_hcd 0000:03:00.0: Output context after successful
config ep cmd:
[  110.880699] xhci_hcd 0000:03:00.0: Slot Context:
[  110.880702] xhci_hcd 0000:03:00.0: @f2b91000 (virt) @32b91000 (dma)
0x20400000 - dev_info
[  110.880705] xhci_hcd 0000:03:00.0: @f2b91004 (virt) @32b91004 (dma)
0x010000 - dev_info2
[  110.880707] xhci_hcd 0000:03:00.0: @f2b91008 (virt) @32b91008 (dma)
0x000000 - tt_info
[  110.880709] xhci_hcd 0000:03:00.0: @f2b9100c (virt) @32b9100c (dma)
0x18000001 - dev_state
[  110.880712] xhci_hcd 0000:03:00.0: @f2b91010 (virt) @32b91010 (dma)
0x000000 - rsvd[0]
[  110.880714] xhci_hcd 0000:03:00.0: @f2b91014 (virt) @32b91014 (dma)
0x000000 - rsvd[1]
[  110.880716] xhci_hcd 0000:03:00.0: @f2b91018 (virt) @32b91018 (dma)
0x000000 - rsvd[2]
[  110.880719] xhci_hcd 0000:03:00.0: @f2b9101c (virt) @32b9101c (dma)
0x000000 - rsvd[3]
[  110.880721] xhci_hcd 0000:03:00.0: Endpoint 00 Context:
[  110.880723] xhci_hcd 0000:03:00.0: @f2b91020 (virt) @32b91020 (dma)
0x000001 - ep_info
[  110.880725] xhci_hcd 0000:03:00.0: @f2b91024 (virt) @32b91024 (dma)
0x2000026 - ep_info2
[  110.880727] xhci_hcd 0000:03:00.0: @f2b91028 (virt) @32b91028 (dma)
0x32695801 - deq
[  110.880729] xhci_hcd 0000:03:00.0: @f2b91030 (virt) @32b91030 (dma)
0x000000 - tx_info
[  110.880732] xhci_hcd 0000:03:00.0: @f2b91034 (virt) @32b91034 (dma)
0x000000 - rsvd[0]
[  110.880734] xhci_hcd 0000:03:00.0: @f2b91038 (virt) @32b91038 (dma)
0x000000 - rsvd[1]
[  110.880736] xhci_hcd 0000:03:00.0: @f2b9103c (virt) @32b9103c (dma)
0x000000 - rsvd[2]
[  110.880738] xhci_hcd 0000:03:00.0: Endpoint 01 Context:
[  110.880740] xhci_hcd 0000:03:00.0: @f2b91040 (virt) @32b91040 (dma)
0x000000 - ep_info
[  110.880742] xhci_hcd 0000:03:00.0: @f2b91044 (virt) @32b91044 (dma)
0x000000 - ep_info2
[  110.880744] xhci_hcd 0000:03:00.0: @f2b91048 (virt) @32b91048 (dma)
0x000000 - deq
[  110.880746] xhci_hcd 0000:03:00.0: @f2b91050 (virt) @32b91050 (dma)
0x000000 - tx_info
[  110.880748] xhci_hcd 0000:03:00.0: @f2b91054 (virt) @32b91054 (dma)
0x000000 - rsvd[0]
[  110.880751] xhci_hcd 0000:03:00.0: @f2b91058 (virt) @32b91058 (dma)
0x000000 - rsvd[1]
[  110.880753] xhci_hcd 0000:03:00.0: @f2b9105c (virt) @32b9105c (dma)
0x000000 - rsvd[2]
[  110.880755] xhci_hcd 0000:03:00.0: Endpoint 02 Context:
[  110.880757] xhci_hcd 0000:03:00.0: @f2b91060 (virt) @32b91060 (dma)
0x000001 - ep_info
[  110.880759] xhci_hcd 0000:03:00.0: @f2b91064 (virt) @32b91064 (dma)
0x4000f36 - ep_info2
[  110.880761] xhci_hcd 0000:03:00.0: @f2b91068 (virt) @32b91068 (dma)
0x32183401 - deq
[  110.880763] xhci_hcd 0000:03:00.0: @f2b91070 (virt) @32b91070 (dma)
0x000000 - tx_info
[  110.880765] xhci_hcd 0000:03:00.0: @f2b91074 (virt) @32b91074 (dma)
0x000000 - rsvd[0]
[  110.880768] xhci_hcd 0000:03:00.0: @f2b91078 (virt) @32b91078 (dma)
0x000000 - rsvd[1]
[  110.880770] xhci_hcd 0000:03:00.0: @f2b9107c (virt) @32b9107c (dma)
0x000000 - rsvd[2]
[  110.880772] xhci_hcd 0000:03:00.0: Endpoint 03 Context:
[  110.880774] xhci_hcd 0000:03:00.0: @f2b91080 (virt) @32b91080 (dma)
0x000001 - ep_info
[  110.880776] xhci_hcd 0000:03:00.0: @f2b91084 (virt) @32b91084 (dma)
0x4000f16 - ep_info2
[  110.880778] xhci_hcd 0000:03:00.0: @f2b91088 (virt) @32b91088 (dma)
0x329f6001 - deq
[  110.880780] xhci_hcd 0000:03:00.0: @f2b91090 (virt) @32b91090 (dma)
0x000000 - tx_info
[  110.880782] xhci_hcd 0000:03:00.0: @f2b91094 (virt) @32b91094 (dma)
0x000000 - rsvd[0]
[  110.880784] xhci_hcd 0000:03:00.0: @f2b91098 (virt) @32b91098 (dma)
0x000000 - rsvd[1]
[  110.880787] xhci_hcd 0000:03:00.0: @f2b9109c (virt) @32b9109c (dma)
0x000000 - rsvd[2]
[  110.880791] xhci_hcd 0000:03:00.0: Endpoint 0x81 not halted, refusing
to reset.
[  110.880793] xhci_hcd 0000:03:00.0: Endpoint 0x2 not halted, refusing
to reset.
[  110.881220] usb 3-1: adding 3-1:1.0 (config #1, interface 0)
[  110.881265] usb-storage 3-1:1.0: usb_probe_interface
[  110.881270] usb-storage 3-1:1.0: usb_probe_interface - got id
[  110.881472] scsi7 : usb-storage 3-1:1.0
[  111.030020] xhci_hcd 0000:03:00.0: xhci_hub_status_data: stopping
port polling.
[  111.881944] scsi 7:0:0:0: Direct-Access     TrekStor pocket click 3.0
045C PQ: 0 ANSI: 5
[  111.882132] sd 7:0:0:0: Attached scsi generic sg3 type 0
[  111.882416] sd 7:0:0:0: [sdc] 156301488 512-byte logical blocks:
(80.0 GB/74.5 GiB)
[  111.882532] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.882537] xhci_hcd 0000:03:00.0: Giveback URB f26ab300, len = 36,
expected = 192, status = -121
[  111.882567] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.882570] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.882883] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.882886] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.882887] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.882889] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.882891] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.882893] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.882894] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.882896] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x32183470 (DMA)
[  111.882898] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.882901] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f2183470 (0x32183470 dma), new
cycle = 1
[  111.882902] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.882907] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.883011] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.883122] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @32183471
[  111.883180] sd 7:0:0:0: [sdc] Write Protect is off
[  111.883185] sd 7:0:0:0: [sdc] Mode Sense: 23 00 00 00
[  111.883293] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.883297] xhci_hcd 0000:03:00.0: Giveback URB f26c7cc0, len = 36,
expected = 192, status = -121
[  111.883332] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.883335] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.883650] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.883654] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.883655] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.883657] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.883659] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.883661] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.883663] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.883665] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x321834a0 (DMA)
[  111.883667] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.883669] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f21834a0 (0x321834a0 dma), new
cycle = 1
[  111.883672] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.883678] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.883780] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.883875] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @321834a1
[  111.883967] sd 7:0:0:0: [sdc] No Caching mode page present
[  111.883970] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[  111.884380] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.884386] xhci_hcd 0000:03:00.0: Giveback URB f2bfbe40, len = 36,
expected = 192, status = -121
[  111.884419] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.884424] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.884759] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.884763] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.884765] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.884768] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.884770] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.884773] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.884776] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.884778] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x32183500 (DMA)
[  111.884781] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.884785] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f2183500 (0x32183500 dma), new
cycle = 1
[  111.884788] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.884794] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.884899] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.884994] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @32183501
[  111.885201] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.885205] xhci_hcd 0000:03:00.0: Giveback URB f26ab780, len = 36,
expected = 192, status = -121
[  111.885239] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.885244] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.885627] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.885630] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.885631] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.885633] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.885634] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.885636] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.885638] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.885640] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x32183530 (DMA)
[  111.885641] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.885644] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f2183530 (0x32183530 dma), new
cycle = 1
[  111.885646] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.885650] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.885754] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.885849] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @32183531
[  111.885910] sd 7:0:0:0: [sdc] No Caching mode page present
[  111.885913] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[  111.886210]  sdc: sdc1
[  111.886758] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.886761] xhci_hcd 0000:03:00.0: Giveback URB f26ab0c0, len = 36,
expected = 192, status = -121
[  111.886797] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.886800] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.887123] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.887127] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.887128] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.887130] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.887132] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.887134] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.887136] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.887138] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x321835c0 (DMA)
[  111.887140] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.887142] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f21835c0 (0x321835c0 dma), new
cycle = 1
[  111.887145] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.887151] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.887254] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.887348] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @321835c1
[  111.887492] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 192 bytes, 156
bytes untransferred
[  111.887495] xhci_hcd 0000:03:00.0: Giveback URB f26c7c00, len = 36,
expected = 192, status = -121
[  111.887532] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.887539] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.887879] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.887883] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.887885] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.887888] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.887890] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.887893] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.887896] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.887899] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x321835f0 (DMA)
[  111.887901] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.887905] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f21835f0 (0x321835f0 dma), new
cycle = 1
[  111.887909] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.887915] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.888020] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.888114] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @321835f1
[  111.888181] sd 7:0:0:0: [sdc] No Caching mode page present
[  111.888185] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[  111.888188] sd 7:0:0:0: [sdc] Attached SCSI disk
[  111.888639] xhci_hcd 0000:03:00.0: ep 0x81 - asked for 96 bytes, 74
bytes untransferred
[  111.888644] xhci_hcd 0000:03:00.0: Giveback URB f264a9c0, len = 22,
expected = 96, status = -121
[  111.888676] xhci_hcd 0000:03:00.0: Stalled endpoint
[  111.888680] xhci_hcd 0000:03:00.0: Giveback URB f26ab3c0, len = 0,
expected = 13, status = -32
[  111.888988] xhci_hcd 0000:03:00.0: Queueing reset endpoint command
[  111.888990] xhci_hcd 0000:03:00.0: Cleaning up stalled endpoint ring
[  111.888992] xhci_hcd 0000:03:00.0: Finding segment containing stopped
TRB.
[  111.888993] xhci_hcd 0000:03:00.0: Finding endpoint context
[  111.888995] xhci_hcd 0000:03:00.0: Finding segment containing last
TRB in TD.
[  111.888997] xhci_hcd 0000:03:00.0: Cycle state = 0x1
[  111.888999] xhci_hcd 0000:03:00.0: New dequeue segment = f26acde0
(virtual)
[  111.889000] xhci_hcd 0000:03:00.0: New dequeue pointer = 0x32183660 (DMA)
[  111.889002] xhci_hcd 0000:03:00.0: Queueing new dequeue state
[  111.889004] xhci_hcd 0000:03:00.0: Set TR Deq Ptr cmd, new deq seg =
f26acde0 (0x32183400 dma), new deq ptr = f2183660 (0x32183660 dma), new
cycle = 1
[  111.889006] xhci_hcd 0000:03:00.0: // Ding dong!
[  111.889010] xhci_hcd 0000:03:00.0: WARN halted endpoint, queueing URB
anyway.
[  111.889114] xhci_hcd 0000:03:00.0: Ignoring reset ep completion code of 1
[  111.889210] xhci_hcd 0000:03:00.0: Successful Set TR Deq Ptr cmd, deq
= @32183661
[  123.008985] xhci_hcd 0000:03:00.0: Poll event ring: 4294914304
[  123.008987] xhci_hcd 0000:03:00.0: op reg status = 0x0
[  123.008989] xhci_hcd 0000:03:00.0: ir_set 0 pending = 0x2
[  123.008990] xhci_hcd 0000:03:00.0: HC error bitmask = 0x4
[  123.008990] xhci_hcd 0000:03:00.0: Event ring:
[  123.008992] xhci_hcd 0000:03:00.0: @0000000032695400 32183a80
00000000 01000000 01038000
[  123.008993] xhci_hcd 0000:03:00.0: @0000000032695410 32183a90
00000000 01000000 01038000
[  123.008993] xhci_hcd 0000:03:00.0: @0000000032695420 329f6340
00000000 01000000 01048000
[  123.008994] xhci_hcd 0000:03:00.0: @0000000032695430 32183aa0
00000000 01000000 01038000
[  123.008995] xhci_hcd 0000:03:00.0: @0000000032695440 32183ab0
00000000 01000000 01038000
[  123.008996] xhci_hcd 0000:03:00.0: @0000000032695450 329f6350
00000000 01000000 01048000
[  123.008997] xhci_hcd 0000:03:00.0: @0000000032695460 32183ac0
00000000 01000000 01038000
[  123.008998] xhci_hcd 0000:03:00.0: @0000000032695470 32183ad0
00000000 01000000 01038000
[  123.008998] xhci_hcd 0000:03:00.0: @0000000032695480 329f6360
00000000 01000000 01048000
[  123.008999] xhci_hcd 0000:03:00.0: @0000000032695490 32183ae0
00000000 01000000 01038000
[  123.009000] xhci_hcd 0000:03:00.0: @00000000326954a0 32183af0
00000000 01000000 01038000
[  123.009001] xhci_hcd 0000:03:00.0: @00000000326954b0 329f6370
00000000 01000000 01048000
[  123.009002] xhci_hcd 0000:03:00.0: @00000000326954c0 32183b00
00000000 01000000 01038000
[  123.009002] xhci_hcd 0000:03:00.0: @00000000326954d0 32183b10
00000000 01000000 01038000
[  123.009003] xhci_hcd 0000:03:00.0: @00000000326954e0 329f6380
00000000 01000000 01048000
[  123.009004] xhci_hcd 0000:03:00.0: @00000000326954f0 32183b20
00000000 01000000 01038000
[  123.009005] xhci_hcd 0000:03:00.0: @0000000032695500 32183b30
00000000 01000000 01038000
[  123.009006] xhci_hcd 0000:03:00.0: @0000000032695510 329f6390
00000000 01000000 01048000
[  123.009007] xhci_hcd 0000:03:00.0: @0000000032695520 32183b40
00000000 01000000 01038000
[  123.009008] xhci_hcd 0000:03:00.0: @0000000032695530 32183b50
00000000 01000000 01038000
[  123.009008] xhci_hcd 0000:03:00.0: @0000000032695540 329f63a0
00000000 01000000 01048000
[  123.009009] xhci_hcd 0000:03:00.0: @0000000032695550 32183b60
00000000 01000000 01038000
[  123.009010] xhci_hcd 0000:03:00.0: @0000000032695560 32183b70
00000000 01000000 01038000
[  123.009011] xhci_hcd 0000:03:00.0: @0000000032695570 329f63b0
00000000 01000000 01048000
[  123.009012] xhci_hcd 0000:03:00.0: @0000000032695580 32183b80
00000000 01000000 01038000
[  123.009013] xhci_hcd 0000:03:00.0: @0000000032695590 32183b90
00000000 01000000 01038000
[  123.009013] xhci_hcd 0000:03:00.0: @00000000326955a0 329f63c0
00000000 01000000 01048000
[  123.009014] xhci_hcd 0000:03:00.0: @00000000326955b0 32183ba0
00000000 01000000 01038000
[  123.009015] xhci_hcd 0000:03:00.0: @00000000326955c0 32183bb0
00000000 01000000 01038000
[  123.009016] xhci_hcd 0000:03:00.0: @00000000326955d0 329f63d0
00000000 01000000 01048000
[  123.009017] xhci_hcd 0000:03:00.0: @00000000326955e0 32183bc0
00000000 01000000 01038000
[  123.009017] xhci_hcd 0000:03:00.0: @00000000326955f0 32183bd0
00000000 01000000 01038000
[  123.009018] xhci_hcd 0000:03:00.0: @0000000032695600 329f63e0
00000000 01000000 01048000
[  123.009019] xhci_hcd 0000:03:00.0: @0000000032695610 32183be0
00000000 01000000 01038000
[  123.009020] xhci_hcd 0000:03:00.0: @0000000032695620 32183400
00000000 01000000 01038000
[  123.009021] xhci_hcd 0000:03:00.0: @0000000032695630 329f6400
00000000 01000000 01048000
[  123.009021] xhci_hcd 0000:03:00.0: @0000000032695640 32183410
00000000 01000000 01038000
[  123.009022] xhci_hcd 0000:03:00.0: @0000000032695650 32183420
00000000 01000000 01038000
[  123.009023] xhci_hcd 0000:03:00.0: @0000000032695660 329f6410
00000000 01000000 01048000
[  123.009024] xhci_hcd 0000:03:00.0: @0000000032695670 32183430
00000000 01000000 01038000
[  123.009025] xhci_hcd 0000:03:00.0: @0000000032695680 32183440
00000000 01000000 01038000
[  123.009026] xhci_hcd 0000:03:00.0: @0000000032695690 329f6420
00000000 01000000 01048000
[  123.009026] xhci_hcd 0000:03:00.0: @00000000326956a0 32183450
00000000 01000000 01038000
[  123.009027] xhci_hcd 0000:03:00.0: @00000000326956b0 32183460
00000000 01000000 01038000
[  123.009028] xhci_hcd 0000:03:00.0: @00000000326956c0 329f6430
00000000 01000000 01048000
[  123.009029] xhci_hcd 0000:03:00.0: @00000000326956d0 32183470
00000000 01000000 01038000
[  123.009030] xhci_hcd 0000:03:00.0: @00000000326956e0 329f6440
00000000 01000000 01048000
[  123.009031] xhci_hcd 0000:03:00.0: @00000000326956f0 32183480
00000000 01000000 01038000
[  123.009031] xhci_hcd 0000:03:00.0: @0000000032695700 329f62e0
00000000 01000000 01048001
[  123.009032] xhci_hcd 0000:03:00.0: @0000000032695710 321839e0
00000000 01000000 01038001
[  123.009033] xhci_hcd 0000:03:00.0: @0000000032695720 321839f0
00000000 01000000 01038001
[  123.009034] xhci_hcd 0000:03:00.0: @0000000032695730 329f62f0
00000000 01000000 01048001
[  123.009035] xhci_hcd 0000:03:00.0: @0000000032695740 32183a00
00000000 01000000 01038001
[  123.009036] xhci_hcd 0000:03:00.0: @0000000032695750 32183a10
00000000 01000000 01038001
[  123.009036] xhci_hcd 0000:03:00.0: @0000000032695760 329f6300
00000000 01000000 01048001
[  123.009037] xhci_hcd 0000:03:00.0: @0000000032695770 32183a20
00000000 01000000 01038001
[  123.009038] xhci_hcd 0000:03:00.0: @0000000032695780 32183a30
00000000 01000000 01038001
[  123.009039] xhci_hcd 0000:03:00.0: @0000000032695790 329f6310
00000000 01000000 01048001
[  123.009040] xhci_hcd 0000:03:00.0: @00000000326957a0 32183a40
00000000 01000000 01038001
[  123.009040] xhci_hcd 0000:03:00.0: @00000000326957b0 32183a50
00000000 01000000 01038001
[  123.009041] xhci_hcd 0000:03:00.0: @00000000326957c0 329f6320
00000000 01000000 01048001
[  123.009042] xhci_hcd 0000:03:00.0: @00000000326957d0 32183a60
00000000 01000000 01038001
[  123.009043] xhci_hcd 0000:03:00.0: @00000000326957e0 32183a70
00000000 01000000 01038001
[  123.009044] xhci_hcd 0000:03:00.0: @00000000326957f0 329f6330
00000000 01000000 01048001
[  123.009045] xhci_hcd 0000:03:00.0: Ring deq = f2695700 (virt),
0x32695700 (dma)
[  123.009045] xhci_hcd 0000:03:00.0: Ring deq updated 624 times
[  123.009046] xhci_hcd 0000:03:00.0: Ring enq = f2695400 (virt),
0x32695400 (dma)
[  123.009046] xhci_hcd 0000:03:00.0: Ring enq updated 0 times
[  123.009050] xhci_hcd 0000:03:00.0: ERST deq = 64'h32695700
[  123.009051] xhci_hcd 0000:03:00.0: Command ring:
[  123.009052] xhci_hcd 0000:03:00.0: @0000000032695000 00000000
00000000 00000000 0000c401
[  123.009053] xhci_hcd 0000:03:00.0: @0000000032695010 00000000
00000000 00000000 00002401
[  123.009053] xhci_hcd 0000:03:00.0: @0000000032695020 33397000
00000000 00000000 01002c01
[  123.009054] xhci_hcd 0000:03:00.0: @0000000032695030 33397000
00000000 00000000 01003001
[  123.009055] xhci_hcd 0000:03:00.0: @0000000032695040 00000000
00000000 00000000 01033801
[  123.009056] xhci_hcd 0000:03:00.0: @0000000032695050 32183471
00000000 00000000 01034001
[  123.009057] xhci_hcd 0000:03:00.0: @0000000032695060 00000000
00000000 00000000 01033801
[  123.009058] xhci_hcd 0000:03:00.0: @0000000032695070 321834a1
00000000 00000000 01034001
[  123.009058] xhci_hcd 0000:03:00.0: @0000000032695080 00000000
00000000 00000000 01033801
[  123.009059] xhci_hcd 0000:03:00.0: @0000000032695090 32183501
00000000 00000000 01034001
[  123.009060] xhci_hcd 0000:03:00.0: @00000000326950a0 00000000
00000000 00000000 01033801
[  123.009061] xhci_hcd 0000:03:00.0: @00000000326950b0 32183531
00000000 00000000 01034001
[  123.009062] xhci_hcd 0000:03:00.0: @00000000326950c0 00000000
00000000 00000000 01033801
[  123.009063] xhci_hcd 0000:03:00.0: @00000000326950d0 321835c1
00000000 00000000 01034001
[  123.009063] xhci_hcd 0000:03:00.0: @00000000326950e0 00000000
00000000 00000000 01033801
[  123.009064] xhci_hcd 0000:03:00.0: @00000000326950f0 321835f1
00000000 00000000 01034001
[  123.009065] xhci_hcd 0000:03:00.0: @0000000032695100 00000000
00000000 00000000 01033801
[  123.009066] xhci_hcd 0000:03:00.0: @0000000032695110 32183661
00000000 00000000 01034001
[  123.009067] xhci_hcd 0000:03:00.0: @0000000032695120 00000000
00000000 00000000 00000000
[  123.009067] xhci_hcd 0000:03:00.0: @0000000032695130 00000000
00000000 00000000 00000000
[  123.009068] xhci_hcd 0000:03:00.0: @0000000032695140 00000000
00000000 00000000 00000000
[  123.009069] xhci_hcd 0000:03:00.0: @0000000032695150 00000000
00000000 00000000 00000000
[  123.009070] xhci_hcd 0000:03:00.0: @0000000032695160 00000000
00000000 00000000 00000000
[  123.009070] xhci_hcd 0000:03:00.0: @0000000032695170 00000000
00000000 00000000 00000000
[  123.009071] xhci_hcd 0000:03:00.0: @0000000032695180 00000000
00000000 00000000 00000000
[  123.009072] xhci_hcd 0000:03:00.0: @0000000032695190 00000000
00000000 00000000 00000000
[  123.009073] xhci_hcd 0000:03:00.0: @00000000326951a0 00000000
00000000 00000000 00000000
[  123.009074] xhci_hcd 0000:03:00.0: @00000000326951b0 00000000
00000000 00000000 00000000
[  123.009074] xhci_hcd 0000:03:00.0: @00000000326951c0 00000000
00000000 00000000 00000000
[  123.009075] xhci_hcd 0000:03:00.0: @00000000326951d0 00000000
00000000 00000000 00000000
[  123.009076] xhci_hcd 0000:03:00.0: @00000000326951e0 00000000
00000000 00000000 00000000
[  123.009077] xhci_hcd 0000:03:00.0: @00000000326951f0 00000000
00000000 00000000 00000000
[  123.009077] xhci_hcd 0000:03:00.0: @0000000032695200 00000000
00000000 00000000 00000000
[  123.009078] xhci_hcd 0000:03:00.0: @0000000032695210 00000000
00000000 00000000 00000000
[  123.009079] xhci_hcd 0000:03:00.0: @0000000032695220 00000000
00000000 00000000 00000000
[  123.009080] xhci_hcd 0000:03:00.0: @0000000032695230 00000000
00000000 00000000 00000000
[  123.009080] xhci_hcd 0000:03:00.0: @0000000032695240 00000000
00000000 00000000 00000000
[  123.009081] xhci_hcd 0000:03:00.0: @0000000032695250 00000000
00000000 00000000 00000000
[  123.009082] xhci_hcd 0000:03:00.0: @0000000032695260 00000000
00000000 00000000 00000000
[  123.009083] xhci_hcd 0000:03:00.0: @0000000032695270 00000000
00000000 00000000 00000000
[  123.009084] xhci_hcd 0000:03:00.0: @0000000032695280 00000000
00000000 00000000 00000000
[  123.009084] xhci_hcd 0000:03:00.0: @0000000032695290 00000000
00000000 00000000 00000000
[  123.009085] xhci_hcd 0000:03:00.0: @00000000326952a0 00000000
00000000 00000000 00000000
[  123.009086] xhci_hcd 0000:03:00.0: @00000000326952b0 00000000
00000000 00000000 00000000
[  123.009087] xhci_hcd 0000:03:00.0: @00000000326952c0 00000000
00000000 00000000 00000000
[  123.009087] xhci_hcd 0000:03:00.0: @00000000326952d0 00000000
00000000 00000000 00000000
[  123.009088] xhci_hcd 0000:03:00.0: @00000000326952e0 00000000
00000000 00000000 00000000
[  123.009089] xhci_hcd 0000:03:00.0: @00000000326952f0 00000000
00000000 00000000 00000000
[  123.009090] xhci_hcd 0000:03:00.0: @0000000032695300 00000000
00000000 00000000 00000000
[  123.009091] xhci_hcd 0000:03:00.0: @0000000032695310 00000000
00000000 00000000 00000000
[  123.009091] xhci_hcd 0000:03:00.0: @0000000032695320 00000000
00000000 00000000 00000000
[  123.009092] xhci_hcd 0000:03:00.0: @0000000032695330 00000000
00000000 00000000 00000000
[  123.009093] xhci_hcd 0000:03:00.0: @0000000032695340 00000000
00000000 00000000 00000000
[  123.009094] xhci_hcd 0000:03:00.0: @0000000032695350 00000000
00000000 00000000 00000000
[  123.009094] xhci_hcd 0000:03:00.0: @0000000032695360 00000000
00000000 00000000 00000000
[  123.009095] xhci_hcd 0000:03:00.0: @0000000032695370 00000000
00000000 00000000 00000000
[  123.009096] xhci_hcd 0000:03:00.0: @0000000032695380 00000000
00000000 00000000 00000000
[  123.009097] xhci_hcd 0000:03:00.0: @0000000032695390 00000000
00000000 00000000 00000000
[  123.009097] xhci_hcd 0000:03:00.0: @00000000326953a0 00000000
00000000 00000000 00000000
[  123.009098] xhci_hcd 0000:03:00.0: @00000000326953b0 00000000
00000000 00000000 00000000
[  123.009099] xhci_hcd 0000:03:00.0: @00000000326953c0 00000000
00000000 00000000 00000000
[  123.009100] xhci_hcd 0000:03:00.0: @00000000326953d0 00000000
00000000 00000000 00000000
[  123.009100] xhci_hcd 0000:03:00.0: @00000000326953e0 00000000
00000000 00000000 00000000
[  123.009101] xhci_hcd 0000:03:00.0: @00000000326953f0 32695000
00000000 00000000 00001802
[  123.009102] xhci_hcd 0000:03:00.0: Ring deq = f2695120 (virt),
0x32695120 (dma)
[  123.009103] xhci_hcd 0000:03:00.0: Ring deq updated 18 times
[  123.009103] xhci_hcd 0000:03:00.0: Ring enq = f2695120 (virt),
0x32695120 (dma)
[  123.009104] xhci_hcd 0000:03:00.0: Ring enq updated 18 times
[  123.009107] xhci_hcd 0000:03:00.0: // xHC command ring deq ptr low
bits + flags = @00000008
[  123.009108] xhci_hcd 0000:03:00.0: // xHC command ring deq ptr high
bits = @00000000
[  123.009109] xhci_hcd 0000:03:00.0: Dev 1 endpoint ring 0:
[  123.009110] xhci_hcd 0000:03:00.0: @0000000032695800 01000680
00080000 00000008 00000841
[  123.009111] xhci_hcd 0000:03:00.0: @0000000032695810 328cb3c0
00000000 00000008 00010c05
[  123.009112] xhci_hcd 0000:03:00.0: @0000000032695820 00000000
00000000 00000000 00001021
[  123.009113] xhci_hcd 0000:03:00.0: @0000000032695830 01000680
00120000 00000008 00000841
[  123.009113] xhci_hcd 0000:03:00.0: @0000000032695840 32bca420
00000000 00000012 00010c05
[  123.009114] xhci_hcd 0000:03:00.0: @0000000032695850 00000000
00000000 00000000 00001021
[  123.009115] xhci_hcd 0000:03:00.0: @0000000032695860 0f000680
00050000 00000008 00000841
[  123.009116] xhci_hcd 0000:03:00.0: @0000000032695870 329f40c0
00000000 00000005 00010c05
[  123.009117] xhci_hcd 0000:03:00.0: @0000000032695880 00000000
00000000 00000000 00001021
[  123.009117] xhci_hcd 0000:03:00.0: @0000000032695890 0f000680
00160000 00000008 00000841
[  123.009118] xhci_hcd 0000:03:00.0: @00000000326958a0 32bca420
00000000 00000016 00010c05
[  123.009119] xhci_hcd 0000:03:00.0: @00000000326958b0 00000000
00000000 00000000 00001021
[  123.009120] xhci_hcd 0000:03:00.0: @00000000326958c0 02000680
00090000 00000008 00000841
[  123.009121] xhci_hcd 0000:03:00.0: @00000000326958d0 326acdc0
00000000 00000009 00010c05
[  123.009122] xhci_hcd 0000:03:00.0: @00000000326958e0 00000000
00000000 00000000 00001021
[  123.009122] xhci_hcd 0000:03:00.0: @00000000326958f0 02000680
002c0000 00000008 00000841
[  123.009123] xhci_hcd 0000:03:00.0: @0000000032695900 329ec800
00000000 0000002c 00010c05
[  123.009124] xhci_hcd 0000:03:00.0: @0000000032695910 00000000
00000000 00000000 00001021
[  123.009125] xhci_hcd 0000:03:00.0: @0000000032695920 03000680
00ff0000 00000008 00000841
[  123.009126] xhci_hcd 0000:03:00.0: @0000000032695930 3096d800
00000000 000000ff 00010c05
[  123.009126] xhci_hcd 0000:03:00.0: @0000000032695940 00000000
00000000 00000000 00001021
[  123.009127] xhci_hcd 0000:03:00.0: @0000000032695950 03030680
00ff0409 00000008 00000841
[  123.009128] xhci_hcd 0000:03:00.0: @0000000032695960 3096d800
00000000 000000ff 00010c05
[  123.009129] xhci_hcd 0000:03:00.0: @0000000032695970 00000000
00000000 00000000 00001021
[  123.009129] xhci_hcd 0000:03:00.0: @0000000032695980 03020680
00ff0409 00000008 00000841
[  123.009130] xhci_hcd 0000:03:00.0: @0000000032695990 3096d800
00000000 000000ff 00010c05
[  123.009131] xhci_hcd 0000:03:00.0: @00000000326959a0 00000000
00000000 00000000 00001021
[  123.009132] xhci_hcd 0000:03:00.0: @00000000326959b0 03010680
00ff0409 00000008 00000841
[  123.009133] xhci_hcd 0000:03:00.0: @00000000326959c0 3096d800
00000000 000000ff 00010c05
[  123.009133] xhci_hcd 0000:03:00.0: @00000000326959d0 00000000
00000000 00000000 00001021
[  123.009134] xhci_hcd 0000:03:00.0: @00000000326959e0 00010900
00000000 00000008 00000841
[  123.009135] xhci_hcd 0000:03:00.0: @00000000326959f0 00000000
00000000 00000000 00011021
[  123.009136] xhci_hcd 0000:03:00.0: @0000000032695a00 0000fea1
00010000 00000008 00000841
[  123.009137] xhci_hcd 0000:03:00.0: @0000000032695a10 324f7000
00000000 00000001 00010c05
[  123.009138] xhci_hcd 0000:03:00.0: @0000000032695a20 00000000
00000000 00000000 00001021
[  123.009138] xhci_hcd 0000:03:00.0: @0000000032695a30 00000102
00000081 00000008 00000841
[  123.009139] xhci_hcd 0000:03:00.0: @0000000032695a40 00000000
00000000 00000000 00011021
[  123.009140] xhci_hcd 0000:03:00.0: @0000000032695a50 00000102
00000081 00000008 00000841
[  123.009141] xhci_hcd 0000:03:00.0: @0000000032695a60 00000000
00000000 00000000 00011021
[  123.009142] xhci_hcd 0000:03:00.0: @0000000032695a70 00000102
00000081 00000008 00000841
[  123.009142] xhci_hcd 0000:03:00.0: @0000000032695a80 00000000
00000000 00000000 00011021
[  123.009143] xhci_hcd 0000:03:00.0: @0000000032695a90 00000102
00000081 00000008 00000841
[  123.009144] xhci_hcd 0000:03:00.0: @0000000032695aa0 00000000
00000000 00000000 00011021
[  123.009145] xhci_hcd 0000:03:00.0: @0000000032695ab0 00000102
00000081 00000008 00000841
[  123.009146] xhci_hcd 0000:03:00.0: @0000000032695ac0 00000000
00000000 00000000 00011021
[  123.009146] xhci_hcd 0000:03:00.0: @0000000032695ad0 00000102
00000081 00000008 00000841
[  123.009147] xhci_hcd 0000:03:00.0: @0000000032695ae0 00000000
00000000 00000000 00011021
[  123.009148] xhci_hcd 0000:03:00.0: @0000000032695af0 00000102
00000081 00000008 00000841
[  123.009149] xhci_hcd 0000:03:00.0: @0000000032695b00 00000000
00000000 00000000 00011021
[  123.009149] xhci_hcd 0000:03:00.0: @0000000032695b10 00000000
00000000 00000000 00000000
[  123.009150] xhci_hcd 0000:03:00.0: @0000000032695b20 00000000
00000000 00000000 00000000
[  123.009151] xhci_hcd 0000:03:00.0: @0000000032695b30 00000000
00000000 00000000 00000000
[  123.009152] xhci_hcd 0000:03:00.0: @0000000032695b40 00000000
00000000 00000000 00000000
[  123.009153] xhci_hcd 0000:03:00.0: @0000000032695b50 00000000
00000000 00000000 00000000
[  123.009153] xhci_hcd 0000:03:00.0: @0000000032695b60 00000000
00000000 00000000 00000000
[  123.009154] xhci_hcd 0000:03:00.0: @0000000032695b70 00000000
00000000 00000000 00000000
[  123.009155] xhci_hcd 0000:03:00.0: @0000000032695b80 00000000
00000000 00000000 00000000
[  123.009156] xhci_hcd 0000:03:00.0: @0000000032695b90 00000000
00000000 00000000 00000000
[  123.009156] xhci_hcd 0000:03:00.0: @0000000032695ba0 00000000
00000000 00000000 00000000
[  123.009157] xhci_hcd 0000:03:00.0: @0000000032695bb0 00000000
00000000 00000000 00000000
[  123.009158] xhci_hcd 0000:03:00.0: @0000000032695bc0 00000000
00000000 00000000 00000000
[  123.009159] xhci_hcd 0000:03:00.0: @0000000032695bd0 00000000
00000000 00000000 00000000
[  123.009159] xhci_hcd 0000:03:00.0: @0000000032695be0 00000000
00000000 00000000 00000000
[  123.009160] xhci_hcd 0000:03:00.0: @0000000032695bf0 32183000
00000000 00000000 00001800
[  123.009161] xhci_hcd 0000:03:00.0: Dev 1 endpoint ring 2:
[  123.009162] xhci_hcd 0000:03:00.0: @0000000032183400 324f7000
00000000 0000000d 00000424
[  123.009163] xhci_hcd 0000:03:00.0: @0000000032183410 323f3000
00000000 00081000 00000424
[  123.009164] xhci_hcd 0000:03:00.0: @0000000032183420 324f7000
00000000 0000000d 00000424
[  123.009164] xhci_hcd 0000:03:00.0: @0000000032183430 3220a000
00000000 00081000 00000424
[  123.009165] xhci_hcd 0000:03:00.0: @0000000032183440 324f7000
00000000 0000000d 00000424
[  123.009166] xhci_hcd 0000:03:00.0: @0000000032183450 309aa000
00000000 00081000 00000424
[  123.009167] xhci_hcd 0000:03:00.0: @0000000032183460 324f7000
00000000 0000000d 00000424
[  123.009168] xhci_hcd 0000:03:00.0: @0000000032183470 324f7000
00000000 0000000d 00000424
[  123.009168] xhci_hcd 0000:03:00.0: @0000000032183480 324f7000
00000000 0000000d 00000424
[  123.009169] xhci_hcd 0000:03:00.0: @0000000032183490 321a2000
00000000 00081000 00000425
[  123.009170] xhci_hcd 0000:03:00.0: @00000000321834a0 324f7000
00000000 0000000d 00000425
[  123.009171] xhci_hcd 0000:03:00.0: @00000000321834b0 30a38000
00000000 00081000 00000425
[  123.009172] xhci_hcd 0000:03:00.0: @00000000321834c0 324f7000
00000000 0000000d 00000425
[  123.009172] xhci_hcd 0000:03:00.0: @00000000321834d0 30a2d000
00000000 00081000 00000425
[  123.009173] xhci_hcd 0000:03:00.0: @00000000321834e0 324f7000
00000000 0000000d 00000425
[  123.009174] xhci_hcd 0000:03:00.0: @00000000321834f0 328c9000
00000000 00081000 00000425
[  123.009175] xhci_hcd 0000:03:00.0: @0000000032183500 324f7000
00000000 0000000d 00000425
[  123.009176] xhci_hcd 0000:03:00.0: @0000000032183510 32641000
00000000 00081000 00000425
[  123.009176] xhci_hcd 0000:03:00.0: @0000000032183520 324f7000
00000000 0000000d 00000425
[  123.009177] xhci_hcd 0000:03:00.0: @0000000032183530 30a31000
00000000 00081000 00000425
[  123.009178] xhci_hcd 0000:03:00.0: @0000000032183540 324f7000
00000000 0000000d 00000425
[  123.009179] xhci_hcd 0000:03:00.0: @0000000032183550 3204b000
00000000 00081000 00000425
[  123.009180] xhci_hcd 0000:03:00.0: @0000000032183560 324f7000
00000000 0000000d 00000425
[  123.009180] xhci_hcd 0000:03:00.0: @0000000032183570 321c4000
00000000 00081000 00000425
[  123.009181] xhci_hcd 0000:03:00.0: @0000000032183580 324f7000
00000000 0000000d 00000425
[  123.009182] xhci_hcd 0000:03:00.0: @0000000032183590 3098f000
00000000 00081000 00000425
[  123.009183] xhci_hcd 0000:03:00.0: @00000000321835a0 324f7000
00000000 0000000d 00000425
[  123.009184] xhci_hcd 0000:03:00.0: @00000000321835b0 30990000
00000000 00081000 00000425
[  123.009184] xhci_hcd 0000:03:00.0: @00000000321835c0 324f7000
00000000 0000000d 00000425
[  123.009185] xhci_hcd 0000:03:00.0: @00000000321835d0 30991000
00000000 00081000 00000425
[  123.009186] xhci_hcd 0000:03:00.0: @00000000321835e0 324f7000
00000000 0000000d 00000425
[  123.009187] xhci_hcd 0000:03:00.0: @00000000321835f0 30992000
00000000 00081000 00000425
[  123.009188] xhci_hcd 0000:03:00.0: @0000000032183600 324f7000
00000000 0000000d 00000425
[  123.009189] xhci_hcd 0000:03:00.0: @0000000032183610 30993000
00000000 00081000 00000425
[  123.009189] xhci_hcd 0000:03:00.0: @0000000032183620 324f7000
00000000 0000000d 00000425
[  123.009190] xhci_hcd 0000:03:00.0: @0000000032183630 30995000
00000000 00081000 00000425
[  123.009191] xhci_hcd 0000:03:00.0: @0000000032183640 324f7000
00000000 0000000d 00000425
[  123.009192] xhci_hcd 0000:03:00.0: @0000000032183650 30997000
00000000 00081000 00000425
[  123.009193] xhci_hcd 0000:03:00.0: @0000000032183660 324f7000
00000000 0000000d 00000425
[  123.009193] xhci_hcd 0000:03:00.0: @0000000032183670 30994000
00000000 00081000 00000425
[  123.009194] xhci_hcd 0000:03:00.0: @0000000032183680 324f7000
00000000 0000000d 00000425
[  123.009195] xhci_hcd 0000:03:00.0: @0000000032183690 30998000
00000000 00081000 00000425
[  123.009196] xhci_hcd 0000:03:00.0: @00000000321836a0 324f7000
00000000 0000000d 00000425
[  123.009197] xhci_hcd 0000:03:00.0: @00000000321836b0 3233a000
00000000 00081000 00000425
[  123.009197] xhci_hcd 0000:03:00.0: @00000000321836c0 324f7000
00000000 0000000d 00000425
[  123.009198] xhci_hcd 0000:03:00.0: @00000000321836d0 30999000
00000000 00081000 00000425
[  123.009199] xhci_hcd 0000:03:00.0: @00000000321836e0 324f7000
00000000 0000000d 00000425
[  123.009200] xhci_hcd 0000:03:00.0: @00000000321836f0 30996000
00000000 00081000 00000425
[  123.009201] xhci_hcd 0000:03:00.0: @0000000032183700 324f7000
00000000 0000000d 00000425
[  123.009201] xhci_hcd 0000:03:00.0: @0000000032183710 309a0000
00000000 00081000 00000425
[  123.009202] xhci_hcd 0000:03:00.0: @0000000032183720 324f7000
00000000 0000000d 00000425
[  123.009203] xhci_hcd 0000:03:00.0: @0000000032183730 309a1000
00000000 00081000 00000425
[  123.009204] xhci_hcd 0000:03:00.0: @0000000032183740 324f7000
00000000 0000000d 00000425
[  123.009205] xhci_hcd 0000:03:00.0: @0000000032183750 322a4000
00000000 00081000 00000425
[  123.009205] xhci_hcd 0000:03:00.0: @0000000032183760 324f7000
00000000 0000000d 00000425
[  123.009206] xhci_hcd 0000:03:00.0: @0000000032183770 3329f000
00000000 00081000 00000425
[  123.009207] xhci_hcd 0000:03:00.0: @0000000032183780 324f7000
00000000 0000000d 00000425
[  123.009208] xhci_hcd 0000:03:00.0: @0000000032183790 32523000
00000000 00081000 00000425
[  123.009209] xhci_hcd 0000:03:00.0: @00000000321837a0 324f7000
00000000 0000000d 00000425
[  123.009210] xhci_hcd 0000:03:00.0: @00000000321837b0 323d4000
00000000 00081000 00000425
[  123.009210] xhci_hcd 0000:03:00.0: @00000000321837c0 324f7000
00000000 0000000d 00000425
[  123.009211] xhci_hcd 0000:03:00.0: @00000000321837d0 321cf000
00000000 00081000 00000425
[  123.009212] xhci_hcd 0000:03:00.0: @00000000321837e0 324f7000
00000000 0000000d 00000425
[  123.009213] xhci_hcd 0000:03:00.0: @00000000321837f0 32183800
00000000 00000000 00001801
[  123.009214] xhci_hcd 0000:03:00.0: Dev 1 endpoint ring 3:
[  123.009214] xhci_hcd 0000:03:00.0: @00000000329f6400 324f7000
00000000 0000001f 00000420
[  123.009215] xhci_hcd 0000:03:00.0: @00000000329f6410 324f7000
00000000 0000001f 00000420
[  123.009216] xhci_hcd 0000:03:00.0: @00000000329f6420 324f7000
00000000 0000001f 00000420
[  123.009217] xhci_hcd 0000:03:00.0: @00000000329f6430 324f7000
00000000 0000001f 00000420
[  123.009218] xhci_hcd 0000:03:00.0: @00000000329f6440 324f7000
00000000 0000001f 00000420
[  123.009218] xhci_hcd 0000:03:00.0: @00000000329f6450 324f7000
00000000 0000001f 00000421
[  123.009219] xhci_hcd 0000:03:00.0: @00000000329f6460 324f7000
00000000 0000001f 00000421
[  123.009220] xhci_hcd 0000:03:00.0: @00000000329f6470 324f7000
00000000 0000001f 00000421
[  123.009221] xhci_hcd 0000:03:00.0: @00000000329f6480 324f7000
00000000 0000001f 00000421
[  123.009222] xhci_hcd 0000:03:00.0: @00000000329f6490 324f7000
00000000 0000001f 00000421
[  123.009222] xhci_hcd 0000:03:00.0: @00000000329f64a0 324f7000
00000000 0000001f 00000421
[  123.009223] xhci_hcd 0000:03:00.0: @00000000329f64b0 324f7000
00000000 0000001f 00000421
[  123.009224] xhci_hcd 0000:03:00.0: @00000000329f64c0 324f7000
00000000 0000001f 00000421
[  123.009225] xhci_hcd 0000:03:00.0: @00000000329f64d0 324f7000
00000000 0000001f 00000421
[  123.009226] xhci_hcd 0000:03:00.0: @00000000329f64e0 324f7000
00000000 0000001f 00000421
[  123.009226] xhci_hcd 0000:03:00.0: @00000000329f64f0 324f7000
00000000 0000001f 00000421
[  123.009227] xhci_hcd 0000:03:00.0: @00000000329f6500 324f7000
00000000 0000001f 00000421
[  123.009228] xhci_hcd 0000:03:00.0: @00000000329f6510 324f7000
00000000 0000001f 00000421
[  123.009229] xhci_hcd 0000:03:00.0: @00000000329f6520 324f7000
00000000 0000001f 00000421
[  123.009230] xhci_hcd 0000:03:00.0: @00000000329f6530 324f7000
00000000 0000001f 00000421
[  123.009230] xhci_hcd 0000:03:00.0: @00000000329f6540 324f7000
00000000 0000001f 00000421
[  123.009231] xhci_hcd 0000:03:00.0: @00000000329f6550 324f7000
00000000 0000001f 00000421
[  123.009232] xhci_hcd 0000:03:00.0: @00000000329f6560 324f7000
00000000 0000001f 00000421
[  123.009233] xhci_hcd 0000:03:00.0: @00000000329f6570 324f7000
00000000 0000001f 00000421
[  123.009234] xhci_hcd 0000:03:00.0: @00000000329f6580 324f7000
00000000 0000001f 00000421
[  123.009234] xhci_hcd 0000:03:00.0: @00000000329f6590 324f7000
00000000 0000001f 00000421
[  123.009235] xhci_hcd 0000:03:00.0: @00000000329f65a0 324f7000
00000000 0000001f 00000421
[  123.009236] xhci_hcd 0000:03:00.0: @00000000329f65b0 324f7000
00000000 0000001f 00000421
[  123.009237] xhci_hcd 0000:03:00.0: @00000000329f65c0 324f7000
00000000 0000001f 00000421
[  123.009238] xhci_hcd 0000:03:00.0: @00000000329f65d0 324f7000
00000000 0000001f 00000421
[  123.009238] xhci_hcd 0000:03:00.0: @00000000329f65e0 324f7000
00000000 0000001f 00000421
[  123.009239] xhci_hcd 0000:03:00.0: @00000000329f65f0 324f7000
00000000 0000001f 00000421
[  123.009240] xhci_hcd 0000:03:00.0: @00000000329f6600 324f7000
00000000 0000001f 00000421
[  123.009241] xhci_hcd 0000:03:00.0: @00000000329f6610 324f7000
00000000 0000001f 00000421
[  123.009242] xhci_hcd 0000:03:00.0: @00000000329f6620 324f7000
00000000 0000001f 00000421
[  123.009242] xhci_hcd 0000:03:00.0: @00000000329f6630 324f7000
00000000 0000001f 00000421
[  123.009243] xhci_hcd 0000:03:00.0: @00000000329f6640 324f7000
00000000 0000001f 00000421
[  123.009244] xhci_hcd 0000:03:00.0: @00000000329f6650 324f7000
00000000 0000001f 00000421
[  123.009245] xhci_hcd 0000:03:00.0: @00000000329f6660 324f7000
00000000 0000001f 00000421
[  123.009246] xhci_hcd 0000:03:00.0: @00000000329f6670 324f7000
00000000 0000001f 00000421
[  123.009246] xhci_hcd 0000:03:00.0: @00000000329f6680 324f7000
00000000 0000001f 00000421
[  123.009247] xhci_hcd 0000:03:00.0: @00000000329f6690 324f7000
00000000 0000001f 00000421
[  123.009248] xhci_hcd 0000:03:00.0: @00000000329f66a0 324f7000
00000000 0000001f 00000421
[  123.009249] xhci_hcd 0000:03:00.0: @00000000329f66b0 324f7000
00000000 0000001f 00000421
[  123.009250] xhci_hcd 0000:03:00.0: @00000000329f66c0 324f7000
00000000 0000001f 00000421
[  123.009250] xhci_hcd 0000:03:00.0: @00000000329f66d0 324f7000
00000000 0000001f 00000421
[  123.009251] xhci_hcd 0000:03:00.0: @00000000329f66e0 324f7000
00000000 0000001f 00000421
[  123.009252] xhci_hcd 0000:03:00.0: @00000000329f66f0 324f7000
00000000 0000001f 00000421
[  123.009253] xhci_hcd 0000:03:00.0: @00000000329f6700 324f7000
00000000 0000001f 00000421
[  123.009254] xhci_hcd 0000:03:00.0: @00000000329f6710 324f7000
00000000 0000001f 00000421
[  123.009254] xhci_hcd 0000:03:00.0: @00000000329f6720 324f7000
00000000 0000001f 00000421
[  123.009255] xhci_hcd 0000:03:00.0: @00000000329f6730 324f7000
00000000 0000001f 00000421
[  123.009256] xhci_hcd 0000:03:00.0: @00000000329f6740 324f7000
00000000 0000001f 00000421
[  123.009257] xhci_hcd 0000:03:00.0: @00000000329f6750 324f7000
00000000 0000001f 00000421
[  123.009258] xhci_hcd 0000:03:00.0: @00000000329f6760 324f7000
00000000 0000001f 00000421
[  123.009258] xhci_hcd 0000:03:00.0: @00000000329f6770 324f7000
00000000 0000001f 00000421
[  123.009259] xhci_hcd 0000:03:00.0: @00000000329f6780 324f7000
00000000 0000001f 00000421
[  123.009260] xhci_hcd 0000:03:00.0: @00000000329f6790 324f7000
00000000 0000001f 00000421
[  123.009261] xhci_hcd 0000:03:00.0: @00000000329f67a0 324f7000
00000000 0000001f 00000421
[  123.009262] xhci_hcd 0000:03:00.0: @00000000329f67b0 324f7000
00000000 0000001f 00000421
[  123.009262] xhci_hcd 0000:03:00.0: @00000000329f67c0 324f7000
00000000 0000001f 00000421
[  123.009263] xhci_hcd 0000:03:00.0: @00000000329f67d0 324f7000
00000000 0000001f 00000421
[  123.009264] xhci_hcd 0000:03:00.0: @00000000329f67e0 324f7000
00000000 0000001f 00000421
[  123.009265] xhci_hcd 0000:03:00.0: @00000000329f67f0 329f6000
00000000 00000000 00001803

I wait a few seconds and unplug it:

[  143.673672] xhci_hcd 0000:03:00.0: Port Status Change Event for port 1
[  143.673677] xhci_hcd 0000:03:00.0: handle_port_status: starting port
polling.
[  143.673702] hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
[  143.673710] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x202c0
[  143.673712] xhci_hcd 0000:03:00.0: Get port status returned 0x102c0
[  143.673720] xhci_hcd 0000:03:00.0: clear port connect change, actual
port 0 status  = 0x2c0
[  143.673722] hub 3-0:1.0: warm reset port 1
[  143.673733] xhci_hcd 0000:03:00.0: Port Status Change Event for port 1
[  143.673736] xhci_hcd 0000:03:00.0: handle_port_status: starting port
polling.
[  143.726336] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x202b1
[  143.726340] xhci_hcd 0000:03:00.0: Get port status returned 0x102b1
[  143.726344] hub 3-0:1.0: port 1 not warm reset yet, waiting 50ms
[  143.779509] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x202b1
[  143.779512] xhci_hcd 0000:03:00.0: Get port status returned 0x102b1
[  143.779516] hub 3-0:1.0: port 1 not warm reset yet, waiting 200ms
[  143.982263] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x2a02a0
[  143.982266] xhci_hcd 0000:03:00.0: Get port status returned 0x3102a0
[  143.982275] xhci_hcd 0000:03:00.0: clear port reset change, actual
port 0 status  = 0xa02a0
[  143.982281] xhci_hcd 0000:03:00.0: clear port warm(BH) reset change,
actual port 0 status  = 0x202a0
[  143.982288] xhci_hcd 0000:03:00.0: clear port link state change,
actual port 0 status  = 0x202a0
[  143.982294] xhci_hcd 0000:03:00.0: Disable port 0
[  143.982303] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x280
[  143.982304] xhci_hcd 0000:03:00.0: Get port status returned 0x280
[  143.982310] xhci_hcd 0000:03:00.0: Enable port 0
[  143.982319] hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
[  143.982324] xhci_hcd 0000:03:00.0: get port status, actual port 0
status  = 0x2a0
[  143.982326] xhci_hcd 0000:03:00.0: Get port status returned 0x2a0
[  144.184979] xhci_hcd 0000:03:00.0: xhci_hub_status_data: stopping
port polling.

And lsscsi still says:

[0:0:0:0]    disk    ATA      Corsair Force GT 5.03  /dev/sda
[1:0:0:0]    cd/dvd  TSSTcorp CDDVDW SH-222BB  SB00  /dev/sr0
[6:0:0:0]    disk    Generic- SD/MMC           1.00  /dev/sdb
[7:0:0:0]    disk    TrekStor pocket click 3.0 045C  /dev/sdc

/dev/sdc is still there.

Please let me know if you need anything else or want me to try
edits/patches.

Holger


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-12 10:35           ` Holger Hoffstätte
@ 2013-02-12 20:42             ` Sarah Sharp
  2013-02-13  8:28               ` Holger Hoffstätte
  0 siblings, 1 reply; 19+ messages in thread
From: Sarah Sharp @ 2013-02-12 20:42 UTC (permalink / raw)
  To: Holger Hoffstätte
  Cc: Jonathan Nieder, stable, linux-kernel, linux-usb, Greg KH,
	Tilman Schmidt, Matthias Schniedermeyer

On Tue, Feb 12, 2013 at 11:35:29AM +0100, Holger Hoffstätte wrote:
> On 02/12/13 01:40, Sarah Sharp wrote:
> > Can you turn on CONFIG_USB_DEBUG and CONFIG_USB_XHCI_HCD_DEBUGGING,
> > recompile the 3.7.5 kernel, and send me dmesg starting from the point
> > you unmount the device and then power it off?
> 
> I don't even need to mount/unmount; just plugging in/unplugging
> reproduces the problem. Note again that this is independent of both the
> used USB 3.0 card (might be the same chipset though?) and the attached
> device/enclosure.
> 
> So time to make a freshly built 3.8-rc7 go Ding Dong! :)

xHCI doorbells are fun. :)

I think I see the issue.  Your host controller reports the Inactive
state after a USB disconnect.  My host controllers go to the RxDetect
state on a disconnect.

The patches that went into 3.8 and the stable kernels to better handle
the Inactive state were not designed to handle a connected device going
to the Inactive state.  I thought that would be a rare case, but
apparently it's not.

There was a further set of patches queued for 3.9 to deal with connected
devices going to the Inactive state, but they looked like they were too
big for stable:

d3b9d7a USB: Fix connected device switch to Inactive state.
a24a607 USB: Rip out recursive call on warm port reset.
2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.

Can you retry with Greg's usb-next branch?

git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-next

If that fixes your problem, we should either get those additional
patches into 3.8 and the stable trees, or do a revert of the whole
series and just let 3.9 carry the full patchset.

Sarah Sharp

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-12 20:42             ` Sarah Sharp
@ 2013-02-13  8:28               ` Holger Hoffstätte
  2013-02-13 17:16                 ` Matthias Schniedermeyer
  0 siblings, 1 reply; 19+ messages in thread
From: Holger Hoffstätte @ 2013-02-13  8:28 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: Jonathan Nieder, stable, linux-kernel, linux-usb, Greg KH,
	Tilman Schmidt, Matthias Schniedermeyer

On 12.02.2013 21:42, Sarah Sharp wrote:
> [..]
> I think I see the issue.  Your host controller reports the Inactive
> state after a USB disconnect.  My host controllers go to the RxDetect
> state on a disconnect.
> 
> The patches that went into 3.8 and the stable kernels to better handle
> the Inactive state were not designed to handle a connected device going
> to the Inactive state.  I thought that would be a rare case, but
> apparently it's not.
> 
> There was a further set of patches queued for 3.9 to deal with connected
> devices going to the Inactive state, but they looked like they were too
> big for stable:
> 
> d3b9d7a USB: Fix connected device switch to Inactive state.
> a24a607 USB: Rip out recursive call on warm port reset.
> 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> 
> Can you retry with Greg's usb-next branch?
> 
> git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-next
> 
> If that fixes your problem, we should either get those additional
> patches into 3.8 and the stable trees, or do a revert of the whole
> series and just let 3.9 carry the full patchset.

Good news! This one does indeed work as expected - the device can be
removed and is gone for good. Upstream & Stable plz :)

thanks all!

Holger


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13  8:28               ` Holger Hoffstätte
@ 2013-02-13 17:16                 ` Matthias Schniedermeyer
  2013-02-13 19:33                   ` Sarah Sharp
  0 siblings, 1 reply; 19+ messages in thread
From: Matthias Schniedermeyer @ 2013-02-13 17:16 UTC (permalink / raw)
  To: Holger Hoffstätte
  Cc: Sarah Sharp, Jonathan Nieder, stable, linux-kernel, linux-usb,
	Greg KH, Tilman Schmidt

On 13.02.2013 09:28, Holger Hoffstätte wrote:
> On 12.02.2013 21:42, Sarah Sharp wrote:
> > [..]
> > I think I see the issue.  Your host controller reports the Inactive
> > state after a USB disconnect.  My host controllers go to the RxDetect
> > state on a disconnect.
> > 
> > The patches that went into 3.8 and the stable kernels to better handle
> > the Inactive state were not designed to handle a connected device going
> > to the Inactive state.  I thought that would be a rare case, but
> > apparently it's not.
> > 
> > There was a further set of patches queued for 3.9 to deal with connected
> > devices going to the Inactive state, but they looked like they were too
> > big for stable:
> > 
> > d3b9d7a USB: Fix connected device switch to Inactive state.
> > a24a607 USB: Rip out recursive call on warm port reset.
> > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > 
> > Can you retry with Greg's usb-next branch?
> > 
> > git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-next
> > 
> > If that fixes your problem, we should either get those additional
> > patches into 3.8 and the stable trees, or do a revert of the whole
> > series and just let 3.9 carry the full patchset.
> 
> Good news! This one does indeed work as expected - the device can be
> removed and is gone for good. Upstream & Stable plz :)

That kernel fixes the problem for me too.




-- 

Matthias

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 17:16                 ` Matthias Schniedermeyer
@ 2013-02-13 19:33                   ` Sarah Sharp
  2013-02-13 20:04                     ` Matthias Schniedermeyer
  0 siblings, 1 reply; 19+ messages in thread
From: Sarah Sharp @ 2013-02-13 19:33 UTC (permalink / raw)
  To: Matthias Schniedermeyer
  Cc: Holger Hoffstätte, Jonathan Nieder, stable, linux-kernel,
	linux-usb, Greg KH, Tilman Schmidt

On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > [..]
> > > There was a further set of patches queued for 3.9 to deal with connected
> > > devices going to the Inactive state, but they looked like they were too
> > > big for stable:
> > > 
> > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > a24a607 USB: Rip out recursive call on warm port reset.
> > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > > 
> > > Can you retry with Greg's usb-next branch?
> > > 
> > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-next
> > > 
> > > If that fixes your problem, we should either get those additional
> > > patches into 3.8 and the stable trees, or do a revert of the whole
> > > series and just let 3.9 carry the full patchset.
> > 
> > Good news! This one does indeed work as expected - the device can be
> > removed and is gone for good. Upstream & Stable plz :)
> 
> That kernel fixes the problem for me too.

Great!

Holger and Matthias, can you double check that cherry picking just those
four patches on top of 3.7.7 or 3.8 works as well?

Sarah Sharp

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 19:33                   ` Sarah Sharp
@ 2013-02-13 20:04                     ` Matthias Schniedermeyer
  2013-02-13 21:08                       ` Sarah Sharp
  0 siblings, 1 reply; 19+ messages in thread
From: Matthias Schniedermeyer @ 2013-02-13 20:04 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: Holger Hoffstätte, Jonathan Nieder, stable, linux-kernel,
	linux-usb, Greg KH, Tilman Schmidt

[-- Attachment #1: Type: text/plain, Size: 1720 bytes --]

On 13.02.2013 11:33, Sarah Sharp wrote:
> On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> > On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > > [..]
> > > > There was a further set of patches queued for 3.9 to deal with connected
> > > > devices going to the Inactive state, but they looked like they were too
> > > > big for stable:
> > > > 
> > > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > > a24a607 USB: Rip out recursive call on warm port reset.
> > > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > > > 
> > > > Can you retry with Greg's usb-next branch?
> > > > 
> > > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git -b usb-next
> > > > 
> > > > If that fixes your problem, we should either get those additional
> > > > patches into 3.8 and the stable trees, or do a revert of the whole
> > > > series and just let 3.9 carry the full patchset.
> > > 
> > > Good news! This one does indeed work as expected - the device can be
> > > removed and is gone for good. Upstream & Stable plz :)
> > 
> > That kernel fixes the problem for me too.
> 
> Great!
> 
> Holger and Matthias, can you double check that cherry picking just those
> four patches on top of 3.7.7 or 3.8 works as well?

3.7.7 + those 4 patches workes for me.

As i'm not very firm in git i generated separate diffs for each commit 
and applying them in the order 2d4fa94 0fe51aa d3b9d7a a24a607 worked 
without hunks dropped.

I have attached `git diff` against vanilla 3.7.7, so you can check that 
i got it right.




-- 

Matthias

[-- Attachment #2: combined.diff.gz --]
[-- Type: application/octet-stream, Size: 2241 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 20:04                     ` Matthias Schniedermeyer
@ 2013-02-13 21:08                       ` Sarah Sharp
  2013-02-13 21:31                         ` Greg KH
  0 siblings, 1 reply; 19+ messages in thread
From: Sarah Sharp @ 2013-02-13 21:08 UTC (permalink / raw)
  To: Matthias Schniedermeyer, Greg KH
  Cc: Holger Hoffstätte, Jonathan Nieder, stable, linux-kernel,
	linux-usb, Tilman Schmidt, kernel-team,
	Herton Ronaldo Krzesinski

On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> On 13.02.2013 11:33, Sarah Sharp wrote:
> > On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> > > On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > > > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > > > [..]
> > > > > There was a further set of patches queued for 3.9 to deal with connected
> > > > > devices going to the Inactive state, but they looked like they were too
> > > > > big for stable:
> > > > > 
> > > > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > > > a24a607 USB: Rip out recursive call on warm port reset.
> > > > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > 
> > Holger and Matthias, can you double check that cherry picking just those
> > four patches on top of 3.7.7 or 3.8 works as well?
> 
> 3.7.7 + those 4 patches workes for me.
> 
> As i'm not very firm in git i generated separate diffs for each commit 
> and applying them in the order 2d4fa94 0fe51aa d3b9d7a a24a607 worked 
> without hunks dropped.
> 
> I have attached `git diff` against vanilla 3.7.7, so you can check that 
> i got it right.

Yep, that diff looks fine compared to the git diff of those four patches.

Greg,

How do you want to handle this?  The above four patches should go into
3.8 and stable, but they're not currently in Linus' tree and it's
probably too late in the cycle to merge them this week.  Should we just
wait until 3.9 is out and put the patches into the stable trees then?

My email shows that the bad commit
f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
fine with just reverting that commit from 3.8 and stable.

Sarah Sharp

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 21:08                       ` Sarah Sharp
@ 2013-02-13 21:31                         ` Greg KH
  2013-02-13 22:12                           ` Sarah Sharp
  0 siblings, 1 reply; 19+ messages in thread
From: Greg KH @ 2013-02-13 21:31 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: Matthias Schniedermeyer, Holger Hoffstätte, Jonathan Nieder,
	stable, linux-kernel, linux-usb, Tilman Schmidt, kernel-team,
	Herton Ronaldo Krzesinski

On Wed, Feb 13, 2013 at 01:08:46PM -0800, Sarah Sharp wrote:
> On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> > On 13.02.2013 11:33, Sarah Sharp wrote:
> > > On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> > > > On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > > > > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > > > > [..]
> > > > > > There was a further set of patches queued for 3.9 to deal with connected
> > > > > > devices going to the Inactive state, but they looked like they were too
> > > > > > big for stable:
> > > > > > 
> > > > > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > > > > a24a607 USB: Rip out recursive call on warm port reset.
> > > > > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > > > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > > 
> > > Holger and Matthias, can you double check that cherry picking just those
> > > four patches on top of 3.7.7 or 3.8 works as well?
> > 
> > 3.7.7 + those 4 patches workes for me.
> > 
> > As i'm not very firm in git i generated separate diffs for each commit 
> > and applying them in the order 2d4fa94 0fe51aa d3b9d7a a24a607 worked 
> > without hunks dropped.
> > 
> > I have attached `git diff` against vanilla 3.7.7, so you can check that 
> > i got it right.
> 
> Yep, that diff looks fine compared to the git diff of those four patches.
> 
> Greg,
> 
> How do you want to handle this?  The above four patches should go into
> 3.8 and stable, but they're not currently in Linus' tree and it's
> probably too late in the cycle to merge them this week.  Should we just
> wait until 3.9 is out and put the patches into the stable trees then?

> My email shows that the bad commit
> f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
> and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
> fine with just reverting that commit from 3.8 and stable.

It's probably easier at this point in time to just revert that commit,
leave the stable kernels alone, and then everything will be fixed in
3.9.  When the commits go into Linus's tree, we can backport everything
to the stable releases (including 3.8.1) at that point.

As long as someone remembers to send the needed information to
stable@vger.kernel.org, I know I'll forget :)

Sound ok?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 21:31                         ` Greg KH
@ 2013-02-13 22:12                           ` Sarah Sharp
  2013-03-01 16:48                             ` Greg KH
  0 siblings, 1 reply; 19+ messages in thread
From: Sarah Sharp @ 2013-02-13 22:12 UTC (permalink / raw)
  To: Greg KH
  Cc: Matthias Schniedermeyer, Holger Hoffstätte, Jonathan Nieder,
	stable, linux-kernel, linux-usb, Tilman Schmidt, kernel-team,
	Herton Ronaldo Krzesinski

On Wed, Feb 13, 2013 at 01:31:29PM -0800, Greg KH wrote:
> On Wed, Feb 13, 2013 at 01:08:46PM -0800, Sarah Sharp wrote:
> > On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> > > On 13.02.2013 11:33, Sarah Sharp wrote:
> > > > On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> > > > > On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > > > > > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > > > > > [..]
> > > > > > > There was a further set of patches queued for 3.9 to deal with connected
> > > > > > > devices going to the Inactive state, but they looked like they were too
> > > > > > > big for stable:
> > > > > > > 
> > > > > > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > > > > > a24a607 USB: Rip out recursive call on warm port reset.
> > > > > > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > > > > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > > > 
> > > > Holger and Matthias, can you double check that cherry picking just those
> > > > four patches on top of 3.7.7 or 3.8 works as well?
> > > 
> > > 3.7.7 + those 4 patches workes for me.
> > > 
> > > As i'm not very firm in git i generated separate diffs for each commit 
> > > and applying them in the order 2d4fa94 0fe51aa d3b9d7a a24a607 worked 
> > > without hunks dropped.
> > > 
> > > I have attached `git diff` against vanilla 3.7.7, so you can check that 
> > > i got it right.
> > 
> > Yep, that diff looks fine compared to the git diff of those four patches.
> > 
> > Greg,
> > 
> > How do you want to handle this?  The above four patches should go into
> > 3.8 and stable, but they're not currently in Linus' tree and it's
> > probably too late in the cycle to merge them this week.  Should we just
> > wait until 3.9 is out and put the patches into the stable trees then?
> 
> > My email shows that the bad commit
> > f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
> > and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
> > fine with just reverting that commit from 3.8 and stable.
> 
> It's probably easier at this point in time to just revert that commit,
> leave the stable kernels alone, and then everything will be fixed in
> 3.9.  When the commits go into Linus's tree, we can backport everything
> to the stable releases (including 3.8.1) at that point.
> 
> As long as someone remembers to send the needed information to
> stable@vger.kernel.org, I know I'll forget :)
> 
> Sound ok?

Yep, sounds fine.  I'll attempt to remember to send email to stable once
3.9 is out.

Sarah Sharp

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-02-13 22:12                           ` Sarah Sharp
@ 2013-03-01 16:48                             ` Greg KH
  2013-03-05 22:10                               ` Stable backport request, Was: " Sarah Sharp
  0 siblings, 1 reply; 19+ messages in thread
From: Greg KH @ 2013-03-01 16:48 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: Matthias Schniedermeyer, Holger Hoffstätte, Jonathan Nieder,
	stable, linux-kernel, linux-usb, Tilman Schmidt, kernel-team,
	Herton Ronaldo Krzesinski

On Wed, Feb 13, 2013 at 02:12:50PM -0800, Sarah Sharp wrote:
> On Wed, Feb 13, 2013 at 01:31:29PM -0800, Greg KH wrote:
> > On Wed, Feb 13, 2013 at 01:08:46PM -0800, Sarah Sharp wrote:
> > > On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> > > > On 13.02.2013 11:33, Sarah Sharp wrote:
> > > > > On Wed, Feb 13, 2013 at 06:16:56PM +0100, Matthias Schniedermeyer wrote:
> > > > > > On 13.02.2013 09:28, Holger Hoffstätte wrote:
> > > > > > > On 12.02.2013 21:42, Sarah Sharp wrote:
> > > > > > > > [..]
> > > > > > > > There was a further set of patches queued for 3.9 to deal with connected
> > > > > > > > devices going to the Inactive state, but they looked like they were too
> > > > > > > > big for stable:
> > > > > > > > 
> > > > > > > > d3b9d7a USB: Fix connected device switch to Inactive state.
> > > > > > > > a24a607 USB: Rip out recursive call on warm port reset.
> > > > > > > > 2d4fa94 USB: Prepare for refactoring by adding extra udev checks.
> > > > > > > > 0fe51aa USB: Don't use EHCI port sempahore for USB 3.0 hubs.
> > > > > 
> > > > > Holger and Matthias, can you double check that cherry picking just those
> > > > > four patches on top of 3.7.7 or 3.8 works as well?
> > > > 
> > > > 3.7.7 + those 4 patches workes for me.
> > > > 
> > > > As i'm not very firm in git i generated separate diffs for each commit 
> > > > and applying them in the order 2d4fa94 0fe51aa d3b9d7a a24a607 worked 
> > > > without hunks dropped.
> > > > 
> > > > I have attached `git diff` against vanilla 3.7.7, so you can check that 
> > > > i got it right.
> > > 
> > > Yep, that diff looks fine compared to the git diff of those four patches.
> > > 
> > > Greg,
> > > 
> > > How do you want to handle this?  The above four patches should go into
> > > 3.8 and stable, but they're not currently in Linus' tree and it's
> > > probably too late in the cycle to merge them this week.  Should we just
> > > wait until 3.9 is out and put the patches into the stable trees then?
> > 
> > > My email shows that the bad commit
> > > f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
> > > and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
> > > fine with just reverting that commit from 3.8 and stable.
> > 
> > It's probably easier at this point in time to just revert that commit,
> > leave the stable kernels alone, and then everything will be fixed in
> > 3.9.  When the commits go into Linus's tree, we can backport everything
> > to the stable releases (including 3.8.1) at that point.
> > 
> > As long as someone remembers to send the needed information to
> > stable@vger.kernel.org, I know I'll forget :)
> > 
> > Sound ok?
> 
> Yep, sounds fine.  I'll attempt to remember to send email to stable once
> 3.9 is out.

Did this happen yet?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Stable backport request, Was: Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-03-01 16:48                             ` Greg KH
@ 2013-03-05 22:10                               ` Sarah Sharp
  2013-03-06  2:11                                 ` Greg KH
  0 siblings, 1 reply; 19+ messages in thread
From: Sarah Sharp @ 2013-03-05 22:10 UTC (permalink / raw)
  To: Greg KH, stable
  Cc: Matthias Schniedermeyer, Holger Hoffstätte, Jonathan Nieder,
	linux-kernel, linux-usb, Tilman Schmidt, kernel-team,
	Herton Ronaldo Krzesinski

On Fri, Mar 01, 2013 at 08:48:39AM -0800, Greg KH wrote:
> On Wed, Feb 13, 2013 at 02:12:50PM -0800, Sarah Sharp wrote:
> > On Wed, Feb 13, 2013 at 01:31:29PM -0800, Greg KH wrote:
> > > On Wed, Feb 13, 2013 at 01:08:46PM -0800, Sarah Sharp wrote:
> > > > On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> > > > > On 13.02.2013 11:33, Sarah Sharp wrote:
> > > > Greg,
> > > > 
> > > > How do you want to handle this?  The above four patches should go into
> > > > 3.8 and stable, but they're not currently in Linus' tree and it's
> > > > probably too late in the cycle to merge them this week.  Should we just
> > > > wait until 3.9 is out and put the patches into the stable trees then?
> > > 
> > > > My email shows that the bad commit
> > > > f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
> > > > and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
> > > > fine with just reverting that commit from 3.8 and stable.
> > > 
> > > It's probably easier at this point in time to just revert that commit,
> > > leave the stable kernels alone, and then everything will be fixed in
> > > 3.9.  When the commits go into Linus's tree, we can backport everything
> > > to the stable releases (including 3.8.1) at that point.
> > > 
> > > As long as someone remembers to send the needed information to
> > > stable@vger.kernel.org, I know I'll forget :)
> > > 
> > > Sound ok?
> > 
> > Yep, sounds fine.  I'll attempt to remember to send email to stable once
> > 3.9 is out.
> 
> Did this happen yet?

Nope.  Here's the upstream commit IDs of the patches that need to be
backported to stable.  Let me know if you need them in patch form:

d3b9d7a9051d7024a93c76a84b2f84b3b66ad6d5 USB: Fix connected device switch to Inactive state.
a24a6078754f28528bc91e7e7b3e6ae86bd936d8 USB: Rip out recursive call on warm port reset.
2d4fa940f99663c82ba55b2244638833b388e4e2 USB: Prepare for refactoring by adding extra udev checks.
0fe51aa5eee51db7c7ecd201d42a977ad79c58b6 USB: Don't use EHCI port sempahore for USB 3.0 hubs.

Sarah Sharp

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Stable backport request, Was: Re: [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5)
  2013-03-05 22:10                               ` Stable backport request, Was: " Sarah Sharp
@ 2013-03-06  2:11                                 ` Greg KH
  0 siblings, 0 replies; 19+ messages in thread
From: Greg KH @ 2013-03-06  2:11 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: stable, Matthias Schniedermeyer, Holger Hoffstätte,
	Jonathan Nieder, linux-kernel, linux-usb, Tilman Schmidt,
	kernel-team, Herton Ronaldo Krzesinski

On Tue, Mar 05, 2013 at 02:10:50PM -0800, Sarah Sharp wrote:
> On Fri, Mar 01, 2013 at 08:48:39AM -0800, Greg KH wrote:
> > On Wed, Feb 13, 2013 at 02:12:50PM -0800, Sarah Sharp wrote:
> > > On Wed, Feb 13, 2013 at 01:31:29PM -0800, Greg KH wrote:
> > > > On Wed, Feb 13, 2013 at 01:08:46PM -0800, Sarah Sharp wrote:
> > > > > On Wed, Feb 13, 2013 at 09:04:13PM +0100, Matthias Schniedermeyer wrote:
> > > > > > On 13.02.2013 11:33, Sarah Sharp wrote:
> > > > > Greg,
> > > > > 
> > > > > How do you want to handle this?  The above four patches should go into
> > > > > 3.8 and stable, but they're not currently in Linus' tree and it's
> > > > > probably too late in the cycle to merge them this week.  Should we just
> > > > > wait until 3.9 is out and put the patches into the stable trees then?
> > > > 
> > > > > My email shows that the bad commit
> > > > > f7965c0846d74b270e246c1470ca955d5078eb07 has been added to the 3.2, 3.4,
> > > > > and 3.7 stable trees, as well as Canonical's 3.7 stable tree.  I'm also
> > > > > fine with just reverting that commit from 3.8 and stable.
> > > > 
> > > > It's probably easier at this point in time to just revert that commit,
> > > > leave the stable kernels alone, and then everything will be fixed in
> > > > 3.9.  When the commits go into Linus's tree, we can backport everything
> > > > to the stable releases (including 3.8.1) at that point.
> > > > 
> > > > As long as someone remembers to send the needed information to
> > > > stable@vger.kernel.org, I know I'll forget :)
> > > > 
> > > > Sound ok?
> > > 
> > > Yep, sounds fine.  I'll attempt to remember to send email to stable once
> > > 3.9 is out.
> > 
> > Did this happen yet?
> 
> Nope.  Here's the upstream commit IDs of the patches that need to be
> backported to stable.  Let me know if you need them in patch form:
> 
> d3b9d7a9051d7024a93c76a84b2f84b3b66ad6d5 USB: Fix connected device switch to Inactive state.

As this first patch doesn't apply to the 3.8-stable tree, and I can't
figure out how to fix it to work properly, I am going to need these in
patch forme, sorry.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-03-06  2:11 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-28  4:56 Linux 3.7.5 Greg KH
2013-01-28  4:57 ` Greg KH
     [not found] ` <pan.2013.01.28.11.42.16.556318@googlemail.com>
2013-01-28 14:39   ` Greg KH
     [not found]     ` <pan.2013.01.28.20.33.44.918987@googlemail.com>
2013-01-28 20:46       ` [regression] external HDD in USB3 enclosure cannot be dynamically removed (Re: Linux 3.7.5) Jonathan Nieder
2013-02-12  0:40         ` Sarah Sharp
2013-02-12  0:54           ` Jonathan Nieder
2013-02-12  8:36             ` Holger Hoffstätte
2013-02-12 10:35           ` Holger Hoffstätte
2013-02-12 20:42             ` Sarah Sharp
2013-02-13  8:28               ` Holger Hoffstätte
2013-02-13 17:16                 ` Matthias Schniedermeyer
2013-02-13 19:33                   ` Sarah Sharp
2013-02-13 20:04                     ` Matthias Schniedermeyer
2013-02-13 21:08                       ` Sarah Sharp
2013-02-13 21:31                         ` Greg KH
2013-02-13 22:12                           ` Sarah Sharp
2013-03-01 16:48                             ` Greg KH
2013-03-05 22:10                               ` Stable backport request, Was: " Sarah Sharp
2013-03-06  2:11                                 ` Greg KH

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).