linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
@ 2013-06-14 19:27 Jiang Liu
  2013-06-14 19:27 ` [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
                   ` (4 more replies)
  0 siblings, 5 replies; 47+ messages in thread
From: Jiang Liu @ 2013-06-14 19:27 UTC (permalink / raw)
  To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov
  Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	Jiang Liu, linux-pci, linux-kernel

Alexander E. Patrakov <patrakov@gmail.com> reports two bugs related to
dock station support on Sony VAIO VPCZ23A4R. Actually there are at least
four bugs related to Sony VAIO VPCZ23A4R dock support.
1) can't correctly detect hotplug slot for dock state
2) resource leak on undocking
3) resource allocation failure for dock devices
4) one bug in intel_snd_hda driver

Hi Alexander, could you please help to test the whole patchset?
Really get sleepy, it's already 3 oclock now, so please forgive me
if there any stupid mistakes.

Jiang Liu (4):
  ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
  ACPI, DOCK: resolve possible deadlock scenarios
  PCI, ACPI: fix device destroying order issue when handling dock
    notification
  ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io
    after docking

 drivers/acpi/dock.c                | 116 +++++++++++++++++++++----------------
 drivers/acpi/internal.h            |   5 ++
 drivers/acpi/scan.c                |   1 +
 drivers/pci/hotplug/acpiphp_glue.c |  54 ++++++++++++-----
 drivers/pci/pci.h                  |   5 ++
 drivers/pci/setup-bus.c            |   8 +--
 include/acpi/acpi_drivers.h        |   2 +
 7 files changed, 121 insertions(+), 70 deletions(-)

-- 
1.8.1.2


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

* [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
  2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
@ 2013-06-14 19:27 ` Jiang Liu
  2013-06-15  6:51   ` Yinghai Lu
  2013-06-14 19:27 ` [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios Jiang Liu
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-14 19:27 UTC (permalink / raw)
  To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov
  Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	Jiang Liu, linux-pci, linux-kernel, stable

Changeset "3b63aaa70e1 PCI: acpiphp: Do not use ACPI PCI subdriver
mechanism" causes a regression which breaks ACPI dock support,
please refer to https://bugzilla.kernel.org/show_bug.cgi?id=59501

The root cause is that changeset 3b63aaa70e1 changed the relative
initialization order of ACPI dock subsystem and acpiphp driver,
and acpiphp driver has dependency on ACPI dock subsystem's
initialization result, so that acpiphp can't correctly detect ACPI
dock stations now.

On the other hand, ACPI dock is a built-in driver, so we could
explicitly initialize it before the acpiphp driver is used.

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: <stable@vger.kernel.org> # 3.9+
---
 drivers/acpi/dock.c     | 7 +------
 drivers/acpi/internal.h | 5 +++++
 drivers/acpi/scan.c     | 1 +
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 4fdea38..02b0563 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -1033,7 +1033,7 @@ find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
-static int __init dock_init(void)
+int __init acpi_dock_init(void)
 {
 	if (acpi_disabled)
 		return 0;
@@ -1062,9 +1062,4 @@ static void __exit dock_exit(void)
 		dock_remove(dock_station);
 }
 
-/*
- * Must be called before drivers of devices in dock, otherwise we can't know
- * which devices are in a dock
- */
-subsys_initcall(dock_init);
 module_exit(dock_exit);
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 297cbf4..c610a76 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -40,6 +40,11 @@ void acpi_container_init(void);
 #else
 static inline void acpi_container_init(void) {}
 #endif
+#ifdef CONFIG_ACPI_DOCK
+void acpi_dock_init(void);
+#else
+static inline void acpi_dock_init(void) {}
+#endif
 #ifdef CONFIG_ACPI_HOTPLUG_MEMORY
 void acpi_memory_hotplug_init(void);
 #else
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 44225cb..4148163 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -2045,6 +2045,7 @@ int __init acpi_scan_init(void)
 	acpi_lpss_init();
 	acpi_container_init();
 	acpi_memory_hotplug_init();
+	acpi_dock_init();
 
 	mutex_lock(&acpi_scan_lock);
 	/*
-- 
1.8.1.2


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

* [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
  2013-06-14 19:27 ` [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
@ 2013-06-14 19:27 ` Jiang Liu
  2013-06-14 22:21   ` Rafael J. Wysocki
  2013-06-14 19:28 ` [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification Jiang Liu
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-14 19:27 UTC (permalink / raw)
  To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov
  Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	Jiang Liu, linux-pci, linux-kernel, Len Brown, stable

This is a preparation for next patch to avoid breaking bisecting.
If next patch is applied without this one, it will cause deadlock
as below:

Case 1:
[   31.015593]  Possible unsafe locking scenario:

[   31.018350]        CPU0                    CPU1
[   31.019691]        ----                    ----
[   31.021002]   lock(&dock_station->hp_lock);
[   31.022327]                                lock(&slot->crit_sect);
[   31.023650]                                lock(&dock_station->hp_lock);
[   31.025010]   lock(&slot->crit_sect);
[   31.026342]

Case 2:
        hotplug_dock_devices()
                mutex_lock(&ds->hp_lock)
                        dd->ops->handler()
                                register_hotplug_dock_device()
                                        mutex_lock(&ds->hp_lock)
[   34.316570] [ INFO: possible recursive locking detected ]
[   34.316573] 3.10.0-rc4 #6 Tainted: G         C
[   34.316575] ---------------------------------------------
[   34.316577] kworker/0:0/4 is trying to acquire lock:
[   34.316579]  (&dock_station->hp_lock){+.+.+.}, at:
[<ffffffff813c766b>] register_hotplug_dock_device+0x6a/0xbf
[   34.316588]
but task is already holding lock:
[   34.316590]  (&dock_station->hp_lock){+.+.+.}, at:
[<ffffffff813c7270>] hotplug_dock_devices+0x2c/0xda
[   34.316595]
other info that might help us debug this:
[   34.316597]  Possible unsafe locking scenario:

[   34.316599]        CPU0
[   34.316601]        ----
[   34.316602]   lock(&dock_station->hp_lock);
[   34.316605]   lock(&dock_station->hp_lock);
[   34.316608]
 *** DEADLOCK ***

So fix this deadlock by not taking ds->hp_lock in function
register_hotplug_dock_device(). This patch also fixes a possible
race conditions in function dock_event() because previously it
accesses ds->hotplug_devices list without holding ds->hp_lock.

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Yijing Wang <wangyijing@huawei.com>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: <stable@vger.kernel.org> # 3.8+
---
 drivers/acpi/dock.c                | 109 ++++++++++++++++++++++---------------
 drivers/pci/hotplug/acpiphp_glue.c |  15 +++++
 include/acpi/acpi_drivers.h        |   2 +
 3 files changed, 82 insertions(+), 44 deletions(-)

diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 02b0563..602bce5 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -66,7 +66,7 @@ struct dock_station {
 	spinlock_t dd_lock;
 	struct mutex hp_lock;
 	struct list_head dependent_devices;
-	struct list_head hotplug_devices;
+	struct klist hotplug_devices;
 
 	struct list_head sibling;
 	struct platform_device *dock_device;
@@ -76,12 +76,18 @@ static int dock_station_count;
 
 struct dock_dependent_device {
 	struct list_head list;
-	struct list_head hotplug_list;
+	acpi_handle handle;
+};
+
+struct dock_hotplug_info {
+	struct klist_node node;
 	acpi_handle handle;
 	const struct acpi_dock_ops *ops;
 	void *context;
 };
 
+#define node_to_info(n)	container_of((n), struct dock_hotplug_info, node)
+
 #define DOCK_DOCKING	0x00000001
 #define DOCK_UNDOCKING  0x00000002
 #define DOCK_IS_DOCK	0x00000010
@@ -111,7 +117,6 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
 
 	dd->handle = handle;
 	INIT_LIST_HEAD(&dd->list);
-	INIT_LIST_HEAD(&dd->hotplug_list);
 
 	spin_lock(&ds->dd_lock);
 	list_add_tail(&dd->list, &ds->dependent_devices);
@@ -120,36 +125,19 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
 	return 0;
 }
 
-/**
- * dock_add_hotplug_device - associate a hotplug handler with the dock station
- * @ds: The dock station
- * @dd: The dependent device struct
- *
- * Add the dependent device to the dock's hotplug device list
- */
-static void
-dock_add_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
+static void hotplug_info_get(struct klist_node *node)
 {
-	mutex_lock(&ds->hp_lock);
-	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
-	mutex_unlock(&ds->hp_lock);
+	struct dock_hotplug_info *info = node_to_info(node);
+
+	info->ops->get(info->context);
 }
 
-/**
- * dock_del_hotplug_device - remove a hotplug handler from the dock station
- * @ds: The dock station
- * @dd: the dependent device struct
- *
- * Delete the dependent device from the dock's hotplug device list
- */
-static void
-dock_del_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
+static void hotplug_info_put(struct klist_node *node)
 {
-	mutex_lock(&ds->hp_lock);
-	list_del(&dd->hotplug_list);
-	mutex_unlock(&ds->hp_lock);
+	struct dock_hotplug_info *info = node_to_info(node);
+
+	info->ops->put(info->context);
+	kfree(info);
 }
 
 /**
@@ -354,15 +342,22 @@ static void dock_remove_acpi_device(acpi_handle handle)
 static void hotplug_dock_devices(struct dock_station *ds, u32 event)
 {
 	struct dock_dependent_device *dd;
+	struct klist_iter iter;
+	struct klist_node *node;
+	struct dock_hotplug_info *info;
 
 	mutex_lock(&ds->hp_lock);
 
 	/*
 	 * First call driver specific hotplug functions
 	 */
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
-		if (dd->ops && dd->ops->handler)
-			dd->ops->handler(dd->handle, event, dd->context);
+	klist_iter_init(&ds->hotplug_devices, &iter);
+	while ((node = klist_next(&iter))) {
+		info = node_to_info(node);
+		if (info->ops && info->ops->handler)
+			info->ops->handler(info->handle, event, info->context);
+	}
+	klist_iter_exit(&iter);
 
 	/*
 	 * Now make sure that an acpi_device is created for each
@@ -384,7 +379,9 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
 	struct device *dev = &ds->dock_device->dev;
 	char event_string[13];
 	char *envp[] = { event_string, NULL };
-	struct dock_dependent_device *dd;
+	struct klist_iter iter;
+	struct klist_node *node;
+	struct dock_hotplug_info *info;
 
 	if (num == UNDOCK_EVENT)
 		sprintf(event_string, "EVENT=undock");
@@ -398,9 +395,13 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
 	if (num == DOCK_EVENT)
 		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
 
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
-		if (dd->ops && dd->ops->uevent)
-			dd->ops->uevent(dd->handle, event, dd->context);
+	klist_iter_init(&ds->hotplug_devices, &iter);
+	while ((node = klist_next(&iter))) {
+		info = node_to_info(node);
+		if (info->ops && info->ops->handler)
+			info->ops->handler(info->handle, event, info->context);
+	}
+	klist_iter_exit(&iter);
 
 	if (num != DOCK_EVENT)
 		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
@@ -580,12 +581,16 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
 			     void *context)
 {
 	struct dock_dependent_device *dd;
+	struct dock_hotplug_info *info;
 	struct dock_station *dock_station;
 	int ret = -EINVAL;
 
 	if (!dock_station_count)
 		return -ENODEV;
 
+	if (ops == NULL || ops->get == NULL || ops->put == NULL)
+		return -EINVAL;
+
 	/*
 	 * make sure this handle is for a device dependent on the dock,
 	 * this would include the dock station itself
@@ -598,9 +603,18 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
 		 */
 		dd = find_dock_dependent_device(dock_station, handle);
 		if (dd) {
-			dd->ops = ops;
-			dd->context = context;
-			dock_add_hotplug_device(dock_station, dd);
+			info = kzalloc(sizeof(*info), GFP_KERNEL);
+			if (!info) {
+				unregister_hotplug_dock_device(handle);
+				ret = -ENOMEM;
+				break;
+			}
+
+			info->ops = ops;
+			info->context = context;
+			info->handle = dd->handle;
+			klist_add_tail(&info->node,
+				       &dock_station->hotplug_devices);
 			ret = 0;
 		}
 	}
@@ -615,16 +629,22 @@ EXPORT_SYMBOL_GPL(register_hotplug_dock_device);
  */
 void unregister_hotplug_dock_device(acpi_handle handle)
 {
-	struct dock_dependent_device *dd;
 	struct dock_station *dock_station;
+	struct klist_iter iter;
+	struct klist_node *node;
+	struct dock_hotplug_info *info;
 
 	if (!dock_station_count)
 		return;
 
 	list_for_each_entry(dock_station, &dock_stations, sibling) {
-		dd = find_dock_dependent_device(dock_station, handle);
-		if (dd)
-			dock_del_hotplug_device(dock_station, dd);
+		klist_iter_init(&dock_station->hotplug_devices, &iter);
+		while ((node = klist_next(&iter))) {
+			info = node_to_info(node);
+			if (info->handle == handle)
+				klist_del(&info->node);
+		}
+		klist_iter_exit(&iter);
 	}
 }
 EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
@@ -951,7 +971,8 @@ static int __init dock_add(acpi_handle handle)
 	mutex_init(&dock_station->hp_lock);
 	spin_lock_init(&dock_station->dd_lock);
 	INIT_LIST_HEAD(&dock_station->sibling);
-	INIT_LIST_HEAD(&dock_station->hotplug_devices);
+	klist_init(&dock_station->hotplug_devices,
+		   hotplug_info_get, hotplug_info_put);
 	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
 	INIT_LIST_HEAD(&dock_station->dependent_devices);
 
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 716aa93..5d696f5 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -145,9 +145,24 @@ static int post_dock_fixups(struct notifier_block *nb, unsigned long val,
 	return NOTIFY_OK;
 }
 
+static void acpiphp_dock_get(void *data)
+{
+	struct acpiphp_func *func = data;
+
+	get_bridge(func->slot->bridge);
+}
+
+static void acpiphp_dock_put(void *data)
+{
+	struct acpiphp_func *func = data;
+
+	put_bridge(func->slot->bridge);
+}
 
 static const struct acpi_dock_ops acpiphp_dock_ops = {
 	.handler = handle_hotplug_event_func,
+	.get = acpiphp_dock_get,
+	.put = acpiphp_dock_put,
 };
 
 /* Check whether the PCI device is managed by native PCIe hotplug driver */
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index e6168a2..8fcc9ac 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -115,6 +115,8 @@ void pci_acpi_crs_quirks(void);
 struct acpi_dock_ops {
 	acpi_notify_handler handler;
 	acpi_notify_handler uevent;
+	void (*get)(void *data);
+	void (*put)(void *data);
 };
 
 #if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
-- 
1.8.1.2


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

* [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification
  2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
  2013-06-14 19:27 ` [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
  2013-06-14 19:27 ` [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios Jiang Liu
@ 2013-06-14 19:28 ` Jiang Liu
  2013-06-15  6:50   ` Yinghai Lu
  2013-06-14 19:28 ` [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking Jiang Liu
  2013-06-15  6:42 ` [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Alexander E. Patrakov
  4 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-14 19:28 UTC (permalink / raw)
  To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov
  Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	Jiang Liu, linux-pci, linux-kernel, Rafael J. Wysocki

Current ACPI glue logic expects that physical devices are destroyed
before destroying companion ACPI devices, otherwise it will break the
ACPI unbind logic and cause following warning messages:
[  185.026073] usb usb5: Oops, 'acpi_handle' corrupt
[  185.035150] pci 0000:1b:00.0: Oops, 'acpi_handle' corrupt
[  185.035515] pci 0000:18:02.0: Oops, 'acpi_handle' corrupt
[  180.013656]  port1: Oops, 'acpi_handle' corrupt
Please refer to https://bugzilla.kernel.org/attachment.cgi?id=104321
for full log message.

Above warning messages are caused by following scenario:
1) acpi_dock_notifier_call() queues a task (T1) onto kacpi_hotplug_wq
2) kacpi_hotplug_wq handles T1, which invokes acpi_dock_deferred_cb()
   ->dock_notify()-> handle_eject_request()->hotplug_dock_devices()
3) hotplug_dock_devices() first invokes registered hotplug callbacks to
   destroy physical devices, then destroys all affected ACPI devices.
   Everything seems perfect until now. But the acpiphp dock notification
   handler will queue another task (T2) onto kacpi_hotplug_wq to really
   destroy affected physical devices.
4) kacpi_hotplug_wq finishes T1, and all affected ACPI devices have
   been destroyed.
5) kacpi_hotplug_wq handles T2, which destroys all affected physical
   devices.

So it breaks ACPI glue logic's expection because ACPI devices are destroyed
in step 3 and physical devices are destroyed in step 5.

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org # 3.8+
---
 drivers/pci/hotplug/acpiphp_glue.c | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 5d696f5..a65203b 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -61,6 +61,8 @@ static DEFINE_MUTEX(bridge_mutex);
 static void handle_hotplug_event_bridge (acpi_handle, u32, void *);
 static void acpiphp_sanitize_bus(struct pci_bus *bus);
 static void acpiphp_set_hpp_values(struct pci_bus *bus);
+static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
+				       void *context);
 static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context);
 static void free_bridge(struct kref *kref);
 
@@ -160,7 +162,7 @@ static void acpiphp_dock_put(void *data)
 }
 
 static const struct acpi_dock_ops acpiphp_dock_ops = {
-	.handler = handle_hotplug_event_func,
+	.handler = _handle_hotplug_event_func,
 	.get = acpiphp_dock_get,
 	.put = acpiphp_dock_put,
 };
@@ -1080,22 +1082,13 @@ static void handle_hotplug_event_bridge(acpi_handle handle, u32 type,
 	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_bridge);
 }
 
-static void _handle_hotplug_event_func(struct work_struct *work)
+static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
+				       void *context)
 {
-	struct acpiphp_func *func;
+	struct acpiphp_func *func = context;
 	char objname[64];
 	struct acpi_buffer buffer = { .length = sizeof(objname),
 				      .pointer = objname };
-	struct acpi_hp_work *hp_work;
-	acpi_handle handle;
-	u32 type;
-
-	hp_work = container_of(work, struct acpi_hp_work, work);
-	handle = hp_work->handle;
-	type = hp_work->type;
-	func = (struct acpiphp_func *)hp_work->context;
-
-	acpi_scan_lock_acquire();
 
 	acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
 
@@ -1128,7 +1121,18 @@ static void _handle_hotplug_event_func(struct work_struct *work)
 		warn("notify_handler: unknown event type 0x%x for %s\n", type, objname);
 		break;
 	}
+}
+
+static void _handle_hotplug_event_cb(struct work_struct *work)
+{
+	struct acpiphp_func *func;
+	struct acpi_hp_work *hp_work;
 
+	hp_work = container_of(work, struct acpi_hp_work, work);
+	func = (struct acpiphp_func *)hp_work->context;
+	acpi_scan_lock_acquire();
+	_handle_hotplug_event_func(hp_work->handle, hp_work->type,
+				    hp_work->context);
 	acpi_scan_lock_release();
 	kfree(hp_work); /* allocated in handle_hotplug_event_func */
 	put_bridge(func->slot->bridge);
@@ -1156,7 +1160,7 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type,
 	 * don't deadlock on hotplug actions.
 	 */
 	get_bridge(func->slot->bridge);
-	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_func);
+	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_cb);
 }
 
 /*
-- 
1.8.1.2


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

* [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking
  2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
                   ` (2 preceding siblings ...)
  2013-06-14 19:28 ` [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification Jiang Liu
@ 2013-06-14 19:28 ` Jiang Liu
  2013-06-14 21:03   ` Yinghai Lu
  2013-06-17 11:57   ` Rafael J. Wysocki
  2013-06-15  6:42 ` [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Alexander E. Patrakov
  4 siblings, 2 replies; 47+ messages in thread
From: Jiang Liu @ 2013-06-14 19:28 UTC (permalink / raw)
  To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov
  Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	Jiang Liu, linux-pci, linux-kernel, stable

Please refer to https://bugzilla.kernel.org/show_bug.cgi?id=56531 for
more information.

This issue is caused by differences in PCI resource assignment between
boot time and runtime hotplug. On x86 platforms, OS respects PCI
resource assignment from BIOS and only reassign resources for unassigned
BARs at boot time. But with acpiphp, it ignores BIOS resource assignment
and reassign all resources by itself.

If we have enough resources, reassigning all PCI resources should work
too, but it may fail if we are under resource constraints. On the other
handle, current PCI MMIO alignment algorithm may waste huge MMIO address
space if we have some PCI devices with huge MMIO BARs.

On this Sony laptop, BIOS allocates limited MMIO resources for the dock
station and the dock station has a gfx which has a 256MB MMIO BAR.
So current acpiphp driver fails to allocate resources for most devices
on the dock station.

So change acpiphp driver to follow boot time behavior to respect BIOS
resource assignment.

Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: <stable@vger.kernel.org>
---
 drivers/pci/hotplug/acpiphp_glue.c | 7 +++++--
 drivers/pci/pci.h                  | 5 +++++
 drivers/pci/setup-bus.c            | 8 ++++----
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index a65203b..f4a53e9 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -687,6 +687,7 @@ static int __ref enable_device(struct acpiphp_slot *slot)
 	struct pci_bus *bus = slot->bridge->pci_bus;
 	struct acpiphp_func *func;
 	int num, max, pass;
+	LIST_HEAD(add_list);
 
 	if (slot->flags & SLOT_ENABLED)
 		goto err_exit;
@@ -711,13 +712,15 @@ static int __ref enable_device(struct acpiphp_slot *slot)
 				max = pci_scan_bridge(bus, dev, max, pass);
 				if (pass && dev->subordinate) {
 					check_hotplug_bridge(slot, dev);
-					pci_bus_size_bridges(dev->subordinate);
+					pcibios_resource_survey_bus(dev->subordinate);
+					__pci_bus_size_bridges(dev->subordinate,
+							       &add_list);
 				}
 			}
 		}
 	}
 
-	pci_bus_assign_resources(bus);
+	__pci_bus_assign_resources(bus, &add_list, NULL);
 	acpiphp_sanitize_bus(bus);
 	acpiphp_set_hpp_values(bus);
 	acpiphp_set_acpi_region(slot);
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 68678ed..d1182c4 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -202,6 +202,11 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
 		    struct resource *res, unsigned int reg);
 int pci_resource_bar(struct pci_dev *dev, int resno, enum pci_bar_type *type);
 void pci_configure_ari(struct pci_dev *dev);
+void __ref __pci_bus_size_bridges(struct pci_bus *bus,
+			struct list_head *realloc_head);
+void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
+				      struct list_head *realloc_head,
+				      struct list_head *fail_head);
 
 /**
  * pci_ari_enabled - query ARI forwarding status
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 16abaaa..d254e23 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -1044,7 +1044,7 @@ handle_done:
 	;
 }
 
-static void __ref __pci_bus_size_bridges(struct pci_bus *bus,
+void __ref __pci_bus_size_bridges(struct pci_bus *bus,
 			struct list_head *realloc_head)
 {
 	struct pci_dev *dev;
@@ -1115,9 +1115,9 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
 }
 EXPORT_SYMBOL(pci_bus_size_bridges);
 
-static void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
-					 struct list_head *realloc_head,
-					 struct list_head *fail_head)
+void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
+				      struct list_head *realloc_head,
+				      struct list_head *fail_head)
 {
 	struct pci_bus *b;
 	struct pci_dev *dev;
-- 
1.8.1.2


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

* Re: [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking
  2013-06-14 19:28 ` [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking Jiang Liu
@ 2013-06-14 21:03   ` Yinghai Lu
  2013-06-17 11:57   ` Rafael J. Wysocki
  1 sibling, 0 replies; 47+ messages in thread
From: Yinghai Lu @ 2013-06-14 21:03 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, ACPI Devel Maling List,
	Jiang Liu, linux-pci, Linux Kernel Mailing List, stable

On Fri, Jun 14, 2013 at 12:28 PM, Jiang Liu <jiang.liu@huawei.com> wrote:
> Please refer to https://bugzilla.kernel.org/show_bug.cgi?id=56531 for
> more information.
>
> This issue is caused by differences in PCI resource assignment between
> boot time and runtime hotplug. On x86 platforms, OS respects PCI
> resource assignment from BIOS and only reassign resources for unassigned
> BARs at boot time. But with acpiphp, it ignores BIOS resource assignment
> and reassign all resources by itself.
>
> If we have enough resources, reassigning all PCI resources should work
> too, but it may fail if we are under resource constraints. On the other
> handle, current PCI MMIO alignment algorithm may waste huge MMIO address
> space if we have some PCI devices with huge MMIO BARs.
>
> On this Sony laptop, BIOS allocates limited MMIO resources for the dock
> station and the dock station has a gfx which has a 256MB MMIO BAR.
> So current acpiphp driver fails to allocate resources for most devices
> on the dock station.
>
> So change acpiphp driver to follow boot time behavior to respect BIOS
> resource assignment.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
> Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: <stable@vger.kernel.org>

Acked-by: Yinghai Lu <yinghai@kernel.org>

> ---
>  drivers/pci/hotplug/acpiphp_glue.c | 7 +++++--
>  drivers/pci/pci.h                  | 5 +++++
>  drivers/pci/setup-bus.c            | 8 ++++----
>  3 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index a65203b..f4a53e9 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -687,6 +687,7 @@ static int __ref enable_device(struct acpiphp_slot *slot)
>         struct pci_bus *bus = slot->bridge->pci_bus;
>         struct acpiphp_func *func;
>         int num, max, pass;
> +       LIST_HEAD(add_list);
>
>         if (slot->flags & SLOT_ENABLED)
>                 goto err_exit;
> @@ -711,13 +712,15 @@ static int __ref enable_device(struct acpiphp_slot *slot)
>                                 max = pci_scan_bridge(bus, dev, max, pass);
>                                 if (pass && dev->subordinate) {
>                                         check_hotplug_bridge(slot, dev);
> -                                       pci_bus_size_bridges(dev->subordinate);
> +                                       pcibios_resource_survey_bus(dev->subordinate);
> +                                       __pci_bus_size_bridges(dev->subordinate,
> +                                                              &add_list);
>                                 }
>                         }
>                 }
>         }
>
> -       pci_bus_assign_resources(bus);
> +       __pci_bus_assign_resources(bus, &add_list, NULL);
>         acpiphp_sanitize_bus(bus);
>         acpiphp_set_hpp_values(bus);
>         acpiphp_set_acpi_region(slot);
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index 68678ed..d1182c4 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -202,6 +202,11 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
>                     struct resource *res, unsigned int reg);
>  int pci_resource_bar(struct pci_dev *dev, int resno, enum pci_bar_type *type);
>  void pci_configure_ari(struct pci_dev *dev);
> +void __ref __pci_bus_size_bridges(struct pci_bus *bus,
> +                       struct list_head *realloc_head);
> +void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> +                                     struct list_head *realloc_head,
> +                                     struct list_head *fail_head);
>
>  /**
>   * pci_ari_enabled - query ARI forwarding status
> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> index 16abaaa..d254e23 100644
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -1044,7 +1044,7 @@ handle_done:
>         ;
>  }
>
> -static void __ref __pci_bus_size_bridges(struct pci_bus *bus,
> +void __ref __pci_bus_size_bridges(struct pci_bus *bus,
>                         struct list_head *realloc_head)
>  {
>         struct pci_dev *dev;
> @@ -1115,9 +1115,9 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
>  }
>  EXPORT_SYMBOL(pci_bus_size_bridges);
>
> -static void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> -                                        struct list_head *realloc_head,
> -                                        struct list_head *fail_head)
> +void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> +                                     struct list_head *realloc_head,
> +                                     struct list_head *fail_head)
>  {
>         struct pci_bus *b;
>         struct pci_dev *dev;
> --
> 1.8.1.2
>

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-14 19:27 ` [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios Jiang Liu
@ 2013-06-14 22:21   ` Rafael J. Wysocki
  2013-06-15  1:44     ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 22:21 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel, Len Brown, stable

On Saturday, June 15, 2013 03:27:59 AM Jiang Liu wrote:
> This is a preparation for next patch to avoid breaking bisecting.
> If next patch is applied without this one, it will cause deadlock
> as below:
> 
> Case 1:
> [   31.015593]  Possible unsafe locking scenario:
> 
> [   31.018350]        CPU0                    CPU1
> [   31.019691]        ----                    ----
> [   31.021002]   lock(&dock_station->hp_lock);
> [   31.022327]                                lock(&slot->crit_sect);
> [   31.023650]                                lock(&dock_station->hp_lock);
> [   31.025010]   lock(&slot->crit_sect);
> [   31.026342]
> 
> Case 2:
>         hotplug_dock_devices()
>                 mutex_lock(&ds->hp_lock)
>                         dd->ops->handler()
>                                 register_hotplug_dock_device()
>                                         mutex_lock(&ds->hp_lock)
> [   34.316570] [ INFO: possible recursive locking detected ]
> [   34.316573] 3.10.0-rc4 #6 Tainted: G         C
> [   34.316575] ---------------------------------------------
> [   34.316577] kworker/0:0/4 is trying to acquire lock:
> [   34.316579]  (&dock_station->hp_lock){+.+.+.}, at:
> [<ffffffff813c766b>] register_hotplug_dock_device+0x6a/0xbf
> [   34.316588]
> but task is already holding lock:
> [   34.316590]  (&dock_station->hp_lock){+.+.+.}, at:
> [<ffffffff813c7270>] hotplug_dock_devices+0x2c/0xda
> [   34.316595]
> other info that might help us debug this:
> [   34.316597]  Possible unsafe locking scenario:
> 
> [   34.316599]        CPU0
> [   34.316601]        ----
> [   34.316602]   lock(&dock_station->hp_lock);
> [   34.316605]   lock(&dock_station->hp_lock);
> [   34.316608]
>  *** DEADLOCK ***
> 
> So fix this deadlock by not taking ds->hp_lock in function
> register_hotplug_dock_device(). This patch also fixes a possible
> race conditions in function dock_event() because previously it
> accesses ds->hotplug_devices list without holding ds->hp_lock.
> 
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Yijing Wang <wangyijing@huawei.com>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-pci@vger.kernel.org
> Cc: <stable@vger.kernel.org> # 3.8+
> ---
>  drivers/acpi/dock.c                | 109 ++++++++++++++++++++++---------------
>  drivers/pci/hotplug/acpiphp_glue.c |  15 +++++
>  include/acpi/acpi_drivers.h        |   2 +
>  3 files changed, 82 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 02b0563..602bce5 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -66,7 +66,7 @@ struct dock_station {
>  	spinlock_t dd_lock;
>  	struct mutex hp_lock;
>  	struct list_head dependent_devices;
> -	struct list_head hotplug_devices;
> +	struct klist hotplug_devices;
>  
>  	struct list_head sibling;
>  	struct platform_device *dock_device;
> @@ -76,12 +76,18 @@ static int dock_station_count;
>  
>  struct dock_dependent_device {
>  	struct list_head list;
> -	struct list_head hotplug_list;
> +	acpi_handle handle;
> +};
> +
> +struct dock_hotplug_info {
> +	struct klist_node node;
>  	acpi_handle handle;
>  	const struct acpi_dock_ops *ops;
>  	void *context;
>  };

Can we please relax a bit and possibly take a step back?

So since your last reply to me wasn't particularly helpful, I went through the
code in dock.c and acpiphp_glue.c and I simply think that the whole
hotplug_list thing is simply redundant.

It looks like instead of using it (or the klist in this patch), we can add a
"hotlpug_device" flag to dock_dependent_device and set that flag instead of
adding dd to hotplug_devices or clear it instead of removing dd from that list.

That would allow us to avoid the deadlock, because we wouldn't need the hp_lock
any more and perhaps we could make the code simpler instead of making it more
complex.

How does that sound?

Rafael


> +#define node_to_info(n)	container_of((n), struct dock_hotplug_info, node)
> +
>  #define DOCK_DOCKING	0x00000001
>  #define DOCK_UNDOCKING  0x00000002
>  #define DOCK_IS_DOCK	0x00000010
> @@ -111,7 +117,6 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
>  
>  	dd->handle = handle;
>  	INIT_LIST_HEAD(&dd->list);
> -	INIT_LIST_HEAD(&dd->hotplug_list);
>  
>  	spin_lock(&ds->dd_lock);
>  	list_add_tail(&dd->list, &ds->dependent_devices);
> @@ -120,36 +125,19 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
>  	return 0;
>  }
>  
> -/**
> - * dock_add_hotplug_device - associate a hotplug handler with the dock station
> - * @ds: The dock station
> - * @dd: The dependent device struct
> - *
> - * Add the dependent device to the dock's hotplug device list
> - */
> -static void
> -dock_add_hotplug_device(struct dock_station *ds,
> -			struct dock_dependent_device *dd)
> +static void hotplug_info_get(struct klist_node *node)
>  {
> -	mutex_lock(&ds->hp_lock);
> -	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> -	mutex_unlock(&ds->hp_lock);
> +	struct dock_hotplug_info *info = node_to_info(node);
> +
> +	info->ops->get(info->context);
>  }
>  
> -/**
> - * dock_del_hotplug_device - remove a hotplug handler from the dock station
> - * @ds: The dock station
> - * @dd: the dependent device struct
> - *
> - * Delete the dependent device from the dock's hotplug device list
> - */
> -static void
> -dock_del_hotplug_device(struct dock_station *ds,
> -			struct dock_dependent_device *dd)
> +static void hotplug_info_put(struct klist_node *node)
>  {
> -	mutex_lock(&ds->hp_lock);
> -	list_del(&dd->hotplug_list);
> -	mutex_unlock(&ds->hp_lock);
> +	struct dock_hotplug_info *info = node_to_info(node);
> +
> +	info->ops->put(info->context);
> +	kfree(info);
>  }
>  
>  /**
> @@ -354,15 +342,22 @@ static void dock_remove_acpi_device(acpi_handle handle)
>  static void hotplug_dock_devices(struct dock_station *ds, u32 event)
>  {
>  	struct dock_dependent_device *dd;
> +	struct klist_iter iter;
> +	struct klist_node *node;
> +	struct dock_hotplug_info *info;
>  
>  	mutex_lock(&ds->hp_lock);
>  
>  	/*
>  	 * First call driver specific hotplug functions
>  	 */
> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> -		if (dd->ops && dd->ops->handler)
> -			dd->ops->handler(dd->handle, event, dd->context);
> +	klist_iter_init(&ds->hotplug_devices, &iter);
> +	while ((node = klist_next(&iter))) {
> +		info = node_to_info(node);
> +		if (info->ops && info->ops->handler)
> +			info->ops->handler(info->handle, event, info->context);
> +	}
> +	klist_iter_exit(&iter);
>  
>  	/*
>  	 * Now make sure that an acpi_device is created for each
> @@ -384,7 +379,9 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
>  	struct device *dev = &ds->dock_device->dev;
>  	char event_string[13];
>  	char *envp[] = { event_string, NULL };
> -	struct dock_dependent_device *dd;
> +	struct klist_iter iter;
> +	struct klist_node *node;
> +	struct dock_hotplug_info *info;
>  
>  	if (num == UNDOCK_EVENT)
>  		sprintf(event_string, "EVENT=undock");
> @@ -398,9 +395,13 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
>  	if (num == DOCK_EVENT)
>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>  
> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> -		if (dd->ops && dd->ops->uevent)
> -			dd->ops->uevent(dd->handle, event, dd->context);
> +	klist_iter_init(&ds->hotplug_devices, &iter);
> +	while ((node = klist_next(&iter))) {
> +		info = node_to_info(node);
> +		if (info->ops && info->ops->handler)
> +			info->ops->handler(info->handle, event, info->context);
> +	}
> +	klist_iter_exit(&iter);
>  
>  	if (num != DOCK_EVENT)
>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
> @@ -580,12 +581,16 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
>  			     void *context)
>  {
>  	struct dock_dependent_device *dd;
> +	struct dock_hotplug_info *info;
>  	struct dock_station *dock_station;
>  	int ret = -EINVAL;
>  
>  	if (!dock_station_count)
>  		return -ENODEV;
>  
> +	if (ops == NULL || ops->get == NULL || ops->put == NULL)
> +		return -EINVAL;
> +
>  	/*
>  	 * make sure this handle is for a device dependent on the dock,
>  	 * this would include the dock station itself
> @@ -598,9 +603,18 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
>  		 */
>  		dd = find_dock_dependent_device(dock_station, handle);
>  		if (dd) {
> -			dd->ops = ops;
> -			dd->context = context;
> -			dock_add_hotplug_device(dock_station, dd);
> +			info = kzalloc(sizeof(*info), GFP_KERNEL);
> +			if (!info) {
> +				unregister_hotplug_dock_device(handle);
> +				ret = -ENOMEM;
> +				break;
> +			}
> +
> +			info->ops = ops;
> +			info->context = context;
> +			info->handle = dd->handle;
> +			klist_add_tail(&info->node,
> +				       &dock_station->hotplug_devices);
>  			ret = 0;
>  		}
>  	}
> @@ -615,16 +629,22 @@ EXPORT_SYMBOL_GPL(register_hotplug_dock_device);
>   */
>  void unregister_hotplug_dock_device(acpi_handle handle)
>  {
> -	struct dock_dependent_device *dd;
>  	struct dock_station *dock_station;
> +	struct klist_iter iter;
> +	struct klist_node *node;
> +	struct dock_hotplug_info *info;
>  
>  	if (!dock_station_count)
>  		return;
>  
>  	list_for_each_entry(dock_station, &dock_stations, sibling) {
> -		dd = find_dock_dependent_device(dock_station, handle);
> -		if (dd)
> -			dock_del_hotplug_device(dock_station, dd);
> +		klist_iter_init(&dock_station->hotplug_devices, &iter);
> +		while ((node = klist_next(&iter))) {
> +			info = node_to_info(node);
> +			if (info->handle == handle)
> +				klist_del(&info->node);
> +		}
> +		klist_iter_exit(&iter);
>  	}
>  }
>  EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
> @@ -951,7 +971,8 @@ static int __init dock_add(acpi_handle handle)
>  	mutex_init(&dock_station->hp_lock);
>  	spin_lock_init(&dock_station->dd_lock);
>  	INIT_LIST_HEAD(&dock_station->sibling);
> -	INIT_LIST_HEAD(&dock_station->hotplug_devices);
> +	klist_init(&dock_station->hotplug_devices,
> +		   hotplug_info_get, hotplug_info_put);
>  	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>  	INIT_LIST_HEAD(&dock_station->dependent_devices);
>  
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index 716aa93..5d696f5 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -145,9 +145,24 @@ static int post_dock_fixups(struct notifier_block *nb, unsigned long val,
>  	return NOTIFY_OK;
>  }
>  
> +static void acpiphp_dock_get(void *data)
> +{
> +	struct acpiphp_func *func = data;
> +
> +	get_bridge(func->slot->bridge);
> +}
> +
> +static void acpiphp_dock_put(void *data)
> +{
> +	struct acpiphp_func *func = data;
> +
> +	put_bridge(func->slot->bridge);
> +}
>  
>  static const struct acpi_dock_ops acpiphp_dock_ops = {
>  	.handler = handle_hotplug_event_func,
> +	.get = acpiphp_dock_get,
> +	.put = acpiphp_dock_put,
>  };
>  
>  /* Check whether the PCI device is managed by native PCIe hotplug driver */
> diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
> index e6168a2..8fcc9ac 100644
> --- a/include/acpi/acpi_drivers.h
> +++ b/include/acpi/acpi_drivers.h
> @@ -115,6 +115,8 @@ void pci_acpi_crs_quirks(void);
>  struct acpi_dock_ops {
>  	acpi_notify_handler handler;
>  	acpi_notify_handler uevent;
> +	void (*get)(void *data);
> +	void (*put)(void *data);
>  };
>  
>  #if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-14 22:21   ` Rafael J. Wysocki
@ 2013-06-15  1:44     ` Jiang Liu
  2013-06-15 20:17       ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-15  1:44 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Sat 15 Jun 2013 06:21:02 AM CST, Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 03:27:59 AM Jiang Liu wrote:
>> This is a preparation for next patch to avoid breaking bisecting.
>> If next patch is applied without this one, it will cause deadlock
>> as below:
>>
>> Case 1:
>> [   31.015593]  Possible unsafe locking scenario:
>>
>> [   31.018350]        CPU0                    CPU1
>> [   31.019691]        ----                    ----
>> [   31.021002]   lock(&dock_station->hp_lock);
>> [   31.022327]                                lock(&slot->crit_sect);
>> [   31.023650]                                lock(&dock_station->hp_lock);
>> [   31.025010]   lock(&slot->crit_sect);
>> [   31.026342]
>>
>> Case 2:
>>         hotplug_dock_devices()
>>                 mutex_lock(&ds->hp_lock)
>>                         dd->ops->handler()
>>                                 register_hotplug_dock_device()
>>                                         mutex_lock(&ds->hp_lock)
>> [   34.316570] [ INFO: possible recursive locking detected ]
>> [   34.316573] 3.10.0-rc4 #6 Tainted: G         C
>> [   34.316575] ---------------------------------------------
>> [   34.316577] kworker/0:0/4 is trying to acquire lock:
>> [   34.316579]  (&dock_station->hp_lock){+.+.+.}, at:
>> [<ffffffff813c766b>] register_hotplug_dock_device+0x6a/0xbf
>> [   34.316588]
>> but task is already holding lock:
>> [   34.316590]  (&dock_station->hp_lock){+.+.+.}, at:
>> [<ffffffff813c7270>] hotplug_dock_devices+0x2c/0xda
>> [   34.316595]
>> other info that might help us debug this:
>> [   34.316597]  Possible unsafe locking scenario:
>>
>> [   34.316599]        CPU0
>> [   34.316601]        ----
>> [   34.316602]   lock(&dock_station->hp_lock);
>> [   34.316605]   lock(&dock_station->hp_lock);
>> [   34.316608]
>>  *** DEADLOCK ***
>>
>> So fix this deadlock by not taking ds->hp_lock in function
>> register_hotplug_dock_device(). This patch also fixes a possible
>> race conditions in function dock_event() because previously it
>> accesses ds->hotplug_devices list without holding ds->hp_lock.
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Cc: Len Brown <lenb@kernel.org>
>> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
>> Cc: Bjorn Helgaas <bhelgaas@google.com>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Yijing Wang <wangyijing@huawei.com>
>> Cc: linux-acpi@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> Cc: linux-pci@vger.kernel.org
>> Cc: <stable@vger.kernel.org> # 3.8+
>> ---
>>  drivers/acpi/dock.c                | 109 ++++++++++++++++++++++---------------
>>  drivers/pci/hotplug/acpiphp_glue.c |  15 +++++
>>  include/acpi/acpi_drivers.h        |   2 +
>>  3 files changed, 82 insertions(+), 44 deletions(-)
>>
>> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
>> index 02b0563..602bce5 100644
>> --- a/drivers/acpi/dock.c
>> +++ b/drivers/acpi/dock.c
>> @@ -66,7 +66,7 @@ struct dock_station {
>>  	spinlock_t dd_lock;
>>  	struct mutex hp_lock;
>>  	struct list_head dependent_devices;
>> -	struct list_head hotplug_devices;
>> +	struct klist hotplug_devices;
>>
>>  	struct list_head sibling;
>>  	struct platform_device *dock_device;
>> @@ -76,12 +76,18 @@ static int dock_station_count;
>>
>>  struct dock_dependent_device {
>>  	struct list_head list;
>> -	struct list_head hotplug_list;
>> +	acpi_handle handle;
>> +};
>> +
>> +struct dock_hotplug_info {
>> +	struct klist_node node;
>>  	acpi_handle handle;
>>  	const struct acpi_dock_ops *ops;
>>  	void *context;
>>  };
>
> Can we please relax a bit and possibly take a step back?
>
> So since your last reply to me wasn't particularly helpful, I went through the
> code in dock.c and acpiphp_glue.c and I simply think that the whole
> hotplug_list thing is simply redundant.
>
> It looks like instead of using it (or the klist in this patch), we can add a
> "hotlpug_device" flag to dock_dependent_device and set that flag instead of
> adding dd to hotplug_devices or clear it instead of removing dd from that list.
>
> That would allow us to avoid the deadlock, because we wouldn't need the hp_lock
> any more and perhaps we could make the code simpler instead of making it more
> complex.
>
> How does that sound?
>
> Rafael
Hi Rafael,
       Thanks for comments! It would be great if we could kill the 
hotplug_devices
list so thing gets simple. But there are still some special cases:(

As you have mentioned,  ds->hp_lock is used to make both addition and 
removal
of hotplug devices wait for us to complete walking ds->hotplug_devices.
So it acts as two roles:
1) protect the hotplug_devices list,
2) serialize unregister_hotplug_dock_device() and 
hotplug_dock_devices() so
the dock driver doesn't access registered handler and associated data 
structure
once returing from unregister_hotplug_dock_device().

If we simply use a flag to mark presence of registered callback, we 
can't achieve
the second goal. Take the sony laptop as an example. It has several PCI 
hotplug
slot associated with the dock station:
[   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB
[   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM0
[   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM1
[   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2
[   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB

So it still has some race windows if we undock the station while 
repeatedly rescanning/removing
the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces. For 
example, thread 1 is
handling undocking event, walking the dependent device list and 
invoking registered callback
handler with associated data. While that, thread 2 may step in to 
unregister the callback for
 \_SB_.PCI0.RP07.LPMB.LPM0. Then thread 1 may cause access-after-free 
issue.

The klist patch solves this issue by adding a "put" callback method to 
explicitly notify
dock client that the dock core has done with previously registered 
handler and associated
data.

>
>
>> +#define node_to_info(n)	container_of((n), struct dock_hotplug_info, node)
>> +
>>  #define DOCK_DOCKING	0x00000001
>>  #define DOCK_UNDOCKING  0x00000002
>>  #define DOCK_IS_DOCK	0x00000010
>> @@ -111,7 +117,6 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
>>
>>  	dd->handle = handle;
>>  	INIT_LIST_HEAD(&dd->list);
>> -	INIT_LIST_HEAD(&dd->hotplug_list);
>>
>>  	spin_lock(&ds->dd_lock);
>>  	list_add_tail(&dd->list, &ds->dependent_devices);
>> @@ -120,36 +125,19 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
>>  	return 0;
>>  }
>>
>> -/**
>> - * dock_add_hotplug_device - associate a hotplug handler with the dock station
>> - * @ds: The dock station
>> - * @dd: The dependent device struct
>> - *
>> - * Add the dependent device to the dock's hotplug device list
>> - */
>> -static void
>> -dock_add_hotplug_device(struct dock_station *ds,
>> -			struct dock_dependent_device *dd)
>> +static void hotplug_info_get(struct klist_node *node)
>>  {
>> -	mutex_lock(&ds->hp_lock);
>> -	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
>> -	mutex_unlock(&ds->hp_lock);
>> +	struct dock_hotplug_info *info = node_to_info(node);
>> +
>> +	info->ops->get(info->context);
>>  }
>>
>> -/**
>> - * dock_del_hotplug_device - remove a hotplug handler from the dock station
>> - * @ds: The dock station
>> - * @dd: the dependent device struct
>> - *
>> - * Delete the dependent device from the dock's hotplug device list
>> - */
>> -static void
>> -dock_del_hotplug_device(struct dock_station *ds,
>> -			struct dock_dependent_device *dd)
>> +static void hotplug_info_put(struct klist_node *node)
>>  {
>> -	mutex_lock(&ds->hp_lock);
>> -	list_del(&dd->hotplug_list);
>> -	mutex_unlock(&ds->hp_lock);
>> +	struct dock_hotplug_info *info = node_to_info(node);
>> +
>> +	info->ops->put(info->context);
>> +	kfree(info);
>>  }
>>
>>  /**
>> @@ -354,15 +342,22 @@ static void dock_remove_acpi_device(acpi_handle handle)
>>  static void hotplug_dock_devices(struct dock_station *ds, u32 event)
>>  {
>>  	struct dock_dependent_device *dd;
>> +	struct klist_iter iter;
>> +	struct klist_node *node;
>> +	struct dock_hotplug_info *info;
>>
>>  	mutex_lock(&ds->hp_lock);
>>
>>  	/*
>>  	 * First call driver specific hotplug functions
>>  	 */
>> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
>> -		if (dd->ops && dd->ops->handler)
>> -			dd->ops->handler(dd->handle, event, dd->context);
>> +	klist_iter_init(&ds->hotplug_devices, &iter);
>> +	while ((node = klist_next(&iter))) {
>> +		info = node_to_info(node);
>> +		if (info->ops && info->ops->handler)
>> +			info->ops->handler(info->handle, event, info->context);
>> +	}
>> +	klist_iter_exit(&iter);
>>
>>  	/*
>>  	 * Now make sure that an acpi_device is created for each
>> @@ -384,7 +379,9 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
>>  	struct device *dev = &ds->dock_device->dev;
>>  	char event_string[13];
>>  	char *envp[] = { event_string, NULL };
>> -	struct dock_dependent_device *dd;
>> +	struct klist_iter iter;
>> +	struct klist_node *node;
>> +	struct dock_hotplug_info *info;
>>
>>  	if (num == UNDOCK_EVENT)
>>  		sprintf(event_string, "EVENT=undock");
>> @@ -398,9 +395,13 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
>>  	if (num == DOCK_EVENT)
>>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>>
>> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
>> -		if (dd->ops && dd->ops->uevent)
>> -			dd->ops->uevent(dd->handle, event, dd->context);
>> +	klist_iter_init(&ds->hotplug_devices, &iter);
>> +	while ((node = klist_next(&iter))) {
>> +		info = node_to_info(node);
>> +		if (info->ops && info->ops->handler)
>> +			info->ops->handler(info->handle, event, info->context);
>> +	}
>> +	klist_iter_exit(&iter);
>>
>>  	if (num != DOCK_EVENT)
>>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>> @@ -580,12 +581,16 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
>>  			     void *context)
>>  {
>>  	struct dock_dependent_device *dd;
>> +	struct dock_hotplug_info *info;
>>  	struct dock_station *dock_station;
>>  	int ret = -EINVAL;
>>
>>  	if (!dock_station_count)
>>  		return -ENODEV;
>>
>> +	if (ops == NULL || ops->get == NULL || ops->put == NULL)
>> +		return -EINVAL;
>> +
>>  	/*
>>  	 * make sure this handle is for a device dependent on the dock,
>>  	 * this would include the dock station itself
>> @@ -598,9 +603,18 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
>>  		 */
>>  		dd = find_dock_dependent_device(dock_station, handle);
>>  		if (dd) {
>> -			dd->ops = ops;
>> -			dd->context = context;
>> -			dock_add_hotplug_device(dock_station, dd);
>> +			info = kzalloc(sizeof(*info), GFP_KERNEL);
>> +			if (!info) {
>> +				unregister_hotplug_dock_device(handle);
>> +				ret = -ENOMEM;
>> +				break;
>> +			}
>> +
>> +			info->ops = ops;
>> +			info->context = context;
>> +			info->handle = dd->handle;
>> +			klist_add_tail(&info->node,
>> +				       &dock_station->hotplug_devices);
>>  			ret = 0;
>>  		}
>>  	}
>> @@ -615,16 +629,22 @@ EXPORT_SYMBOL_GPL(register_hotplug_dock_device);
>>   */
>>  void unregister_hotplug_dock_device(acpi_handle handle)
>>  {
>> -	struct dock_dependent_device *dd;
>>  	struct dock_station *dock_station;
>> +	struct klist_iter iter;
>> +	struct klist_node *node;
>> +	struct dock_hotplug_info *info;
>>
>>  	if (!dock_station_count)
>>  		return;
>>
>>  	list_for_each_entry(dock_station, &dock_stations, sibling) {
>> -		dd = find_dock_dependent_device(dock_station, handle);
>> -		if (dd)
>> -			dock_del_hotplug_device(dock_station, dd);
>> +		klist_iter_init(&dock_station->hotplug_devices, &iter);
>> +		while ((node = klist_next(&iter))) {
>> +			info = node_to_info(node);
>> +			if (info->handle == handle)
>> +				klist_del(&info->node);
>> +		}
>> +		klist_iter_exit(&iter);
>>  	}
>>  }
>>  EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
>> @@ -951,7 +971,8 @@ static int __init dock_add(acpi_handle handle)
>>  	mutex_init(&dock_station->hp_lock);
>>  	spin_lock_init(&dock_station->dd_lock);
>>  	INIT_LIST_HEAD(&dock_station->sibling);
>> -	INIT_LIST_HEAD(&dock_station->hotplug_devices);
>> +	klist_init(&dock_station->hotplug_devices,
>> +		   hotplug_info_get, hotplug_info_put);
>>  	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>>  	INIT_LIST_HEAD(&dock_station->dependent_devices);
>>
>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
>> index 716aa93..5d696f5 100644
>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>> @@ -145,9 +145,24 @@ static int post_dock_fixups(struct notifier_block *nb, unsigned long val,
>>  	return NOTIFY_OK;
>>  }
>>
>> +static void acpiphp_dock_get(void *data)
>> +{
>> +	struct acpiphp_func *func = data;
>> +
>> +	get_bridge(func->slot->bridge);
>> +}
>> +
>> +static void acpiphp_dock_put(void *data)
>> +{
>> +	struct acpiphp_func *func = data;
>> +
>> +	put_bridge(func->slot->bridge);
>> +}
>>
>>  static const struct acpi_dock_ops acpiphp_dock_ops = {
>>  	.handler = handle_hotplug_event_func,
>> +	.get = acpiphp_dock_get,
>> +	.put = acpiphp_dock_put,
>>  };
>>
>>  /* Check whether the PCI device is managed by native PCIe hotplug driver */
>> diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
>> index e6168a2..8fcc9ac 100644
>> --- a/include/acpi/acpi_drivers.h
>> +++ b/include/acpi/acpi_drivers.h
>> @@ -115,6 +115,8 @@ void pci_acpi_crs_quirks(void);
>>  struct acpi_dock_ops {
>>  	acpi_notify_handler handler;
>>  	acpi_notify_handler uevent;
>> +	void (*get)(void *data);
>> +	void (*put)(void *data);
>>  };
>>
>>  #if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
>>



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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
                   ` (3 preceding siblings ...)
  2013-06-14 19:28 ` [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking Jiang Liu
@ 2013-06-15  6:42 ` Alexander E. Patrakov
  2013-06-15  7:25   ` Alexander E. Patrakov
  2013-06-16 17:33   ` Jiang Liu
  4 siblings, 2 replies; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-15  6:42 UTC (permalink / raw)
  To: Jiang Liu, alexdeucher
  Cc: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

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

2013/6/15 Jiang Liu <jiang.liu@huawei.com>:
> Alexander E. Patrakov <patrakov@gmail.com> reports two bugs related to
> dock station support on Sony VAIO VPCZ23A4R. Actually there are at least
> four bugs related to Sony VAIO VPCZ23A4R dock support.
> 1) can't correctly detect hotplug slot for dock state
> 2) resource leak on undocking
> 3) resource allocation failure for dock devices
> 4) one bug in intel_snd_hda driver
5) one or two bugs in radeon driver

As for the subject - only a hotplug-related part of bug 59581 is fixed.

> Hi Alexander, could you please help to test the whole patchset?
> Really get sleepy, it's already 3 oclock now, so please forgive me
> if there any stupid mistakes.

I have tested this patchset on top of 3.10-rc5 using the following two
testcases.

1. Boot docked with radeon blacklisted. Switch to text-based virtual
console, undock, dock, modprobe radeon, rmmod radeon, undock, dock,
modprobe radeon again. Tested in this sequence because Alex Deucher
told me in bug 59681 to rmmod radeon before undocking.

2. Boot undocked, with radeon not blacklisted. Stay in X. Dock,
undock, dock, undock, dock.

Both cases work, and exhibit similar backtraces in dmesg. So I am
attaching a dmesg only from the first testcase. Please look for "INFO:
trying to register non-static key" and for "*ERROR* Memory manager not
clean. Delaying takedown". I understand that the second trace is
unrelated to this patchset, but would like you to fix the first.

Note that the snd_hda_intel bug somehow didn't manifest itself today,
probably because the TV that is connected to the HDMI output of the
radeon card was off and because Xorg never really tried to use the
card.

--
Alexander E. Patrakov

[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 101148 bytes --]

[    0.953870] ata1: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407100 irq 54
[    0.953950] ata2: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407180 irq 54
[    0.954037] ata3: DUMMY
[    0.954086] ata4: DUMMY
[    0.954135] ata5: DUMMY
[    0.954184] ata6: DUMMY
[    0.954450] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    0.957120] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.957361] serio: i8042 AUX port at 0x60,0x64 irq 12
[    0.957602] mousedev: PS/2 mouse device common for all mice
[    0.958126] rtc_cmos 00:05: RTC can wake from S4
[    0.958425] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[    0.958515] rtc_cmos 00:05: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    0.958638] Intel P-state driver initializing.
[    0.958711] Intel pstate controlling: cpu 0
[    0.958837] Intel pstate controlling: cpu 1
[    0.958908] Intel pstate controlling: cpu 2
[    0.958990] Intel pstate controlling: cpu 3
[    0.959250] cpuidle: using governor ladder
[    0.959740] cpuidle: using governor menu
[    0.959798] ledtrig-cpu: registered to indicate activity on CPUs
[    0.959870] hidraw: raw HID events driver (C) Jiri Kosina
[    0.960199] TCP: cubic registered
[    0.960261] Initializing XFRM netlink socket
[    0.960485] NET: Registered protocol family 10
[    0.960939] NET: Registered protocol family 17
[    0.961086] Key type dns_resolver registered
[    0.961572] PM: Hibernation image not present or could not be loaded.
[    0.961593] registered taskstats version 1
[    0.963634] rtc_cmos 00:05: setting system clock to 2013-06-15 06:10:37 UTC (1371276637)
[    0.976706] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[    1.259475] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    1.259621] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    1.260432] ata1.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[    1.260548] ata1.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.260645] ata2.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[    1.260758] ata2.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.261212] ata2.00: configured for UDMA/133
[    1.261346] ata1.00: configured for UDMA/133
[    1.262281] scsi 0:0:0:0: Direct-Access     ATA      SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[    1.263372] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[    1.263960] sd 0:0:0:0: [sda] Write Protect is off
[    1.264030] scsi 1:0:0:0: Direct-Access     ATA      SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[    1.264148] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.264240] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.264431] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[    1.264833] sd 1:0:0:0: [sdb] Write Protect is off
[    1.264905] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    1.264993] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.265922]  sdb: unknown partition table
[    1.265925]  sda: sda1 sda2
[    1.266226] sda: p2 size 489641984 extends beyond EOD, enabling native capacity
[    1.266894] sd 1:0:0:0: [sdb] Attached SCSI disk
[    1.267741]  sda: sda1 sda2
[    1.267917] sda: p2 size 489641984 extends beyond EOD, truncated
[    1.268510] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.269370] Freeing unused kernel memory: 980k freed
[    1.269534] Write protecting the kernel read-only data: 12288k
[    1.272414] Freeing unused kernel memory: 1604k freed
[    1.274619] Freeing unused kernel memory: 1256k freed
[    1.301315] dracut: dracut-027-r3
[    1.324101] device-mapper: uevent: version 1.0.3
[    1.324299] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
[    1.328329] systemd-udevd[168]: starting version 204
[    1.394730] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.394914] ehci-pci: EHCI PCI platform driver
[    1.395102] ehci-pci 0000:00:1a.0: setting latency timer to 64
[    1.395170] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    1.395323] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    1.395422] ehci-pci 0000:00:1a.0: debug port 2
[    1.399479] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    1.399560] ehci-pci 0000:00:1a.0: irq 23, io mem 0xd9409000
[    1.402310] scsi6 : pata_marvell
[    1.402806] scsi7 : pata_marvell
[    1.402915] ata7: PATA max UDMA/100 cmd 0x3018 ctl 0x3024 bmdma 0x3000 irq 19
[    1.402971] ata8: PATA max UDMA/133 cmd 0x3010 ctl 0x3020 bmdma 0x3008 irq 19
[    1.405543] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    1.407075] hub 1-0:1.0: USB hub found
[    1.407183] hub 1-0:1.0: 2 ports detected
[    1.408403] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    1.408481] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
[    1.408558] ehci-pci 0000:00:1d.0: setting latency timer to 64
[    1.408832] xhci_hcd 0000:04:00.0: irq 55 for MSI/MSI-X
[    1.408845] xhci_hcd 0000:04:00.0: irq 56 for MSI/MSI-X
[    1.408853] xhci_hcd 0000:04:00.0: irq 57 for MSI/MSI-X
[    1.408862] xhci_hcd 0000:04:00.0: irq 58 for MSI/MSI-X
[    1.408873] xhci_hcd 0000:04:00.0: irq 59 for MSI/MSI-X
[    1.409341] xHCI xhci_add_endpoint called for root hub
[    1.409343] xHCI xhci_check_bandwidth called for root hub
[    1.409394] hub 2-0:1.0: USB hub found
[    1.409481] hub 2-0:1.0: 2 ports detected
[    1.410244] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    1.410268] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    1.410281] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 3
[    1.410307] ehci-pci 0000:00:1d.0: debug port 2
[    1.410661] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
[    1.412355] xHCI xhci_add_endpoint called for root hub
[    1.412357] xHCI xhci_check_bandwidth called for root hub
[    1.412423] hub 4-0:1.0: USB hub found
[    1.412532] hub 4-0:1.0: 2 ports detected
[    1.414235] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    1.414261] ehci-pci 0000:00:1d.0: irq 20, io mem 0xd9408000
[    1.419533] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    1.422028] hub 3-0:1.0: USB hub found
[    1.422091] hub 3-0:1.0: 2 ports detected
[    1.423168] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[    1.423242] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 5
[    1.423734] xhci_hcd 0000:1b:00.0: irq 60 for MSI/MSI-X
[    1.423746] xhci_hcd 0000:1b:00.0: irq 61 for MSI/MSI-X
[    1.423753] xhci_hcd 0000:1b:00.0: irq 62 for MSI/MSI-X
[    1.423760] xhci_hcd 0000:1b:00.0: irq 63 for MSI/MSI-X
[    1.423776] xhci_hcd 0000:1b:00.0: irq 64 for MSI/MSI-X
[    1.425214] xHCI xhci_add_endpoint called for root hub
[    1.425218] xHCI xhci_check_bandwidth called for root hub
[    1.425336] hub 5-0:1.0: USB hub found
[    1.425415] hub 5-0:1.0: 2 ports detected
[    1.426020] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[    1.426080] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 6
[    1.427451] xHCI xhci_add_endpoint called for root hub
[    1.427454] xHCI xhci_check_bandwidth called for root hub
[    1.427696] hub 6-0:1.0: USB hub found
[    1.427768] hub 6-0:1.0: 2 ports detected
[    1.459513] md: bind<sdb>
[    1.667197] md: bind<sda>
[    1.676296] md: bind<sdb>
[    1.676648] md: bind<sda>
[    1.678754] md: raid0 personality registered for level 0
[    1.679255] md/raid0:md126: md_size is 500129792 sectors.
[    1.679320] md: RAID0 configuration for md126 - 1 zone
[    1.679375] md: zone0=[sda/sdb]
[    1.679528]       zone-offset=         0KB, device-offset=         0KB, size= 250065152KB

[    1.679710] md126: detected capacity change from 0 to 256066453504
[    1.681081]  md126: p1 p2
[    1.709912] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    1.781536] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x122c00, board id: 1690, fw id: 934878
[    1.817396] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[    1.825380] hub 1-1:1.0: USB hub found
[    1.825577] hub 1-1:1.0: 6 ports detected
[    1.901346] tsc: Refined TSC clocksource calibration: 2793.653 MHz
[    1.901419] Switching to clocksource tsc
[    1.929255] usb 3-1: new high-speed USB device number 2 using ehci-pci
[    2.026636] dracut: luksOpen /dev/md126p2 luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521  
[    2.044202] hub 3-1:1.0: USB hub found
[    2.044338] hub 3-1:1.0: 8 ports detected
[    2.148504] usb 5-1: new high-speed USB device number 2 using xhci_hcd
[    2.163202] hub 5-1:1.0: USB hub found
[    2.163697] hub 5-1:1.0: 2 ports detected
[    2.238947] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[    2.390153] usb 1-1.2: new full-speed USB device number 4 using ehci-pci
[    2.556137] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[    2.726409] usb 1-1.4: new high-speed USB device number 6 using ehci-pci
[    2.815433] usb 1-1.4: config 1 has an invalid interface number: 8 but max is 3
[    2.815542] usb 1-1.4: config 1 has no interface number 1
[    6.761566] ata8.00: qc timeout (cmd 0xa1)
[    6.761643] ata8.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[    9.350568] sha256_ssse3: Using AVX optimized SHA-256 implementation
[    9.352102] bio: create slab <bio-2> at 2
[    9.512279] dracut: Scanning devices dm-0  for LVM logical volumes vaio/gentoo64a-root
[    9.522612] dracut: inactive '/dev/vaio/gentoo64a-root' [16.00 GiB] inherit
[    9.522753] dracut: inactive '/dev/vaio/portage' [12.00 GiB] inherit
[    9.522880] dracut: inactive '/dev/vaio/home' [180.00 GiB] inherit
[   11.816583] ata8: link is slow to respond, please be patient (ready=0)
[   16.820748] ata8: device not ready (errno=-16), forcing hardreset
[   22.027191] ata8: link is slow to respond, please be patient (ready=0)
[   26.878210] ata8: SRST failed (errno=-16)
[   32.084668] ata8: link is slow to respond, please be patient (ready=0)
[   33.629817] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[   33.643843] dracut: Checking ext4: /dev/vaio/gentoo64a-root
[   33.643938] dracut: issuing e2fsck -a  /dev/vaio/gentoo64a-root
[   33.694555] dracut: /dev/vaio/gentoo64a-root: clean, 575805/1048576 files, 3584712/4194304 blocks
[   33.696391] dracut: Mounting /dev/vaio/gentoo64a-root with -o noatime,ro
[   33.701317] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[   33.708897] dracut: Mounted root filesystem /dev/mapper/vaio-gentoo64a--root
[   36.935678] ata8: SRST failed (errno=-16)
[   37.122296] ata8.00: ATAPI: Optiarc BD RW BD-5850H, 1.70, max UDMA/100
[   37.129332] ata8.00: configured for UDMA/100
[   37.131797] scsi 7:0:0:0: CD-ROM            Optiarc  BD RW BD-5850H   1.70 PQ: 0 ANSI: 5
[   37.134669] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda caddy
[   37.134744] cdrom: Uniform CD-ROM driver Revision: 3.20
[   37.135408] sr 7:0:0:0: Attached scsi CD-ROM sr0
[   37.146343] dracut: Switching root
[   37.466234] systemd-udevd[626]: starting version 204
[   37.546964] Linux agpgart interface v0.103
[   37.550122] [drm] Initialized drm 1.1.0 20060810
[   37.565680] snd_hda_intel 0000:00:1b.0: irq 65 for MSI/MSI-X
[   37.566595] sony_laptop: Sony Notebook Control Driver v0.6
[   37.566867] input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input4
[   37.568480] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input5
[   37.580694] hda_codec: ALC275: SKU not ready 0x411111f0
[   37.583907] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6
[   37.591020] cfg80211: Calling CRDA to update world regulatory domain
[   37.594289] sony_laptop: brightness ignored, must be controlled by ACPI video driver
[   37.667576] usbcore: registered new interface driver usbserial
[   37.667603] usbcore: registered new interface driver usbserial_generic
[   37.667761] usbserial: USB Serial support registered for generic
[   37.668136] rtsx_pci 0000:03:00.0: irq 66 for MSI/MSI-X
[   37.668157] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 66
[   37.669353] Bluetooth: Core ver 2.16
[   37.669379] NET: Registered protocol family 31
[   37.669381] Bluetooth: HCI device and connection manager initialized
[   37.669427] Bluetooth: HCI socket layer initialized
[   37.669432] Bluetooth: L2CAP socket layer initialized
[   37.669459] Bluetooth: SCO socket layer initialized
[   37.671214] Intel(R) Wireless WiFi driver for Linux, in-tree:
[   37.671218] Copyright(c) 2003-2013 Intel Corporation
[   37.671758] iwlwifi 0000:02:00.0: irq 67 for MSI/MSI-X
[   37.672133] usbcore: registered new interface driver qcserial
[   37.672163] usbserial: USB Serial support registered for Qualcomm USB modem
[   37.672307] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   37.672715] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[   37.672782] r8169 0000:05:00.0: irq 68 for MSI/MSI-X
[   37.673268] qcserial 1-1.4:1.0: Qualcomm USB modem converter detected
[   37.673565] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[   37.673866] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[   37.674073] r8169 0000:05:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011c6e000, 54:42:49:9a:df:1e, XID 0c900800 IRQ 68
[   37.674077] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   37.674177] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   37.674539] r8169 0000:19:00.0: irq 69 for MSI/MSI-X
[   37.675716] qcserial 1-1.4:1.2: Qualcomm USB modem converter detected
[   37.676036] r8169 0000:19:00.0 eth1: RTL8168evl/8111evl at 0xffffc90011c70000, 54:42:49:9a:de:86, XID 0c900800 IRQ 69
[   37.676038] r8169 0000:19:00.0 eth1: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   37.679205] usbcore: registered new interface driver btusb
[   37.679263] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[   37.679953] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[   37.680923] qcserial 1-1.4:1.3: Qualcomm USB modem converter detected
[   37.682108] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[   37.682986] media: Linux media interface: v0.10
[   37.684702] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[   37.685225] Linux video capture interface: v2.00
[   37.685950] snd_hda_intel 0000:16:00.1: irq 70 for MSI/MSI-X
[   37.688821] [drm] Memory usable by graphics device = 2048M
[   37.688895] i915 0000:00:02.0: setting latency timer to 64
[   37.693958] uvcvideo: Found UVC 1.00 device USB2.0 Camera (05c8:0318)
[   37.695587] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/0000:16:00.1/sound/card1/input9
[   37.700780] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input10
[   37.701089] usbcore: registered new interface driver uvcvideo
[   37.701091] USB Video Class driver (1.1.1)
[   37.702633] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[   37.702637] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[   37.702639] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[   37.702641] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[   37.702643] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[   37.702646] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[   37.702767] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[   37.724908] input: PC Speaker as /devices/platform/pcspkr/input/input11
[   37.726569] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   37.728379] Error: Driver 'pcspkr' is already registered, aborting...
[   37.728841] i915 0000:00:02.0: irq 71 for MSI/MSI-X
[   37.728859] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   37.728860] [drm] Driver supports precise vblank timestamp query.
[   37.729752] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[   37.729754] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:16:00.0
[   37.737024] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[   37.738657] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[   37.739121] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[   37.739134] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[   37.739183] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[   37.739426] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[   37.739435] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[   37.739486] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[   37.739761] microcode: CPU2 updated to revision 0x28, date = 2012-04-24
[   37.740163] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[   37.740223] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[   37.740498] microcode: CPU3 updated to revision 0x28, date = 2012-04-24
[   37.740516] perf_event_intel: PEBS enabled due to microcode update
[   37.741445] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   37.779320] [drm] Wrong MCH_SSKPD value: 0x16040307
[   37.779324] [drm] This can cause pipe underruns and display issues.
[   37.779326] [drm] Please upgrade your BIOS to fix this.
[   37.793455] fbcon: inteldrmfb (fb0) is primary device
[   37.840412] cfg80211: World regulatory domain updated:
[   37.840413] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   37.840415] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   37.840417] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   37.840419] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   37.840420] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   37.840421] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   37.847778] systemd-udevd[646]: renamed network interface eth0 to enp5s0
[   37.857805] systemd-udevd[650]: renamed network interface eth1 to enp25s0
[   37.878797] systemd-udevd[644]: renamed network interface wlan0 to wlp2s0
[   39.617237] Console: switching to colour frame buffer device 240x67
[   39.620412] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   39.620414] i915 0000:00:02.0: registered panic notifier
[   39.620898] [Firmware Bug]: ACPI(GFXA) defines _DOD but not _DOS
[   39.622502] acpi LNXVIDEO:02: registered as cooling_device5
[   39.622711] ACPI: Video Device [GFXA] (multi-head: yes  rom: no  post: no)
[   39.622770] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:1f/device:20/device:23/device:24/device:25/LNXVIDEO:00/input/input12
[   39.623108] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623123] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623137] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623152] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623171] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623183] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.623201] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   39.624505] acpi device:3e: registered as cooling_device6
[   39.624818] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   39.624944] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:09/input/input13
[   39.625179] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[   39.625271] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20130328/utaddress-251)
[   39.625277] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   39.625281] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   39.625284] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   39.625285] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   39.625288] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   39.625289] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   39.625292] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   39.625293] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   39.625437] ACPI Warning: 0x000000000000a040-0x000000000000a05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251)
[   39.625443] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   39.631523] iTCO_vendor_support: vendor-support=0
[   39.632404] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[   39.632454] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[   39.778508] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
[   40.682093] EXT4-fs (dm-1): re-mounted. Opts: (null)
[   40.758992] EXT4-fs (md126p1): mounted filesystem with ordered data mode. Opts: (null)
[   40.763388] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[   40.769206] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[   41.306293] microcode: Microcode Update Driver: v2.00 removed.
[   41.798548] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[   41.805532] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[   42.192088] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[   42.198970] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[   42.409477] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[   43.771301] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   43.771304] Bluetooth: BNEP filters: protocol multicast
[   43.771313] Bluetooth: BNEP socket layer initialized
[   43.936008] Bluetooth: RFCOMM TTY layer initialized
[   43.936022] Bluetooth: RFCOMM socket layer initialized
[   43.936023] Bluetooth: RFCOMM ver 1.11
[   44.410250] zram: module is from the staging directory, the quality is unknown, you have been warned.
[   44.412756] zram: Created 4 device(s) ...
[   44.428078] Adding 1572860k swap on /dev/zram0.  Priority:10 extents:1 across:1572860k SSFS
[   44.436281] Adding 1572860k swap on /dev/zram1.  Priority:10 extents:1 across:1572860k SSFS
[   44.446282] Adding 1572860k swap on /dev/zram2.  Priority:10 extents:1 across:1572860k SSFS
[   44.454104] Adding 1572860k swap on /dev/zram3.  Priority:10 extents:1 across:1572860k SSFS
[   45.787463] wlp2s0: authenticate with 08:60:6e:cc:a2:94
[   45.793511] wlp2s0: send auth to 08:60:6e:cc:a2:94 (try 1/3)
[   45.817820] wlp2s0: authenticated
[   45.818804] wlp2s0: associate with 08:60:6e:cc:a2:94 (try 1/3)
[   45.819680] wlp2s0: RX AssocResp from 08:60:6e:cc:a2:94 (capab=0x11 status=0 aid=1)
[   45.824627] wlp2s0: associated
[   45.825346] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[   54.943179] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[   54.946839] xhci_hcd 0000:1b:00.0: remove, state 4
[   54.947037] usb usb6: USB disconnect, device number 1
[   54.949675] xHCI xhci_drop_endpoint called for root hub
[   54.949679] xHCI xhci_check_bandwidth called for root hub
[   54.960023] xhci_hcd 0000:1b:00.0: USB bus 6 deregistered
[   54.960056] xhci_hcd 0000:1b:00.0: remove, state 4
[   54.960101] usb usb5: USB disconnect, device number 1
[   54.960105] usb 5-1: USB disconnect, device number 2
[   54.962609] xHCI xhci_drop_endpoint called for root hub
[   54.962612] xHCI xhci_check_bandwidth called for root hub
[   54.964493] xhci_hcd 0000:1b:00.0: USB bus 5 deregistered
[   54.978370] ata8.00: disabled
[   54.999119] INFO: trying to register non-static key.
[   54.999152] the code is fine but needs lockdep annotation.
[   54.999177] turning off the locking correctness validator.
[   54.999205] CPU: 0 PID: 40 Comm: kworker/0:1 Tainted: G         C   3.10.0-rc5-rafael #2
[   54.999244] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[   54.999283] Workqueue: kacpi_hotplug acpi_os_execute_deferred
[   54.999312]  ffff880253db0000 ffff880253db9668 ffffffff8165adb8 ffff880253db9758
[   54.999359]  ffffffff810a01ce ffff88025fa170e8 0000000000000000 ffff880200000000
[   54.999406]  ffffffff00000000 ffff880200000000 0000000000000003 ffff880253db0770
[   54.999455] Call Trace:
[   54.999474]  [<ffffffff8165adb8>] dump_stack+0x19/0x1b
[   54.999504]  [<ffffffff810a01ce>] __lock_acquire+0x181e/0x1ee0
[   54.999535]  [<ffffffff810a1791>] ? mark_held_locks+0x61/0x150
[   54.999565]  [<ffffffff81657e6d>] ? put_cpu_partial+0x7e/0xce
[   54.999595]  [<ffffffff810a1aee>] ? debug_check_no_locks_freed+0x8e/0x160
[   54.999629]  [<ffffffff8105b940>] ? queue_delayed_work_on+0xa0/0xa0
[   54.999662]  [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[   54.999690]  [<ffffffff8105b940>] ? queue_delayed_work_on+0xa0/0xa0
[   54.999724]  [<ffffffff8109c470>] ? lockdep_init_map+0xb0/0x530
[   54.999758]  [<ffffffff8105b978>] flush_work+0x38/0x270
[   54.999787]  [<ffffffff8105b940>] ? queue_delayed_work_on+0xa0/0xa0
[   54.999822]  [<ffffffff810a1791>] ? mark_held_locks+0x61/0x150
[   54.999855]  [<ffffffff8105d645>] ? __cancel_work_timer+0xa5/0x110
[   55.001050]  [<ffffffff810a1985>] ? trace_hardirqs_on_caller+0x105/0x1d0
[   55.002010]  [<ffffffff8105d61a>] __cancel_work_timer+0x7a/0x110
[   55.003172]  [<ffffffff8105d6cb>] cancel_work_sync+0xb/0x10
[   55.004208]  [<ffffffffa054c3ae>] rtl_remove_one+0x5e/0x140 [r8169]
[   55.005159]  [<ffffffff813856b1>] pci_device_remove+0x41/0xc0
[   55.006111]  [<ffffffff8143bf37>] __device_release_driver+0x77/0xe0
[   55.007062]  [<ffffffff8143bfc9>] device_release_driver+0x29/0x40
[   55.008009]  [<ffffffff8143b9d1>] bus_remove_device+0xf1/0x140
[   55.008948]  [<ffffffff814390bd>] device_del+0x11d/0x1b0
[   55.009971]  [<ffffffff813806ac>] pci_stop_bus_device+0x9c/0xb0
[   55.011032]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.011915]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.012777]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.013620]  [<ffffffff813a10e5>] ? acpiphp_disable_slot+0x35/0x140
[   55.014473]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.015329]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.016185]  [<ffffffff8138064b>] pci_stop_bus_device+0x3b/0xb0
[   55.017049]  [<ffffffff81380811>] pci_stop_and_remove_bus_device+0x11/0x20
[   55.017893]  [<ffffffff813a1136>] acpiphp_disable_slot+0x86/0x140
[   55.018718]  [<ffffffff813a14da>] _handle_hotplug_event_func+0xba/0x1a0
[   55.019537]  [<ffffffff81660ef0>] ? _raw_spin_unlock+0x30/0x60
[   55.020348]  [<ffffffff8163e26e>] ? klist_next+0x8e/0x120
[   55.021142]  [<ffffffff813c7548>] dock_event+0x9a/0xd6
[   55.021923]  [<ffffffff813c7a26>] handle_eject_request+0xa2/0xdf
[   55.022695]  [<ffffffff813c7c01>] acpi_dock_deferred_cb+0x163/0x1c8
[   55.023459]  [<ffffffff813bfca9>] acpi_os_execute_deferred+0x20/0x2d
[   55.024207]  [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[   55.024967]  [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[   55.025724]  [<ffffffff8105d126>] worker_thread+0x116/0x370
[   55.026496]  [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[   55.027274]  [<ffffffff81063986>] kthread+0xd6/0xe0
[   55.028033]  [<ffffffff81660fcb>] ? _raw_spin_unlock_irq+0x2b/0x60
[   55.028786]  [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[   55.029548]  [<ffffffff8166836c>] ret_from_fork+0x7c/0xb0
[   55.030297]  [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[   55.056411] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[   55.061459] pci_bus 0000:0b: busn_res: [bus 0b] is released
[   55.063101] pci_bus 0000:0c: busn_res: [bus 0c] is released
[   55.064268] pci_bus 0000:16: busn_res: [bus 16] is released
[   55.075088] acpiphp: Slot [1-2] unregistered
[   55.075928] acpiphp: release_slot - physical_slot = 1-2
[   55.076758] pci_bus 0000:19: busn_res: [bus 19] is released
[   55.084123] acpiphp: Slot [1-3] unregistered
[   55.084911] acpiphp: release_slot - physical_slot = 1-3
[   55.085719] pci_bus 0000:1a: busn_res: [bus 1a] is released
[   55.093132] acpiphp: Slot [1-4] unregistered
[   55.093942] acpiphp: release_slot - physical_slot = 1-4
[   55.094756] pci_bus 0000:1b: busn_res: [bus 1b] is released
[   55.102143] acpiphp: Slot [1-5] unregistered
[   55.102904] acpiphp: release_slot - physical_slot = 1-5
[   55.103689] pci_bus 0000:1c: busn_res: [bus 1c] is released
[   55.104497] pci_bus 0000:1d: busn_res: [bus 1d] is released
[   55.105270] pci_bus 0000:18: busn_res: [bus 18-1d] is released
[   55.106006] pci_bus 0000:17: busn_res: [bus 17-1d] is released
[   55.106760] pci_bus 0000:15: busn_res: [bus 15-1d] is released
[   55.107505] pci_bus 0000:14: busn_res: [bus 14-1d] is released
[   55.108250] pci_bus 0000:0a: busn_res: [bus 0a-1d] is released
[   55.117137] acpiphp: Slot [1-1] unregistered
[   55.117876] acpiphp: release_slot - physical_slot = 1-1
[   55.123174] acpiphp: Slot [2] unregistered
[   55.123924] acpiphp: release_slot - physical_slot = 2
[   55.129178] acpiphp: Slot [3] unregistered
[   55.129935] acpiphp: release_slot - physical_slot = 3
[   55.142359] ACPI: Device does not support D3cold
[   55.143545] ACPI: Device does not support D3cold
[   55.144537] ACPI: Device does not support D3cold
[   55.145532] ACPI: Device does not support D3cold
[   55.146510] ACPI: Device does not support D3cold
[   55.147500] ACPI: Device does not support D3cold
[   55.148458] ACPI: Device does not support D3cold
[   55.149440] ACPI: Device does not support D3cold
[   55.150416] ACPI: Device does not support D3cold
[   55.151374] ACPI: Device does not support D3cold
[   55.152191] ACPI: Device does not support D3cold
[   55.152992] ACPI: Device does not support D3cold
[   55.153803] ACPI: Device does not support D3cold
[   55.154657] ACPI: Device does not support D3cold
[   55.155443] ACPI: Device does not support D3cold
[   55.156275] ACPI: Device does not support D3cold
[   55.157086] ACPI: Device does not support D3cold
[   55.157902] ACPI: Device does not support D3cold
[   55.158668] ACPI: Device does not support D3cold
[   55.159447] ACPI: Device does not support D3cold
[   55.160208] ACPI: Device does not support D3cold
[   55.160933] ACPI: Device does not support D3cold
[   55.161656] ACPI: Device does not support D3cold
[   55.162309] ACPI: Device does not support D3cold
[   55.162946] ACPI: Device does not support D3cold
[   55.163606] ACPI: Device does not support D3cold
[   55.164260] ACPI: Device does not support D3cold
[   55.164895] ACPI: Device does not support D3cold
[   55.165529] ACPI: Device does not support D3cold
[   55.166156] ACPI: Device does not support D3cold
[   55.166739] ACPI: Device does not support D3cold
[   55.167331] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[   55.167919] acpiphp_glue: acpi_device not found
[   55.168533] ACPI: Device does not support D3cold
[   55.169142] ACPI: \_SB_.DOCK: undocking
[   55.638196] ACPI: \_SB_.DOCK: docking
[   55.638876] ACPI: \_SB_.DOCK: Unable to dock!
[   55.639370] acpiphp_glue: _handle_hotplug_event_bridge: Bus check notify on \_SB_.PCI0.RP07
[   55.639875] acpiphp_glue: _handle_hotplug_event_bridge: re-enumerating slots under \_SB_.PCI0.RP07
[   55.640398] acpiphp_glue: acpiphp_check_bridge: 0 enabled, 0 disabled
[   70.666237] acpiphp_glue: _handle_hotplug_event_bridge: Device check notify on \_SB_.PCI0.RP07
[   70.673363] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.674448] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.675248] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.676371] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.677999] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.678741] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.680149] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   70.681008] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[   70.681936] pci 0000:08:00.0: supports D1 D2
[   70.682838] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.686525] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[   70.687328] acpiphp: Slot [1-1] registered
[   70.688108] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[   70.688985] acpiphp: Slot [2] registered
[   70.689963] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[   70.690807] acpiphp: Slot [3] registered
[   70.691663] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[   70.692639] pci 0000:0a:00.0: supports D1 D2
[   70.693443] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.694362] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[   70.695343] pci 0000:0a:03.0: supports D1 D2
[   70.696172] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.697128] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[   70.698126] pci 0000:0a:04.0: supports D1 D2
[   70.698991] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.700018] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[   70.700922] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[   70.701842] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[   70.702764] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.703805] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[   70.704752] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[   70.705807] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[   70.706920] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[   70.708086] pci 0000:14:00.0: supports D1 D2
[   70.709023] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.711451] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[   70.712464] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[   70.713419] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   70.714371] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.715510] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[   70.716714] pci 0000:15:03.0: supports D1 D2
[   70.717652] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.718757] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[   70.719940] pci 0000:15:04.0: supports D1 D2
[   70.720866] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.722024] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[   70.723002] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[   70.724011] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   70.724982] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.726108] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[   70.727058] acpiphp: Slot [1-2] registered
[   70.728025] acpiphp_glue: sibling found, but _SUN doesn't match!
[   70.729005] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[   70.729985] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[   70.730963] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[   70.731914] pci 0000:16:00.0: reg 20: [io  0x0000-0x00ff]
[   70.732922] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[   70.734015] pci 0000:16:00.0: supports D1 D2
[   70.735000] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[   70.735892] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=none
[   70.736865] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[   70.737853] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[   70.739054] pci 0000:16:00.1: supports D1 D2
[   70.741510] pci 0000:15:03.0: PCI bridge to [bus 16]
[   70.742432] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[   70.743340] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[   70.744199] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[   70.745249] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[   70.746383] pci 0000:17:00.0: supports D1 D2
[   70.747208] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.748256] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[   70.749138] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[   70.750044] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   70.750937] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.752069] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[   70.753237] pci 0000:18:00.0: supports D1 D2
[   70.754083] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.755129] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[   70.756280] pci 0000:18:01.0: supports D1 D2
[   70.757106] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.758149] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[   70.759289] pci 0000:18:02.0: supports D1 D2
[   70.760116] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.761139] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[   70.762277] pci 0000:18:03.0: supports D1 D2
[   70.763089] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.764124] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[   70.765265] pci 0000:18:04.0: supports D1 D2
[   70.766085] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.767173] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[   70.768021] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[   70.768881] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   70.769750] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.770787] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[   70.771654] acpiphp: Slot [1-3] registered
[   70.772604] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[   70.773475] pci 0000:19:00.0: reg 10: [io  0x0000-0x00ff]
[   70.774403] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[   70.775300] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[   70.776416] pci 0000:19:00.0: supports D1 D2
[   70.777228] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   70.778297] pci 0000:18:00.0: PCI bridge to [bus 19]
[   70.779158] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   70.780035] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.781109] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[   70.781970] acpiphp: Slot [1-4] registered
[   70.782919] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[   70.783816] pci 0000:1a:00.0: reg 10: [io  0x8000-0x8007]
[   70.784710] pci 0000:1a:00.0: reg 14: [io  0x8040-0x8043]
[   70.785600] pci 0000:1a:00.0: reg 18: [io  0x8200-0x8207]
[   70.786445] pci 0000:1a:00.0: reg 1c: [io  0x8800-0x8803]
[   70.787301] pci 0000:1a:00.0: reg 20: [io  0x900000-0x90000f]
[   70.788168] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[   70.789255] pci 0000:1a:00.0: supports D1
[   70.790042] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[   70.791063] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   70.791908] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   70.792787] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   70.793833] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[   70.794673] acpiphp: Slot [1-5] registered
[   70.795595] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[   70.796505] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[   70.797747] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[   70.798784] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   70.799644] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   70.800699] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   70.801764] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   70.802814] pci_bus 0000:0a: Allocating resources
[   70.803670] pci 0000:1a:00.0: no compatible bridge window for [io  0x8000-0x8007]
[   70.804487] pci 0000:1a:00.0: no compatible bridge window for [io  0x8040-0x8043]
[   70.805295] pci 0000:1a:00.0: no compatible bridge window for [io  0x8200-0x8207]
[   70.806117] pci 0000:1a:00.0: no compatible bridge window for [io  0x8800-0x8803]
[   70.806920] pci 0000:1a:00.0: no compatible bridge window for [io  0x900000-0x90000f]
[   70.807736] pci 0000:1a:00.0: no compatible bridge window for [mem 0x00800000-0x008003ff]
[   70.808636] pci 0000:0a:00.0: bridge window [io  0x1000-0x0fff] to [bus 0b] add_size 1000
[   70.809400] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000
[   70.810186] pci 0000:0a:03.0: bridge window [io  0x1000-0x0fff] to [bus 0c] add_size 1000
[   70.810995] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0c] add_size 200000
[   70.811807] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0c] add_size 200000
[   70.812673] pci 0000:18:00.0: bridge window [mem 0x00100000-0x001fffff] to [bus 19] add_size 400000
[   70.813481] pci 0000:18:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1a] add_size 200000
[   70.814378] pci 0000:18:02.0: bridge window [io  0x1000-0x0fff] to [bus 1b] add_size 1000
[   70.815201] pci 0000:18:02.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1b] add_size 200000
[   70.816047] pci 0000:18:03.0: bridge window [io  0x1000-0x0fff] to [bus 1c] add_size 1000
[   70.816850] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1c] add_size 200000
[   70.817726] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1c] add_size 200000
[   70.818598] pci 0000:18:04.0: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[   70.819457] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1d] add_size 200000
[   70.820312] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1d] add_size 200000
[   70.821270] pci 0000:0a:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.822133] pci 0000:0a:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   70.823017] pci 0000:0a:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.823910] pci 0000:0a:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   70.824797] pci 0000:0a:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   70.825681] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.826551] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   70.827427] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.828291] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   70.829170] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   70.830002] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   70.830864] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.831705] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   70.832584] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.833450] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   70.834286] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[   70.835138] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[   70.835983] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[   70.836848] pci 0000:16:00.0: BAR 0: assigned [mem 0xb0000000-0xbfffffff 64bit pref]
[   70.837725] pci 0000:16:00.0: BAR 2: assigned [mem 0xc0200000-0xc021ffff 64bit]
[   70.838604] pci 0000:16:00.0: BAR 6: assigned [mem 0xc0220000-0xc023ffff pref]
[   70.839451] pci 0000:16:00.1: BAR 0: assigned [mem 0xc0240000-0xc0243fff 64bit]
[   70.840305] pci 0000:16:00.0: BAR 4: assigned [io  0x5000-0x50ff]
[   70.841143] pci 0000:15:03.0: PCI bridge to [bus 16]
[   70.841972] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[   70.842806] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[   70.843628] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[   70.844476] pci 0000:18:00.0: res[14]=[mem 0x00100000-0x001fffff] get_res_add_size add_size 400000
[   70.845313] pci 0000:18:01.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.846177] pci 0000:18:02.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.847018] pci 0000:18:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   70.847883] pci 0000:18:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.848727] pci 0000:18:04.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   70.849592] pci 0000:18:04.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   70.850441] pci 0000:18:02.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   70.851297] pci 0000:18:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   70.852164] pci 0000:18:04.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   70.852998] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x500000)
[   70.853854] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.854689] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.855530] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   70.856347] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.857186] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   70.858000] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.858837] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   70.859656] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   70.860467] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   70.861272] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x100000)
[   70.862091] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   70.862897] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.863721] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   70.864527] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   70.865325] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.866134] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   70.866907] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.867674] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   70.868435] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   70.869178] pci 0000:19:00.0: BAR 4: assigned [mem 0xd4400000-0xd4403fff 64bit pref]
[   70.869991] pci 0000:19:00.0: BAR 2: assigned [mem 0xd4404000-0xd4404fff 64bit pref]
[   70.870761] pci 0000:19:00.0: BAR 0: assigned [io  0x4000-0x40ff]
[   70.871508] pci 0000:18:00.0: PCI bridge to [bus 19]
[   70.872221] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   70.872974] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.873710] pci 0000:1a:00.0: BAR 5: assigned [mem 0xc0100000-0xc01003ff]
[   70.874440] pci 0000:1a:00.0: BAR 4: assigned [io  0x3000-0x300f]
[   70.875146] pci 0000:1a:00.0: BAR 0: assigned [io  0x3010-0x3017]
[   70.875888] pci 0000:1a:00.0: BAR 2: assigned [io  0x3018-0x301f]
[   70.876576] pci 0000:1a:00.0: BAR 1: assigned [io  0x3020-0x3023]
[   70.877253] pci 0000:1a:00.0: BAR 3: assigned [io  0x3024-0x3027]
[   70.877957] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   70.878640] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   70.879354] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   70.880061] pci 0000:1b:00.0: BAR 0: assigned [mem 0xc0000000-0xc0001fff 64bit]
[   70.880801] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   70.881508] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   70.882226] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   70.882975] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   70.883719] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[   70.884428] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[   70.885134] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   70.885854] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.886578] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[   70.887272] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[   70.887995] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   70.888694] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.889410] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[   70.890106] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[   70.890825] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   70.891523] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.892231] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[   70.892943] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[   70.893658] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   70.894355] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.895058] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[   70.895763] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[   70.896464] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[   70.897159] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   70.897881] pci 0000:08:00.0: no hotplug settings from platform
[   70.898569] pci 0000:0a:00.0: no hotplug settings from platform
[   70.899246] pci 0000:0a:03.0: no hotplug settings from platform
[   70.899937] pci 0000:0a:04.0: no hotplug settings from platform
[   70.900589] pci 0000:14:00.0: no hotplug settings from platform
[   70.901243] pci 0000:15:03.0: no hotplug settings from platform
[   70.901921] pci 0000:16:00.0: no hotplug settings from platform
[   70.902580] pci 0000:16:00.1: no hotplug settings from platform
[   70.903222] pci 0000:15:04.0: no hotplug settings from platform
[   70.903891] pci 0000:17:00.0: no hotplug settings from platform
[   70.904542] pci 0000:18:00.0: no hotplug settings from platform
[   70.905183] pci 0000:19:00.0: no hotplug settings from platform
[   70.905836] pci 0000:18:01.0: no hotplug settings from platform
[   70.906476] pci 0000:1a:00.0: no hotplug settings from platform
[   70.907103] pci 0000:18:02.0: no hotplug settings from platform
[   70.907748] pci 0000:1b:00.0: no hotplug settings from platform
[   70.908383] pci 0000:18:03.0: no hotplug settings from platform
[   70.909007] pci 0000:18:04.0: no hotplug settings from platform
[   70.910109] pcieport 0000:08:00.0: irq 40 for MSI/MSI-X
[   70.910875] pcieport 0000:0a:00.0: irq 41 for MSI/MSI-X
[   70.911626] pcieport 0000:0a:03.0: irq 42 for MSI/MSI-X
[   70.912399] pcieport 0000:0a:04.0: irq 43 for MSI/MSI-X
[   70.913186] pcieport 0000:14:00.0: irq 44 for MSI/MSI-X
[   70.914026] pcieport 0000:15:03.0: irq 45 for MSI/MSI-X
[   70.914885] pcieport 0000:15:04.0: irq 46 for MSI/MSI-X
[   70.915857] snd_hda_intel 0000:16:00.1: enabling device (0000 -> 0002)
[   70.916526] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[   70.917199] snd_hda_intel 0000:16:00.1: irq 47 for MSI/MSI-X
[   70.921402] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/0000:16:00.1/sound/card1/input14
[   70.924212] pcieport 0000:17:00.0: irq 48 for MSI/MSI-X
[   70.925675] pcieport 0000:18:00.0: irq 49 for MSI/MSI-X
[   70.926672] pcieport 0000:18:01.0: irq 50 for MSI/MSI-X
[   70.927645] pcieport 0000:18:02.0: irq 51 for MSI/MSI-X
[   70.928581] pcieport 0000:18:03.0: irq 52 for MSI/MSI-X
[   70.929519] pcieport 0000:18:04.0: irq 60 for MSI/MSI-X
[   70.930443] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   70.931101] r8169 0000:19:00.0: enabling device (0000 -> 0003)
[   70.932090] r8169 0000:19:00.0: irq 61 for MSI/MSI-X
[   70.932989] r8169 0000:19:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011cf6000, 54:42:49:9a:de:86, XID 0c900800 IRQ 61
[   70.933678] r8169 0000:19:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   70.935377] scsi8 : pata_marvell
[   70.936679] scsi9 : pata_marvell
[   70.937376] ata9: PATA max UDMA/100 cmd 0x3010 ctl 0x3020 bmdma 0x3000 irq 19
[   70.938050] ata10: PATA max UDMA/133 cmd 0x3018 ctl 0x3024 bmdma 0x3008 irq 19
[   70.939081] pci 0000:1b:00.0: enabling device (0000 -> 0002)
[   70.940664] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   70.941430] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 5
[   70.942579] xhci_hcd 0000:1b:00.0: irq 62 for MSI/MSI-X
[   70.943289] xhci_hcd 0000:1b:00.0: irq 63 for MSI/MSI-X
[   70.944194] xhci_hcd 0000:1b:00.0: irq 64 for MSI/MSI-X
[   70.945165] xhci_hcd 0000:1b:00.0: irq 69 for MSI/MSI-X
[   70.945932] xhci_hcd 0000:1b:00.0: irq 70 for MSI/MSI-X
[   70.946931] xHCI xhci_add_endpoint called for root hub
[   70.947844] xHCI xhci_check_bandwidth called for root hub
[   70.948542] hub 5-0:1.0: USB hub found
[   70.949213] hub 5-0:1.0: 2 ports detected
[   70.950074] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   70.950805] systemd-udevd[2239]: renamed network interface eth0 to enp25s0
[   70.951848] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 6
[   70.953105] xHCI xhci_add_endpoint called for root hub
[   70.954073] xHCI xhci_check_bandwidth called for root hub
[   70.954979] hub 6-0:1.0: USB hub found
[   70.955685] hub 6-0:1.0: 2 ports detected
[   70.969823] acpiphp_glue: acpiphp_check_bridge: 1 enabled, 0 disabled
[   70.970547] ACPI: \_SB_.DOCK: docking
[   70.971445] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[   70.972135] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[   70.972829] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[   70.973506] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[   70.974184] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[   70.974892] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[   70.975581] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[   70.976277] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[   70.976980] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[   70.978379] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[   70.979161] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[   70.979883] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[   70.980570] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[   70.981278] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[   70.982008] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[   70.982705] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[   70.983409] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[   70.984124] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[   71.252214] usb 5-1: new high-speed USB device number 2 using xhci_hcd
[   71.266531] hub 5-1:1.0: USB hub found
[   71.268400] hub 5-1:1.0: 2 ports detected
[   71.292509] ata10.00: ATAPI: Optiarc BD RW BD-5850H, 1.70, max UDMA/100
[   71.300617] ata10.00: configured for UDMA/100
[   71.304521] scsi 9:0:0:0: CD-ROM            Optiarc  BD RW BD-5850H   1.70 PQ: 0 ANSI: 5
[   71.307480] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda caddy
[   71.308408] sr 9:0:0:0: Attached scsi CD-ROM sr0
[  111.248986] [drm] radeon kernel modesetting enabled.
[  111.250409] radeon 0000:16:00.0: enabling device (0000 -> 0003)
[  111.252212] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[  111.253932] [drm] register mmio base: 0xC0200000
[  111.255008] [drm] register mmio size: 131072
[  112.042718] ATOM BIOS: Sony
[  112.044593] [drm] GPU not posted. posting now...
[  112.051394] radeon 0000:16:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[  112.053127] radeon 0000:16:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[  112.054616] mtrr: no more MTRRs available
[  112.056062] [drm] Detected VRAM RAM=1024M, BAR=256M
[  112.057515] [drm] RAM width 128bits DDR
[  112.059080] [TTM] Zone  kernel: Available graphics memory: 4041738 kiB
[  112.060520] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[  112.061961] [TTM] Initializing pool allocator
[  112.063388] [TTM] Initializing DMA pool allocator
[  112.064586] [drm] radeon: 1024M of VRAM memory ready
[  112.065735] [drm] radeon: 512M of GTT memory ready.
[  112.083206] [drm] GART: num cpu pages 131072, num gpu pages 131072
[  112.084464] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[  112.089123] [drm] Loading TURKS Microcode
[  112.099035] [drm] PCIE GART of 512M enabled (table at 0x0000000000273000).
[  112.100061] radeon 0000:16:00.0: WB enabled
[  112.100876] radeon 0000:16:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff880240dd9c00
[  112.101728] radeon 0000:16:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff880240dd9c0c
[  112.102714] radeon 0000:16:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90024e32118
[  112.103530] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[  112.104328] [drm] Driver supports precise vblank timestamp query.
[  112.105204] radeon 0000:16:00.0: irq 72 for MSI/MSI-X
[  112.106054] radeon 0000:16:00.0: radeon: using MSI.
[  112.106949] [drm] radeon: irq initialized.
[  112.124834] [drm] ring test on 0 succeeded in 1 usecs
[  112.125679] [drm] ring test on 3 succeeded in 1 usecs
[  112.313064] [drm] ring test on 5 succeeded in 1 usecs
[  112.313830] [drm] UVD initialized successfully.
[  112.314860] [drm] Enabling audio support
[  112.315818] [drm] ib test on ring 0 succeeded in 0 usecs
[  112.317122] [drm] ib test on ring 3 succeeded in 0 usecs
[  112.471079] [drm] ib test on ring 5 succeeded
[  112.472530] [drm] Radeon Display Connectors
[  112.473576] [drm] Connector 0:
[  112.474415] [drm]   HDMI-A-2
[  112.475399] [drm]   HPD1
[  112.476334] [drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[  112.477123] [drm]   Encoders:
[  112.478225] [drm]     DFP1: INTERNAL_UNIPHY1
[  112.479007] [drm] Connector 1:
[  112.479810] [drm]   VGA-2
[  112.480567] [drm]   DDC: 0x6470 0x6470 0x6474 0x6474 0x6478 0x6478 0x647c 0x647c
[  112.481347] [drm]   Encoders:
[  112.482093] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[  112.485557] [drm] Internal thermal controller with fan control
[  112.487634] [drm] radeon: power management initialized
[  112.498648] radeon 0000:16:00.0: No connectors reported connected with modes
[  112.499463] [drm] Cannot find any crtc or sizes - going 1024x768
[  112.517511] [drm] fb mappable at 0xB0375000
[  112.518263] [drm] vram apper at 0xB0000000
[  112.519027] [drm] size 3145728
[  112.519769] [drm] fb depth is 24
[  112.520532] [drm]    pitch is 4096
[  112.521389] radeon 0000:16:00.0: fb1: radeondrmfb frame buffer device
[  112.522294] [drm] Initialized radeon 2.33.0 20080528 for 0000:16:00.0 on minor 1
[  122.165703] [drm] radeon: finishing device.
[  122.167667] [drm] Disabling audio support
[  122.171322] radeon 0000:16:00.0: ffff880247fdd400 unpin not necessary
[  122.173181] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown
[  122.174518] [TTM] Finalizing pool allocator
[  122.175646] [TTM] Finalizing DMA pool allocator
[  122.176788] ------------[ cut here ]------------
[  122.177943] WARNING: at drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:533 ttm_dma_free_pool+0x101/0x110 [ttm]()
[  122.179124] Modules linked in: radeon(-) ttm ata_generic pata_acpi zram(C) rfcomm bnep iTCO_wdt iTCO_vendor_support rtsx_pci_ms memstick rtsx_pci_sdmmc mmc_core coretemp kvm_intel kvm joydev pcspkr arc4 iwldvm uvcvideo i2c_i801 videobuf2_vmalloc videobuf2_memops mac80211 videobuf2_core lpc_ich videodev media btusb r8169 qcserial iwlwifi usb_wwan bluetooth rtsx_pci snd_hda_codec_hdmi usbserial mii mfd_core cfg80211 snd_hda_codec_realtek sony_laptop rfkill snd_hda_intel i915 intel_agp snd_hda_codec intel_gtt snd_hwdep i2c_algo_bit snd_pcm drm_kms_helper snd_page_alloc drm agpgart snd_timer snd sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd pata_marvell xhci_hcd ehci_pci ehci_hcd dm_mirror
[  122.183364]  dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  122.184746] CPU: 3 PID: 2356 Comm: rmmod Tainted: G         C   3.10.0-rc5-rafael #2
[  122.185954] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  122.187146]  ffffffffa0539270 ffff880252d37bb8 ffffffff8165adb8 ffff880252d37bf8
[  122.188355]  ffffffff8103c8cb ffff880252d37bc8 ffff88024c873b00 ffff880253d4d3c0
[  122.189567]  0000000000000008 ffffffffa096ae80 00000000010f8010 ffff880252d37c08
[  122.190770] Call Trace:
[  122.191960]  [<ffffffff8165adb8>] dump_stack+0x19/0x1b
[  122.193158]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  122.194342]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  122.195373]  [<ffffffffa0536d01>] ttm_dma_free_pool+0x101/0x110 [ttm]
[  122.196389]  [<ffffffffa0537ee5>] ttm_dma_page_alloc_fini+0x85/0xcc [ttm]
[  122.197411]  [<ffffffffa052d455>] ttm_mem_global_release+0x25/0xa0 [ttm]
[  122.198444]  [<ffffffffa08d44ed>] radeon_ttm_mem_global_release+0xd/0x10 [radeon]
[  122.199484]  [<ffffffffa01aa213>] drm_global_item_unref+0x63/0x90 [drm]
[  122.200528]  [<ffffffffa08d5721>] radeon_ttm_fini+0xd1/0xe0 [radeon]
[  122.201579]  [<ffffffffa08d6129>] radeon_bo_fini+0x9/0x10 [radeon]
[  122.202631]  [<ffffffffa091ebf1>] evergreen_fini+0x91/0xc0 [radeon]
[  122.203680]  [<ffffffffa08be6ea>] radeon_device_fini+0x3a/0xf0 [radeon]
[  122.204735]  [<ffffffffa08c03d1>] radeon_driver_unload_kms+0x41/0x70 [radeon]
[  122.205693]  [<ffffffffa019924e>] drm_put_dev+0x6e/0x210 [drm]
[  122.206639]  [<ffffffffa08bd068>] radeon_pci_remove+0x18/0x20 [radeon]
[  122.207584]  [<ffffffff813856b1>] pci_device_remove+0x41/0xc0
[  122.208534]  [<ffffffff8143bf37>] __device_release_driver+0x77/0xe0
[  122.209486]  [<ffffffff8143c838>] driver_detach+0xc8/0xd0
[  122.210440]  [<ffffffff8143bd08>] bus_remove_driver+0x88/0xe0
[  122.211390]  [<ffffffff8143ceba>] driver_unregister+0x5a/0x90
[  122.212330]  [<ffffffff8138589e>] pci_unregister_driver+0x1e/0x80
[  122.213280]  [<ffffffffa019b478>] drm_pci_exit+0x88/0x90 [drm]
[  122.214235]  [<ffffffffa093c7cb>] radeon_exit+0x17/0x184 [radeon]
[  122.215150]  [<ffffffff810ab6ee>] SyS_delete_module+0x16e/0x250
[  122.216053]  [<ffffffff81363f64>] ? lockdep_sys_exit_thunk+0x35/0x67
[  122.216970]  [<ffffffff81668416>] system_call_fastpath+0x1a/0x1f
[  122.217906] ---[ end trace c092f3d2c69e7935 ]---
[  122.218876] [TTM] Zone  kernel: Used memory at exit: 13 kiB
[  122.219821] [TTM] Zone   dma32: Used memory at exit: 9 kiB
[  122.220754] [drm] radeon: ttm finalized
[  122.221938] [drm] Module unloaded
[  154.753932] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[  154.756531] xhci_hcd 0000:1b:00.0: remove, state 4
[  154.758235] usb usb6: USB disconnect, device number 1
[  154.760039] xHCI xhci_drop_endpoint called for root hub
[  154.761734] xHCI xhci_check_bandwidth called for root hub
[  154.770156] xhci_hcd 0000:1b:00.0: USB bus 6 deregistered
[  154.771561] xhci_hcd 0000:1b:00.0: remove, state 4
[  154.772982] usb usb5: USB disconnect, device number 1
[  154.774408] usb 5-1: USB disconnect, device number 2
[  154.776087] xHCI xhci_drop_endpoint called for root hub
[  154.777216] xHCI xhci_check_bandwidth called for root hub
[  154.778718] xhci_hcd 0000:1b:00.0: USB bus 5 deregistered
[  154.790134] ata10.00: disabled
[  154.793551] cdrom: issuing MRW background format suspend
[  154.816880] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[  154.819618] pci_bus 0000:0b: busn_res: [bus 0b] is released
[  154.820739] pci_bus 0000:0c: busn_res: [bus 0c] is released
[  154.821813] pci_bus 0000:16: busn_res: [bus 16] is released
[  154.833731] acpiphp: Slot [1-2] unregistered
[  154.834763] acpiphp: release_slot - physical_slot = 1-2
[  154.835846] pci_bus 0000:19: busn_res: [bus 19] is released
[  154.843744] acpiphp: Slot [1-3] unregistered
[  154.844816] acpiphp: release_slot - physical_slot = 1-3
[  154.845847] pci_bus 0000:1a: busn_res: [bus 1a] is released
[  154.853756] acpiphp: Slot [1-4] unregistered
[  154.854771] acpiphp: release_slot - physical_slot = 1-4
[  154.855734] pci_bus 0000:1b: busn_res: [bus 1b] is released
[  154.859778] acpiphp: Slot [1-5] unregistered
[  154.860659] acpiphp: release_slot - physical_slot = 1-5
[  154.861514] pci_bus 0000:1c: busn_res: [bus 1c] is released
[  154.862428] pci_bus 0000:1d: busn_res: [bus 1d] is released
[  154.863360] pci_bus 0000:18: busn_res: [bus 18-1d] is released
[  154.864210] pci_bus 0000:17: busn_res: [bus 17-1d] is released
[  154.865050] pci_bus 0000:15: busn_res: [bus 15-1d] is released
[  154.865896] pci_bus 0000:14: busn_res: [bus 14-1d] is released
[  154.866699] pci_bus 0000:0a: busn_res: [bus 0a-1d] is released
[  154.873786] acpiphp: Slot [1-1] unregistered
[  154.874604] acpiphp: release_slot - physical_slot = 1-1
[  154.879822] acpiphp: Slot [2] unregistered
[  154.880659] acpiphp: release_slot - physical_slot = 2
[  154.885826] acpiphp: Slot [3] unregistered
[  154.886633] acpiphp: release_slot - physical_slot = 3
[  154.887639] ACPI: Device does not support D3cold
[  154.888476] ACPI: Device does not support D3cold
[  154.889287] ACPI: Device does not support D3cold
[  154.890091] ACPI: Device does not support D3cold
[  154.891205] ACPI: Device does not support D3cold
[  154.891995] ACPI: Device does not support D3cold
[  154.892767] ACPI: Device does not support D3cold
[  154.893519] ACPI: Device does not support D3cold
[  154.894278] ACPI: Device does not support D3cold
[  154.895023] ACPI: Device does not support D3cold
[  154.895755] ACPI: Device does not support D3cold
[  154.896473] ACPI: Device does not support D3cold
[  154.897194] ACPI: Device does not support D3cold
[  154.897918] ACPI: Device does not support D3cold
[  154.898620] ACPI: Device does not support D3cold
[  154.899314] ACPI: Device does not support D3cold
[  154.900003] ACPI: Device does not support D3cold
[  154.900685] ACPI: Device does not support D3cold
[  154.901356] ACPI: Device does not support D3cold
[  154.902012] ACPI: Device does not support D3cold
[  154.902658] ACPI: Device does not support D3cold
[  154.903297] ACPI: Device does not support D3cold
[  154.903937] ACPI: Device does not support D3cold
[  154.904587] ACPI: Device does not support D3cold
[  154.905208] ACPI: Device does not support D3cold
[  154.905824] ACPI: Device does not support D3cold
[  154.906403] ACPI: Device does not support D3cold
[  154.906978] ACPI: Device does not support D3cold
[  154.907536] ACPI: Device does not support D3cold
[  154.908087] ACPI: Device does not support D3cold
[  154.908629] ACPI: Device does not support D3cold
[  154.909159] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[  154.909694] acpiphp_glue: acpi_device not found
[  154.910261] ACPI: Device does not support D3cold
[  154.910813] ACPI: \_SB_.DOCK: undocking
[  155.383733] ACPI: \_SB_.DOCK: docking
[  155.384941] ACPI: \_SB_.DOCK: Unable to dock!
[  155.385508] acpiphp_glue: _handle_hotplug_event_bridge: Bus check notify on \_SB_.PCI0.RP07
[  155.386071] acpiphp_glue: _handle_hotplug_event_bridge: re-enumerating slots under \_SB_.PCI0.RP07
[  155.386633] acpiphp_glue: acpiphp_check_bridge: 0 enabled, 0 disabled
[  168.177066] acpiphp_glue: _handle_hotplug_event_bridge: Device check notify on \_SB_.PCI0.RP07
[  168.184214] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.185309] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.187233] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.189128] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.189892] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.190648] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.191391] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[  168.192258] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[  168.193291] pci 0000:08:00.0: supports D1 D2
[  168.194027] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.197385] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[  168.198409] acpiphp: Slot [1-1] registered
[  168.199190] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[  168.199981] acpiphp: Slot [2] registered
[  168.200941] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[  168.201745] acpiphp: Slot [3] registered
[  168.202599] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[  168.203558] pci 0000:0a:00.0: supports D1 D2
[  168.204361] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.205296] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[  168.206281] pci 0000:0a:03.0: supports D1 D2
[  168.207093] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.208052] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[  168.209049] pci 0000:0a:04.0: supports D1 D2
[  168.209916] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.210943] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[  168.211841] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[  168.212767] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[  168.213697] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.214731] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[  168.215676] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[  168.216733] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[  168.217845] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[  168.219013] pci 0000:14:00.0: supports D1 D2
[  168.219958] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.222291] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[  168.223341] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[  168.224330] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  168.225313] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.226484] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[  168.227682] pci 0000:15:03.0: supports D1 D2
[  168.228636] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.229778] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[  168.230976] pci 0000:15:04.0: supports D1 D2
[  168.231928] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.233288] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[  168.234285] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[  168.235304] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  168.236276] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.237395] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[  168.238366] acpiphp: Slot [1-2] registered
[  168.239339] acpiphp_glue: sibling found, but _SUN doesn't match!
[  168.240304] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[  168.241256] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[  168.242204] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[  168.243157] pci 0000:16:00.0: reg 20: [io  0x0000-0x00ff]
[  168.244145] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[  168.245240] pci 0000:16:00.0: supports D1 D2
[  168.246239] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[  168.247133] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=none
[  168.248109] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[  168.249090] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[  168.250295] pci 0000:16:00.1: supports D1 D2
[  168.253424] pci 0000:15:03.0: PCI bridge to [bus 16]
[  168.254355] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[  168.255239] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[  168.256110] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[  168.257182] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[  168.258346] pci 0000:17:00.0: supports D1 D2
[  168.259167] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.260216] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[  168.261110] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[  168.262012] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  168.262926] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.264064] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[  168.265223] pci 0000:18:00.0: supports D1 D2
[  168.266066] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.267127] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[  168.268287] pci 0000:18:01.0: supports D1 D2
[  168.269109] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.270144] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[  168.271290] pci 0000:18:02.0: supports D1 D2
[  168.272106] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.273139] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[  168.274282] pci 0000:18:03.0: supports D1 D2
[  168.275095] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.276136] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[  168.277281] pci 0000:18:04.0: supports D1 D2
[  168.278096] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.279197] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[  168.280054] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[  168.280933] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  168.281787] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.282844] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[  168.283708] acpiphp: Slot [1-3] registered
[  168.284666] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[  168.285567] pci 0000:19:00.0: reg 10: [io  0x0000-0x00ff]
[  168.286524] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[  168.287444] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[  168.288552] pci 0000:19:00.0: supports D1 D2
[  168.289362] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  168.290423] pci 0000:18:00.0: PCI bridge to [bus 19]
[  168.291274] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[  168.292134] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.293197] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[  168.294059] acpiphp: Slot [1-4] registered
[  168.295005] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[  168.295907] pci 0000:1a:00.0: reg 10: [io  0x8000-0x8007]
[  168.296804] pci 0000:1a:00.0: reg 14: [io  0x8040-0x8043]
[  168.297705] pci 0000:1a:00.0: reg 18: [io  0x8200-0x8207]
[  168.298596] pci 0000:1a:00.0: reg 1c: [io  0x8800-0x8803]
[  168.299484] pci 0000:1a:00.0: reg 20: [io  0x900000-0x90000f]
[  168.300342] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[  168.301422] pci 0000:1a:00.0: supports D1
[  168.302219] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[  168.303240] pci 0000:18:01.0: PCI bridge to [bus 1a]
[  168.304096] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[  168.304939] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[  168.306012] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[  168.306847] acpiphp: Slot [1-5] registered
[  168.307781] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[  168.308684] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[  168.309912] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[  168.310955] pci 0000:18:02.0: PCI bridge to [bus 1b]
[  168.311814] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[  168.312876] pci 0000:18:03.0: PCI bridge to [bus 1c]
[  168.313949] pci 0000:18:04.0: PCI bridge to [bus 1d]
[  168.315007] pci_bus 0000:0a: Allocating resources
[  168.315862] pci 0000:1a:00.0: no compatible bridge window for [io  0x8000-0x8007]
[  168.316676] pci 0000:1a:00.0: no compatible bridge window for [io  0x8040-0x8043]
[  168.317500] pci 0000:1a:00.0: no compatible bridge window for [io  0x8200-0x8207]
[  168.318284] pci 0000:1a:00.0: no compatible bridge window for [io  0x8800-0x8803]
[  168.319068] pci 0000:1a:00.0: no compatible bridge window for [io  0x900000-0x90000f]
[  168.319872] pci 0000:1a:00.0: no compatible bridge window for [mem 0x00800000-0x008003ff]
[  168.320784] pci 0000:0a:00.0: bridge window [io  0x1000-0x0fff] to [bus 0b] add_size 1000
[  168.321569] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000
[  168.322385] pci 0000:0a:03.0: bridge window [io  0x1000-0x0fff] to [bus 0c] add_size 1000
[  168.323160] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0c] add_size 200000
[  168.323940] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0c] add_size 200000
[  168.324817] pci 0000:18:00.0: bridge window [mem 0x00100000-0x001fffff] to [bus 19] add_size 400000
[  168.325635] pci 0000:18:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1a] add_size 200000
[  168.326474] pci 0000:18:02.0: bridge window [io  0x1000-0x0fff] to [bus 1b] add_size 1000
[  168.327280] pci 0000:18:02.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1b] add_size 200000
[  168.328107] pci 0000:18:03.0: bridge window [io  0x1000-0x0fff] to [bus 1c] add_size 1000
[  168.328932] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1c] add_size 200000
[  168.329774] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1c] add_size 200000
[  168.330641] pci 0000:18:04.0: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[  168.331448] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1d] add_size 200000
[  168.332294] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1d] add_size 200000
[  168.333214] pci 0000:0a:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.334038] pci 0000:0a:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  168.334896] pci 0000:0a:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.335789] pci 0000:0a:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  168.336645] pci 0000:0a:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  168.337500] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.338342] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[  168.339167] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.340014] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[  168.340864] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[  168.341715] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[  168.342550] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.343368] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[  168.344167] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.345018] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[  168.345838] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[  168.346680] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[  168.347516] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[  168.348346] pci 0000:16:00.0: BAR 0: assigned [mem 0xb0000000-0xbfffffff 64bit pref]
[  168.349178] pci 0000:16:00.0: BAR 2: assigned [mem 0xc0200000-0xc021ffff 64bit]
[  168.350036] pci 0000:16:00.0: BAR 6: assigned [mem 0xc0220000-0xc023ffff pref]
[  168.350839] pci 0000:16:00.1: BAR 0: assigned [mem 0xc0240000-0xc0243fff 64bit]
[  168.351689] pci 0000:16:00.0: BAR 4: assigned [io  0x5000-0x50ff]
[  168.352487] pci 0000:15:03.0: PCI bridge to [bus 16]
[  168.353276] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[  168.354064] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[  168.354875] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[  168.355693] pci 0000:18:00.0: res[14]=[mem 0x00100000-0x001fffff] get_res_add_size add_size 400000
[  168.356507] pci 0000:18:01.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.357331] pci 0000:18:02.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.358127] pci 0000:18:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  168.358967] pci 0000:18:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.359792] pci 0000:18:04.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  168.360633] pci 0000:18:04.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  168.361459] pci 0000:18:02.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  168.362303] pci 0000:18:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  168.363103] pci 0000:18:04.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  168.363938] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x500000)
[  168.364766] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.365586] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.366391] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[  168.367176] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.367988] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[  168.368790] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.369587] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[  168.370382] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[  168.371143] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[  168.371943] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x100000)
[  168.372737] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[  168.373531] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.374319] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[  168.375090] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[  168.375879] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.376677] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[  168.377452] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.378203] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[  168.378940] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[  168.379699] pci 0000:19:00.0: BAR 4: assigned [mem 0xd4400000-0xd4403fff 64bit pref]
[  168.380510] pci 0000:19:00.0: BAR 2: assigned [mem 0xd4404000-0xd4404fff 64bit pref]
[  168.381267] pci 0000:19:00.0: BAR 0: assigned [io  0x4000-0x40ff]
[  168.381996] pci 0000:18:00.0: PCI bridge to [bus 19]
[  168.382757] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[  168.383504] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.384227] pci 0000:1a:00.0: BAR 5: assigned [mem 0xc0100000-0xc01003ff]
[  168.384941] pci 0000:1a:00.0: BAR 4: assigned [io  0x3000-0x300f]
[  168.385680] pci 0000:1a:00.0: BAR 0: assigned [io  0x3010-0x3017]
[  168.386391] pci 0000:1a:00.0: BAR 2: assigned [io  0x3018-0x301f]
[  168.387079] pci 0000:1a:00.0: BAR 1: assigned [io  0x3020-0x3023]
[  168.387779] pci 0000:1a:00.0: BAR 3: assigned [io  0x3024-0x3027]
[  168.388473] pci 0000:18:01.0: PCI bridge to [bus 1a]
[  168.389140] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[  168.389812] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[  168.390514] pci 0000:1b:00.0: BAR 0: assigned [mem 0xc0000000-0xc0001fff 64bit]
[  168.391205] pci 0000:18:02.0: PCI bridge to [bus 1b]
[  168.391874] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[  168.392587] pci 0000:18:03.0: PCI bridge to [bus 1c]
[  168.393291] pci 0000:18:04.0: PCI bridge to [bus 1d]
[  168.393991] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[  168.394680] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[  168.395372] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  168.396046] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.396754] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[  168.397424] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[  168.398098] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  168.398797] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.399490] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[  168.400164] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[  168.400836] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  168.401539] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.402232] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[  168.402902] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[  168.403595] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  168.404277] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.404956] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[  168.405640] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[  168.406313] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[  168.406979] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  168.407678] pci 0000:08:00.0: no hotplug settings from platform
[  168.408354] pci 0000:0a:00.0: no hotplug settings from platform
[  168.409007] pci 0000:0a:03.0: no hotplug settings from platform
[  168.409677] pci 0000:0a:04.0: no hotplug settings from platform
[  168.410315] pci 0000:14:00.0: no hotplug settings from platform
[  168.410947] pci 0000:15:03.0: no hotplug settings from platform
[  168.411601] pci 0000:16:00.0: no hotplug settings from platform
[  168.412231] pci 0000:16:00.1: no hotplug settings from platform
[  168.412846] pci 0000:15:04.0: no hotplug settings from platform
[  168.413488] pci 0000:17:00.0: no hotplug settings from platform
[  168.414113] pci 0000:18:00.0: no hotplug settings from platform
[  168.414726] pci 0000:19:00.0: no hotplug settings from platform
[  168.415341] pci 0000:18:01.0: no hotplug settings from platform
[  168.415957] pci 0000:1a:00.0: no hotplug settings from platform
[  168.416828] pci 0000:18:02.0: no hotplug settings from platform
[  168.417709] pci 0000:1b:00.0: no hotplug settings from platform
[  168.418622] pci 0000:18:03.0: no hotplug settings from platform
[  168.419727] pci 0000:18:04.0: no hotplug settings from platform
[  168.420867] pcieport 0000:08:00.0: irq 40 for MSI/MSI-X
[  168.421672] pcieport 0000:0a:00.0: irq 41 for MSI/MSI-X
[  168.422439] pcieport 0000:0a:03.0: irq 42 for MSI/MSI-X
[  168.423690] pcieport 0000:0a:04.0: irq 43 for MSI/MSI-X
[  168.424663] pcieport 0000:14:00.0: irq 44 for MSI/MSI-X
[  168.425598] pcieport 0000:15:03.0: irq 45 for MSI/MSI-X
[  168.426607] pcieport 0000:15:04.0: irq 46 for MSI/MSI-X
[  168.427631] snd_hda_intel 0000:16:00.1: enabling device (0000 -> 0002)
[  168.428328] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[  168.428994] snd_hda_intel 0000:16:00.1: irq 47 for MSI/MSI-X
[  168.433285] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/0000:16:00.1/sound/card1/input15
[  168.434729] pcieport 0000:17:00.0: irq 48 for MSI/MSI-X
[  168.437219] pcieport 0000:18:00.0: irq 49 for MSI/MSI-X
[  168.438455] pcieport 0000:18:01.0: irq 50 for MSI/MSI-X
[  168.439418] pcieport 0000:18:02.0: irq 51 for MSI/MSI-X
[  168.440334] pcieport 0000:18:03.0: irq 52 for MSI/MSI-X
[  168.441252] pcieport 0000:18:04.0: irq 60 for MSI/MSI-X
[  168.442161] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[  168.442817] r8169 0000:19:00.0: enabling device (0000 -> 0003)
[  168.443778] r8169 0000:19:00.0: irq 61 for MSI/MSI-X
[  168.444640] r8169 0000:19:00.0 eth0: RTL8168evl/8111evl at 0xffffc90024c4c000, 54:42:49:9a:de:86, XID 0c900800 IRQ 61
[  168.445300] r8169 0000:19:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[  168.446767] scsi10 : pata_marvell
[  168.447549] scsi11 : pata_marvell
[  168.448255] ata11: PATA max UDMA/100 cmd 0x3010 ctl 0x3020 bmdma 0x3000 irq 19
[  168.448922] ata12: PATA max UDMA/133 cmd 0x3018 ctl 0x3024 bmdma 0x3008 irq 19
[  168.449645] pci 0000:1b:00.0: enabling device (0000 -> 0002)
[  168.451374] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[  168.452309] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 5
[  168.453614] xhci_hcd 0000:1b:00.0: irq 62 for MSI/MSI-X
[  168.454411] xhci_hcd 0000:1b:00.0: irq 63 for MSI/MSI-X
[  168.455119] xhci_hcd 0000:1b:00.0: irq 64 for MSI/MSI-X
[  168.455888] xhci_hcd 0000:1b:00.0: irq 69 for MSI/MSI-X
[  168.456781] xhci_hcd 0000:1b:00.0: irq 70 for MSI/MSI-X
[  168.457812] xHCI xhci_add_endpoint called for root hub
[  168.458485] xHCI xhci_check_bandwidth called for root hub
[  168.459168] hub 5-0:1.0: USB hub found
[  168.459859] hub 5-0:1.0: 2 ports detected
[  168.460636] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[  168.460644] systemd-udevd[2445]: renamed network interface eth0 to enp25s0
[  168.462073] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 6
[  168.462956] xHCI xhci_add_endpoint called for root hub
[  168.463671] xHCI xhci_check_bandwidth called for root hub
[  168.464419] hub 6-0:1.0: USB hub found
[  168.465129] hub 6-0:1.0: 2 ports detected
[  168.475566] acpiphp_glue: acpiphp_check_bridge: 1 enabled, 0 disabled
[  168.476249] ACPI: \_SB_.DOCK: docking
[  168.477179] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[  168.477880] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[  168.478564] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[  168.479255] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[  168.479952] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[  168.480673] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[  168.481353] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[  168.482051] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[  168.482767] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[  168.484094] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[  168.484807] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[  168.485489] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[  168.486187] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[  168.486896] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[  168.487613] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[  168.488302] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[  168.489014] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[  168.489736] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[  168.763068] usb 5-1: new high-speed USB device number 2 using xhci_hcd
[  168.803195] hub 5-1:1.0: USB hub found
[  168.803438] ata12.00: ATAPI: Optiarc BD RW BD-5850H, 1.70, max UDMA/100
[  168.806000] hub 5-1:1.0: 2 ports detected
[  168.810456] ata12.00: configured for UDMA/100
[  168.814246] scsi 11:0:0:0: CD-ROM            Optiarc  BD RW BD-5850H   1.70 PQ: 0 ANSI: 5
[  168.817367] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda caddy
[  168.818629] sr 11:0:0:0: Attached scsi CD-ROM sr0
[  173.979935] [drm] radeon kernel modesetting enabled.
[  173.981063] radeon 0000:16:00.0: enabling device (0000 -> 0003)
[  173.982655] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[  173.983969] [drm] register mmio base: 0xC0200000
[  173.984929] [drm] register mmio size: 131072
[  174.760530] ATOM BIOS: Sony
[  174.762342] [drm] GPU not posted. posting now...
[  174.769201] radeon 0000:16:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[  174.770878] radeon 0000:16:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[  174.772226] mtrr: no more MTRRs available
[  174.773523] [drm] Detected VRAM RAM=1024M, BAR=256M
[  174.774816] [drm] RAM width 128bits DDR
[  174.776179] [TTM] Zone  kernel: Available graphics memory: 4041738 kiB
[  174.777482] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[  174.778765] [TTM] Initializing pool allocator
[  174.780051] [TTM] Initializing DMA pool allocator
[  174.781357] [drm] radeon: 1024M of VRAM memory ready
[  174.782425] [drm] radeon: 512M of GTT memory ready.
[  174.797523] [drm] GART: num cpu pages 131072, num gpu pages 131072
[  174.798892] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[  174.803702] [drm] Loading TURKS Microcode
[  174.811911] [drm] PCIE GART of 512M enabled (table at 0x0000000000273000).
[  174.812992] radeon 0000:16:00.0: WB enabled
[  174.813862] radeon 0000:16:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff880240403c00
[  174.814662] radeon 0000:16:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff880240403c0c
[  174.815625] radeon 0000:16:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90025eb2118
[  174.816402] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[  174.817182] [drm] Driver supports precise vblank timestamp query.
[  174.818046] radeon 0000:16:00.0: irq 72 for MSI/MSI-X
[  174.818851] radeon 0000:16:00.0: radeon: using MSI.
[  174.819725] [drm] radeon: irq initialized.
[  174.837582] [drm] ring test on 0 succeeded in 1 usecs
[  174.838406] [drm] ring test on 3 succeeded in 1 usecs
[  175.025597] [drm] ring test on 5 succeeded in 1 usecs
[  175.026345] [drm] UVD initialized successfully.
[  175.027325] [drm] Enabling audio support
[  175.028249] [drm] ib test on ring 0 succeeded in 0 usecs
[  175.029190] [drm] ib test on ring 3 succeeded in 0 usecs
[  175.182701] [drm] ib test on ring 5 succeeded
[  175.184032] [drm] Radeon Display Connectors
[  175.185114] [drm] Connector 0:
[  175.186214] [drm]   HDMI-A-3
[  175.187200] [drm]   HPD1
[  175.188178] [drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[  175.189016] [drm]   Encoders:
[  175.189981] [drm]     DFP1: INTERNAL_UNIPHY1
[  175.190956] [drm] Connector 1:
[  175.191754] [drm]   VGA-3
[  175.192530] [drm]   DDC: 0x6470 0x6470 0x6474 0x6474 0x6478 0x6478 0x647c 0x647c
[  175.193330] [drm]   Encoders:
[  175.194159] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[  175.197285] [drm] Internal thermal controller with fan control
[  175.199411] [drm] radeon: power management initialized
[  175.210368] radeon 0000:16:00.0: No connectors reported connected with modes
[  175.211203] [drm] Cannot find any crtc or sizes - going 1024x768
[  175.229270] [drm] fb mappable at 0xB0375000
[  175.230149] [drm] vram apper at 0xB0000000
[  175.230972] [drm] size 3145728
[  175.231756] [drm] fb depth is 24
[  175.232522] [drm]    pitch is 4096
[  175.233402] radeon 0000:16:00.0: fb1: radeondrmfb frame buffer device
[  175.234398] [drm] Initialized radeon 2.33.0 20080528 for 0000:16:00.0 on minor 1
[  218.882762] fuse init (API version 7.22)
[  219.103716] ata1.00: configured for UDMA/133
[  219.103722] ata1: EH complete
[  219.107941] ata2.00: configured for UDMA/133
[  219.107947] ata2: EH complete
[  219.133852] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[  219.138015] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[  219.140151] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[  219.150633] EXT4-fs (dm-3): re-mounted. Opts: commit=0

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

* Re: [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification
  2013-06-14 19:28 ` [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification Jiang Liu
@ 2013-06-15  6:50   ` Yinghai Lu
  0 siblings, 0 replies; 47+ messages in thread
From: Yinghai Lu @ 2013-06-15  6:50 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, ACPI Devel Maling List,
	Jiang Liu, linux-pci, Linux Kernel Mailing List,
	Rafael J. Wysocki

On Fri, Jun 14, 2013 at 12:28 PM, Jiang Liu <jiang.liu@huawei.com> wrote:
> Current ACPI glue logic expects that physical devices are destroyed
> before destroying companion ACPI devices, otherwise it will break the
> ACPI unbind logic and cause following warning messages:
> [  185.026073] usb usb5: Oops, 'acpi_handle' corrupt
> [  185.035150] pci 0000:1b:00.0: Oops, 'acpi_handle' corrupt
> [  185.035515] pci 0000:18:02.0: Oops, 'acpi_handle' corrupt
> [  180.013656]  port1: Oops, 'acpi_handle' corrupt
> Please refer to https://bugzilla.kernel.org/attachment.cgi?id=104321
> for full log message.
>
> Above warning messages are caused by following scenario:
> 1) acpi_dock_notifier_call() queues a task (T1) onto kacpi_hotplug_wq
> 2) kacpi_hotplug_wq handles T1, which invokes acpi_dock_deferred_cb()
>    ->dock_notify()-> handle_eject_request()->hotplug_dock_devices()
> 3) hotplug_dock_devices() first invokes registered hotplug callbacks to
>    destroy physical devices, then destroys all affected ACPI devices.
>    Everything seems perfect until now. But the acpiphp dock notification
>    handler will queue another task (T2) onto kacpi_hotplug_wq to really
>    destroy affected physical devices.
> 4) kacpi_hotplug_wq finishes T1, and all affected ACPI devices have
>    been destroyed.
> 5) kacpi_hotplug_wq handles T2, which destroys all affected physical
>    devices.
>
> So it breaks ACPI glue logic's expection because ACPI devices are destroyed
> in step 3 and physical devices are destroyed in step 5.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
> Cc: linux-pci@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: stable@vger.kernel.org # 3.8+

Acked-by: Yinghai Lu <yinghai@kernel.org>

> ---
>  drivers/pci/hotplug/acpiphp_glue.c | 32 ++++++++++++++++++--------------
>  1 file changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index 5d696f5..a65203b 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -61,6 +61,8 @@ static DEFINE_MUTEX(bridge_mutex);
>  static void handle_hotplug_event_bridge (acpi_handle, u32, void *);
>  static void acpiphp_sanitize_bus(struct pci_bus *bus);
>  static void acpiphp_set_hpp_values(struct pci_bus *bus);
> +static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
> +                                      void *context);
>  static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context);
>  static void free_bridge(struct kref *kref);
>
> @@ -160,7 +162,7 @@ static void acpiphp_dock_put(void *data)
>  }
>
>  static const struct acpi_dock_ops acpiphp_dock_ops = {
> -       .handler = handle_hotplug_event_func,
> +       .handler = _handle_hotplug_event_func,
>         .get = acpiphp_dock_get,
>         .put = acpiphp_dock_put,
>  };
> @@ -1080,22 +1082,13 @@ static void handle_hotplug_event_bridge(acpi_handle handle, u32 type,
>         alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_bridge);
>  }
>
> -static void _handle_hotplug_event_func(struct work_struct *work)
> +static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
> +                                      void *context)
>  {
> -       struct acpiphp_func *func;
> +       struct acpiphp_func *func = context;
>         char objname[64];
>         struct acpi_buffer buffer = { .length = sizeof(objname),
>                                       .pointer = objname };
> -       struct acpi_hp_work *hp_work;
> -       acpi_handle handle;
> -       u32 type;
> -
> -       hp_work = container_of(work, struct acpi_hp_work, work);
> -       handle = hp_work->handle;
> -       type = hp_work->type;
> -       func = (struct acpiphp_func *)hp_work->context;
> -
> -       acpi_scan_lock_acquire();
>
>         acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
>
> @@ -1128,7 +1121,18 @@ static void _handle_hotplug_event_func(struct work_struct *work)
>                 warn("notify_handler: unknown event type 0x%x for %s\n", type, objname);
>                 break;
>         }
> +}
> +
> +static void _handle_hotplug_event_cb(struct work_struct *work)
> +{
> +       struct acpiphp_func *func;
> +       struct acpi_hp_work *hp_work;
>
> +       hp_work = container_of(work, struct acpi_hp_work, work);
> +       func = (struct acpiphp_func *)hp_work->context;
> +       acpi_scan_lock_acquire();
> +       _handle_hotplug_event_func(hp_work->handle, hp_work->type,
> +                                   hp_work->context);
>         acpi_scan_lock_release();
>         kfree(hp_work); /* allocated in handle_hotplug_event_func */
>         put_bridge(func->slot->bridge);
> @@ -1156,7 +1160,7 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type,
>          * don't deadlock on hotplug actions.
>          */
>         get_bridge(func->slot->bridge);
> -       alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_func);
> +       alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_cb);
>  }
>
>  /*
> --
> 1.8.1.2
>

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

* Re: [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
  2013-06-14 19:27 ` [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
@ 2013-06-15  6:51   ` Yinghai Lu
  2013-06-15 10:05     ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Yinghai Lu @ 2013-06-15  6:51 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, ACPI Devel Maling List,
	Jiang Liu, linux-pci, Linux Kernel Mailing List, stable

On Fri, Jun 14, 2013 at 12:27 PM, Jiang Liu <jiang.liu@huawei.com> wrote:
> Changeset "3b63aaa70e1 PCI: acpiphp: Do not use ACPI PCI subdriver
> mechanism" causes a regression which breaks ACPI dock support,
> please refer to https://bugzilla.kernel.org/show_bug.cgi?id=59501
>
> The root cause is that changeset 3b63aaa70e1 changed the relative
> initialization order of ACPI dock subsystem and acpiphp driver,
> and acpiphp driver has dependency on ACPI dock subsystem's
> initialization result, so that acpiphp can't correctly detect ACPI
> dock stations now.
>
> On the other hand, ACPI dock is a built-in driver, so we could
> explicitly initialize it before the acpiphp driver is used.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
> Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: <stable@vger.kernel.org> # 3.9+
> ---
>  drivers/acpi/dock.c     | 7 +------
>  drivers/acpi/internal.h | 5 +++++
>  drivers/acpi/scan.c     | 1 +
>  3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 4fdea38..02b0563 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -1033,7 +1033,7 @@ find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv)
>         return AE_OK;
>  }
>
> -static int __init dock_init(void)
> +int __init acpi_dock_init(void)
>  {
>         if (acpi_disabled)
>                 return 0;
> @@ -1062,9 +1062,4 @@ static void __exit dock_exit(void)
>                 dock_remove(dock_station);
>  }
>
> -/*
> - * Must be called before drivers of devices in dock, otherwise we can't know
> - * which devices are in a dock
> - */
> -subsys_initcall(dock_init);
>  module_exit(dock_exit);

why not remove dock_exit?

> diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
> index 297cbf4..c610a76 100644
> --- a/drivers/acpi/internal.h
> +++ b/drivers/acpi/internal.h
> @@ -40,6 +40,11 @@ void acpi_container_init(void);
>  #else
>  static inline void acpi_container_init(void) {}
>  #endif
> +#ifdef CONFIG_ACPI_DOCK
> +void acpi_dock_init(void);
> +#else
> +static inline void acpi_dock_init(void) {}
> +#endif
>  #ifdef CONFIG_ACPI_HOTPLUG_MEMORY
>  void acpi_memory_hotplug_init(void);
>  #else
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 44225cb..4148163 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -2045,6 +2045,7 @@ int __init acpi_scan_init(void)
>         acpi_lpss_init();
>         acpi_container_init();
>         acpi_memory_hotplug_init();
> +       acpi_dock_init();
>
>         mutex_lock(&acpi_scan_lock);
>         /*
> --
> 1.8.1.2
>

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-15  6:42 ` [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Alexander E. Patrakov
@ 2013-06-15  7:25   ` Alexander E. Patrakov
  2013-06-18 21:35     ` Rafael J. Wysocki
  2013-06-16 17:33   ` Jiang Liu
  1 sibling, 1 reply; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-15  7:25 UTC (permalink / raw)
  To: Jiang Liu, alexdeucher
  Cc: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

2013/6/15 Alexander E. Patrakov <patrakov@gmail.com>:
> Note that the snd_hda_intel bug somehow didn't manifest itself today,
> probably because the TV that is connected to the HDMI output of the
> radeon card was off and because Xorg never really tried to use the
> card.

Well, it did. The sympthoms are the same as before: incomplete
undocking. The 16:00.1 device (HD audio controller on the radeon card)
has disappeared from lspci output, while 16:00.0 (the radeon card
itself) didn't, and the "Docked" LED didn't turn off. Fixed up by this
command:

fuser -k /dev/snd/* ; rmmod snd-hda-intel

thus confirming again that the extra references that acpiphp waits to
go away are from open fds.

-- 
Alexander E. Patrakov

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

* Re: [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
  2013-06-15  6:51   ` Yinghai Lu
@ 2013-06-15 10:05     ` Jiang Liu
  2013-06-15 20:03       ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-15 10:05 UTC (permalink / raw)
  To: Yinghai Lu
  Cc: Jiang Liu, Rafael J . Wysocki, Bjorn Helgaas,
	Alexander E . Patrakov, Greg Kroah-Hartman, Yijing Wang,
	ACPI Devel Maling List, linux-pci, Linux Kernel Mailing List,
	stable

On 06/15/2013 02:51 PM, Yinghai Lu wrote:
> On Fri, Jun 14, 2013 at 12:27 PM, Jiang Liu <jiang.liu@huawei.com> wrote:
>> Changeset "3b63aaa70e1 PCI: acpiphp: Do not use ACPI PCI subdriver
>> mechanism" causes a regression which breaks ACPI dock support,
>> please refer to https://bugzilla.kernel.org/show_bug.cgi?id=59501
>>
>> The root cause is that changeset 3b63aaa70e1 changed the relative
>> initialization order of ACPI dock subsystem and acpiphp driver,
>> and acpiphp driver has dependency on ACPI dock subsystem's
>> initialization result, so that acpiphp can't correctly detect ACPI
>> dock stations now.
>>
>> On the other hand, ACPI dock is a built-in driver, so we could
>> explicitly initialize it before the acpiphp driver is used.
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
>> Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
>> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
>> Cc: linux-acpi@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> Cc: <stable@vger.kernel.org> # 3.9+
>> ---
>>  drivers/acpi/dock.c     | 7 +------
>>  drivers/acpi/internal.h | 5 +++++
>>  drivers/acpi/scan.c     | 1 +
>>  3 files changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
>> index 4fdea38..02b0563 100644
>> --- a/drivers/acpi/dock.c
>> +++ b/drivers/acpi/dock.c
>> @@ -1033,7 +1033,7 @@ find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv)
>>         return AE_OK;
>>  }
>>
>> -static int __init dock_init(void)
>> +int __init acpi_dock_init(void)
>>  {
>>         if (acpi_disabled)
>>                 return 0;
>> @@ -1062,9 +1062,4 @@ static void __exit dock_exit(void)
>>                 dock_remove(dock_station);
>>  }
>>
>> -/*
>> - * Must be called before drivers of devices in dock, otherwise we can't know
>> - * which devices are in a dock
>> - */
>> -subsys_initcall(dock_init);
>>  module_exit(dock_exit);
> 
> why not remove dock_exit?
I have a pending patchset to clean up dock driver, Rafael suggested to
focus on bugfix first, so I will send out the clean up patchset later.

> 
>> diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
>> index 297cbf4..c610a76 100644
>> --- a/drivers/acpi/internal.h
>> +++ b/drivers/acpi/internal.h
>> @@ -40,6 +40,11 @@ void acpi_container_init(void);
>>  #else
>>  static inline void acpi_container_init(void) {}
>>  #endif
>> +#ifdef CONFIG_ACPI_DOCK
>> +void acpi_dock_init(void);
>> +#else
>> +static inline void acpi_dock_init(void) {}
>> +#endif
>>  #ifdef CONFIG_ACPI_HOTPLUG_MEMORY
>>  void acpi_memory_hotplug_init(void);
>>  #else
>> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
>> index 44225cb..4148163 100644
>> --- a/drivers/acpi/scan.c
>> +++ b/drivers/acpi/scan.c
>> @@ -2045,6 +2045,7 @@ int __init acpi_scan_init(void)
>>         acpi_lpss_init();
>>         acpi_container_init();
>>         acpi_memory_hotplug_init();
>> +       acpi_dock_init();
>>
>>         mutex_lock(&acpi_scan_lock);
>>         /*
>> --
>> 1.8.1.2
>>


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

* Re: [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
  2013-06-15 10:05     ` Jiang Liu
@ 2013-06-15 20:03       ` Rafael J. Wysocki
  0 siblings, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-15 20:03 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Yinghai Lu, Jiang Liu, Bjorn Helgaas, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, ACPI Devel Maling List,
	linux-pci, Linux Kernel Mailing List, stable

On Saturday, June 15, 2013 06:05:31 PM Jiang Liu wrote:
> On 06/15/2013 02:51 PM, Yinghai Lu wrote:
> > On Fri, Jun 14, 2013 at 12:27 PM, Jiang Liu <jiang.liu@huawei.com> wrote:
> >> Changeset "3b63aaa70e1 PCI: acpiphp: Do not use ACPI PCI subdriver
> >> mechanism" causes a regression which breaks ACPI dock support,
> >> please refer to https://bugzilla.kernel.org/show_bug.cgi?id=59501
> >>
> >> The root cause is that changeset 3b63aaa70e1 changed the relative
> >> initialization order of ACPI dock subsystem and acpiphp driver,
> >> and acpiphp driver has dependency on ACPI dock subsystem's
> >> initialization result, so that acpiphp can't correctly detect ACPI
> >> dock stations now.
> >>
> >> On the other hand, ACPI dock is a built-in driver, so we could
> >> explicitly initialize it before the acpiphp driver is used.
> >>
> >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> >> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
> >> Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
> >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> >> Cc: linux-acpi@vger.kernel.org
> >> Cc: linux-kernel@vger.kernel.org
> >> Cc: <stable@vger.kernel.org> # 3.9+
> >> ---
> >>  drivers/acpi/dock.c     | 7 +------
> >>  drivers/acpi/internal.h | 5 +++++
> >>  drivers/acpi/scan.c     | 1 +
> >>  3 files changed, 7 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> >> index 4fdea38..02b0563 100644
> >> --- a/drivers/acpi/dock.c
> >> +++ b/drivers/acpi/dock.c
> >> @@ -1033,7 +1033,7 @@ find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv)
> >>         return AE_OK;
> >>  }
> >>
> >> -static int __init dock_init(void)
> >> +int __init acpi_dock_init(void)
> >>  {
> >>         if (acpi_disabled)
> >>                 return 0;
> >> @@ -1062,9 +1062,4 @@ static void __exit dock_exit(void)
> >>                 dock_remove(dock_station);
> >>  }
> >>
> >> -/*
> >> - * Must be called before drivers of devices in dock, otherwise we can't know
> >> - * which devices are in a dock
> >> - */
> >> -subsys_initcall(dock_init);
> >>  module_exit(dock_exit);
> > 
> > why not remove dock_exit?
> I have a pending patchset to clean up dock driver, Rafael suggested to
> focus on bugfix first, so I will send out the clean up patchset later.

Well, you can remove dock_exit() in the same patch.  This is kind of not
directly related to the fix, but since you're changing it from modular to
non-modular, it'd be prudent to remove all of the "modular" code in the
process.

Thanks,
Rafael


> >> diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
> >> index 297cbf4..c610a76 100644
> >> --- a/drivers/acpi/internal.h
> >> +++ b/drivers/acpi/internal.h
> >> @@ -40,6 +40,11 @@ void acpi_container_init(void);
> >>  #else
> >>  static inline void acpi_container_init(void) {}
> >>  #endif
> >> +#ifdef CONFIG_ACPI_DOCK
> >> +void acpi_dock_init(void);
> >> +#else
> >> +static inline void acpi_dock_init(void) {}
> >> +#endif
> >>  #ifdef CONFIG_ACPI_HOTPLUG_MEMORY
> >>  void acpi_memory_hotplug_init(void);
> >>  #else
> >> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> >> index 44225cb..4148163 100644
> >> --- a/drivers/acpi/scan.c
> >> +++ b/drivers/acpi/scan.c
> >> @@ -2045,6 +2045,7 @@ int __init acpi_scan_init(void)
> >>         acpi_lpss_init();
> >>         acpi_container_init();
> >>         acpi_memory_hotplug_init();
> >> +       acpi_dock_init();
> >>
> >>         mutex_lock(&acpi_scan_lock);
> >>         /*
> >> --
> >> 1.8.1.2
> >>
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15  1:44     ` Jiang Liu
@ 2013-06-15 20:17       ` Rafael J. Wysocki
  2013-06-15 21:20         ` Rafael J. Wysocki
  2013-06-16 16:27         ` Jiang Liu
  0 siblings, 2 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-15 20:17 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
> On Sat 15 Jun 2013 06:21:02 AM CST, Rafael J. Wysocki wrote:
> > On Saturday, June 15, 2013 03:27:59 AM Jiang Liu wrote:
> >> This is a preparation for next patch to avoid breaking bisecting.
> >> If next patch is applied without this one, it will cause deadlock
> >> as below:
> >>
> >> Case 1:
> >> [   31.015593]  Possible unsafe locking scenario:
> >>
> >> [   31.018350]        CPU0                    CPU1
> >> [   31.019691]        ----                    ----
> >> [   31.021002]   lock(&dock_station->hp_lock);
> >> [   31.022327]                                lock(&slot->crit_sect);
> >> [   31.023650]                                lock(&dock_station->hp_lock);
> >> [   31.025010]   lock(&slot->crit_sect);
> >> [   31.026342]
> >>
> >> Case 2:
> >>         hotplug_dock_devices()
> >>                 mutex_lock(&ds->hp_lock)
> >>                         dd->ops->handler()
> >>                                 register_hotplug_dock_device()
> >>                                         mutex_lock(&ds->hp_lock)
> >> [   34.316570] [ INFO: possible recursive locking detected ]
> >> [   34.316573] 3.10.0-rc4 #6 Tainted: G         C
> >> [   34.316575] ---------------------------------------------
> >> [   34.316577] kworker/0:0/4 is trying to acquire lock:
> >> [   34.316579]  (&dock_station->hp_lock){+.+.+.}, at:
> >> [<ffffffff813c766b>] register_hotplug_dock_device+0x6a/0xbf
> >> [   34.316588]
> >> but task is already holding lock:
> >> [   34.316590]  (&dock_station->hp_lock){+.+.+.}, at:
> >> [<ffffffff813c7270>] hotplug_dock_devices+0x2c/0xda
> >> [   34.316595]
> >> other info that might help us debug this:
> >> [   34.316597]  Possible unsafe locking scenario:
> >>
> >> [   34.316599]        CPU0
> >> [   34.316601]        ----
> >> [   34.316602]   lock(&dock_station->hp_lock);
> >> [   34.316605]   lock(&dock_station->hp_lock);
> >> [   34.316608]
> >>  *** DEADLOCK ***
> >>
> >> So fix this deadlock by not taking ds->hp_lock in function
> >> register_hotplug_dock_device(). This patch also fixes a possible
> >> race conditions in function dock_event() because previously it
> >> accesses ds->hotplug_devices list without holding ds->hp_lock.
> >>
> >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> >> Cc: Len Brown <lenb@kernel.org>
> >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> >> Cc: Bjorn Helgaas <bhelgaas@google.com>
> >> Cc: Yinghai Lu <yinghai@kernel.org>
> >> Cc: Yijing Wang <wangyijing@huawei.com>
> >> Cc: linux-acpi@vger.kernel.org
> >> Cc: linux-kernel@vger.kernel.org
> >> Cc: linux-pci@vger.kernel.org
> >> Cc: <stable@vger.kernel.org> # 3.8+
> >> ---
> >>  drivers/acpi/dock.c                | 109 ++++++++++++++++++++++---------------
> >>  drivers/pci/hotplug/acpiphp_glue.c |  15 +++++
> >>  include/acpi/acpi_drivers.h        |   2 +
> >>  3 files changed, 82 insertions(+), 44 deletions(-)
> >>
> >> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> >> index 02b0563..602bce5 100644
> >> --- a/drivers/acpi/dock.c
> >> +++ b/drivers/acpi/dock.c
> >> @@ -66,7 +66,7 @@ struct dock_station {
> >>  	spinlock_t dd_lock;
> >>  	struct mutex hp_lock;
> >>  	struct list_head dependent_devices;
> >> -	struct list_head hotplug_devices;
> >> +	struct klist hotplug_devices;
> >>
> >>  	struct list_head sibling;
> >>  	struct platform_device *dock_device;
> >> @@ -76,12 +76,18 @@ static int dock_station_count;
> >>
> >>  struct dock_dependent_device {
> >>  	struct list_head list;
> >> -	struct list_head hotplug_list;
> >> +	acpi_handle handle;
> >> +};
> >> +
> >> +struct dock_hotplug_info {
> >> +	struct klist_node node;
> >>  	acpi_handle handle;
> >>  	const struct acpi_dock_ops *ops;
> >>  	void *context;
> >>  };
> >
> > Can we please relax a bit and possibly take a step back?
> >
> > So since your last reply to me wasn't particularly helpful, I went through the
> > code in dock.c and acpiphp_glue.c and I simply think that the whole
> > hotplug_list thing is simply redundant.
> >
> > It looks like instead of using it (or the klist in this patch), we can add a
> > "hotlpug_device" flag to dock_dependent_device and set that flag instead of
> > adding dd to hotplug_devices or clear it instead of removing dd from that list.
> >
> > That would allow us to avoid the deadlock, because we wouldn't need the hp_lock
> > any more and perhaps we could make the code simpler instead of making it more
> > complex.
> >
> > How does that sound?
> >
> > Rafael
> Hi Rafael,
>        Thanks for comments! It would be great if we could kill the 
> hotplug_devices
> list so thing gets simple. But there are still some special cases:(
> 
> As you have mentioned,  ds->hp_lock is used to make both addition and 
> removal
> of hotplug devices wait for us to complete walking ds->hotplug_devices.
> So it acts as two roles:
> 1) protect the hotplug_devices list,
> 2) serialize unregister_hotplug_dock_device() and 
> hotplug_dock_devices() so
> the dock driver doesn't access registered handler and associated data 
> structure
> once returing from unregister_hotplug_dock_device().

When it returns from unregister_hotplug_dock_device(), nothing prevents it
from accessing whatever it wants, because ds->hp_lock is not used outside
of the add/del and hotplug_dock_devices().  So, the actual role of
ds->hp_lock (not the one that it is supposed to play, but the real one)
is to prevent addition/deletion from happening when hotplug_dock_devices()
is running.  [Yes, it does protect the list, but since the list is in fact
unnecessary, that doesn't matter.]

> If we simply use a flag to mark presence of registered callback, we 
> can't achieve the second goal.

I don't mean using the flag *alone*.

> Take the sony laptop as an example. It has several PCI 
> hotplug
> slot associated with the dock station:
> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB
> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM0
> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM1
> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2
> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
> 
> So it still has some race windows if we undock the station while 
> repeatedly rescanning/removing
> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces. For 
> example, thread 1 is
> handling undocking event, walking the dependent device list and 
> invoking registered callback
> handler with associated data. While that, thread 2 may step in to 
> unregister the callback for
>  \_SB_.PCI0.RP07.LPMB.LPM0. Then thread 1 may cause access-after-free 
> issue.

That should be handled in acpiphp_glue instead of dock.  What you're trying to
do is to make dock work around synchronization issues in the acpiphp driver.

> The klist patch solves this issue by adding a "put" callback method to 
> explicitly notify
> dock client that the dock core has done with previously registered 
> handler and associated
> data.

Honestly, don't you think this is overly compilcated?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15 20:17       ` Rafael J. Wysocki
@ 2013-06-15 21:20         ` Rafael J. Wysocki
  2013-06-15 22:54           ` Rafael J. Wysocki
  2013-06-16 17:01           ` Jiang Liu
  2013-06-16 16:27         ` Jiang Liu
  1 sibling, 2 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-15 21:20 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
> > On Sat 15 Jun 2013 06:21:02 AM CST, Rafael J. Wysocki wrote:
> > > On Saturday, June 15, 2013 03:27:59 AM Jiang Liu wrote:
> > >> This is a preparation for next patch to avoid breaking bisecting.
> > >> If next patch is applied without this one, it will cause deadlock
> > >> as below:
> > >>
> > >> Case 1:
> > >> [   31.015593]  Possible unsafe locking scenario:
> > >>
> > >> [   31.018350]        CPU0                    CPU1
> > >> [   31.019691]        ----                    ----
> > >> [   31.021002]   lock(&dock_station->hp_lock);
> > >> [   31.022327]                                lock(&slot->crit_sect);
> > >> [   31.023650]                                lock(&dock_station->hp_lock);
> > >> [   31.025010]   lock(&slot->crit_sect);
> > >> [   31.026342]
> > >>
> > >> Case 2:
> > >>         hotplug_dock_devices()
> > >>                 mutex_lock(&ds->hp_lock)
> > >>                         dd->ops->handler()
> > >>                                 register_hotplug_dock_device()
> > >>                                         mutex_lock(&ds->hp_lock)
> > >> [   34.316570] [ INFO: possible recursive locking detected ]
> > >> [   34.316573] 3.10.0-rc4 #6 Tainted: G         C
> > >> [   34.316575] ---------------------------------------------
> > >> [   34.316577] kworker/0:0/4 is trying to acquire lock:
> > >> [   34.316579]  (&dock_station->hp_lock){+.+.+.}, at:
> > >> [<ffffffff813c766b>] register_hotplug_dock_device+0x6a/0xbf
> > >> [   34.316588]
> > >> but task is already holding lock:
> > >> [   34.316590]  (&dock_station->hp_lock){+.+.+.}, at:
> > >> [<ffffffff813c7270>] hotplug_dock_devices+0x2c/0xda
> > >> [   34.316595]
> > >> other info that might help us debug this:
> > >> [   34.316597]  Possible unsafe locking scenario:
> > >>
> > >> [   34.316599]        CPU0
> > >> [   34.316601]        ----
> > >> [   34.316602]   lock(&dock_station->hp_lock);
> > >> [   34.316605]   lock(&dock_station->hp_lock);
> > >> [   34.316608]
> > >>  *** DEADLOCK ***
> > >>
> > >> So fix this deadlock by not taking ds->hp_lock in function
> > >> register_hotplug_dock_device(). This patch also fixes a possible
> > >> race conditions in function dock_event() because previously it
> > >> accesses ds->hotplug_devices list without holding ds->hp_lock.
> > >>
> > >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> > >> Cc: Len Brown <lenb@kernel.org>
> > >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> > >> Cc: Bjorn Helgaas <bhelgaas@google.com>
> > >> Cc: Yinghai Lu <yinghai@kernel.org>
> > >> Cc: Yijing Wang <wangyijing@huawei.com>
> > >> Cc: linux-acpi@vger.kernel.org
> > >> Cc: linux-kernel@vger.kernel.org
> > >> Cc: linux-pci@vger.kernel.org
> > >> Cc: <stable@vger.kernel.org> # 3.8+
> > >> ---
> > >>  drivers/acpi/dock.c                | 109 ++++++++++++++++++++++---------------
> > >>  drivers/pci/hotplug/acpiphp_glue.c |  15 +++++
> > >>  include/acpi/acpi_drivers.h        |   2 +
> > >>  3 files changed, 82 insertions(+), 44 deletions(-)
> > >>
> > >> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> > >> index 02b0563..602bce5 100644
> > >> --- a/drivers/acpi/dock.c
> > >> +++ b/drivers/acpi/dock.c
> > >> @@ -66,7 +66,7 @@ struct dock_station {
> > >>  	spinlock_t dd_lock;
> > >>  	struct mutex hp_lock;
> > >>  	struct list_head dependent_devices;
> > >> -	struct list_head hotplug_devices;
> > >> +	struct klist hotplug_devices;
> > >>
> > >>  	struct list_head sibling;
> > >>  	struct platform_device *dock_device;
> > >> @@ -76,12 +76,18 @@ static int dock_station_count;
> > >>
> > >>  struct dock_dependent_device {
> > >>  	struct list_head list;
> > >> -	struct list_head hotplug_list;
> > >> +	acpi_handle handle;
> > >> +};
> > >> +
> > >> +struct dock_hotplug_info {
> > >> +	struct klist_node node;
> > >>  	acpi_handle handle;
> > >>  	const struct acpi_dock_ops *ops;
> > >>  	void *context;
> > >>  };
> > >
> > > Can we please relax a bit and possibly take a step back?
> > >
> > > So since your last reply to me wasn't particularly helpful, I went through the
> > > code in dock.c and acpiphp_glue.c and I simply think that the whole
> > > hotplug_list thing is simply redundant.
> > >
> > > It looks like instead of using it (or the klist in this patch), we can add a
> > > "hotlpug_device" flag to dock_dependent_device and set that flag instead of
> > > adding dd to hotplug_devices or clear it instead of removing dd from that list.
> > >
> > > That would allow us to avoid the deadlock, because we wouldn't need the hp_lock
> > > any more and perhaps we could make the code simpler instead of making it more
> > > complex.
> > >
> > > How does that sound?
> > >
> > > Rafael
> > Hi Rafael,
> >        Thanks for comments! It would be great if we could kill the 
> > hotplug_devices
> > list so thing gets simple. But there are still some special cases:(
> > 
> > As you have mentioned,  ds->hp_lock is used to make both addition and 
> > removal
> > of hotplug devices wait for us to complete walking ds->hotplug_devices.
> > So it acts as two roles:
> > 1) protect the hotplug_devices list,
> > 2) serialize unregister_hotplug_dock_device() and 
> > hotplug_dock_devices() so
> > the dock driver doesn't access registered handler and associated data 
> > structure
> > once returing from unregister_hotplug_dock_device().
> 
> When it returns from unregister_hotplug_dock_device(), nothing prevents it
> from accessing whatever it wants, because ds->hp_lock is not used outside
> of the add/del and hotplug_dock_devices().  So, the actual role of
> ds->hp_lock (not the one that it is supposed to play, but the real one)
> is to prevent addition/deletion from happening when hotplug_dock_devices()
> is running.  [Yes, it does protect the list, but since the list is in fact
> unnecessary, that doesn't matter.]
> 
> > If we simply use a flag to mark presence of registered callback, we 
> > can't achieve the second goal.
> 
> I don't mean using the flag *alone*.
> 
> > Take the sony laptop as an example. It has several PCI 
> > hotplug
> > slot associated with the dock station:
> > [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB
> > [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM0
> > [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM1
> > [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2
> > [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
> > [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
> > [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
> > [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
> > [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
> > 
> > So it still has some race windows if we undock the station while 
> > repeatedly rescanning/removing
> > the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.

Which sysfs interfaces do you mean, by the way?

If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
should always be run under acpi_scan_lock too.  It isn't at the moment,
because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
bug (so I'm going to send a patch to fix it in a while).

With that bug fixed, the possible race between acpi_eject_store() and
hotplug_dock_devices() should be prevented from happening, so perhaps we're
worrying about something that cannot happen?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15 21:20         ` Rafael J. Wysocki
@ 2013-06-15 22:54           ` Rafael J. Wysocki
  2013-06-16 17:12             ` Jiang Liu
  2013-06-16 17:01           ` Jiang Liu
  1 sibling, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-15 22:54 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Saturday, June 15, 2013 11:20:40 PM Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:

[...]

> 
> Which sysfs interfaces do you mean, by the way?
> 
> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> should always be run under acpi_scan_lock too.  It isn't at the moment,
> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> bug (so I'm going to send a patch to fix it in a while).
> 
> With that bug fixed, the possible race between acpi_eject_store() and
> hotplug_dock_devices() should be prevented from happening, so perhaps we're
> worrying about something that cannot happen?

So here's a question: What particular races are possible if we remove
ds->hp_lock entirely without doing anything else just yet?  I mean, how to
*trigger* them from the start to the end and not how they can possibly happen
but never do, because there's no way they can be actually triggered?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15 20:17       ` Rafael J. Wysocki
  2013-06-15 21:20         ` Rafael J. Wysocki
@ 2013-06-16 16:27         ` Jiang Liu
  1 sibling, 0 replies; 47+ messages in thread
From: Jiang Liu @ 2013-06-16 16:27 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On 06/16/2013 04:17 AM, Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
>> On Sat 15 Jun 2013 06:21:02 AM CST, Rafael J. Wysocki wrote:
[...]
>>> Can we please relax a bit and possibly take a step back?
>>>
>>> So since your last reply to me wasn't particularly helpful, I went through the
>>> code in dock.c and acpiphp_glue.c and I simply think that the whole
>>> hotplug_list thing is simply redundant.
>>>
>>> It looks like instead of using it (or the klist in this patch), we can add a
>>> "hotlpug_device" flag to dock_dependent_device and set that flag instead of
>>> adding dd to hotplug_devices or clear it instead of removing dd from that list.
>>>
>>> That would allow us to avoid the deadlock, because we wouldn't need the hp_lock
>>> any more and perhaps we could make the code simpler instead of making it more
>>> complex.
>>>
>>> How does that sound?
>>>
>>> Rafael
>> Hi Rafael,
>>        Thanks for comments! It would be great if we could kill the 
>> hotplug_devices
>> list so thing gets simple. But there are still some special cases:(
>>
>> As you have mentioned,  ds->hp_lock is used to make both addition and 
>> removal
>> of hotplug devices wait for us to complete walking ds->hotplug_devices.
>> So it acts as two roles:
>> 1) protect the hotplug_devices list,
>> 2) serialize unregister_hotplug_dock_device() and 
>> hotplug_dock_devices() so
>> the dock driver doesn't access registered handler and associated data 
>> structure
>> once returing from unregister_hotplug_dock_device().
> 
> When it returns from unregister_hotplug_dock_device(), nothing prevents it
> from accessing whatever it wants, because ds->hp_lock is not used outside
> of the add/del and hotplug_dock_devices().  So, the actual role of
> ds->hp_lock (not the one that it is supposed to play, but the real one)
> is to prevent addition/deletion from happening when hotplug_dock_devices()
> is running.  [Yes, it does protect the list, but since the list is in fact
> unnecessary, that doesn't matter.]
Hi Rafael,
With current implementation function dock_add_hotplug_device(),
dock_del_hotplug_device(), hotplug_dock_devices() and dock_event()
access hotplug_devices list, registered callback(ops) and associated
data(context).

Caller may free the associated data(context) once returned from function
unregister_hotplug_dock_device(), so the dock core shouldn't access the
data(context) any more after returning from
unregister_hotplug_dock_device(). With current implementation, this is
guaranteed by acquiring ds->hp_lock in function
dock_del_hotplug_device(). But there's another issue with current
implementation here, we should use ds->hp_lock to protect dock_event() too.

> 
>> If we simply use a flag to mark presence of registered callback, we 
>> can't achieve the second goal.
> 
> I don't mean using the flag *alone*.
> 
>> Take the sony laptop as an example. It has several PCI 
>> hotplug
>> slot associated with the dock station:
>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB
>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Btus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
>>
>> So it still has some race windows if we undock the station while 
>> repeatedly rescanning/removing
>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces. For 
>> example, thread 1 is
>> handling undocking event, walking the dependent device list and 
>> invoking registered callback
>> handler with associated data. While that, thread 2 may step in to 
>> unregister the callback for
>>  \_SB_.PCI0.RP07.LPMB.LPM0. Then thread 1 may cause access-after-free 
>> issue.
> 
> That should be handled in acpiphp_glue instead of dock.  What you're trying to
> do is to make dock work around synchronization issues in the acpiphp driver.
I'm not sure whether we could solve this issue from acpiphp_glue side.
If dock driver can't guarantee that it doesn't access registered
handler(ops) and associated data(context) after returning from
unregister_hotplug_dock_device(), it will be hard for acpiphp_glue to
manage the data structure(context). So I introduced a "put" method into
the acpi_dock_ops to help manage lifecycle of "context".

> 
>> The klist patch solves this issue by adding a "put" callback method to 
>> explicitly notify
>> dock client that the dock core has done with previously registered 
>> handler and associated
>> data.
> 
> Honestly, don't you think this is overly compilcated?
Yeah, I must admire that it's really a little over complicated, but I
can't find a simpler solution here:(

> 
> Rafael
> 
> 


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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15 21:20         ` Rafael J. Wysocki
  2013-06-15 22:54           ` Rafael J. Wysocki
@ 2013-06-16 17:01           ` Jiang Liu
  2013-06-17 11:39             ` Rafael J. Wysocki
  1 sibling, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-16 17:01 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On 06/16/2013 05:20 AM, Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
>> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
[...]
>> When it returns from unregister_hotplug_dock_device(), nothing prevents it
>> from accessing whatever it wants, because ds->hp_lock is not used outside
>> of the add/del and hotplug_dock_devices().  So, the actual role of
>> ds->hp_lock (not the one that it is supposed to play, but the real one)
>> is to prevent addition/deletion from happening when hotplug_dock_devices()
>> is running.  [Yes, it does protect the list, but since the list is in fact
>> unnecessary, that doesn't matter.]
>>
>>> If we simply use a flag to mark presence of registered callback, we 
>>> can't achieve the second goal.
>>
>> I don't mean using the flag *alone*.
>>
>>> Take the sony laptop as an example. It has several PCI 
>>> hotplug
>>> slot associated with the dock station:
>>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB
>>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
>>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
>>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
>>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
>>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
>>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
>>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
>>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
>>>
>>> So it still has some race windows if we undock the station while 
>>> repeatedly rescanning/removing
>>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.
> 
> Which sysfs interfaces do you mean, by the way?
> 
> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> should always be run under acpi_scan_lock too.  It isn't at the moment,
> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> bug (so I'm going to send a patch to fix it in a while).
> 
> With that bug fixed, the possible race between acpi_eject_store() and
> hotplug_dock_devices() should be prevented from happening, so perhaps we're
> worrying about something that cannot happen?
Hi Rafael,
	I mean the "remove" method of each PCI device, and the "power" method
of PCI hotplug slot here.
	These methods may be used to remove P2P bridges with associated ACPIPHP
hotplug slots, which in turn will cause invoking of
unregister_hotplug_dock_device().
	So theoretical we may trigger the bug by undocking while repeatedly
adding/removing P2P bridges with ACPIPHP hotplug slot through PCI
"rescan" and "remove" sysfs interface,
Regards!
Gerry
> 
> Rafael
> 
> 


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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-15 22:54           ` Rafael J. Wysocki
@ 2013-06-16 17:12             ` Jiang Liu
  2013-06-17 11:40               ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-16 17:12 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On 06/16/2013 06:54 AM, Rafael J. Wysocki wrote:
> On Saturday, June 15, 2013 11:20:40 PM Rafael J. Wysocki wrote:
>> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> 
> [...]
> 
>>
>> Which sysfs interfaces do you mean, by the way?
>>
>> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
>> should always be run under acpi_scan_lock too.  It isn't at the moment,
>> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
>> bug (so I'm going to send a patch to fix it in a while).
>>
>> With that bug fixed, the possible race between acpi_eject_store() and
>> hotplug_dock_devices() should be prevented from happening, so perhaps we're
>> worrying about something that cannot happen?
> 
> So here's a question: What particular races are possible if we remove
> ds->hp_lock entirely without doing anything else just yet?  I mean, how to
> *trigger* them from the start to the end and not how they can possibly happen
> but never do, because there's no way they can be actually triggered?
Hi Rafael,
    I have no really platform which triggers this bug, but I may imagine
a possible platform if it's valid for explanation.
    Let's think about a laptop dock station with a thunderbolt
controller built-in. The dock station is managed by dock driver and
acpiphp driver. And the PCIe hierarchy managed by the thunderbolt
controller may be managed by dock driver and ACPIPHP driver too.
So it may trigger the issue by pressing the dock button and unplugging
thunderbolt cable concurrently.
    But after all, this is all by imagination:). We may need to find a
simple and quick solution for 3.10 and the stable trees and enhance the
solution later to avoid introducing new bugs while fixing a bug.
Regards!
Gerry
> 
> Rafael
> 
> 


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-15  6:42 ` [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Alexander E. Patrakov
  2013-06-15  7:25   ` Alexander E. Patrakov
@ 2013-06-16 17:33   ` Jiang Liu
  2013-06-17  3:27     ` Alexander E. Patrakov
  1 sibling, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-16 17:33 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Rafael J . Wysocki, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On 06/15/2013 02:42 PM, Alexander E. Patrakov wrote:
> 2013/6/15 Jiang Liu <jiang.liu@huawei.com>:
>> Alexander E. Patrakov <patrakov@gmail.com> reports two bugs related to
>> dock station support on Sony VAIO VPCZ23A4R. Actually there are at least
>> four bugs related to Sony VAIO VPCZ23A4R dock support.
>> 1) can't correctly detect hotplug slot for dock state
>> 2) resource leak on undocking
>> 3) resource allocation failure for dock devices
>> 4) one bug in intel_snd_hda driver
> 5) one or two bugs in radeon driver
> 
> As for the subject - only a hotplug-related part of bug 59581 is fixed.
> 
>> Hi Alexander, could you please help to test the whole patchset?
>> Really get sleepy, it's already 3 oclock now, so please forgive me
>> if there any stupid mistakes.
> 
> I have tested this patchset on top of 3.10-rc5 using the following two
> testcases.
> 
> 1. Boot docked with radeon blacklisted. Switch to text-based virtual
> console, undock, dock, modprobe radeon, rmmod radeon, undock, dock,
> modprobe radeon again. Tested in this sequence because Alex Deucher
> told me in bug 59681 to rmmod radeon before undocking.
> 
> 2. Boot undocked, with radeon not blacklisted. Stay in X. Dock,
> undock, dock, undock, dock.
> 
> Both cases work, and exhibit similar backtraces in dmesg. So I am
> attaching a dmesg only from the first testcase. Please look for "INFO:
> trying to register non-static key" and for "*ERROR* Memory manager not
> clean. Delaying takedown". I understand that the second trace is
> unrelated to this patchset, but would like you to fix the first.
Hi Alexander,
	Great thanks for your testing!
	I have investigated the first issue but still have no idea about it.
According to source code, everything should be OK.
The r8169 driver has invoked INIT_WORK(&tp->wk.work, rtl_task) to
initialize the work item, so it shouldn't trigger the warning.
Have you found this issue in other test cases?
Regards!
Gerry

> 
> Note that the snd_hda_intel bug somehow didn't manifest itself today,
> probably because the TV that is connected to the HDMI output of the
> radeon card was off and because Xorg never really tried to use the
> card.
> 
> --
> Alexander E. Patrakov
> 


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-16 17:33   ` Jiang Liu
@ 2013-06-17  3:27     ` Alexander E. Patrakov
  2013-06-17 17:07       ` Alexander E. Patrakov
  0 siblings, 1 reply; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-17  3:27 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Jiang Liu, alexdeucher, Rafael J . Wysocki, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

2013/6/16 Jiang Liu <liuj97@gmail.com>:
> On 06/15/2013 02:42 PM, Alexander E. Patrakov wrote:

>> Both cases work, and exhibit similar backtraces in dmesg. So I am
>> attaching a dmesg only from the first testcase. Please look for "INFO:
>> trying to register non-static key" and for "*ERROR* Memory manager not
>> clean. Delaying takedown". I understand that the second trace is
>> unrelated to this patchset, but would like you to fix the first.
> Hi Alexander,
>         Great thanks for your testing!
>         I have investigated the first issue but still have no idea about it.
> According to source code, everything should be OK.
> The r8169 driver has invoked INIT_WORK(&tp->wk.work, rtl_task) to
> initialize the work item, so it shouldn't trigger the warning.
> Have you found this issue in other test cases?

I am not 100% sure that the static key backtrace is the same in all
cases. However, I do remember that it does appear both in the
non-hotplug and hotplug cases.

I will retest this after work, i.e. in ~12 hours.

-- 
Alexander E. Patrakov

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-16 17:01           ` Jiang Liu
@ 2013-06-17 11:39             ` Rafael J. Wysocki
  2013-06-17 12:54               ` Rafael J. Wysocki
  2013-06-18 15:36               ` Jiang Liu
  0 siblings, 2 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-17 11:39 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Monday, June 17, 2013 01:01:51 AM Jiang Liu wrote:
> On 06/16/2013 05:20 AM, Rafael J. Wysocki wrote:
> > On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> >> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
> [...]
> >> When it returns from unregister_hotplug_dock_device(), nothing prevents it
> >> from accessing whatever it wants, because ds->hp_lock is not used outside
> >> of the add/del and hotplug_dock_devices().  So, the actual role of
> >> ds->hp_lock (not the one that it is supposed to play, but the real one)
> >> is to prevent addition/deletion from happening when hotplug_dock_devices()
> >> is running.  [Yes, it does protect the list, but since the list is in fact
> >> unnecessary, that doesn't matter.]
> >>
> >>> If we simply use a flag to mark presence of registered callback, we 
> >>> can't achieve the second goal.
> >>
> >> I don't mean using the flag *alone*.
> >>
> >>> Take the sony laptop as an example. It has several PCI 
> >>> hotplug
> >>> slot associated with the dock station:
> >>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB
> >>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
> >>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
> >>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
> >>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
> >>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
> >>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
> >>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
> >>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
> >>>
> >>> So it still has some race windows if we undock the station while 
> >>> repeatedly rescanning/removing
> >>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.
> > 
> > Which sysfs interfaces do you mean, by the way?
> > 
> > If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> > should always be run under acpi_scan_lock too.  It isn't at the moment,
> > because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> > bug (so I'm going to send a patch to fix it in a while).
> > 
> > With that bug fixed, the possible race between acpi_eject_store() and
> > hotplug_dock_devices() should be prevented from happening, so perhaps we're
> > worrying about something that cannot happen?
> Hi Rafael,
> 	I mean the "remove" method of each PCI device, and the "power" method
> of PCI hotplug slot here.
> 	These methods may be used to remove P2P bridges with associated ACPIPHP
> hotplug slots, which in turn will cause invoking of
> unregister_hotplug_dock_device().
> 	So theoretical we may trigger the bug by undocking while repeatedly
> adding/removing P2P bridges with ACPIPHP hotplug slot through PCI
> "rescan" and "remove" sysfs interface,

Why don't we make these things take acpi_scan_lock upfront, then?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-16 17:12             ` Jiang Liu
@ 2013-06-17 11:40               ` Rafael J. Wysocki
  2013-06-18 16:03                 ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-17 11:40 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Monday, June 17, 2013 01:12:00 AM Jiang Liu wrote:
> On 06/16/2013 06:54 AM, Rafael J. Wysocki wrote:
> > On Saturday, June 15, 2013 11:20:40 PM Rafael J. Wysocki wrote:
> >> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> > 
> > [...]
> > 
> >>
> >> Which sysfs interfaces do you mean, by the way?
> >>
> >> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> >> should always be run under acpi_scan_lock too.  It isn't at the moment,
> >> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> >> bug (so I'm going to send a patch to fix it in a while).
> >>
> >> With that bug fixed, the possible race between acpi_eject_store() and
> >> hotplug_dock_devices() should be prevented from happening, so perhaps we're
> >> worrying about something that cannot happen?
> > 
> > So here's a question: What particular races are possible if we remove
> > ds->hp_lock entirely without doing anything else just yet?  I mean, how to
> > *trigger* them from the start to the end and not how they can possibly happen
> > but never do, because there's no way they can be actually triggered?
> Hi Rafael,
>     I have no really platform which triggers this bug, but I may imagine
> a possible platform if it's valid for explanation.
>     Let's think about a laptop dock station with a thunderbolt
> controller built-in. The dock station is managed by dock driver and
> acpiphp driver. And the PCIe hierarchy managed by the thunderbolt
> controller may be managed by dock driver and ACPIPHP driver too.
> So it may trigger the issue by pressing the dock button and unplugging
> thunderbolt cable concurrently.
>     But after all, this is all by imagination:). We may need to find a
> simple and quick solution for 3.10 and the stable trees and enhance the
> solution later to avoid introducing new bugs while fixing a bug.

Well, if that particular bug is not fixed in 3,10, it won't be a tragedy,
and I *really* don't want that code to get substantially more complex than
it is now.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking
  2013-06-14 19:28 ` [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking Jiang Liu
  2013-06-14 21:03   ` Yinghai Lu
@ 2013-06-17 11:57   ` Rafael J. Wysocki
  1 sibling, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-17 11:57 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel, stable

On Saturday, June 15, 2013 03:28:01 AM Jiang Liu wrote:
> Please refer to https://bugzilla.kernel.org/show_bug.cgi?id=56531 for
> more information.
> 
> This issue is caused by differences in PCI resource assignment between
> boot time and runtime hotplug. On x86 platforms, OS respects PCI
> resource assignment from BIOS and only reassign resources for unassigned
> BARs at boot time. But with acpiphp, it ignores BIOS resource assignment
> and reassign all resources by itself.
> 
> If we have enough resources, reassigning all PCI resources should work
> too, but it may fail if we are under resource constraints. On the other
> handle, current PCI MMIO alignment algorithm may waste huge MMIO address
> space if we have some PCI devices with huge MMIO BARs.
> 
> On this Sony laptop, BIOS allocates limited MMIO resources for the dock
> station and the dock station has a gfx which has a 256MB MMIO BAR.
> So current acpiphp driver fails to allocate resources for most devices
> on the dock station.
> 
> So change acpiphp driver to follow boot time behavior to respect BIOS
> resource assignment.
> 
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Reported-by: Alexander E. Patrakov <patrakov@gmail.com>
> Tested-by: Alexander E. Patrakov <patrakov@gmail.com>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: <stable@vger.kernel.org>

The code is fine as far as I'm concerned, but I have one request. ->

> ---
>  drivers/pci/hotplug/acpiphp_glue.c | 7 +++++--
>  drivers/pci/pci.h                  | 5 +++++
>  drivers/pci/setup-bus.c            | 8 ++++----
>  3 files changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index a65203b..f4a53e9 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -687,6 +687,7 @@ static int __ref enable_device(struct acpiphp_slot *slot)
>  	struct pci_bus *bus = slot->bridge->pci_bus;
>  	struct acpiphp_func *func;
>  	int num, max, pass;
> +	LIST_HEAD(add_list);
>  
>  	if (slot->flags & SLOT_ENABLED)
>  		goto err_exit;
> @@ -711,13 +712,15 @@ static int __ref enable_device(struct acpiphp_slot *slot)
>  				max = pci_scan_bridge(bus, dev, max, pass);
>  				if (pass && dev->subordinate) {
>  					check_hotplug_bridge(slot, dev);
> -					pci_bus_size_bridges(dev->subordinate);

Please add a comment explaining why we need to do this here.

> +					pcibios_resource_survey_bus(dev->subordinate);
> +					__pci_bus_size_bridges(dev->subordinate,
> +							       &add_list);
>  				}
>  			}
>  		}
>  	}
>  
> -	pci_bus_assign_resources(bus);
> +	__pci_bus_assign_resources(bus, &add_list, NULL);
>  	acpiphp_sanitize_bus(bus);
>  	acpiphp_set_hpp_values(bus);
>  	acpiphp_set_acpi_region(slot);
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index 68678ed..d1182c4 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -202,6 +202,11 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
>  		    struct resource *res, unsigned int reg);
>  int pci_resource_bar(struct pci_dev *dev, int resno, enum pci_bar_type *type);
>  void pci_configure_ari(struct pci_dev *dev);
> +void __ref __pci_bus_size_bridges(struct pci_bus *bus,
> +			struct list_head *realloc_head);
> +void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> +				      struct list_head *realloc_head,
> +				      struct list_head *fail_head);
>  
>  /**
>   * pci_ari_enabled - query ARI forwarding status
> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> index 16abaaa..d254e23 100644
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -1044,7 +1044,7 @@ handle_done:
>  	;
>  }
>  
> -static void __ref __pci_bus_size_bridges(struct pci_bus *bus,
> +void __ref __pci_bus_size_bridges(struct pci_bus *bus,
>  			struct list_head *realloc_head)
>  {
>  	struct pci_dev *dev;
> @@ -1115,9 +1115,9 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
>  }
>  EXPORT_SYMBOL(pci_bus_size_bridges);
>  
> -static void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> -					 struct list_head *realloc_head,
> -					 struct list_head *fail_head)
> +void __ref __pci_bus_assign_resources(const struct pci_bus *bus,
> +				      struct list_head *realloc_head,
> +				      struct list_head *fail_head)
>  {
>  	struct pci_bus *b;
>  	struct pci_dev *dev;

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-17 11:39             ` Rafael J. Wysocki
@ 2013-06-17 12:54               ` Rafael J. Wysocki
  2013-06-18 15:36               ` Jiang Liu
  1 sibling, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-17 12:54 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Monday, June 17, 2013 01:39:04 PM Rafael J. Wysocki wrote:
> On Monday, June 17, 2013 01:01:51 AM Jiang Liu wrote:
> > On 06/16/2013 05:20 AM, Rafael J. Wysocki wrote:
> > > On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> > >> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
> > [...]
> > >> When it returns from unregister_hotplug_dock_device(), nothing prevents it
> > >> from accessing whatever it wants, because ds->hp_lock is not used outside
> > >> of the add/del and hotplug_dock_devices().  So, the actual role of
> > >> ds->hp_lock (not the one that it is supposed to play, but the real one)
> > >> is to prevent addition/deletion from happening when hotplug_dock_devices()
> > >> is running.  [Yes, it does protect the list, but since the list is in fact
> > >> unnecessary, that doesn't matter.]
> > >>
> > >>> If we simply use a flag to mark presence of registered callback, we 
> > >>> can't achieve the second goal.
> > >>
> > >> I don't mean using the flag *alone*.
> > >>
> > >>> Take the sony laptop as an example. It has several PCI 
> > >>> hotplug
> > >>> slot associated with the dock station:
> > >>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB
> > >>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
> > >>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
> > >>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
> > >>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
> > >>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
> > >>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
> > >>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
> > >>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> > >>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
> > >>>
> > >>> So it still has some race windows if we undock the station while 
> > >>> repeatedly rescanning/removing
> > >>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.
> > > 
> > > Which sysfs interfaces do you mean, by the way?
> > > 
> > > If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> > > should always be run under acpi_scan_lock too.  It isn't at the moment,
> > > because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> > > bug (so I'm going to send a patch to fix it in a while).
> > > 
> > > With that bug fixed, the possible race between acpi_eject_store() and
> > > hotplug_dock_devices() should be prevented from happening, so perhaps we're
> > > worrying about something that cannot happen?
> > Hi Rafael,
> > 	I mean the "remove" method of each PCI device, and the "power" method
> > of PCI hotplug slot here.
> > 	These methods may be used to remove P2P bridges with associated ACPIPHP
> > hotplug slots, which in turn will cause invoking of
> > unregister_hotplug_dock_device().
> > 	So theoretical we may trigger the bug by undocking while repeatedly
> > adding/removing P2P bridges with ACPIPHP hotplug slot through PCI
> > "rescan" and "remove" sysfs interface,
> 
> Why don't we make these things take acpi_scan_lock upfront, then?

Or perhaps (and maybe better) why don't we replace ds->hp_lock by another
lock that will be acquired upper in the call chain so that
dock_add_hotplug_device(), dock_del_hotplug_device(), hotplug_dock_devices()
and dock_event() are all guaranteed to be called under that lock?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-17  3:27     ` Alexander E. Patrakov
@ 2013-06-17 17:07       ` Alexander E. Patrakov
  2013-06-18 15:13         ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-17 17:07 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Jiang Liu, alexdeucher, Rafael J . Wysocki, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

2013/6/17 Alexander E. Patrakov <patrakov@gmail.com>:
> I am not 100% sure that the static key backtrace is the same in all
> cases. However, I do remember that it does appear both in the
> non-hotplug and hotplug cases.
>
> I will retest this after work, i.e. in ~12 hours.

Tried again, failed to reproduce this warning. Sorry :(

--
Alexander E. Patrakov

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-17 17:07       ` Alexander E. Patrakov
@ 2013-06-18 15:13         ` Jiang Liu
  0 siblings, 0 replies; 47+ messages in thread
From: Jiang Liu @ 2013-06-18 15:13 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Rafael J . Wysocki, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On 06/18/2013 01:07 AM, Alexander E. Patrakov wrote:
> 2013/6/17 Alexander E. Patrakov <patrakov@gmail.com>:
>> I am not 100% sure that the static key backtrace is the same in all
>> cases. However, I do remember that it does appear both in the
>> non-hotplug and hotplug cases.
>>
>> I will retest this after work, i.e. in ~12 hours.
> 
> Tried again, failed to reproduce this warning. Sorry :(
Sounds like another memory corruption caused by race conditions:(

> 
> --
> Alexander E. Patrakov
> 


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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-17 11:39             ` Rafael J. Wysocki
  2013-06-17 12:54               ` Rafael J. Wysocki
@ 2013-06-18 15:36               ` Jiang Liu
  2013-06-18 21:12                 ` Rafael J. Wysocki
  1 sibling, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-18 15:36 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On 06/17/2013 07:39 PM, Rafael J. Wysocki wrote:
> On Monday, June 17, 2013 01:01:51 AM Jiang Liu wrote:
>> On 06/16/2013 05:20 AM, Rafael J. Wysocki wrote:
>>> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
>>>> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
>> [...]
>>>> When it returns from unregister_hotplug_dock_device(), nothing prevents it
>>>> from accessing whatever it wants, because ds->hp_lock is not used outside
>>>> of the add/del and hotplug_dock_devices().  So, the actual role of
>>>> ds->hp_lock (not the one that it is supposed to play, but the real one)
>>>> is to prevent addition/deletion from happening when hotplug_dock_devices()
>>>> is running.  [Yes, it does protect the list, but since the list is in fact
>>>> unnecessary, that doesn't matter.]
>>>>
>>>>> If we simply use a flag to mark presence of registered callback, we 
>>>>> can't achieve the second goal.
>>>>
>>>> I don't mean using the flag *alone*.
>>>>
>>>>> Take the sony laptop as an example. It has several PCI 
>>>>> hotplug
>>>>> slot associated with the dock station:
>>>>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB
>>>>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
>>>>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
>>>>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
>>>>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
>>>>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
>>>>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
>>>>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
>>>>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
>>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
>>>>>
>>>>> So it still has some race windows if we undock the station while 
>>>>> repeatedly rescanning/removing
>>>>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.
>>>
>>> Which sysfs interfaces do you mean, by the way?
>>>
>>> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
>>> should always be run under acpi_scan_lock too.  It isn't at the moment,t
>>> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
>>> bug (so I'm going to send a patch to fix it in a while).
>>>
>>> With that bug fixed, the possible race between acpi_eject_store() and
>>> hotplug_dock_devices() should be prevented from happening, so perhaps we're
>>> worrying about something that cannot happen?
>> Hi Rafael,
>> 	I mean the "remove" method of each PCI device, and the "power" method
>> of PCI hotplug slot here.
>> 	These methods may be used to remove P2P bridges with associated ACPIPHP
>> hotplug slots, which in turn will cause invoking of
>> unregister_hotplug_dock_device().
>> 	So theoretical we may trigger the bug by undocking while repeatedly
>> adding/removing P2P bridges with ACPIPHP hotplug slot through PCI
>> "rescan" and "remove" sysfs interface,
> 
> Why don't we make these things take acpi_scan_lock upfront, then?
Hi Rafael,
    Seems we can't rely on acpi_scan_lock here, it may cause another
deadlock scenario:
1) thread 1 acquired the acpi_scan_lock and tries to destroy all sysfs
interfaces for PCI devices.
2) thread 2 opens a PCI sysfs which then tries to acquire the
acpi_scan_lock.
Regards!
Gerry

> 
> Rafael
> 
> 


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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-17 11:40               ` Rafael J. Wysocki
@ 2013-06-18 16:03                 ` Jiang Liu
  2013-06-18 21:25                   ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-18 16:03 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

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

On 06/17/2013 07:40 PM, Rafael J. Wysocki wrote:
> On Monday, June 17, 2013 01:12:00 AM Jiang Liu wrote:
>> On 06/16/2013 06:54 AM, Rafael J. Wysocki wrote:
>>> On Saturday, June 15, 2013 11:20:40 PM Rafael J. Wysocki wrote:
>>>> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
>>>
>>> [...]
>>>
>>>>
>>>> Which sysfs interfaces do you mean, by the way?
>>>>
>>>> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
>>>> should always be run under acpi_scan_lock too.  It isn't at the moment,
>>>> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
>>>> bug (so I'm going to send a patch to fix it in a while).
>>>>
>>>> With that bug fixed, the possible race between acpi_eject_store() and
>>>> hotplug_dock_devices() should be prevented from happening, so perhaps we're
>>>> worrying about something that cannot happen?
>>>
>>> So here's a question: What particular races are possible if we remove
>>> ds->hp_lock entirely without doing anything else just yet?  I mean, how to
>>> *trigger* them from the start to the end and not how they can possibly happen
>>> but never do, because there's no way they can be actually triggered?
>> Hi Rafael,
>>     I have no really platform which triggers this bug, but I may imagine
>> a possible platform if it's valid for explanation.
>>     Let's think about a laptop dock station with a thunderbolt
>> controller built-in. The dock station is managed by dock driver and
>> acpiphp driver. And the PCIe hierarchy managed by the thunderbolt
>> controller may be managed by dock driver and ACPIPHP driver too.
>> So it may trigger the issue by pressing the dock button and unplugging
>> thunderbolt cable concurrently.
>>     But after all, this is all by imagination:). We may need to find a
>> simple and quick solution for 3.10 and the stable trees and enhance the
>> solution later to avoid introducing new bugs while fixing a bug.
> 
> Well, if that particular bug is not fixed in 3,10, it won't be a tragedy,
> and I *really* don't want that code to get substantially more complex than
> it is now.
Hi Rafael,
    I hope I could help to simplify the implementation too, but failed
until now:(. The PCI hotplug core has the same re-entrance issue too,
and I have struggled with that issue about one year now:(
    I have tried another solution by removing ds->hp_lock and
hotplug_devices list, please refer to the attachment. It could be used
to solve the deadlock issue in acpiphp, but may not be used to support
the coming fix for an ATA driver
regression(https://bugzilla.kernel.org/show_bug.cgi?id=59871).
    The time window for 3.10 is closing, it would be great if we could
reach a quick solution here.
Regards!
Gerry

> 
> Thanks,
> Rafael
> 
> 


[-- Attachment #2: 0001-.patch --]
[-- Type: text/x-patch, Size: 9549 bytes --]

>From d1a3f472ea81c780c370a98b553cf83f82d3e961 Mon Sep 17 00:00:00 2001
From: Jiang Liu <jiang.liu@huawei.com>
Date: Tue, 18 Jun 2013 22:22:23 +0800
Subject: [PATCH]

---
 drivers/acpi/dock.c                | 108 +++++++++++++++----------------------
 drivers/pci/hotplug/acpiphp_glue.c |  32 ++++++-----
 2 files changed, 62 insertions(+), 78 deletions(-)

diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 469ef56..fd8830a 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -58,10 +58,7 @@ struct dock_station {
 	unsigned long last_dock_time;
 	u32 flags;
 	spinlock_t dd_lock;
-	struct mutex hp_lock;
 	struct list_head dependent_devices;
-	struct list_head hotplug_devices;
-
 	struct list_head sibling;
 	struct platform_device *dock_device;
 };
@@ -70,7 +67,6 @@ static int dock_station_count;
 
 struct dock_dependent_device {
 	struct list_head list;
-	struct list_head hotplug_list;
 	acpi_handle handle;
 	const struct acpi_dock_ops *ops;
 	void *context;
@@ -105,7 +101,6 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
 
 	dd->handle = handle;
 	INIT_LIST_HEAD(&dd->list);
-	INIT_LIST_HEAD(&dd->hotplug_list);
 
 	spin_lock(&ds->dd_lock);
 	list_add_tail(&dd->list, &ds->dependent_devices);
@@ -115,38 +110,6 @@ add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
 }
 
 /**
- * dock_add_hotplug_device - associate a hotplug handler with the dock station
- * @ds: The dock station
- * @dd: The dependent device struct
- *
- * Add the dependent device to the dock's hotplug device list
- */
-static void
-dock_add_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
-{
-	mutex_lock(&ds->hp_lock);
-	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
-	mutex_unlock(&ds->hp_lock);
-}
-
-/**
- * dock_del_hotplug_device - remove a hotplug handler from the dock station
- * @ds: The dock station
- * @dd: the dependent device struct
- *
- * Delete the dependent device from the dock's hotplug device list
- */
-static void
-dock_del_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
-{
-	mutex_lock(&ds->hp_lock);
-	list_del(&dd->hotplug_list);
-	mutex_unlock(&ds->hp_lock);
-}
-
-/**
  * find_dock_dependent_device - get a device dependent on this dock
  * @ds: the dock station
  * @handle: the acpi_handle of the device we want
@@ -349,12 +312,10 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
 {
 	struct dock_dependent_device *dd;
 
-	mutex_lock(&ds->hp_lock);
-
 	/*
 	 * First call driver specific hotplug functions
 	 */
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
+	list_for_each_entry(dd, &ds->dependent_devices, list)
 		if (dd->ops && dd->ops->handler)
 			dd->ops->handler(dd->handle, event, dd->context);
 
@@ -370,7 +331,6 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
 		else
 			dock_create_acpi_device(dd->handle);
 	}
-	mutex_unlock(&ds->hp_lock);
 }
 
 static void dock_event(struct dock_station *ds, u32 event, int num)
@@ -392,7 +352,7 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
 	if (num == DOCK_EVENT)
 		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
 
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
+	list_for_each_entry(dd, &ds->dependent_devices, list)
 		if (dd->ops && dd->ops->uevent)
 			dd->ops->uevent(dd->handle, event, dd->context);
 
@@ -559,19 +519,9 @@ void unregister_dock_notifier(struct notifier_block *nb)
 }
 EXPORT_SYMBOL_GPL(unregister_dock_notifier);
 
-/**
- * register_hotplug_dock_device - register a hotplug function
- * @handle: the handle of the device
- * @ops: handlers to call after docking
- * @context: device specific data
- *
- * If a driver would like to perform a hotplug operation after a dock
- * event, they can register an acpi_notifiy_handler to be called by
- * the dock driver after _DCK is executed.
- */
-int
-register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops,
-			     void *context)
+/* must be called with ACPI scan lock held */
+int __register_hotplug_dock_device(acpi_handle handle,
+	       const struct acpi_dock_ops *ops, void *context)
 {
 	struct dock_dependent_device *dd;
 	struct dock_station *dock_station;
@@ -594,20 +544,39 @@ register_hotplug_dock_device(acpi_handle handle, const struct acpi_dock_ops *ops
 		if (dd) {
 			dd->ops = ops;
 			dd->context = context;
-			dock_add_hotplug_device(dock_station, dd);
 			ret = 0;
 		}
 	}
 
 	return ret;
 }
-EXPORT_SYMBOL_GPL(register_hotplug_dock_device);
 
 /**
- * unregister_hotplug_dock_device - remove yourself from the hotplug list
- * @handle: the acpi handle of the device
+ * register_hotplug_dock_device - register a hotplug function
+ * @handle: the handle of the device
+ * @ops: handlers to call after docking
+ * @context: device specific data
+ *
+ * If a driver would like to perform a hotplug operation after a dock
+ * event, they can register an acpi_notifiy_handler to be called by
+ * the dock driver after _DCK is executed.
  */
-void unregister_hotplug_dock_device(acpi_handle handle)
+int
+register_hotplug_dock_device(acpi_handle handle,
+			     const struct acpi_dock_ops *ops, void *context)
+{
+	int ret;
+
+	acpi_scan_lock_acquire();
+	ret = __register_hotplug_dock_device(handle, ops, context);
+	acpi_scan_lock_release();
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(register_hotplug_dock_device);
+
+/* must be called with ACPI scan lock held */
+void __unregister_hotplug_dock_device(acpi_handle handle)
 {
 	struct dock_dependent_device *dd;
 	struct dock_station *dock_station;
@@ -617,10 +586,23 @@ void unregister_hotplug_dock_device(acpi_handle handle)
 
 	list_for_each_entry(dock_station, &dock_stations, sibling) {
 		dd = find_dock_dependent_device(dock_station, handle);
-		if (dd)
-			dock_del_hotplug_device(dock_station, dd);
+		if (dd) {
+			dd->ops = NULL;
+			dd->context = NULL;
+		}
 	}
 }
+
+/**
+ * unregister_hotplug_dock_device - remove yourself from the hotplug list
+ * @handle: the acpi handle of the device
+ */
+void unregister_hotplug_dock_device(acpi_handle handle)
+{
+	acpi_scan_lock_acquire();
+	__unregister_hotplug_dock_device(handle);
+	acpi_scan_lock_release();
+}
 EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
 
 /**
@@ -945,10 +927,8 @@ static int __init dock_add(acpi_handle handle)
 	dock_station->dock_device = dd;
 	dock_station->last_dock_time = jiffies - HZ;
 
-	mutex_init(&dock_station->hp_lock);
 	spin_lock_init(&dock_station->dd_lock);
 	INIT_LIST_HEAD(&dock_station->sibling);
-	INIT_LIST_HEAD(&dock_station->hotplug_devices);
 	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
 	INIT_LIST_HEAD(&dock_station->dependent_devices);
 
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 716aa93..699b8ca 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -61,6 +61,8 @@ static DEFINE_MUTEX(bridge_mutex);
 static void handle_hotplug_event_bridge (acpi_handle, u32, void *);
 static void acpiphp_sanitize_bus(struct pci_bus *bus);
 static void acpiphp_set_hpp_values(struct pci_bus *bus);
+static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
+				       void *context);
 static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context);
 static void free_bridge(struct kref *kref);
 
@@ -147,7 +149,7 @@ static int post_dock_fixups(struct notifier_block *nb, unsigned long val,
 
 
 static const struct acpi_dock_ops acpiphp_dock_ops = {
-	.handler = handle_hotplug_event_func,
+	.handler = _handle_hotplug_event_func,
 };
 
 /* Check whether the PCI device is managed by native PCIe hotplug driver */
@@ -1065,22 +1067,13 @@ static void handle_hotplug_event_bridge(acpi_handle handle, u32 type,
 	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_bridge);
 }
 
-static void _handle_hotplug_event_func(struct work_struct *work)
+static void _handle_hotplug_event_func(acpi_handle handle, u32 type,
+				       void *context)
 {
-	struct acpiphp_func *func;
+	struct acpiphp_func *func = context;
 	char objname[64];
 	struct acpi_buffer buffer = { .length = sizeof(objname),
 				      .pointer = objname };
-	struct acpi_hp_work *hp_work;
-	acpi_handle handle;
-	u32 type;
-
-	hp_work = container_of(work, struct acpi_hp_work, work);
-	handle = hp_work->handle;
-	type = hp_work->type;
-	func = (struct acpiphp_func *)hp_work->context;
-
-	acpi_scan_lock_acquire();
 
 	acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
 
@@ -1113,7 +1106,18 @@ static void _handle_hotplug_event_func(struct work_struct *work)
 		warn("notify_handler: unknown event type 0x%x for %s\n", type, objname);
 		break;
 	}
+}
+
+static void _handle_hotplug_event_cb(struct work_struct *work)
+{
+	struct acpiphp_func *func;
+	struct acpi_hp_work *hp_work;
 
+	hp_work = container_of(work, struct acpi_hp_work, work);
+	func = (struct acpiphp_func *)hp_work->context;
+	acpi_scan_lock_acquire();
+	_handle_hotplug_event_func(hp_work->handle, hp_work->type,
+				    hp_work->context);
 	acpi_scan_lock_release();
 	kfree(hp_work); /* allocated in handle_hotplug_event_func */
 	put_bridge(func->slot->bridge);
@@ -1141,7 +1145,7 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type,
 	 * don't deadlock on hotplug actions.
 	 */
 	get_bridge(func->slot->bridge);
-	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_func);
+	alloc_acpi_hp_work(handle, type, context, _handle_hotplug_event_cb);
 }
 
 /*
-- 
1.8.1.2


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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-18 15:36               ` Jiang Liu
@ 2013-06-18 21:12                 ` Rafael J. Wysocki
  0 siblings, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-18 21:12 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Tuesday, June 18, 2013 11:36:50 PM Jiang Liu wrote:
> On 06/17/2013 07:39 PM, Rafael J. Wysocki wrote:
> > On Monday, June 17, 2013 01:01:51 AM Jiang Liu wrote:
> >> On 06/16/2013 05:20 AM, Rafael J. Wysocki wrote:
> >>> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:
> >>>> On Saturday, June 15, 2013 09:44:28 AM Jiang Liu wrote:
> >> [...]
> >>>> When it returns from unregister_hotplug_dock_device(), nothing prevents it
> >>>> from accessing whatever it wants, because ds->hp_lock is not used outside
> >>>> of the add/del and hotplug_dock_devices().  So, the actual role of
> >>>> ds->hp_lock (not the one that it is supposed to play, but the real one)
> >>>> is to prevent addition/deletion from happening when hotplug_dock_devices()
> >>>> is running.  [Yes, it does protect the list, but since the list is in fact
> >>>> unnecessary, that doesn't matter.]
> >>>>
> >>>>> If we simply use a flag to mark presence of registered callback, we 
> >>>>> can't achieve the second goal.
> >>>>
> >>>> I don't mean using the flag *alone*.
> >>>>
> >>>>> Take the sony laptop as an example. It has several PCI 
> >>>>> hotplug
> >>>>> slot associated with the dock station:
> >>>>> [   28.829316] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB
> >>>>> [   30.174964] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM0
> >>>>> [   30.174973] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM1
> >>>>> [   30.174979] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2
> >>>>> [   30.174985] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
> >>>>> [   30.175020] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
> >>>>> [   30.175040] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
> >>>>> [   30.175050] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
> >>>>> [   30.175060] acpiphp_glue: _handle_hotplug_event_func: Bus check 
> >>>>> notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
> >>>>>
> >>>>> So it still has some race windows if we undock the station while 
> >>>>> repeatedly rescanning/removing
> >>>>> the PCI bus for \_SB_.PCI0.RP07.LPMB.LPM0 through sysfs interfaces.
> >>>
> >>> Which sysfs interfaces do you mean, by the way?
> >>>
> >>> If you mean "eject", then it takes acpi_scan_lock and hotplug_dock_devices()
> >>> should always be run under acpi_scan_lock too.  It isn't at the moment,t
> >>> because write_undock() doesn't take acpi_scan_lock(), but this is an obvious
> >>> bug (so I'm going to send a patch to fix it in a while).
> >>>
> >>> With that bug fixed, the possible race between acpi_eject_store() and
> >>> hotplug_dock_devices() should be prevented from happening, so perhaps we're
> >>> worrying about something that cannot happen?
> >> Hi Rafael,
> >> 	I mean the "remove" method of each PCI device, and the "power" method
> >> of PCI hotplug slot here.
> >> 	These methods may be used to remove P2P bridges with associated ACPIPHP
> >> hotplug slots, which in turn will cause invoking of
> >> unregister_hotplug_dock_device().
> >> 	So theoretical we may trigger the bug by undocking while repeatedly
> >> adding/removing P2P bridges with ACPIPHP hotplug slot through PCI
> >> "rescan" and "remove" sysfs interface,
> > 
> > Why don't we make these things take acpi_scan_lock upfront, then?
> Hi Rafael,
>     Seems we can't rely on acpi_scan_lock here, it may cause another
> deadlock scenario:
> 1) thread 1 acquired the acpi_scan_lock and tries to destroy all sysfs
> interfaces for PCI devices.
> 2) thread 2 opens a PCI sysfs which then tries to acquire the
> acpi_scan_lock.

Well, maybe, but you didn't explain how this was going to happen.  What code
paths are involved, etc.

Quite frankly, I've already run out of patience, sorry about that.  It looks
like I need to go through the code and understand all of these problems myself.
Yes, it will take time.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios
  2013-06-18 16:03                 ` Jiang Liu
@ 2013-06-18 21:25                   ` Rafael J. Wysocki
  0 siblings, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-18 21:25 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, linux-pci,
	linux-kernel, Len Brown, stable, Jiang Liu

On Wednesday, June 19, 2013 12:03:37 AM Jiang Liu wrote:
> On 06/17/2013 07:40 PM, Rafael J. Wysocki wrote:
> > On Monday, June 17, 2013 01:12:00 AM Jiang Liu wrote:
> >> On 06/16/2013 06:54 AM, Rafael J. Wysocki wrote:
> >>> On Saturday, June 15, 2013 11:20:40 PM Rafael J. Wysocki wrote:
> >>>> On Saturday, June 15, 2013 10:17:42 PM Rafael J. Wysocki wrote:

[...]

> Hi Rafael,

Hi,

>     I hope I could help to simplify the implementation too, but failed
> until now:(. The PCI hotplug core has the same re-entrance issue too,
> and I have struggled with that issue about one year now:(

This sounds like a design issue and we're not likely to fix design issues
in 2 weeks, with all due respect to everyone involved.  Even if someone has
an "Eureka!" moment and comes up with a really clever way to fix that issue,
we still need time to prepare patches, review them, test them etc.

>     I have tried another solution by removing ds->hp_lock and
> hotplug_devices list, please refer to the attachment. It could be used
> to solve the deadlock issue in acpiphp, but may not be used to support
> the coming fix for an ATA driver
> regression(https://bugzilla.kernel.org/show_bug.cgi?id=59871).

Please stop generating patches in a hurry.  That's not really useful.

Even if you think you know what you're doing, someone else has to understand
that too and be able to review your patches.  Honestly, my experience with
that code is kind of limited and I need more time.

>     The time window for 3.10 is closing, it would be great if we could
> reach a quick solution here.

That is clearly impossible.

My suggestion would be to apply the patches that everyone is reasonably
comfortable with at the moment and stop worrying about "time windows", because
in fact there are none.  We're talking about fixes here and we can do -stable
backports once we have a solid solution, but what matters is that this solution
has to be acceptable to *all* of us.

So please stop making it sound like the 3.10 release is a hard deadline or
something.  It is not.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-15  7:25   ` Alexander E. Patrakov
@ 2013-06-18 21:35     ` Rafael J. Wysocki
  2013-06-19  5:18       ` Alexander E. Patrakov
  0 siblings, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-18 21:35 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

On Saturday, June 15, 2013 01:25:48 PM Alexander E. Patrakov wrote:
> 2013/6/15 Alexander E. Patrakov <patrakov@gmail.com>:
> > Note that the snd_hda_intel bug somehow didn't manifest itself today,
> > probably because the TV that is connected to the HDMI output of the
> > radeon card was off and because Xorg never really tried to use the
> > card.
> 
> Well, it did. The sympthoms are the same as before: incomplete
> undocking. The 16:00.1 device (HD audio controller on the radeon card)
> has disappeared from lspci output, while 16:00.0 (the radeon card
> itself) didn't, and the "Docked" LED didn't turn off. Fixed up by this
> command:
> 
> fuser -k /dev/snd/* ; rmmod snd-hda-intel
> 
> thus confirming again that the extra references that acpiphp waits to
> go away are from open fds.

OK, let's try to untangle this a bit.

If you applyt patches [1/4] and [4/4] from the $subject series only, what
does remain unfixed?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-18 21:35     ` Rafael J. Wysocki
@ 2013-06-19  5:18       ` Alexander E. Patrakov
  2013-06-20 19:06         ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-19  5:18 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> OK, let's try to untangle this a bit.
>
> If you applyt patches [1/4] and [4/4] from the $subject series only, what
> does remain unfixed?

[not tested, can do so in 12 hours if needed]

I think there will be problems on undocking and/or on the second
docking, as described in comments #6 - #8 of
https://bugzilla.kernel.org/show_bug.cgi?id=59501

-- 
Alexander E. Patrakov

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-19  5:18       ` Alexander E. Patrakov
@ 2013-06-20 19:06         ` Rafael J. Wysocki
  2013-06-21  4:36           ` Alexander E. Patrakov
  2013-06-21 16:54           ` Jiang Liu
  0 siblings, 2 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-20 19:06 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> > OK, let's try to untangle this a bit.
> >
> > If you applyt patches [1/4] and [4/4] from the $subject series only, what
> > does remain unfixed?
> 
> [not tested, can do so in 12 hours if needed]
> 
> I think there will be problems on undocking and/or on the second
> docking, as described in comments #6 - #8 of
> https://bugzilla.kernel.org/show_bug.cgi?id=59501

OK, I think I have something that might work.  It may not solve all problems,
but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
if you can.

Please apply [1/4] and [4/4] and the one below and see what happens.

Thanks,
Rafael


---
Rationale:
	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
	after removing the companion PCI devices, so the dock station code
	doesn't need to trim them separately for the dependent devices handled
	by acpiphp.

	Moreover, acpiphp_glue.c is the only user of
	[un]register_hotplug_dock_device(), so *all* devices on the
	ds->hotplug_devices list are handled by acpiphp and ops is set for all
	of them.

	This means that (1) the ds->hotplug_devices list is not necessary (we
	can always walk ds->dependent_devices instead and look for those that
	have dd->ops set) and (2) we don't need to call
	dock_remove_acpi_device(dd->handle) on eject for any of those devices,
	because dd->ops->handler() is going to take care of the ACPI device
	objects trimming for them anyway.

	Taking the above into account make the following changes:
	(1) Drop hotplug_devices from struct dock_station.
	(2) Drop dock_{add|del}_hotplug_device()
	(3) Make [un]register_hotplug_dock_device() [un]set 'ops' and
	    'context' for the given device under ds->hp_lock.
	(4) Add hot_remove_dock_devices() that walks ds->dependent_devices and
	    either calls dd->ops->handler(), if present, or trims the underlying
	    ACPI device object, otherwise.
	(5) Replace hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST) calls
	    with hot_remove_dock_devices(ds).
	(6) Rename hotplug_dock_devices() to hot_add_dock_devices() and make
	    it only handle bus check and device check requests.  Make it walk
	    ds->dependent_devices instead of ds->hotplug devices.
	(7) Make dock_event() walk ds->dependent_devices (instead of
	    ds->hotplug devices) under ds->hp_lock.
---
 drivers/acpi/dock.c |  111 ++++++++++++++++++++++++----------------------------
 1 file changed, 53 insertions(+), 58 deletions(-)

Index: linux-pm/drivers/acpi/dock.c
===================================================================
--- linux-pm.orig/drivers/acpi/dock.c
+++ linux-pm/drivers/acpi/dock.c
@@ -66,7 +66,6 @@ struct dock_station {
 	spinlock_t dd_lock;
 	struct mutex hp_lock;
 	struct list_head dependent_devices;
-	struct list_head hotplug_devices;
 
 	struct list_head sibling;
 	struct platform_device *dock_device;
@@ -121,38 +120,6 @@ add_dock_dependent_device(struct dock_st
 }
 
 /**
- * dock_add_hotplug_device - associate a hotplug handler with the dock station
- * @ds: The dock station
- * @dd: The dependent device struct
- *
- * Add the dependent device to the dock's hotplug device list
- */
-static void
-dock_add_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
-{
-	mutex_lock(&ds->hp_lock);
-	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
-	mutex_unlock(&ds->hp_lock);
-}
-
-/**
- * dock_del_hotplug_device - remove a hotplug handler from the dock station
- * @ds: The dock station
- * @dd: the dependent device struct
- *
- * Delete the dependent device from the dock's hotplug device list
- */
-static void
-dock_del_hotplug_device(struct dock_station *ds,
-			struct dock_dependent_device *dd)
-{
-	mutex_lock(&ds->hp_lock);
-	list_del(&dd->hotplug_list);
-	mutex_unlock(&ds->hp_lock);
-}
-
-/**
  * find_dock_dependent_device - get a device dependent on this dock
  * @ds: the dock station
  * @handle: the acpi_handle of the device we want
@@ -342,40 +309,60 @@ static void dock_remove_acpi_device(acpi
 }
 
 /**
- * hotplug_dock_devices - insert or remove devices on the dock station
- * @ds: the dock station
- * @event: either bus check or eject request
+ * hot_remove_dock_devices - Remove devices on a dock station.
+ * @ds: Dock station to remove devices for.
+ *
+ * For each device depending on @ds, if a dock event handler is registered,
+ * call it for the device, or trim the underlying ACPI device object otherwise.
+ *
+ * Dock event handlers are responsible for trimming the underlying ACPI device
+ * objects if present.
+ */
+static void hot_remove_dock_devices(struct dock_station *ds)
+{
+	struct dock_dependent_device *dd;
+
+	mutex_lock(&ds->hp_lock);
+
+	list_for_each_entry(dd, &ds->dependent_devices, list) {
+		if (dd->ops && dd->ops->handler)
+			dd->ops->handler(dd->handle, ACPI_NOTIFY_EJECT_REQUEST,
+					 dd->context);
+		else
+			dock_remove_acpi_device(dd->handle);
+	}
+
+	mutex_unlock(&ds->hp_lock);
+}
+
+/**
+ * hot_add_dock_devices - Insert devices on a dock station.
+ * @ds: Dock station to insert devices for.
  *
  * Some devices on the dock station need to have drivers called
  * to perform hotplug operations after a dock event has occurred.
  * Traverse the list of dock devices that have registered a
  * hotplug handler, and call the handler.
  */
-static void hotplug_dock_devices(struct dock_station *ds, u32 event)
+static void hot_add_dock_devices(struct dock_station *ds, u32 event)
 {
 	struct dock_dependent_device *dd;
 
 	mutex_lock(&ds->hp_lock);
 
-	/*
-	 * First call driver specific hotplug functions
-	 */
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
+	/* First call driver specific hotplug event handlers. */
+	list_for_each_entry(dd, &ds->dependent_devices, list)
 		if (dd->ops && dd->ops->handler)
 			dd->ops->handler(dd->handle, event, dd->context);
 
 	/*
-	 * Now make sure that an acpi_device is created for each
-	 * dependent device, or removed if this is an eject request.
-	 * This will cause acpi_drivers to be stopped/started if they
-	 * exist
+	 * Now make sure that an acpi_device is created for each dependent
+	 * device.  That will cause scan handlers to attach to devices objects
+	 * or  acpi_drivers to be started if they exist.
 	 */
-	list_for_each_entry(dd, &ds->dependent_devices, list) {
-		if (event == ACPI_NOTIFY_EJECT_REQUEST)
-			dock_remove_acpi_device(dd->handle);
-		else
-			dock_create_acpi_device(dd->handle);
-	}
+	list_for_each_entry(dd, &ds->dependent_devices, list)
+		dock_create_acpi_device(dd->handle);
+
 	mutex_unlock(&ds->hp_lock);
 }
 
@@ -398,10 +385,14 @@ static void dock_event(struct dock_stati
 	if (num == DOCK_EVENT)
 		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
 
-	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
+	mutex_lock(&ds->hp_lock);
+
+	list_for_each_entry(dd, &ds->dependent_devices, list)
 		if (dd->ops && dd->ops->uevent)
 			dd->ops->uevent(dd->handle, event, dd->context);
 
+	mutex_unlock(&ds->hp_lock);
+
 	if (num != DOCK_EVENT)
 		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
 }
@@ -598,9 +589,10 @@ register_hotplug_dock_device(acpi_handle
 		 */
 		dd = find_dock_dependent_device(dock_station, handle);
 		if (dd) {
+			mutex_lock(&dock_station->hp_lock);
 			dd->ops = ops;
 			dd->context = context;
-			dock_add_hotplug_device(dock_station, dd);
+			mutex_unlock(&dock_station->hp_lock);
 			ret = 0;
 		}
 	}
@@ -623,8 +615,12 @@ void unregister_hotplug_dock_device(acpi
 
 	list_for_each_entry(dock_station, &dock_stations, sibling) {
 		dd = find_dock_dependent_device(dock_station, handle);
-		if (dd)
-			dock_del_hotplug_device(dock_station, dd);
+		if (dd) {
+			mutex_lock(&dock_station->hp_lock);
+			dd->ops = NULL;
+			dd->context = NULL;
+			mutex_unlock(&dock_station->hp_lock);
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
@@ -649,7 +645,7 @@ static int handle_eject_request(struct d
 	 */
 	dock_event(ds, event, UNDOCK_EVENT);
 
-	hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST);
+	hot_remove_dock_devices(ds);
 	undock(ds);
 	dock_lock(ds, 0);
 	eject_dock(ds);
@@ -708,7 +704,7 @@ static void dock_notify(acpi_handle hand
 			}
 			atomic_notifier_call_chain(&dock_notifier_list,
 						   event, NULL);
-			hotplug_dock_devices(ds, event);
+			hot_add_dock_devices(ds, event);
 			complete_dock(ds);
 			dock_event(ds, event, DOCK_EVENT);
 			dock_lock(ds, 1);
@@ -953,7 +949,6 @@ static int __init dock_add(acpi_handle h
 	mutex_init(&dock_station->hp_lock);
 	spin_lock_init(&dock_station->dd_lock);
 	INIT_LIST_HEAD(&dock_station->sibling);
-	INIT_LIST_HEAD(&dock_station->hotplug_devices);
 	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
 	INIT_LIST_HEAD(&dock_station->dependent_devices);
 



-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-20 19:06         ` Rafael J. Wysocki
@ 2013-06-21  4:36           ` Alexander E. Patrakov
  2013-06-21  4:37             ` Alexander E. Patrakov
  2013-06-21 12:47             ` Rafael J. Wysocki
  2013-06-21 16:54           ` Jiang Liu
  1 sibling, 2 replies; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-21  4:36 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

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

2013/6/21 Rafael J. Wysocki <rjw@sisk.pl>:
> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
>> > OK, let's try to untangle this a bit.
>> >
>> > If you applyt patches [1/4] and [4/4] from the $subject series only, what
>> > does remain unfixed?
>>
>> [not tested, can do so in 12 hours if needed]
>>
>> I think there will be problems on undocking and/or on the second
>> docking, as described in comments #6 - #8 of
>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
>
> OK, I think I have something that might work.  It may not solve all problems,
> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> if you can.
>
> Please apply [1/4] and [4/4] and the one below and see what happens.

Tested on top of 3.10-rc6.

Attached dmesg output for the following testcase: boot undocked, dock,
undock, dock.

The initial dock went OK. The subsequent undock resulted in the blue
led on the dock cable turning off quickly, but in PCI devices slowly,
one-by-one, disappearing from the bus. Also, there were "acpi_handle
corrupt" messages in dmesg. The subsequent dock resulted in no devices
added to the bus. So - your patch is not a good replacement for
patches 2 and 3 in the original series.

>
> Thanks,
> Rafael
>
>
> ---
> Rationale:
>         acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
>         after removing the companion PCI devices, so the dock station code
>         doesn't need to trim them separately for the dependent devices handled
>         by acpiphp.
>
>         Moreover, acpiphp_glue.c is the only user of
>         [un]register_hotplug_dock_device(), so *all* devices on the
>         ds->hotplug_devices list are handled by acpiphp and ops is set for all
>         of them.
>
>         This means that (1) the ds->hotplug_devices list is not necessary (we
>         can always walk ds->dependent_devices instead and look for those that
>         have dd->ops set) and (2) we don't need to call
>         dock_remove_acpi_device(dd->handle) on eject for any of those devices,
>         because dd->ops->handler() is going to take care of the ACPI device
>         objects trimming for them anyway.
>
>         Taking the above into account make the following changes:
>         (1) Drop hotplug_devices from struct dock_station.
>         (2) Drop dock_{add|del}_hotplug_device()
>         (3) Make [un]register_hotplug_dock_device() [un]set 'ops' and
>             'context' for the given device under ds->hp_lock.
>         (4) Add hot_remove_dock_devices() that walks ds->dependent_devices and
>             either calls dd->ops->handler(), if present, or trims the underlying
>             ACPI device object, otherwise.
>         (5) Replace hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST) calls
>             with hot_remove_dock_devices(ds).
>         (6) Rename hotplug_dock_devices() to hot_add_dock_devices() and make
>             it only handle bus check and device check requests.  Make it walk
>             ds->dependent_devices instead of ds->hotplug devices.
>         (7) Make dock_event() walk ds->dependent_devices (instead of
>             ds->hotplug devices) under ds->hp_lock.
> ---
>  drivers/acpi/dock.c |  111 ++++++++++++++++++++++++----------------------------
>  1 file changed, 53 insertions(+), 58 deletions(-)
>
> Index: linux-pm/drivers/acpi/dock.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/dock.c
> +++ linux-pm/drivers/acpi/dock.c
> @@ -66,7 +66,6 @@ struct dock_station {
>         spinlock_t dd_lock;
>         struct mutex hp_lock;
>         struct list_head dependent_devices;
> -       struct list_head hotplug_devices;
>
>         struct list_head sibling;
>         struct platform_device *dock_device;
> @@ -121,38 +120,6 @@ add_dock_dependent_device(struct dock_st
>  }
>
>  /**
> - * dock_add_hotplug_device - associate a hotplug handler with the dock station
> - * @ds: The dock station
> - * @dd: The dependent device struct
> - *
> - * Add the dependent device to the dock's hotplug device list
> - */
> -static void
> -dock_add_hotplug_device(struct dock_station *ds,
> -                       struct dock_dependent_device *dd)
> -{
> -       mutex_lock(&ds->hp_lock);
> -       list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> -       mutex_unlock(&ds->hp_lock);
> -}
> -
> -/**
> - * dock_del_hotplug_device - remove a hotplug handler from the dock station
> - * @ds: The dock station
> - * @dd: the dependent device struct
> - *
> - * Delete the dependent device from the dock's hotplug device list
> - */
> -static void
> -dock_del_hotplug_device(struct dock_station *ds,
> -                       struct dock_dependent_device *dd)
> -{
> -       mutex_lock(&ds->hp_lock);
> -       list_del(&dd->hotplug_list);
> -       mutex_unlock(&ds->hp_lock);
> -}
> -
> -/**
>   * find_dock_dependent_device - get a device dependent on this dock
>   * @ds: the dock station
>   * @handle: the acpi_handle of the device we want
> @@ -342,40 +309,60 @@ static void dock_remove_acpi_device(acpi
>  }
>
>  /**
> - * hotplug_dock_devices - insert or remove devices on the dock station
> - * @ds: the dock station
> - * @event: either bus check or eject request
> + * hot_remove_dock_devices - Remove devices on a dock station.
> + * @ds: Dock station to remove devices for.
> + *
> + * For each device depending on @ds, if a dock event handler is registered,
> + * call it for the device, or trim the underlying ACPI device object otherwise.
> + *
> + * Dock event handlers are responsible for trimming the underlying ACPI device
> + * objects if present.
> + */
> +static void hot_remove_dock_devices(struct dock_station *ds)
> +{
> +       struct dock_dependent_device *dd;
> +
> +       mutex_lock(&ds->hp_lock);
> +
> +       list_for_each_entry(dd, &ds->dependent_devices, list) {
> +               if (dd->ops && dd->ops->handler)
> +                       dd->ops->handler(dd->handle, ACPI_NOTIFY_EJECT_REQUEST,
> +                                        dd->context);
> +               else
> +                       dock_remove_acpi_device(dd->handle);
> +       }
> +
> +       mutex_unlock(&ds->hp_lock);
> +}
> +
> +/**
> + * hot_add_dock_devices - Insert devices on a dock station.
> + * @ds: Dock station to insert devices for.
>   *
>   * Some devices on the dock station need to have drivers called
>   * to perform hotplug operations after a dock event has occurred.
>   * Traverse the list of dock devices that have registered a
>   * hotplug handler, and call the handler.
>   */
> -static void hotplug_dock_devices(struct dock_station *ds, u32 event)
> +static void hot_add_dock_devices(struct dock_station *ds, u32 event)
>  {
>         struct dock_dependent_device *dd;
>
>         mutex_lock(&ds->hp_lock);
>
> -       /*
> -        * First call driver specific hotplug functions
> -        */
> -       list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> +       /* First call driver specific hotplug event handlers. */
> +       list_for_each_entry(dd, &ds->dependent_devices, list)
>                 if (dd->ops && dd->ops->handler)
>                         dd->ops->handler(dd->handle, event, dd->context);
>
>         /*
> -        * Now make sure that an acpi_device is created for each
> -        * dependent device, or removed if this is an eject request.
> -        * This will cause acpi_drivers to be stopped/started if they
> -        * exist
> +        * Now make sure that an acpi_device is created for each dependent
> +        * device.  That will cause scan handlers to attach to devices objects
> +        * or  acpi_drivers to be started if they exist.
>          */
> -       list_for_each_entry(dd, &ds->dependent_devices, list) {
> -               if (event == ACPI_NOTIFY_EJECT_REQUEST)
> -                       dock_remove_acpi_device(dd->handle);
> -               else
> -                       dock_create_acpi_device(dd->handle);
> -       }
> +       list_for_each_entry(dd, &ds->dependent_devices, list)
> +               dock_create_acpi_device(dd->handle);
> +
>         mutex_unlock(&ds->hp_lock);
>  }
>
> @@ -398,10 +385,14 @@ static void dock_event(struct dock_stati
>         if (num == DOCK_EVENT)
>                 kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>
> -       list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> +       mutex_lock(&ds->hp_lock);
> +
> +       list_for_each_entry(dd, &ds->dependent_devices, list)
>                 if (dd->ops && dd->ops->uevent)
>                         dd->ops->uevent(dd->handle, event, dd->context);
>
> +       mutex_unlock(&ds->hp_lock);
> +
>         if (num != DOCK_EVENT)
>                 kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>  }
> @@ -598,9 +589,10 @@ register_hotplug_dock_device(acpi_handle
>                  */
>                 dd = find_dock_dependent_device(dock_station, handle);
>                 if (dd) {
> +                       mutex_lock(&dock_station->hp_lock);
>                         dd->ops = ops;
>                         dd->context = context;
> -                       dock_add_hotplug_device(dock_station, dd);
> +                       mutex_unlock(&dock_station->hp_lock);
>                         ret = 0;
>                 }
>         }
> @@ -623,8 +615,12 @@ void unregister_hotplug_dock_device(acpi
>
>         list_for_each_entry(dock_station, &dock_stations, sibling) {
>                 dd = find_dock_dependent_device(dock_station, handle);
> -               if (dd)
> -                       dock_del_hotplug_device(dock_station, dd);
> +               if (dd) {
> +                       mutex_lock(&dock_station->hp_lock);
> +                       dd->ops = NULL;
> +                       dd->context = NULL;
> +                       mutex_unlock(&dock_station->hp_lock);
> +               }
>         }
>  }
>  EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
> @@ -649,7 +645,7 @@ static int handle_eject_request(struct d
>          */
>         dock_event(ds, event, UNDOCK_EVENT);
>
> -       hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST);
> +       hot_remove_dock_devices(ds);
>         undock(ds);
>         dock_lock(ds, 0);
>         eject_dock(ds);
> @@ -708,7 +704,7 @@ static void dock_notify(acpi_handle hand
>                         }
>                         atomic_notifier_call_chain(&dock_notifier_list,
>                                                    event, NULL);
> -                       hotplug_dock_devices(ds, event);
> +                       hot_add_dock_devices(ds, event);
>                         complete_dock(ds);
>                         dock_event(ds, event, DOCK_EVENT);
>                         dock_lock(ds, 1);
> @@ -953,7 +949,6 @@ static int __init dock_add(acpi_handle h
>         mutex_init(&dock_station->hp_lock);
>         spin_lock_init(&dock_station->dd_lock);
>         INIT_LIST_HEAD(&dock_station->sibling);
> -       INIT_LIST_HEAD(&dock_station->hotplug_devices);
>         ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>         INIT_LIST_HEAD(&dock_station->dependent_devices);
>
>
>
>
> --
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.



--
Alexander E. Patrakov

[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 95906 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-rc6-rafael (root@aep-vaio) (gcc version 4.6.3 (Gentoo 4.6.3 p1.11, pie-0.5.2) ) #1 SMP PREEMPT Fri Jun 21 10:11:50 YEKT 2013
[    0.000000] Command line: root=/dev/vaio/gentoo64a-root rd.luks.uuid=luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521 acpiphp.debug=1 initrd=/boot/initramfs.img BOOT_IMAGE=/boot/vmlinuz 
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008f3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000008f400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000009ae3efff] usable
[    0.000000] BIOS-e820: [mem 0x000000009ae3f000-0x000000009aebefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000009aebf000-0x000000009afbefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000009afbf000-0x000000009affefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000009afff000-0x000000009affffff] usable
[    0.000000] BIOS-e820: [mem 0x000000009b000000-0x000000009f9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000feb00000-0x00000000feb03fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed19fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffd80000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000025fdfffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.6 present.
[    0.000000] DMI: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] No AGP bridge found
[    0.000000] e820: last_pfn = 0x25fe00 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-E7FFF write-protect
[    0.000000]   E8000-EFFFF write-combining
[    0.000000]   F0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask F80000000 write-back
[    0.000000]   1 base 080000000 mask FE0000000 write-back
[    0.000000]   2 base 09B000000 mask FFF000000 uncachable
[    0.000000]   3 base 09C000000 mask FFC000000 uncachable
[    0.000000]   4 base 0FFC00000 mask FFFC00000 write-protect
[    0.000000]   5 base 100000000 mask F00000000 write-back
[    0.000000]   6 base 200000000 mask FC0000000 write-back
[    0.000000]   7 base 240000000 mask FF0000000 write-back
[    0.000000]   8 base 250000000 mask FF0000000 write-back
[    0.000000]   9 base 25FE00000 mask FFFE00000 uncachable
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0x9b000 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000fe1b0-0x000fe1bf] mapped at [ffff8800000fe1b0]
[    0.000000] Base memory trampoline at [ffff880000089000] 89000 size 24576
[    0.000000] reserving inaccessible SNB gfx pages
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000]  [mem 0x00000000-0x000fffff] page 4k
[    0.000000] BRK [0x026ba000, 0x026bafff] PGTABLE
[    0.000000] BRK [0x026bb000, 0x026bbfff] PGTABLE
[    0.000000] BRK [0x026bc000, 0x026bcfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x25fc00000-0x25fdfffff]
[    0.000000]  [mem 0x25fc00000-0x25fdfffff] page 2M
[    0.000000] BRK [0x026bd000, 0x026bdfff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x25c000000-0x25fbfffff]
[    0.000000]  [mem 0x25c000000-0x25fbfffff] page 2M
[    0.000000] init_memory_mapping: [mem 0x200000000-0x25bffffff]
[    0.000000]  [mem 0x200000000-0x25bffffff] page 2M
[    0.000000] BRK [0x026be000, 0x026befff] PGTABLE
[    0.000000] init_memory_mapping: [mem 0x00100000-0x9ae3efff]
[    0.000000]  [mem 0x00100000-0x001fffff] page 4k
[    0.000000]  [mem 0x00200000-0x9adfffff] page 2M
[    0.000000]  [mem 0x9ae00000-0x9ae3efff] page 4k
[    0.000000] init_memory_mapping: [mem 0x9afff000-0x9affffff]
[    0.000000]  [mem 0x9afff000-0x9affffff] page 4k
[    0.000000] init_memory_mapping: [mem 0x100000000-0x1ffffffff]
[    0.000000]  [mem 0x100000000-0x1ffffffff] page 2M
[    0.000000] RAMDISK: [mem 0x7f652000-0x7fffefff]
[    0.000000] ACPI: RSDP 00000000000fe020 00024 (v02   Sony)
[    0.000000] ACPI: XSDT 000000009affe120 00094 (v01   Sony     VAIO 20120521      01000013)
[    0.000000] ACPI: FACP 000000009affc000 000F4 (v04   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: DSDT 000000009aff0000 08607 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: FACS 000000009af6e000 00040
[    0.000000] ACPI: ASF! 000000009affd000 000A5 (v32   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: HPET 000000009affb000 00038 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: APIC 000000009affa000 0008C (v02   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: MCFG 000000009aff9000 0003C (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SLIC 000000009afef000 00176 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: WDAT 000000009afee000 00224 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SSDT 000000009afed000 00CA6 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: BOOT 000000009afeb000 00028 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SSDT 000000009afe9000 0022B (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: ASPT 000000009afe6000 00034 (v07   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SSDT 000000009afe5000 00846 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SSDT 000000009afe4000 00996 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: SSDT 000000009afe3000 00EE8 (v01   Sony     VAIO 20120521 ACPI 00040000)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000025fdfffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x25fdfffff]
[    0.000000]   NODE_DATA [mem 0x25fdf4000-0x25fdf8fff]
[    0.000000]  [ffffea0000000000-ffffea00097fffff] PMD -> [ffff880257400000-ffff88025f3fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00001000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x25fdfffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00001000-0x0008efff]
[    0.000000]   node   0: [mem 0x00100000-0x9ae3efff]
[    0.000000]   node   0: [mem 0x9afff000-0x9affffff]
[    0.000000]   node   0: [mem 0x100000000-0x25fdfffff]
[    0.000000] On node 0 totalpages: 2075598
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 142 pages reserved
[    0.000000]   DMA zone: 3982 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 9849 pages used for memmap
[    0.000000]   DMA32 zone: 630336 pages, LIFO batch:31
[    0.000000]   Normal zone: 22520 pages used for memmap
[    0.000000]   Normal zone: 1441280 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x00] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x00] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x00] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x00] disabled)
[    0.000000] ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 8 CPUs, 4 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000008f000 - 0000000000090000
[    0.000000] PM: Registered nosave memory: 0000000000090000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 000000009ae3f000 - 000000009aebf000
[    0.000000] PM: Registered nosave memory: 000000009aebf000 - 000000009afbf000
[    0.000000] PM: Registered nosave memory: 000000009afbf000 - 000000009afff000
[    0.000000] PM: Registered nosave memory: 000000009b000000 - 000000009fa00000
[    0.000000] PM: Registered nosave memory: 000000009fa00000 - 00000000e0000000
[    0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000f0000000
[    0.000000] PM: Registered nosave memory: 00000000f0000000 - 00000000feb00000
[    0.000000] PM: Registered nosave memory: 00000000feb00000 - 00000000feb04000
[    0.000000] PM: Registered nosave memory: 00000000feb04000 - 00000000fec00000
[    0.000000] PM: Registered nosave memory: 00000000fec00000 - 00000000fec01000
[    0.000000] PM: Registered nosave memory: 00000000fec01000 - 00000000fed10000
[    0.000000] PM: Registered nosave memory: 00000000fed10000 - 00000000fed1a000
[    0.000000] PM: Registered nosave memory: 00000000fed1a000 - 00000000fed1c000
[    0.000000] PM: Registered nosave memory: 00000000fed1c000 - 00000000fed20000
[    0.000000] PM: Registered nosave memory: 00000000fed20000 - 00000000fee00000
[    0.000000] PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
[    0.000000] PM: Registered nosave memory: 00000000fee01000 - 00000000ffd80000
[    0.000000] PM: Registered nosave memory: 00000000ffd80000 - 0000000100000000
[    0.000000] e820: [mem 0x9fa00000-0xdfffffff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:8 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88025fa00000 s83904 r8192 d22592 u262144
[    0.000000] pcpu-alloc: s83904 r8192 d22592 u262144 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 2043023
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=/dev/vaio/gentoo64a-root rd.luks.uuid=luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521 acpiphp.debug=1 initrd=/boot/initramfs.img BOOT_IMAGE=/boot/vmlinuz 
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Calgary: detecting Calgary via BIOS EBDA area
[    0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[    0.000000] Memory: 8069704k/9959424k available (6577k kernel code, 1657032k absent, 232688k reserved, 6465k data, 980k init)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	CONFIG_RCU_FANOUT set to non-default value of 32
[    0.000000] 	Additional per-CPU info printed with stalls.
[    0.000000] NR_IRQS:4352 nr_irqs:744 16
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 5855 kB
[    0.000000]  per task-struct memory footprint: 1920 bytes
[    0.000000] allocated 33554432 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] kmemleak: Kernel memory leak detector disabled
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.001000] tsc: Detected 2793.673 MHz processor
[    0.000002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5587.34 BogoMIPS (lpj=2793673)
[    0.000123] pid_max: default: 32768 minimum: 301
[    0.000239] Security Framework initialized
[    0.000829] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.002411] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.003110] Mount-cache hash table entries: 256
[    0.003793] Initializing cgroup subsys memory
[    0.003887] Initializing cgroup subsys devices
[    0.003959] Initializing cgroup subsys freezer
[    0.004511] Initializing cgroup subsys blkio
[    0.004569] Initializing cgroup subsys net_prio
[    0.004628] Initializing cgroup subsys hugetlb
[    0.004732] CPU: Physical Processor ID: 0
[    0.004789] CPU: Processor Core ID: 0
[    0.004847] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.004944] mce: CPU supports 7 MCE banks
[    0.005010] CPU0: Thermal monitoring enabled (TM1)
[    0.005080] Last level iTLB entries: 4KB 512, 2MB 0, 4MB 0
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32
tlb_flushall_shift: 5
[    0.005345] Freeing SMP alternatives: 24k freed
[    0.005411] ACPI: Core revision 20130328
[    0.016590] ACPI: All ACPI Tables successfully acquired
[    0.028977] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.039058] smpboot: CPU0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (fam: 06, model: 2a, stepping: 07)
[    0.039259] TSC deadline timer enabled
[    0.039274] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[    0.039511] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[    0.039592] ... version:                3
[    0.039649] ... bit width:              48
[    0.039707] ... generic registers:      4
[    0.039764] ... value mask:             0000ffffffffffff
[    0.039824] ... max period:             000000007fffffff
[    0.039884] ... fixed-purpose events:   3
[    0.039940] ... event mask:             000000070000000f
[    0.049642] SMP alternatives: lockdep: fixing up alternatives
[    0.063199] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.049721] smpboot: Booting Node   0, Processors  #1
[    0.065131] SMP alternatives: lockdep: fixing up alternatives
[    0.065242]  #2
[    0.080692] SMP alternatives: lockdep: fixing up alternatives
[    0.080807]  #3
[    0.094132] Brought up 4 CPUs
[    0.094243] smpboot: Total of 4 processors activated (22349.38 BogoMIPS)
[    0.097892] devtmpfs: initialized
[    0.100470] PM: Registering ACPI NVS region [mem 0x9aebf000-0x9afbefff] (1048576 bytes)
[    0.100812] xor: automatically using best checksumming function:
[    0.110231]    avx       : 20484.000 MB/sec
[    0.110473] NET: Registered protocol family 16
[    0.110905] ACPI: bus type PCI registered
[    0.110964] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.111100] dca service started, version 1.12.1
[    0.111219] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.111303] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    0.133936] PCI: Using configuration type 1 for base access
[    0.136050] bio: create slab <bio-0> at 0
[    0.152431] raid6: sse2x1    7582 MB/s
[    0.169478] raid6: sse2x2    9441 MB/s
[    0.186530] raid6: sse2x4   10824 MB/s
[    0.186588] raid6: using algorithm sse2x4 (10824 MB/s)
[    0.186648] raid6: using ssse3x2 recovery algorithm
[    0.186783] ACPI: Added _OSI(Module Device)
[    0.186843] ACPI: Added _OSI(Processor Device)
[    0.186901] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.186960] ACPI: Added _OSI(Processor Aggregator Device)
[    0.191632] ACPI: EC: Look up EC in DSDT
[    0.196177] ACPI: Executed 1 blocks of module-level executable AML code
[    0.203701] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.211604] ACPI: SSDT 000000009ae70718 0067C (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.212936] ACPI: Dynamic OEM Table Load:
[    0.213072] ACPI: SSDT           (null) 0067C (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.216960] ACPI: SSDT 000000009ae71a98 00303 (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.218348] ACPI: Dynamic OEM Table Load:
[    0.218486] ACPI: SSDT           (null) 00303 (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.220865] ACPI: SSDT 000000009ae6fd98 00119 (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.222200] ACPI: Dynamic OEM Table Load:
[    0.222337] ACPI: SSDT           (null) 00119 (v01   Sony     VAIO 20120521 INTL 20100121)
[    0.632882] ACPI: Interpreter enabled
[    0.632946] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20130328/hwxface-568)
[    0.633106] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130328/hwxface-568)
[    0.633295] ACPI: (supports S0 S3 S4 S5)
[    0.633353] ACPI: Using IOAPIC for interrupt routing
[    0.633446] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.634414] ACPI: ACPI Dock Station Driver: 1 docks/bays found
[    0.651594] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[    0.651775] \_SB_.PCI0:_OSC invalid UUID
[    0.651777] _OSC request data:1 8 0 
[    0.652840] PCI host bridge to bus 0000:00
[    0.652898] pci_bus 0000:00: root bus resource [bus 00-fe]
[    0.652960] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.653022] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.653085] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.653148] pci_bus 0000:00: root bus resource [mem 0x9fa00000-0xfeafffff]
[    0.653248] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[    0.653463] pci 0000:00:02.0: [8086:0126] type 00 class 0x030000
[    0.653479] pci 0000:00:02.0: reg 10: [mem 0xd0000000-0xd03fffff 64bit]
[    0.653487] pci 0000:00:02.0: reg 18: [mem 0xa0000000-0xafffffff 64bit pref]
[    0.653493] pci 0000:00:02.0: reg 20: [io  0xa000-0xa03f]
[    0.653687] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[    0.653725] pci 0000:00:16.0: reg 10: [mem 0xd9404000-0xd940400f 64bit]
[    0.653855] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.654039] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[    0.654336] pci 0000:00:1a.0: reg 10: [mem 0xd9409000-0xd94093ff]
[    0.656042] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.656138] pci 0000:00:1a.0: System wakeup disabled by ACPI
[    0.656314] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[    0.656344] pci 0000:00:1b.0: reg 10: [mem 0xd9400000-0xd9403fff 64bit]
[    0.656480] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.656533] pci 0000:00:1b.0: System wakeup disabled by ACPI
[    0.656655] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[    0.656797] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.656861] pci 0000:00:1c.0: System wakeup disabled by ACPI
[    0.656982] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[    0.657126] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.657191] pci 0000:00:1c.1: System wakeup disabled by ACPI
[    0.657309] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[    0.657454] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.657518] pci 0000:00:1c.2: System wakeup disabled by ACPI
[    0.657636] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[    0.657780] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[    0.657852] pci 0000:00:1c.3: System wakeup disabled by ACPI
[    0.657974] pci 0000:00:1c.6: [8086:1c1c] type 01 class 0x060400
[    0.658122] pci 0000:00:1c.6: PME# supported from D0 D3hot D3cold
[    0.658195] pci 0000:00:1c.6: System wakeup disabled by ACPI
[    0.658329] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[    0.658620] pci 0000:00:1d.0: reg 10: [mem 0xd9408000-0xd94083ff]
[    0.660343] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.660410] pci 0000:00:1d.0: System wakeup disabled by ACPI
[    0.660531] pci 0000:00:1f.0: [8086:1c4b] type 00 class 0x060100
[    0.660772] pci 0000:00:1f.2: [8086:282a] type 00 class 0x010400
[    0.660810] pci 0000:00:1f.2: reg 10: [io  0xa088-0xa08f]
[    0.660826] pci 0000:00:1f.2: reg 14: [io  0xa094-0xa097]
[    0.660840] pci 0000:00:1f.2: reg 18: [io  0xa080-0xa087]
[    0.660856] pci 0000:00:1f.2: reg 1c: [io  0xa090-0xa093]
[    0.660870] pci 0000:00:1f.2: reg 20: [io  0xa060-0xa07f]
[    0.660884] pci 0000:00:1f.2: reg 24: [mem 0xd9407000-0xd94077ff]
[    0.660983] pci 0000:00:1f.2: PME# supported from D3hot
[    0.661101] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[    0.661129] pci 0000:00:1f.3: reg 10: [mem 0xd9405000-0xd94050ff 64bit]
[    0.661171] pci 0000:00:1f.3: reg 20: [io  0xa040-0xa05f]
[    0.661682] pci 0000:02:00.0: [8086:0091] type 00 class 0x028000
[    0.661984] pci 0000:02:00.0: reg 10: [mem 0xd8400000-0xd8401fff 64bit]
[    0.663551] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[    0.663789] pci 0000:02:00.0: System wakeup disabled by ACPI
[    0.666252] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.666316] pci 0000:00:1c.0:   bridge window [io  0x9000-0x9fff]
[    0.666321] pci 0000:00:1c.0:   bridge window [mem 0xd8400000-0xd93fffff]
[    0.666331] pci 0000:00:1c.0:   bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[    0.666485] pci 0000:03:00.0: [10ec:5209] type 00 class 0xff0000
[    0.666513] pci 0000:03:00.0: reg 10: [mem 0xd7400000-0xd7400fff]
[    0.666723] pci 0000:03:00.0: supports D1 D2
[    0.666725] pci 0000:03:00.0: PME# supported from D1 D2 D3hot
[    0.666777] pci 0000:03:00.0: System wakeup disabled by ACPI
[    0.668129] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.668218] pci 0000:00:1c.1:   bridge window [io  0x8000-0x8fff]
[    0.668223] pci 0000:00:1c.1:   bridge window [mem 0xd7400000-0xd83fffff]
[    0.668233] pci 0000:00:1c.1:   bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[    0.668437] pci 0000:04:00.0: [1033:0194] type 00 class 0x0c0330
[    0.668474] pci 0000:04:00.0: reg 10: [mem 0xd6400000-0xd6401fff 64bit]
[    0.668690] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[    0.668748] pci 0000:04:00.0: System wakeup disabled by ACPI
[    0.668888] pci 0000:00:1c.2: PCI bridge to [bus 04]
[    0.668952] pci 0000:00:1c.2:   bridge window [io  0x7000-0x7fff]
[    0.668957] pci 0000:00:1c.2:   bridge window [mem 0xd6400000-0xd73fffff]
[    0.668967] pci 0000:00:1c.2:   bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[    0.669176] pci 0000:05:00.0: [10ec:8168] type 00 class 0x020000
[    0.669251] pci 0000:05:00.0: reg 10: [io  0x6000-0x60ff]
[    0.669384] pci 0000:05:00.0: reg 18: [mem 0xd3404000-0xd3404fff 64bit pref]
[    0.669467] pci 0000:05:00.0: reg 20: [mem 0xd3400000-0xd3403fff 64bit pref]
[    0.669836] pci 0000:05:00.0: supports D1 D2
[    0.669838] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.669973] pci 0000:05:00.0: System wakeup disabled by ACPI
[    0.672175] pci 0000:00:1c.3: PCI bridge to [bus 05]
[    0.672253] pci 0000:00:1c.3:   bridge window [io  0x6000-0x6fff]
[    0.672258] pci 0000:00:1c.3:   bridge window [mem 0xd5400000-0xd63fffff]
[    0.672268] pci 0000:00:1c.3:   bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[    0.672422] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
[    0.672553] acpiphp: Slot [1] registered
[    0.672668] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[    0.672732] pci 0000:00:1c.6:   bridge window [io  0x3000-0x5fff]
[    0.672738] pci 0000:00:1c.6:   bridge window [mem 0xb0000000-0xcfffffff]
[    0.672748] pci 0000:00:1c.6:   bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[    0.672857] \_SB_.PCI0:_OSC invalid UUID
[    0.672858] _OSC request data:1 1f 0 
[    0.672863] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.672938] acpi PNP0A08:00: Unable to request _OSC control (_OSC support mask: 0x08)
[    0.674711] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[    0.675394] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[    0.676028] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[    0.676659] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[    0.677291] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[    0.677970] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[    0.678694] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[    0.679323] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[    0.680723] ACPI: Enabled 6 GPEs in block 00 to 3F
[    0.680868] acpi root: \_SB_.PCI0 notify handler is installed
[    0.681019] Found 1 acpi root devices
[    0.681151] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    0.681563] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.681646] vgaarb: loaded
[    0.681701] vgaarb: bridge control possible 0000:00:02.0
[    0.681837] SCSI subsystem initialized
[    0.681894] ACPI: bus type ATA registered
[    0.682036] libata version 3.00 loaded.
[    0.682049] ACPI: bus type USB registered
[    0.682132] usbcore: registered new interface driver usbfs
[    0.682205] usbcore: registered new interface driver hub
[    0.682300] usbcore: registered new device driver usb
[    0.682402] PCI: Using ACPI for IRQ routing
[    0.690515] PCI: pci_cache_line_size set to 64 bytes
[    0.690699] e820: reserve RAM buffer [mem 0x0008f400-0x0008ffff]
[    0.690707] e820: reserve RAM buffer [mem 0x9ae3f000-0x9bffffff]
[    0.690710] e820: reserve RAM buffer [mem 0x9b000000-0x9bffffff]
[    0.690711] e820: reserve RAM buffer [mem 0x25fe00000-0x25fffffff]
[    0.691073] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.691494] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.693578] Switching to clocksource hpet
[    0.700313] pnp: PnP ACPI init
[    0.700399] ACPI: bus type PNP registered
[    0.700569] pnp 00:00: [dma 4]
[    0.700625] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.700663] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[    0.700786] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.700839] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.700914] system 00:04: [io  0x0680-0x069f] has been reserved
[    0.700978] system 00:04: [io  0x1000-0x100f] has been reserved
[    0.701040] system 00:04: [io  0xffff] has been reserved
[    0.701101] system 00:04: [io  0xffff] has been reserved
[    0.701162] system 00:04: [io  0x0400-0x0453] has been reserved
[    0.701223] system 00:04: [io  0x0458-0x047f] has been reserved
[    0.701285] system 00:04: [io  0x0500-0x057f] has been reserved
[    0.701347] system 00:04: [io  0x164e-0x164f] has been reserved
[    0.701409] system 00:04: [io  0x2000] has been reserved
[    0.701470] system 00:04: [io  0x2004] has been reserved
[    0.701534] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.701577] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.701642] system 00:06: [io  0x0454-0x0457] has been reserved
[    0.701716] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    0.701768] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.701817] pnp 00:08: Plug and Play ACPI device, IDs SNY9015 PNP0f13 (active)
[    0.702008] system 00:09: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.702072] system 00:09: [mem 0xfed10000-0xfed17fff] has been reserved
[    0.702136] system 00:09: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.702199] system 00:09: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.702262] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[    0.702324] system 00:09: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.702387] system 00:09: [mem 0xfed90000-0xfed93fff] has been reserved
[    0.702450] system 00:09: [mem 0xff000000-0xffffffff] could not be reserved
[    0.702515] system 00:09: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.702579] system 00:09: [mem 0x9fa00000-0x9fa00fff] has been reserved
[    0.702644] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.703436] system 00:0a: [mem 0x20000000-0x201fffff] could not be reserved
[    0.703506] system 00:0a: [mem 0x40000000-0x401fffff] could not be reserved
[    0.703577] system 00:0a: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.703599] pnp: PnP ACPI: found 11 devices
[    0.703658] ACPI: bus type PNP unregistered
[    0.711996] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.712059] pci 0000:00:1c.0:   bridge window [io  0x9000-0x9fff]
[    0.712127] pci 0000:00:1c.0:   bridge window [mem 0xd8400000-0xd93fffff]
[    0.712194] pci 0000:00:1c.0:   bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[    0.712278] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.712340] pci 0000:00:1c.1:   bridge window [io  0x8000-0x8fff]
[    0.712408] pci 0000:00:1c.1:   bridge window [mem 0xd7400000-0xd83fffff]
[    0.712964] pci 0000:00:1c.1:   bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[    0.713047] pci 0000:00:1c.2: PCI bridge to [bus 04]
[    0.713108] pci 0000:00:1c.2:   bridge window [io  0x7000-0x7fff]
[    0.713175] pci 0000:00:1c.2:   bridge window [mem 0xd6400000-0xd73fffff]
[    0.713242] pci 0000:00:1c.2:   bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[    0.713324] pci 0000:00:1c.3: PCI bridge to [bus 05]
[    0.713385] pci 0000:00:1c.3:   bridge window [io  0x6000-0x6fff]
[    0.713453] pci 0000:00:1c.3:   bridge window [mem 0xd5400000-0xd63fffff]
[    0.713520] pci 0000:00:1c.3:   bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[    0.713603] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[    0.713665] pci 0000:00:1c.6:   bridge window [io  0x3000-0x5fff]
[    0.713739] pci 0000:00:1c.6:   bridge window [mem 0xb0000000-0xcfffffff]
[    0.713806] pci 0000:00:1c.6:   bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[    0.714311] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.714313] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.714315] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.714316] pci_bus 0000:00: resource 7 [mem 0x9fa00000-0xfeafffff]
[    0.714318] pci_bus 0000:02: resource 0 [io  0x9000-0x9fff]
[    0.714320] pci_bus 0000:02: resource 1 [mem 0xd8400000-0xd93fffff]
[    0.714322] pci_bus 0000:02: resource 2 [mem 0xd0400000-0xd13fffff 64bit pref]
[    0.714323] pci_bus 0000:03: resource 0 [io  0x8000-0x8fff]
[    0.714325] pci_bus 0000:03: resource 1 [mem 0xd7400000-0xd83fffff]
[    0.714327] pci_bus 0000:03: resource 2 [mem 0xd1400000-0xd23fffff 64bit pref]
[    0.714328] pci_bus 0000:04: resource 0 [io  0x7000-0x7fff]
[    0.714330] pci_bus 0000:04: resource 1 [mem 0xd6400000-0xd73fffff]
[    0.714332] pci_bus 0000:04: resource 2 [mem 0xd2400000-0xd33fffff 64bit pref]
[    0.714334] pci_bus 0000:05: resource 0 [io  0x6000-0x6fff]
[    0.714335] pci_bus 0000:05: resource 1 [mem 0xd5400000-0xd63fffff]
[    0.714337] pci_bus 0000:05: resource 2 [mem 0xd3400000-0xd43fffff 64bit pref]
[    0.714339] pci_bus 0000:08: resource 0 [io  0x3000-0x5fff]
[    0.714340] pci_bus 0000:08: resource 1 [mem 0xb0000000-0xcfffffff]
[    0.714342] pci_bus 0000:08: resource 2 [mem 0xd4400000-0xd53fffff 64bit pref]
[    0.714389] NET: Registered protocol family 2
[    0.714912] TCP established hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.715386] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
[    0.718973] TCP: Hash tables configured (established 65536 bind 65536)
[    0.719090] TCP: reno registered
[    0.719196] UDP hash table entries: 4096 (order: 7, 655360 bytes)
[    0.719753] UDP-Lite hash table entries: 4096 (order: 7, 655360 bytes)
[    0.720461] NET: Registered protocol family 1
[    0.720536] pci 0000:00:02.0: Boot video device
[    0.755279] PCI: CLS 64 bytes, default 64
[    0.755442] Unpacking initramfs...
[    1.743363] Freeing initrd memory: 9908k freed
[    1.744737] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    1.744806] software IO TLB [mem 0x96e3f000-0x9ae3f000] (64MB) mapped at [ffff880096e3f000-ffff88009ae3efff]
[    1.744921] Simple Boot Flag at 0x44 set to 0x1
[    1.745614] audit: initializing netlink socket (disabled)
[    1.745706] type=2000 audit(1371788871.721:1): initialized
[    1.766271] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    1.768892] VFS: Disk quotas dquot_6.5.2
[    1.769013] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.769665] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.770028] NILFS version 2 loaded
[    1.770283] bio: create slab <bio-1> at 1
[    1.770606] Btrfs loaded
[    1.770669] msgmni has been set to 15780
[    1.771384] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.771473] io scheduler noop registered
[    1.771531] io scheduler deadline registered
[    1.771653] io scheduler cfq registered (default)
[    1.772230] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    1.772379] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    1.772442] cpcihp_zt5550: ZT5550 CompactPCI Hot Plug Driver version: 0.2
[    1.772526] cpcihp_generic: Generic port I/O CompactPCI Hot Plug Driver version: 0.1
[    1.772600] cpcihp_generic: not configured, disabling.
[    1.772679] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    1.775394] acpiphp_ibm: ibm_acpiphp_init: acpi_walk_namespace failed
[    1.775886] intel_idle: MWAIT substates: 0x21120
[    1.775887] intel_idle: v0.4 model 0x2A
[    1.775889] intel_idle: lapic_timer_reliable_states 0xffffffff
[    1.776069] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    1.776320] ACPI: AC Adapter [ADP1] (off-line)
[    1.776627] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0
[    1.776737] ACPI: Lid Switch [LID0]
[    1.776854] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1
[    1.776962] ACPI: Power Button [PWRB]
[    1.777134] ACPI: Requesting acpi_cpufreq
[    1.784505] thermal LNXTHERM:00: registered as thermal_zone0
[    1.784567] ACPI: Thermal Zone [TZ01] (61 C)
[    1.784743] ioatdma: Intel(R) QuickData Technology Driver 4.00
[    1.784929] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.789697] loop: module loaded
[    1.790156] mei_me 0000:00:16.0: setting latency timer to 64
[    1.790271] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[    1.791162] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    1.791251] ACPI: Battery Slot [BAT1] (battery present)
[    1.791426] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    1.791516] ACPI: Battery Slot [BAT2] (battery absent)
[    1.796141] Loading iSCSI transport class v2.0-870.
[    1.796349] iscsi: registered transport (tcp)
[    1.796471] ahci 0000:00:1f.2: version 3.0
[    1.796647] ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
[    1.796723] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3 impl RAID mode
[    1.796802] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part apst 
[    1.796882] ahci 0000:00:1f.2: setting latency timer to 64
[    1.797893] scsi0 : ahci
[    1.798184] scsi1 : ahci
[    1.798338] scsi2 : ahci
[    1.798495] scsi3 : ahci
[    1.798649] scsi4 : ahci
[    1.798804] scsi5 : ahci
[    1.798924] ata1: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407100 irq 41
[    1.799000] ata2: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407180 irq 41
[    1.799084] ata3: DUMMY
[    1.799139] ata4: DUMMY
[    1.799194] ata5: DUMMY
[    1.799249] ata6: DUMMY
[    1.799488] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    1.802125] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.802236] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.802647] mousedev: PS/2 mouse device common for all mice
[    1.803000] rtc_cmos 00:05: RTC can wake from S4
[    1.803372] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[    1.803468] rtc_cmos 00:05: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    1.803602] Intel P-state driver initializing.
[    1.803681] Intel pstate controlling: cpu 0
[    1.803813] Intel pstate controlling: cpu 1
[    1.803892] Intel pstate controlling: cpu 2
[    1.803970] Intel pstate controlling: cpu 3
[    1.804276] cpuidle: using governor ladder
[    1.804794] cpuidle: using governor menu
[    1.804860] ledtrig-cpu: registered to indicate activity on CPUs
[    1.804936] hidraw: raw HID events driver (C) Jiri Kosina
[    1.805311] TCP: cubic registered
[    1.805375] Initializing XFRM netlink socket
[    1.805606] NET: Registered protocol family 10
[    1.806080] NET: Registered protocol family 17
[    1.806224] Key type dns_resolver registered
[    1.806676] PM: Hibernation image not present or could not be loaded.
[    1.806695] registered taskstats version 1
[    1.807879] rtc_cmos 00:05: setting system clock to 2013-06-21 04:27:52 UTC (1371788872)
[    1.821513] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[    2.104570] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.104702] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.105471] ata1.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[    2.105559] ata1.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    2.105706] ata2.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[    2.105829] ata2.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    2.106359] ata1.00: configured for UDMA/133
[    2.106532] ata2.00: configured for UDMA/133
[    2.107385] scsi 0:0:0:0: Direct-Access     ATA      SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[    2.108194] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[    2.108589] sd 0:0:0:0: [sda] Write Protect is off
[    2.108665] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.108749] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.108766] scsi 1:0:0:0: Direct-Access     ATA      SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[    2.109226] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[    2.109516] sd 1:0:0:0: [sdb] Write Protect is off
[    2.109589] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    2.109622] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.110530]  sdb: unknown partition table
[    2.110533]  sda: sda1 sda2
[    2.110748] sda: p2 size 489641984 extends beyond EOD, enabling native capacity
[    2.111336] sd 1:0:0:0: [sdb] Attached SCSI disk
[    2.112507]  sda: sda1 sda2
[    2.112673] sda: p2 size 489641984 extends beyond EOD, truncated
[    2.113262] sd 0:0:0:0: [sda] Attached SCSI disk
[    2.114300] Freeing unused kernel memory: 980k freed
[    2.114498] Write protecting the kernel read-only data: 12288k
[    2.118221] Freeing unused kernel memory: 1604k freed
[    2.121228] Freeing unused kernel memory: 1256k freed
[    2.148941] dracut: dracut-027-r3
[    2.169684] device-mapper: uevent: version 1.0.3
[    2.169891] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
[    2.173738] systemd-udevd[166]: starting version 204
[    2.177839] dracut: rd.md=0: removing MD RAID activation
[    2.234802] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.234993] ehci-pci: EHCI PCI platform driver
[    2.235182] ehci-pci 0000:00:1a.0: setting latency timer to 64
[    2.235231] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    2.235392] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    2.235498] ehci-pci 0000:00:1a.0: debug port 2
[    2.239524] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    2.239574] ehci-pci 0000:00:1a.0: irq 23, io mem 0xd9409000
[    2.245638] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    2.246856] hub 1-0:1.0: USB hub found
[    2.246964] hub 1-0:1.0: 2 ports detected
[    2.248341] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    2.248368] ehci-pci 0000:00:1d.0: setting latency timer to 64
[    2.248482] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
[    2.248852] xhci_hcd 0000:04:00.0: irq 42 for MSI/MSI-X
[    2.248865] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[    2.248877] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[    2.248889] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[    2.248900] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[    2.250359] xHCI xhci_add_endpoint called for root hub
[    2.250361] xHCI xhci_check_bandwidth called for root hub
[    2.250406] hub 2-0:1.0: USB hub found
[    2.251022] hub 2-0:1.0: 2 ports detected
[    2.251233] xhci_hcd 0000:04:00.0: xHCI Host Controller
[    2.251246] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    2.251254] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 3
[    2.251272] ehci-pci 0000:00:1d.0: debug port 2
[    2.251641] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
[    2.252919] xHCI xhci_add_endpoint called for root hub
[    2.252922] xHCI xhci_check_bandwidth called for root hub
[    2.253132] hub 4-0:1.0: USB hub found
[    2.253232] hub 4-0:1.0: 2 ports detected
[    2.255200] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    2.255224] ehci-pci 0000:00:1d.0: irq 20, io mem 0xd9408000
[    2.260634] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    2.261005] hub 3-0:1.0: USB hub found
[    2.261078] hub 3-0:1.0: 2 ports detected
[    2.275248] md: bind<sda>
[    2.484010] md: bind<sdb>
[    2.493696] md: bind<sdb>
[    2.494119] md: bind<sda>
[    2.497977] md: raid0 personality registered for level 0
[    2.498698] md/raid0:md126: md_size is 500129792 sectors.
[    2.498767] md: RAID0 configuration for md126 - 1 zone
[    2.498827] md: zone0=[sda/sdb]
[    2.499018]       zone-offset=         0KB, device-offset=         0KB, size= 250065152KB

[    2.499224] md126: detected capacity change from 0 to 256066453504
[    2.500568]  md126: p1 p2
[    2.549063] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    2.578490] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x122c00, board id: 1690, fw id: 934878
[    2.613754] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[    2.665419] hub 1-1:1.0: USB hub found
[    2.665689] hub 1-1:1.0: 6 ports detected
[    2.748723] tsc: Refined TSC clocksource calibration: 2793.655 MHz
[    2.748852] Switching to clocksource tsc
[    2.769308] usb 3-1: new high-speed USB device number 2 using ehci-pci
[    2.873647] dracut: luksOpen /dev/md126p2 luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521  
[    2.884258] hub 3-1:1.0: USB hub found
[    2.884401] hub 3-1:1.0: 8 ports detected
[    2.959841] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[    3.121054] usb 1-1.2: new full-speed USB device number 4 using ehci-pci
[    3.287238] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[    3.468475] usb 1-1.4: new high-speed USB device number 6 using ehci-pci
[    3.556484] usb 1-1.4: config 1 has an invalid interface number: 8 but max is 3
[    3.556597] usb 1-1.4: config 1 has no interface number 1
[    9.563894] sha256_ssse3: Using AVX optimized SHA-256 implementation
[    9.569372] bio: create slab <bio-2> at 2
[    9.726650] dracut: Scanning devices dm-0  for LVM volume groups 
[    9.730512] dracut: Reading all physical volumes. This may take a while...
[    9.733652] dracut: Found volume group "vaio" using metadata type lvm2
[    9.747192] dracut: 3 logical volume(s) in volume group "vaio" now active
[    9.787177] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[    9.799249] dracut: Checking ext4: /dev/vaio/gentoo64a-root
[    9.799342] dracut: issuing e2fsck -a  /dev/vaio/gentoo64a-root
[    9.849571] dracut: /dev/vaio/gentoo64a-root: clean, 546740/1048576 files, 3510906/4194304 blocks
[    9.850965] dracut: Mounting /dev/vaio/gentoo64a-root with -o noatime,ro
[    9.854072] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[    9.861125] dracut: Mounted root filesystem /dev/mapper/vaio-gentoo64a--root
[    9.874456] dracut: Switching root
[   10.195932] systemd-udevd[595]: starting version 204
[   10.280099] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20130328/utaddress-251)
[   10.280106] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   10.280110] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   10.280113] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   10.280115] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   10.280117] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   10.280119] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[   10.280121] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   10.280122] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   10.280582] Linux agpgart interface v0.103
[   10.284273] [drm] Initialized drm 1.1.0 20060810
[   10.294701] snd_hda_intel 0000:00:1b.0: irq 47 for MSI/MSI-X
[   10.296530] sony_laptop: Sony Notebook Control Driver v0.6
[   10.296686] input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input4
[   10.297313] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input5
[   10.316520] rtsx_pci 0000:03:00.0: irq 48 for MSI/MSI-X
[   10.316561] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 48
[   10.319690] cfg80211: Calling CRDA to update world regulatory domain
[   10.320263] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   10.320843] r8169 0000:05:00.0: irq 49 for MSI/MSI-X
[   10.321490] r8169 0000:05:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011790000, 54:42:49:9a:df:1e, XID 0c900800 IRQ 49
[   10.321493] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   10.322200] hda_codec: ALC275: SKU not ready 0x411111f0
[   10.323970] sony_laptop: brightness ignored, must be controlled by ACPI video driver
[   10.325057] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6
[   10.325119] Intel(R) Wireless WiFi driver for Linux, in-tree:
[   10.325122] Copyright(c) 2003-2013 Intel Corporation
[   10.326306] iwlwifi 0000:02:00.0: irq 50 for MSI/MSI-X
[   10.331704] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[   10.350850] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[   10.351619] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[   10.352582] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[   10.352585] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[   10.352587] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[   10.352588] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[   10.352589] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[   10.352591] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[   10.352730] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[   10.359746] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.
[   10.373278] media: Linux media interface: v0.10
[   10.374754] [drm] Memory usable by graphics device = 2048M
[   10.374857] i915 0000:00:02.0: setting latency timer to 64
[   10.375242] Bluetooth: Core ver 2.16
[   10.375259] NET: Registered protocol family 31
[   10.375261] Bluetooth: HCI device and connection manager initialized
[   10.375291] Bluetooth: HCI socket layer initialized
[   10.375294] Bluetooth: L2CAP socket layer initialized
[   10.375304] Bluetooth: SCO socket layer initialized
[   10.380783] Linux video capture interface: v2.00
[   10.381915] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   10.383127] usbcore: registered new interface driver usbserial
[   10.383145] usbcore: registered new interface driver usbserial_generic
[   10.383259] usbserial: USB Serial support registered for generic
[   10.385210] usbcore: registered new interface driver qcserial
[   10.385244] usbserial: USB Serial support registered for Qualcomm USB modem
[   10.385594] usbcore: registered new interface driver btusb
[   10.386295] qcserial 1-1.4:1.0: Qualcomm USB modem converter detected
[   10.386591] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[   10.387895] qcserial 1-1.4:1.2: Qualcomm USB modem converter detected
[   10.387995] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[   10.389262] qcserial 1-1.4:1.3: Qualcomm USB modem converter detected
[   10.389279] uvcvideo: Found UVC 1.00 device USB2.0 Camera (05c8:0318)
[   10.392745] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input9
[   10.393044] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[   10.394287] usbcore: registered new interface driver uvcvideo
[   10.394289] USB Video Class driver (1.1.1)
[   10.403836] input: PC Speaker as /devices/platform/pcspkr/input/input10
[   10.407505] Error: Driver 'pcspkr' is already registered, aborting...
[   10.408210] i915 0000:00:02.0: irq 51 for MSI/MSI-X
[   10.408225] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   10.408226] [drm] Driver supports precise vblank timestamp query.
[   10.409033] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   10.414942] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[   10.415973] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[   10.416443] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[   10.416456] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[   10.416518] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[   10.416751] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[   10.416762] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[   10.416811] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[   10.417044] microcode: CPU2 updated to revision 0x28, date = 2012-04-24
[   10.417054] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[   10.417103] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[   10.417344] microcode: CPU3 updated to revision 0x28, date = 2012-04-24
[   10.417363] perf_event_intel: PEBS enabled due to microcode update
[   10.417983] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   10.462710] [drm] Wrong MCH_SSKPD value: 0x16040307
[   10.462715] [drm] This can cause pipe underruns and display issues.
[   10.462717] [drm] Please upgrade your BIOS to fix this.
[   10.478031] iTCO_vendor_support: vendor-support=0
[   10.478485] fbcon: inteldrmfb (fb0) is primary device
[   10.479692] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[   10.479725] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[   10.526242] systemd-udevd[613]: renamed network interface eth0 to enp5s0
[   10.529547] cfg80211: World regulatory domain updated:
[   10.529549] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.529551] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.529553] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.529554] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.529556] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.529557] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.559997] systemd-udevd[625]: renamed network interface wlan0 to wlp2s0
[   11.739960] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
[   12.220718] Console: switching to colour frame buffer device 240x67
[   12.225165] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   12.225168] i915 0000:00:02.0: registered panic notifier
[   12.225794] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225807] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225821] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225834] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225848] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225861] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.225874] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   12.227883] acpi device:3e: registered as cooling_device5
[   12.228196] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   12.228282] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:09/input/input11
[   12.228748] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[   12.228933] ACPI Warning: 0x000000000000a040-0x000000000000a05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251)
[   12.228940] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   12.638578] EXT4-fs (dm-1): re-mounted. Opts: (null)
[   12.714551] EXT4-fs (md126p1): mounted filesystem with ordered data mode. Opts: (null)
[   12.719889] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[   12.725486] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[   13.158670] microcode: Microcode Update Driver: v2.00 removed.
[   14.052734] r8169 0000:05:00.0 enp5s0: link down
[   14.052804] IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready
[   14.052862] r8169 0000:05:00.0 enp5s0: link down
[   17.256479] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   17.256482] Bluetooth: BNEP filters: protocol multicast
[   17.256491] Bluetooth: BNEP socket layer initialized
[   17.422048] Bluetooth: RFCOMM TTY layer initialized
[   17.422067] Bluetooth: RFCOMM socket layer initialized
[   17.422069] Bluetooth: RFCOMM ver 1.11
[   17.760077] zram: module is from the staging directory, the quality is unknown, you have been warned.
[   17.764912] zram: Created 4 device(s) ...
[   17.775113] Adding 1572860k swap on /dev/zram0.  Priority:10 extents:1 across:1572860k SSFS
[   17.782613] Adding 1572860k swap on /dev/zram1.  Priority:10 extents:1 across:1572860k SSFS
[   17.790637] Adding 1572860k swap on /dev/zram2.  Priority:10 extents:1 across:1572860k SSFS
[   17.797833] Adding 1572860k swap on /dev/zram3.  Priority:10 extents:1 across:1572860k SSFS
[   19.266541] r8169 0000:05:00.0 enp5s0: link up
[   19.266552] IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
[   30.367215] ACPI: \_SB_.DOCK: docking
[   30.368768] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[   30.368824] acpiphp_glue: bus exists... trim
[   30.370137] ACPI: Device does not support D3cold
[   30.370503] ACPI: Device does not support D3cold
[   30.372232] ACPI: Device does not support D3cold
[   30.373158] ACPI: Device does not support D3cold
[   30.373208] ACPI: Device does not support D3cold
[   30.373265] ACPI: Device does not support D3cold
[   30.373317] ACPI: Device does not support D3cold
[   30.373409] ACPI: Device does not support D3cold
[   30.377147] ACPI: Device does not support D3cold
[   30.378109] ACPI: Device does not support D3cold
[   30.378161] ACPI: Device does not support D3cold
[   30.378211] ACPI: Device does not support D3cold
[   30.378256] ACPI: Device does not support D3cold
[   30.378311] ACPI: Device does not support D3cold
[   30.378356] ACPI: Device does not support D3cold
[   30.378430] ACPI: Device does not support D3cold
[   30.379398] ACPI: Device does not support D3cold
[   30.380109] ACPI: Device does not support D3cold
[   30.380195] ACPI: Device does not support D3cold
[   30.380268] ACPI: Device does not support D3cold
[   30.381847] ACPI: Device does not support D3cold
[   30.382572] ACPI: Device does not support D3cold
[   30.382621] ACPI: Device does not support D3cold
[   30.382666] ACPI: Device does not support D3cold
[   30.382715] ACPI: Device does not support D3cold
[   30.382761] ACPI: Device does not support D3cold
[   30.382805] ACPI: Device does not support D3cold
[   30.382849] ACPI: Device does not support D3cold
[   30.382895] ACPI: Device does not support D3cold
[   30.382938] ACPI: Device does not support D3cold
[   30.382983] ACPI: Device does not support D3cold
[   30.390668] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390691] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390709] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390727] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390744] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390761] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390779] [Firmware Bug]: Duplicate ACPI video bus devices for the same VGA controller, please try module parameter "video.allow_duplicates=1"if the current driver doesn't work.
[   30.390944] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[   30.391096] pci 0000:08:00.0: supports D1 D2
[   30.391098] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.392767] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[   30.392961] acpiphp: Slot [1-1] registered
[   30.393002] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[   30.393058] acpiphp: Slot [2] registered
[   30.393082] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[   30.393100] acpiphp: Slot [3] registered
[   30.393142] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[   30.393311] pci 0000:0a:00.0: supports D1 D2
[   30.393314] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.394677] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[   30.394836] pci 0000:0a:03.0: supports D1 D2
[   30.394839] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.395406] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[   30.395563] pci 0000:0a:04.0: supports D1 D2
[   30.395567] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.395927] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[   30.395940] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[   30.395947] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[   30.395958] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.396462] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[   30.396478] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[   30.396652] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[   30.397068] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[   30.397298] pci 0000:14:00.0: supports D1 D2
[   30.397299] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.399542] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[   30.399557] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[   30.399564] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.399574] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.399815] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[   30.400044] pci 0000:15:03.0: supports D1 D2
[   30.400046] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.400214] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[   30.400441] pci 0000:15:04.0: supports D1 D2
[   30.400442] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.400710] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[   30.400726] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[   30.400734] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.400748] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.400928] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[   30.400949] acpiphp: Slot [1-2] registered
[   30.400974] acpiphp_glue: sibling found, but _SUN doesn't match!
[   30.401030] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[   30.401090] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[   30.401137] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[   30.401168] pci 0000:16:00.0: reg 20: [io  0x0000-0x00ff]
[   30.401228] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[   30.401383] pci 0000:16:00.0: supports D1 D2
[   30.401504] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[   30.401516] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[   30.401519] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:16:00.0
[   30.401621] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[   30.401688] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[   30.401998] pci 0000:16:00.1: supports D1 D2
[   30.402707] pci 0000:15:03.0: PCI bridge to [bus 16]
[   30.402725] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[   30.402736] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[   30.402754] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[   30.404427] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[   30.404760] pci 0000:17:00.0: supports D1 D2
[   30.404762] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.406628] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[   30.406644] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[   30.406652] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.406667] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.407020] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[   30.407361] pci 0000:18:00.0: supports D1 D2
[   30.407364] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.409114] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[   30.409458] pci 0000:18:01.0: supports D1 D2
[   30.409461] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.410057] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[   30.410391] pci 0000:18:02.0: supports D1 D2
[   30.410394] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.412511] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[   30.412846] pci 0000:18:03.0: supports D1 D2
[   30.412848] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.413736] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[   30.414076] pci 0000:18:04.0: supports D1 D2
[   30.414079] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.414431] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[   30.414455] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[   30.414467] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.414491] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.414803] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[   30.414843] acpiphp: Slot [1-3] registered
[   30.414938] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[   30.415001] pci 0000:19:00.0: reg 10: [io  0x0000-0x00ff]
[   30.415112] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[   30.415180] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[   30.415483] pci 0000:19:00.0: supports D1 D2
[   30.415486] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.417463] pci 0000:18:00.0: PCI bridge to [bus 19]
[   30.417486] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   30.417517] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.419245] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[   30.419283] acpiphp: Slot [1-4] registered
[   30.419379] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[   30.419442] pci 0000:1a:00.0: reg 10: [io  0x8000-0x8007]
[   30.419486] pci 0000:1a:00.0: reg 14: [io  0x8040-0x8043]
[   30.419549] pci 0000:1a:00.0: reg 18: [io  0x8200-0x8207]
[   30.419594] pci 0000:1a:00.0: reg 1c: [io  0x8800-0x8803]
[   30.419638] pci 0000:1a:00.0: reg 20: [io  0x900000-0x90000f]
[   30.419681] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[   30.419948] pci 0000:1a:00.0: supports D1
[   30.419951] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[   30.420302] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   30.420323] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   30.420335] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   30.422224] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[   30.423121] acpiphp: Slot [1-5] registered
[   30.423226] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[   30.423310] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[   30.423768] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[   30.425708] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   30.425740] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   30.425974] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   30.426227] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   30.426494] pci_bus 0000:0a: Allocating resources
[   30.426679] pci 0000:1a:00.0: no compatible bridge window for [io  0x8000-0x8007]
[   30.426681] pci 0000:1a:00.0: no compatible bridge window for [io  0x8040-0x8043]
[   30.426683] pci 0000:1a:00.0: no compatible bridge window for [io  0x8200-0x8207]
[   30.426684] pci 0000:1a:00.0: no compatible bridge window for [io  0x8800-0x8803]
[   30.426685] pci 0000:1a:00.0: no compatible bridge window for [io  0x900000-0x90000f]
[   30.426687] pci 0000:1a:00.0: no compatible bridge window for [mem 0x00800000-0x008003ff]
[   30.426808] pci 0000:0a:00.0: bridge window [io  0x1000-0x0fff] to [bus 0b] add_size 1000
[   30.426811] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000
[   30.426824] pci 0000:0a:03.0: bridge window [io  0x1000-0x0fff] to [bus 0c] add_size 1000
[   30.426826] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0c] add_size 200000
[   30.426828] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0c] add_size 200000
[   30.426901] pci 0000:18:00.0: bridge window [mem 0x00100000-0x001fffff] to [bus 19] add_size 400000
[   30.426930] pci 0000:18:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1a] add_size 200000
[   30.426960] pci 0000:18:02.0: bridge window [io  0x1000-0x0fff] to [bus 1b] add_size 1000
[   30.426962] pci 0000:18:02.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1b] add_size 200000
[   30.426990] pci 0000:18:03.0: bridge window [io  0x1000-0x0fff] to [bus 1c] add_size 1000
[   30.426992] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1c] add_size 200000
[   30.426994] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1c] add_size 200000
[   30.427023] pci 0000:18:04.0: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[   30.427025] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1d] add_size 200000
[   30.427026] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1d] add_size 200000
[   30.427123] pci 0000:0a:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427124] pci 0000:0a:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427126] pci 0000:0a:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427128] pci 0000:0a:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427129] pci 0000:0a:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427132] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427134] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427136] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427138] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   30.427140] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427143] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427146] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427148] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427150] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427151] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   30.427154] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[   30.427163] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[   30.427176] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[   30.427197] pci 0000:16:00.0: BAR 0: assigned [mem 0xb0000000-0xbfffffff 64bit pref]
[   30.427228] pci 0000:16:00.0: BAR 2: assigned [mem 0xc0200000-0xc021ffff 64bit]
[   30.427259] pci 0000:16:00.0: BAR 6: assigned [mem 0xc0220000-0xc023ffff pref]
[   30.427261] pci 0000:16:00.1: BAR 0: assigned [mem 0xc0240000-0xc0243fff 64bit]
[   30.427291] pci 0000:16:00.0: BAR 4: assigned [io  0x5000-0x50ff]
[   30.427302] pci 0000:15:03.0: PCI bridge to [bus 16]
[   30.427307] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[   30.427318] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[   30.427327] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[   30.427345] pci 0000:18:00.0: res[14]=[mem 0x00100000-0x001fffff] get_res_add_size add_size 400000
[   30.427347] pci 0000:18:01.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427349] pci 0000:18:02.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427350] pci 0000:18:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427352] pci 0000:18:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427353] pci 0000:18:04.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427355] pci 0000:18:04.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427356] pci 0000:18:02.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427358] pci 0000:18:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427359] pci 0000:18:04.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427361] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x500000)
[   30.427363] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427365] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427367] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427369] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427371] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   30.427373] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427376] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   30.427378] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427379] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   30.427384] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x100000)
[   30.427386] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   30.427388] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427390] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   30.427391] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427394] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427395] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427397] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427399] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   30.427401] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427405] pci 0000:19:00.0: BAR 4: assigned [mem 0xd4400000-0xd4403fff 64bit pref]
[   30.427446] pci 0000:19:00.0: BAR 2: assigned [mem 0xd4404000-0xd4404fff 64bit pref]
[   30.427487] pci 0000:19:00.0: BAR 0: assigned [io  0x4000-0x40ff]
[   30.427500] pci 0000:18:00.0: PCI bridge to [bus 19]
[   30.427506] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   30.427548] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427571] pci 0000:1a:00.0: BAR 5: assigned [mem 0xc0100000-0xc01003ff]
[   30.427584] pci 0000:1a:00.0: BAR 4: assigned [io  0x3000-0x300f]
[   30.427599] pci 0000:1a:00.0: BAR 0: assigned [io  0x3010-0x3017]
[   30.427613] pci 0000:1a:00.0: BAR 2: assigned [io  0x3018-0x301f]
[   30.427627] pci 0000:1a:00.0: BAR 1: assigned [io  0x3020-0x3023]
[   30.427640] pci 0000:1a:00.0: BAR 3: assigned [io  0x3024-0x3027]
[   30.427654] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   30.427660] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   30.427675] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   30.427707] pci 0000:1b:00.0: BAR 0: assigned [mem 0xc0000000-0xc0001fff 64bit]
[   30.427746] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   30.427761] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   30.427790] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   30.427832] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   30.427875] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[   30.427881] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[   30.427897] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.427908] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427927] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[   30.427932] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[   30.427944] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.427952] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427967] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[   30.427972] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[   30.427984] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.427992] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428007] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[   30.428010] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[   30.428018] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.428024] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428033] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[   30.428037] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[   30.428044] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[   30.428050] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428070] pci 0000:08:00.0: no hotplug settings from platform
[   30.428079] pci 0000:0a:00.0: no hotplug settings from platform
[   30.428088] pci 0000:0a:03.0: no hotplug settings from platform
[   30.428098] pci 0000:0a:04.0: no hotplug settings from platform
[   30.428110] pci 0000:14:00.0: no hotplug settings from platform
[   30.428125] pci 0000:15:03.0: no hotplug settings from platform
[   30.428142] pci 0000:16:00.0: no hotplug settings from platform
[   30.428160] pci 0000:16:00.1: no hotplug settings from platform
[   30.428175] pci 0000:15:04.0: no hotplug settings from platform
[   30.428192] pci 0000:17:00.0: no hotplug settings from platform
[   30.428213] pci 0000:18:00.0: no hotplug settings from platform
[   30.428236] pci 0000:19:00.0: no hotplug settings from platform
[   30.428256] pci 0000:18:01.0: no hotplug settings from platform
[   30.428278] pci 0000:1a:00.0: no hotplug settings from platform
[   30.428298] pci 0000:18:02.0: no hotplug settings from platform
[   30.428321] pci 0000:1b:00.0: no hotplug settings from platform
[   30.428341] pci 0000:18:03.0: no hotplug settings from platform
[   30.428361] pci 0000:18:04.0: no hotplug settings from platform
[   30.429136] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[   30.429467] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[   30.433664] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[   30.434378] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[   30.434628] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[   30.434890] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[   30.435144] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[   30.435464] snd_hda_intel 0000:16:00.1: enabling device (0000 -> 0002)
[   30.435557] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[   30.435657] snd_hda_intel 0000:16:00.1: irq 59 for MSI/MSI-X
[   30.440229] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/0000:16:00.1/sound/card1/input12
[   30.445128] pcieport 0000:17:00.0: irq 60 for MSI/MSI-X
[   30.445461] [drm] radeon kernel modesetting enabled.
[   30.445585] radeon 0000:16:00.0: enabling device (0000 -> 0003)
[   30.446092] pcieport 0000:18:00.0: irq 61 for MSI/MSI-X
[   30.447310] pcieport 0000:18:01.0: irq 62 for MSI/MSI-X
[   30.447719] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[   30.447757] [drm] register mmio base: 0xC0200000
[   30.447759] [drm] register mmio size: 131072
[   30.451354] pcieport 0000:18:02.0: irq 63 for MSI/MSI-X
[   30.452037] pcieport 0000:18:03.0: irq 64 for MSI/MSI-X
[   30.452510] pcieport 0000:18:04.0: irq 65 for MSI/MSI-X
[   30.453699] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   30.453723] r8169 0000:19:00.0: enabling device (0000 -> 0003)
[   30.499547] r8169 0000:19:00.0: irq 66 for MSI/MSI-X
[   30.500476] r8169 0000:19:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011dea000, 54:42:49:9a:de:86, XID 0c900800 IRQ 66
[   30.500482] r8169 0000:19:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   30.515918] systemd-udevd[1817]: renamed network interface eth0 to enp25s0
[   30.561395] scsi6 : pata_marvell
[   30.561604] scsi7 : pata_marvell
[   30.564734] ata7: PATA max UDMA/100 cmd 0x3010 ctl 0x3020 bmdma 0x3000 irq 19
[   30.564738] ata8: PATA max UDMA/133 cmd 0x3018 ctl 0x3024 bmdma 0x3008 irq 19
[   30.564785] pci 0000:1b:00.0: enabling device (0000 -> 0002)
[   30.646123] r8169 0000:19:00.0 enp25s0: link down
[   30.646186] IPv6: ADDRCONF(NETDEV_UP): enp25s0: link is not ready
[   30.702592] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   30.702635] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 5
[   30.703232] xhci_hcd 0000:1b:00.0: irq 67 for MSI/MSI-X
[   30.703251] xhci_hcd 0000:1b:00.0: irq 68 for MSI/MSI-X
[   30.703269] xhci_hcd 0000:1b:00.0: irq 69 for MSI/MSI-X
[   30.703286] xhci_hcd 0000:1b:00.0: irq 70 for MSI/MSI-X
[   30.703307] xhci_hcd 0000:1b:00.0: irq 71 for MSI/MSI-X
[   30.704378] xHCI xhci_add_endpoint called for root hub
[   30.704383] xHCI xhci_check_bandwidth called for root hub
[   30.704648] hub 5-0:1.0: USB hub found
[   30.704669] hub 5-0:1.0: 2 ports detected
[   30.813463] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   30.813501] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 6
[   30.864289] xHCI xhci_add_endpoint called for root hub
[   30.864295] xHCI xhci_check_bandwidth called for root hub
[   30.864522] hub 6-0:1.0: USB hub found
[   30.864544] hub 6-0:1.0: 2 ports detected
[   30.918709] ata8.00: ATAPI: Optiarc BD RW BD-5850H, 1.70, max UDMA/100
[   30.925645] ata8.00: configured for UDMA/100
[   30.928886] scsi 7:0:0:0: CD-ROM            Optiarc  BD RW BD-5850H   1.70 PQ: 0 ANSI: 5
[   30.931578] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda caddy
[   30.931582] cdrom: Uniform CD-ROM driver Revision: 3.20
[   30.932236] sr 7:0:0:0: Attached scsi CD-ROM sr0
[   31.114536] usb 5-1: new high-speed USB device number 2 using xhci_hcd
[   31.128750] hub 5-1:1.0: USB hub found
[   31.129092] hub 5-1:1.0: 2 ports detected
[   31.356074] ATOM BIOS: Sony
[   31.356231] [drm] GPU not posted. posting now...
[   31.361557] radeon 0000:16:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[   31.361563] radeon 0000:16:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[   31.361657] mtrr: no more MTRRs available
[   31.361662] [drm] Detected VRAM RAM=1024M, BAR=256M
[   31.361664] [drm] RAM width 128bits DDR
[   31.362415] [TTM] Zone  kernel: Available graphics memory: 4041738 kiB
[   31.362418] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[   31.362421] [TTM] Initializing pool allocator
[   31.362455] [TTM] Initializing DMA pool allocator
[   31.363412] [drm] radeon: 1024M of VRAM memory ready
[   31.363418] [drm] radeon: 512M of GTT memory ready.
[   31.382552] [drm] GART: num cpu pages 131072, num gpu pages 131072
[   31.383176] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[   31.387127] [drm] Loading TURKS Microcode
[   31.396428] [drm] PCIE GART of 512M enabled (table at 0x0000000000273000).
[   31.396821] radeon 0000:16:00.0: WB enabled
[   31.396825] radeon 0000:16:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff88023ff5fc00
[   31.396828] radeon 0000:16:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff88023ff5fc0c
[   31.397057] radeon 0000:16:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90024cb2118
[   31.397062] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   31.397064] [drm] Driver supports precise vblank timestamp query.
[   31.397120] radeon 0000:16:00.0: irq 72 for MSI/MSI-X
[   31.397147] radeon 0000:16:00.0: radeon: using MSI.
[   31.397276] [drm] radeon: irq initialized.
[   31.414647] [drm] ring test on 0 succeeded in 1 usecs
[   31.414730] [drm] ring test on 3 succeeded in 1 usecs
[   31.601213] [drm] ring test on 5 succeeded in 1 usecs
[   31.601219] [drm] UVD initialized successfully.
[   31.601541] [drm] Enabling audio support
[   31.601935] [drm] ib test on ring 0 succeeded in 0 usecs
[   31.602137] [drm] ib test on ring 3 succeeded in 0 usecs
[   31.755007] [drm] ib test on ring 5 succeeded
[   31.755517] [drm] Radeon Display Connectors
[   31.755519] [drm] Connector 0:
[   31.755520] [drm]   HDMI-A-2
[   31.755521] [drm]   HPD1
[   31.755522] [drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[   31.755523] [drm]   Encoders:
[   31.755524] [drm]     DFP1: INTERNAL_UNIPHY1
[   31.755526] [drm] Connector 1:
[   31.755527] [drm]   VGA-2
[   31.755528] [drm]   DDC: 0x6470 0x6470 0x6474 0x6474 0x6478 0x6478 0x647c 0x647c
[   31.755529] [drm]   Encoders:
[   31.755530] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   31.757536] [drm] Internal thermal controller with fan control
[   31.758901] [drm] radeon: power management initialized
[   31.769745] radeon 0000:16:00.0: No connectors reported connected with modes
[   31.769751] [drm] Cannot find any crtc or sizes - going 1024x768
[   31.787200] [drm] fb mappable at 0xB0375000
[   31.787202] [drm] vram apper at 0xB0000000
[   31.787203] [drm] size 3145728
[   31.787204] [drm] fb depth is 24
[   31.787205] [drm]    pitch is 4096
[   31.787436] radeon 0000:16:00.0: fb1: radeondrmfb frame buffer device
[   31.787457] [drm] Initialized radeon 2.33.0 20080528 for 0000:16:00.0 on minor 1
[   43.628607] ACPI: Device does not support D3cold
[   43.628713] ACPI: Device does not support D3cold
[   43.628795] ACPI: Device does not support D3cold
[   43.628865] ACPI: Device does not support D3cold
[   43.628972] ACPI: Device does not support D3cold
[   43.629077] ACPI: Device does not support D3cold
[   43.629370] ACPI: Device does not support D3cold
[   43.629495] ACPI: Device does not support D3cold
[   43.629736] ACPI: Device does not support D3cold
[   43.630066] ACPI: Device does not support D3cold
[   43.630342] ACPI: Device does not support D3cold
[   43.630575] ACPI: Device does not support D3cold
[   43.634312] ACPI: Device does not support D3cold
[   43.635507] ACPI: Device does not support D3cold
[   43.635516] ACPI: \_SB_.DOCK: undocking
[   44.108267] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[   44.110349] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.110497] usb usb6: USB disconnect, device number 1
[   44.112203]  port1: Oops, 'acpi_handle' corrupt
[   44.112242]  port2: Oops, 'acpi_handle' corrupt
[   44.112332] xHCI xhci_drop_endpoint called for root hub
[   44.112334] xHCI xhci_check_bandwidth called for root hub
[   44.114313] usb usb6: Oops, 'acpi_handle' corrupt
[   44.114349] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   44.114351] xhci_hcd 0000:1b:00.0: USB bus 6 deregistered
[   44.114360] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.114392] usb usb5: USB disconnect, device number 1
[   44.114394] usb 5-1: USB disconnect, device number 2
[   49.120740] xhci_hcd 0000:1b:00.0: Timeout while waiting for configure endpoint command
[   49.120750] xhci_hcd 0000:1b:00.0: Stopped the command ring failed, maybe the host is dead
[   49.120757] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.120759] xhci_hcd 0000:1b:00.0: Abort command ring failed
[   49.120760] xhci_hcd 0000:1b:00.0: HC died; cleaning up
[   49.122075] xHCI xhci_drop_endpoint called for root hub
[   49.122076] xHCI xhci_check_bandwidth called for root hub
[   49.123825] usb usb5: Oops, 'acpi_handle' corrupt
[   49.123906] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.124208] xhci_hcd 0000:1b:00.0: USB bus 5 deregistered
[   52.150756] ata8.00: disabled
[   52.172219] r8169 0000:19:00.0 enp25s0: rtl_counters_cond == 1 (loop: 1000, delay: 10).
[   52.182516] r8169 0000:19:00.0 enp25s0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
[   52.188939] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.189542] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190191] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190746] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.191299] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.212009] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.222185] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.232357] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.242529] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.260158] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[   52.265799] [drm] radeon: finishing device.
[   52.265804] [drm] Disabling audio support
[   52.267668] radeon 0000:16:00.0: ffff880251e28400 unpin not necessary
[   52.268033] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown
[   52.268164] [TTM] Finalizing pool allocator
[   52.268340] [TTM] Finalizing DMA pool allocator
[   52.268389] ------------[ cut here ]------------
[   52.268395] WARNING: at drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:533 ttm_dma_free_pool+0x101/0x110 [ttm]()
[   52.268396] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd dm_mirror
[   52.268444]  dm_region_hash dm_log dm_mod [last unloaded: microcode]
[   52.268449] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G         C   3.10.0-rc6-rafael #1
[   52.268450] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[   52.268455] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[   52.268456]  ffffffffa081f268 ffff8802540d38b8 ffffffff8165af98 ffff8802540d38f8
[   52.268460]  ffffffff8103c8cb ffff8802540d38c8 ffff880251f53700 ffff8802513e23c0
[   52.268463]  0000000000000008 ffff880253d02530 ffff880254079730 ffff8802540d3908
[   52.268466] Call Trace:
[   52.268470]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[   52.268474]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[   52.268476]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[   52.268480]  [<ffffffffa081cd01>] ttm_dma_free_pool+0x101/0x110 [ttm]
[   52.268484]  [<ffffffffa081dee5>] ttm_dma_page_alloc_fini+0x85/0xcc [ttm]
[   52.268487]  [<ffffffffa0813455>] ttm_mem_global_release+0x25/0xa0 [ttm]
[   52.268497]  [<ffffffffa08494ed>] radeon_ttm_mem_global_release+0xd/0x10 [radeon]
[   52.268507]  [<ffffffffa0176213>] drm_global_item_unref+0x63/0x90 [drm]
[   52.268514]  [<ffffffffa084a721>] radeon_ttm_fini+0xd1/0xe0 [radeon]
[   52.268522]  [<ffffffffa084b129>] radeon_bo_fini+0x9/0x10 [radeon]
[   52.268531]  [<ffffffffa0893bf1>] evergreen_fini+0x91/0xc0 [radeon]
[   52.268537]  [<ffffffffa08336ea>] radeon_device_fini+0x3a/0xf0 [radeon]
[   52.268543]  [<ffffffffa08353d1>] radeon_driver_unload_kms+0x41/0x70 [radeon]
[   52.268550]  [<ffffffffa016524e>] drm_put_dev+0x6e/0x210 [drm]
[   52.268555]  [<ffffffffa0832068>] radeon_pci_remove+0x18/0x20 [radeon]
[   52.268557]  [<ffffffff81385831>] pci_device_remove+0x41/0xc0
[   52.268561]  [<ffffffff8143bfd7>] __device_release_driver+0x77/0xe0
[   52.268563]  [<ffffffff8143c069>] device_release_driver+0x29/0x40
[   52.268566]  [<ffffffff8143ba71>] bus_remove_device+0xf1/0x140
[   52.268568]  [<ffffffff8143915d>] device_del+0x11d/0x1b0
[   52.268572]  [<ffffffff8138082c>] pci_stop_bus_device+0x9c/0xb0
[   52.268574]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268576]  [<ffffffff813a11e5>] ? acpiphp_disable_slot+0x35/0x140
[   52.268579]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268581]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268584]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268586]  [<ffffffff81380991>] pci_stop_and_remove_bus_device+0x11/0x20
[   52.268588]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[   52.268591]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[   52.268594]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[   52.268597]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[   52.268599]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[   52.268601]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[   52.268604]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[   52.268606]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[   52.268609]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268612]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[   52.268615]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268669] ---[ end trace 46b4e977738a3df6 ]---
[   52.269258] [TTM] Zone  kernel: Used memory at exit: 13 kiB
[   52.269266] [TTM] Zone   dma32: Used memory at exit: 9 kiB
[   52.269295] [drm] radeon: ttm finalized
[   52.273103] pci_bus 0000:0b: busn_res: [bus 0b] is released
[   52.273732] pci_bus 0000:0c: busn_res: [bus 0c] is released
[   52.273816] pci_bus 0000:16: busn_res: [bus 16] is released
[  146.648094] fuse init (API version 7.22)
[  146.903850] ata1.00: configured for UDMA/133
[  146.903857] ata1: EH complete
[  146.909710] ata2.00: configured for UDMA/133
[  146.909716] ata2: EH complete
[  146.953161] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[  146.959395] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[  146.962325] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[  146.974233] EXT4-fs (dm-3): re-mounted. Opts: commit=0
[  147.708038] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[  147.708052] Bluetooth: HIDP socket layer initialized

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-21  4:36           ` Alexander E. Patrakov
@ 2013-06-21  4:37             ` Alexander E. Patrakov
  2013-06-21 13:06               ` Rafael J. Wysocki
  2013-06-21 12:47             ` Rafael J. Wysocki
  1 sibling, 1 reply; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-21  4:37 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

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

2013/6/21 Alexander E. Patrakov <patrakov@gmail.com>:
> The initial dock went OK. The subsequent undock resulted in the blue
> led on the dock cable turning off quickly, but in PCI devices slowly,
> one-by-one, disappearing from the bus. Also, there were "acpi_handle
> corrupt" messages in dmesg. The subsequent dock resulted in no devices
> added to the bus. So - your patch is not a good replacement for
> patches 2 and 3 in the original series.

In this state, echo 1 > /sys/bus/pci/rescan resulted in a kernel BUG,
see the attached dmesg.

--
Alexander E. Patrakov

[-- Attachment #2: dmesg-1.txt --]
[-- Type: text/plain, Size: 114444 bytes --]

[   30.414467] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.414491] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.414803] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[   30.414843] acpiphp: Slot [1-3] registered
[   30.414938] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[   30.415001] pci 0000:19:00.0: reg 10: [io  0x0000-0x00ff]
[   30.415112] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[   30.415180] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[   30.415483] pci 0000:19:00.0: supports D1 D2
[   30.415486] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[   30.417463] pci 0000:18:00.0: PCI bridge to [bus 19]
[   30.417486] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   30.417517] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.419245] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[   30.419283] acpiphp: Slot [1-4] registered
[   30.419379] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[   30.419442] pci 0000:1a:00.0: reg 10: [io  0x8000-0x8007]
[   30.419486] pci 0000:1a:00.0: reg 14: [io  0x8040-0x8043]
[   30.419549] pci 0000:1a:00.0: reg 18: [io  0x8200-0x8207]
[   30.419594] pci 0000:1a:00.0: reg 1c: [io  0x8800-0x8803]
[   30.419638] pci 0000:1a:00.0: reg 20: [io  0x900000-0x90000f]
[   30.419681] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[   30.419948] pci 0000:1a:00.0: supports D1
[   30.419951] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[   30.420302] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   30.420323] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   30.420335] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   30.422224] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[   30.423121] acpiphp: Slot [1-5] registered
[   30.423226] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[   30.423310] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[   30.423768] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[   30.425708] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   30.425740] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   30.425974] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   30.426227] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   30.426494] pci_bus 0000:0a: Allocating resources
[   30.426679] pci 0000:1a:00.0: no compatible bridge window for [io  0x8000-0x8007]
[   30.426681] pci 0000:1a:00.0: no compatible bridge window for [io  0x8040-0x8043]
[   30.426683] pci 0000:1a:00.0: no compatible bridge window for [io  0x8200-0x8207]
[   30.426684] pci 0000:1a:00.0: no compatible bridge window for [io  0x8800-0x8803]
[   30.426685] pci 0000:1a:00.0: no compatible bridge window for [io  0x900000-0x90000f]
[   30.426687] pci 0000:1a:00.0: no compatible bridge window for [mem 0x00800000-0x008003ff]
[   30.426808] pci 0000:0a:00.0: bridge window [io  0x1000-0x0fff] to [bus 0b] add_size 1000
[   30.426811] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000
[   30.426824] pci 0000:0a:03.0: bridge window [io  0x1000-0x0fff] to [bus 0c] add_size 1000
[   30.426826] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0c] add_size 200000
[   30.426828] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0c] add_size 200000
[   30.426901] pci 0000:18:00.0: bridge window [mem 0x00100000-0x001fffff] to [bus 19] add_size 400000
[   30.426930] pci 0000:18:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1a] add_size 200000
[   30.426960] pci 0000:18:02.0: bridge window [io  0x1000-0x0fff] to [bus 1b] add_size 1000
[   30.426962] pci 0000:18:02.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1b] add_size 200000
[   30.426990] pci 0000:18:03.0: bridge window [io  0x1000-0x0fff] to [bus 1c] add_size 1000
[   30.426992] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1c] add_size 200000
[   30.426994] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1c] add_size 200000
[   30.427023] pci 0000:18:04.0: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[   30.427025] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1d] add_size 200000
[   30.427026] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1d] add_size 200000
[   30.427123] pci 0000:0a:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427124] pci 0000:0a:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427126] pci 0000:0a:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427128] pci 0000:0a:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427129] pci 0000:0a:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427132] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427134] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427136] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427138] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   30.427140] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427143] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427146] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427148] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427150] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427151] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[   30.427154] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[   30.427163] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[   30.427176] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[   30.427197] pci 0000:16:00.0: BAR 0: assigned [mem 0xb0000000-0xbfffffff 64bit pref]
[   30.427228] pci 0000:16:00.0: BAR 2: assigned [mem 0xc0200000-0xc021ffff 64bit]
[   30.427259] pci 0000:16:00.0: BAR 6: assigned [mem 0xc0220000-0xc023ffff pref]
[   30.427261] pci 0000:16:00.1: BAR 0: assigned [mem 0xc0240000-0xc0243fff 64bit]
[   30.427291] pci 0000:16:00.0: BAR 4: assigned [io  0x5000-0x50ff]
[   30.427302] pci 0000:15:03.0: PCI bridge to [bus 16]
[   30.427307] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[   30.427318] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[   30.427327] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[   30.427345] pci 0000:18:00.0: res[14]=[mem 0x00100000-0x001fffff] get_res_add_size add_size 400000
[   30.427347] pci 0000:18:01.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427349] pci 0000:18:02.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427350] pci 0000:18:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427352] pci 0000:18:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427353] pci 0000:18:04.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[   30.427355] pci 0000:18:04.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[   30.427356] pci 0000:18:02.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427358] pci 0000:18:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427359] pci 0000:18:04.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[   30.427361] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x500000)
[   30.427363] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427365] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427367] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427369] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427371] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   30.427373] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427376] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   30.427378] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427379] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   30.427384] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x100000)
[   30.427386] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[   30.427388] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427390] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[   30.427391] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[   30.427394] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427395] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[   30.427397] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427399] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[   30.427401] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[   30.427405] pci 0000:19:00.0: BAR 4: assigned [mem 0xd4400000-0xd4403fff 64bit pref]
[   30.427446] pci 0000:19:00.0: BAR 2: assigned [mem 0xd4404000-0xd4404fff 64bit pref]
[   30.427487] pci 0000:19:00.0: BAR 0: assigned [io  0x4000-0x40ff]
[   30.427500] pci 0000:18:00.0: PCI bridge to [bus 19]
[   30.427506] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[   30.427548] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427571] pci 0000:1a:00.0: BAR 5: assigned [mem 0xc0100000-0xc01003ff]
[   30.427584] pci 0000:1a:00.0: BAR 4: assigned [io  0x3000-0x300f]
[   30.427599] pci 0000:1a:00.0: BAR 0: assigned [io  0x3010-0x3017]
[   30.427613] pci 0000:1a:00.0: BAR 2: assigned [io  0x3018-0x301f]
[   30.427627] pci 0000:1a:00.0: BAR 1: assigned [io  0x3020-0x3023]
[   30.427640] pci 0000:1a:00.0: BAR 3: assigned [io  0x3024-0x3027]
[   30.427654] pci 0000:18:01.0: PCI bridge to [bus 1a]
[   30.427660] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[   30.427675] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[   30.427707] pci 0000:1b:00.0: BAR 0: assigned [mem 0xc0000000-0xc0001fff 64bit]
[   30.427746] pci 0000:18:02.0: PCI bridge to [bus 1b]
[   30.427761] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[   30.427790] pci 0000:18:03.0: PCI bridge to [bus 1c]
[   30.427832] pci 0000:18:04.0: PCI bridge to [bus 1d]
[   30.427875] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[   30.427881] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[   30.427897] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.427908] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427927] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[   30.427932] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[   30.427944] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[   30.427952] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.427967] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[   30.427972] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[   30.427984] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.427992] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428007] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[   30.428010] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[   30.428018] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[   30.428024] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428033] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[   30.428037] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[   30.428044] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[   30.428050] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[   30.428070] pci 0000:08:00.0: no hotplug settings from platform
[   30.428079] pci 0000:0a:00.0: no hotplug settings from platform
[   30.428088] pci 0000:0a:03.0: no hotplug settings from platform
[   30.428098] pci 0000:0a:04.0: no hotplug settings from platform
[   30.428110] pci 0000:14:00.0: no hotplug settings from platform
[   30.428125] pci 0000:15:03.0: no hotplug settings from platform
[   30.428142] pci 0000:16:00.0: no hotplug settings from platform
[   30.428160] pci 0000:16:00.1: no hotplug settings from platform
[   30.428175] pci 0000:15:04.0: no hotplug settings from platform
[   30.428192] pci 0000:17:00.0: no hotplug settings from platform
[   30.428213] pci 0000:18:00.0: no hotplug settings from platform
[   30.428236] pci 0000:19:00.0: no hotplug settings from platform
[   30.428256] pci 0000:18:01.0: no hotplug settings from platform
[   30.428278] pci 0000:1a:00.0: no hotplug settings from platform
[   30.428298] pci 0000:18:02.0: no hotplug settings from platform
[   30.428321] pci 0000:1b:00.0: no hotplug settings from platform
[   30.428341] pci 0000:18:03.0: no hotplug settings from platform
[   30.428361] pci 0000:18:04.0: no hotplug settings from platform
[   30.429136] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[   30.429467] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[   30.433664] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[   30.434378] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[   30.434628] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[   30.434890] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[   30.435144] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[   30.435464] snd_hda_intel 0000:16:00.1: enabling device (0000 -> 0002)
[   30.435557] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[   30.435657] snd_hda_intel 0000:16:00.1: irq 59 for MSI/MSI-X
[   30.440229] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/0000:16:00.1/sound/card1/input12
[   30.445128] pcieport 0000:17:00.0: irq 60 for MSI/MSI-X
[   30.445461] [drm] radeon kernel modesetting enabled.
[   30.445585] radeon 0000:16:00.0: enabling device (0000 -> 0003)
[   30.446092] pcieport 0000:18:00.0: irq 61 for MSI/MSI-X
[   30.447310] pcieport 0000:18:01.0: irq 62 for MSI/MSI-X
[   30.447719] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[   30.447757] [drm] register mmio base: 0xC0200000
[   30.447759] [drm] register mmio size: 131072
[   30.451354] pcieport 0000:18:02.0: irq 63 for MSI/MSI-X
[   30.452037] pcieport 0000:18:03.0: irq 64 for MSI/MSI-X
[   30.452510] pcieport 0000:18:04.0: irq 65 for MSI/MSI-X
[   30.453699] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[   30.453723] r8169 0000:19:00.0: enabling device (0000 -> 0003)
[   30.499547] r8169 0000:19:00.0: irq 66 for MSI/MSI-X
[   30.500476] r8169 0000:19:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011dea000, 54:42:49:9a:de:86, XID 0c900800 IRQ 66
[   30.500482] r8169 0000:19:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[   30.515918] systemd-udevd[1817]: renamed network interface eth0 to enp25s0
[   30.561395] scsi6 : pata_marvell
[   30.561604] scsi7 : pata_marvell
[   30.564734] ata7: PATA max UDMA/100 cmd 0x3010 ctl 0x3020 bmdma 0x3000 irq 19
[   30.564738] ata8: PATA max UDMA/133 cmd 0x3018 ctl 0x3024 bmdma 0x3008 irq 19
[   30.564785] pci 0000:1b:00.0: enabling device (0000 -> 0002)
[   30.646123] r8169 0000:19:00.0 enp25s0: link down
[   30.646186] IPv6: ADDRCONF(NETDEV_UP): enp25s0: link is not ready
[   30.702592] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   30.702635] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 5
[   30.703232] xhci_hcd 0000:1b:00.0: irq 67 for MSI/MSI-X
[   30.703251] xhci_hcd 0000:1b:00.0: irq 68 for MSI/MSI-X
[   30.703269] xhci_hcd 0000:1b:00.0: irq 69 for MSI/MSI-X
[   30.703286] xhci_hcd 0000:1b:00.0: irq 70 for MSI/MSI-X
[   30.703307] xhci_hcd 0000:1b:00.0: irq 71 for MSI/MSI-X
[   30.704378] xHCI xhci_add_endpoint called for root hub
[   30.704383] xHCI xhci_check_bandwidth called for root hub
[   30.704648] hub 5-0:1.0: USB hub found
[   30.704669] hub 5-0:1.0: 2 ports detected
[   30.813463] xhci_hcd 0000:1b:00.0: xHCI Host Controller
[   30.813501] xhci_hcd 0000:1b:00.0: new USB bus registered, assigned bus number 6
[   30.864289] xHCI xhci_add_endpoint called for root hub
[   30.864295] xHCI xhci_check_bandwidth called for root hub
[   30.864522] hub 6-0:1.0: USB hub found
[   30.864544] hub 6-0:1.0: 2 ports detected
[   30.918709] ata8.00: ATAPI: Optiarc BD RW BD-5850H, 1.70, max UDMA/100
[   30.925645] ata8.00: configured for UDMA/100
[   30.928886] scsi 7:0:0:0: CD-ROM            Optiarc  BD RW BD-5850H   1.70 PQ: 0 ANSI: 5
[   30.931578] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda caddy
[   30.931582] cdrom: Uniform CD-ROM driver Revision: 3.20
[   30.932236] sr 7:0:0:0: Attached scsi CD-ROM sr0
[   31.114536] usb 5-1: new high-speed USB device number 2 using xhci_hcd
[   31.128750] hub 5-1:1.0: USB hub found
[   31.129092] hub 5-1:1.0: 2 ports detected
[   31.356074] ATOM BIOS: Sony
[   31.356231] [drm] GPU not posted. posting now...
[   31.361557] radeon 0000:16:00.0: VRAM: 1024M 0x0000000000000000 - 0x000000003FFFFFFF (1024M used)
[   31.361563] radeon 0000:16:00.0: GTT: 512M 0x0000000040000000 - 0x000000005FFFFFFF
[   31.361657] mtrr: no more MTRRs available
[   31.361662] [drm] Detected VRAM RAM=1024M, BAR=256M
[   31.361664] [drm] RAM width 128bits DDR
[   31.362415] [TTM] Zone  kernel: Available graphics memory: 4041738 kiB
[   31.362418] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[   31.362421] [TTM] Initializing pool allocator
[   31.362455] [TTM] Initializing DMA pool allocator
[   31.363412] [drm] radeon: 1024M of VRAM memory ready
[   31.363418] [drm] radeon: 512M of GTT memory ready.
[   31.382552] [drm] GART: num cpu pages 131072, num gpu pages 131072
[   31.383176] [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
[   31.387127] [drm] Loading TURKS Microcode
[   31.396428] [drm] PCIE GART of 512M enabled (table at 0x0000000000273000).
[   31.396821] radeon 0000:16:00.0: WB enabled
[   31.396825] radeon 0000:16:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 and cpu addr 0xffff88023ff5fc00
[   31.396828] radeon 0000:16:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c and cpu addr 0xffff88023ff5fc0c
[   31.397057] radeon 0000:16:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90024cb2118
[   31.397062] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   31.397064] [drm] Driver supports precise vblank timestamp query.
[   31.397120] radeon 0000:16:00.0: irq 72 for MSI/MSI-X
[   31.397147] radeon 0000:16:00.0: radeon: using MSI.
[   31.397276] [drm] radeon: irq initialized.
[   31.414647] [drm] ring test on 0 succeeded in 1 usecs
[   31.414730] [drm] ring test on 3 succeeded in 1 usecs
[   31.601213] [drm] ring test on 5 succeeded in 1 usecs
[   31.601219] [drm] UVD initialized successfully.
[   31.601541] [drm] Enabling audio support
[   31.601935] [drm] ib test on ring 0 succeeded in 0 usecs
[   31.602137] [drm] ib test on ring 3 succeeded in 0 usecs
[   31.755007] [drm] ib test on ring 5 succeeded
[   31.755517] [drm] Radeon Display Connectors
[   31.755519] [drm] Connector 0:
[   31.755520] [drm]   HDMI-A-2
[   31.755521] [drm]   HPD1
[   31.755522] [drm]   DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
[   31.755523] [drm]   Encoders:
[   31.755524] [drm]     DFP1: INTERNAL_UNIPHY1
[   31.755526] [drm] Connector 1:
[   31.755527] [drm]   VGA-2
[   31.755528] [drm]   DDC: 0x6470 0x6470 0x6474 0x6474 0x6478 0x6478 0x647c 0x647c
[   31.755529] [drm]   Encoders:
[   31.755530] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   31.757536] [drm] Internal thermal controller with fan control
[   31.758901] [drm] radeon: power management initialized
[   31.769745] radeon 0000:16:00.0: No connectors reported connected with modes
[   31.769751] [drm] Cannot find any crtc or sizes - going 1024x768
[   31.787200] [drm] fb mappable at 0xB0375000
[   31.787202] [drm] vram apper at 0xB0000000
[   31.787203] [drm] size 3145728
[   31.787204] [drm] fb depth is 24
[   31.787205] [drm]    pitch is 4096
[   31.787436] radeon 0000:16:00.0: fb1: radeondrmfb frame buffer device
[   31.787457] [drm] Initialized radeon 2.33.0 20080528 for 0000:16:00.0 on minor 1
[   43.628607] ACPI: Device does not support D3cold
[   43.628713] ACPI: Device does not support D3cold
[   43.628795] ACPI: Device does not support D3cold
[   43.628865] ACPI: Device does not support D3cold
[   43.628972] ACPI: Device does not support D3cold
[   43.629077] ACPI: Device does not support D3cold
[   43.629370] ACPI: Device does not support D3cold
[   43.629495] ACPI: Device does not support D3cold
[   43.629736] ACPI: Device does not support D3cold
[   43.630066] ACPI: Device does not support D3cold
[   43.630342] ACPI: Device does not support D3cold
[   43.630575] ACPI: Device does not support D3cold
[   43.634312] ACPI: Device does not support D3cold
[   43.635507] ACPI: Device does not support D3cold
[   43.635516] ACPI: \_SB_.DOCK: undocking
[   44.108267] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[   44.110349] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.110497] usb usb6: USB disconnect, device number 1
[   44.112203]  port1: Oops, 'acpi_handle' corrupt
[   44.112242]  port2: Oops, 'acpi_handle' corrupt
[   44.112332] xHCI xhci_drop_endpoint called for root hub
[   44.112334] xHCI xhci_check_bandwidth called for root hub
[   44.114313] usb usb6: Oops, 'acpi_handle' corrupt
[   44.114349] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   44.114351] xhci_hcd 0000:1b:00.0: USB bus 6 deregistered
[   44.114360] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.114392] usb usb5: USB disconnect, device number 1
[   44.114394] usb 5-1: USB disconnect, device number 2
[   49.120740] xhci_hcd 0000:1b:00.0: Timeout while waiting for configure endpoint command
[   49.120750] xhci_hcd 0000:1b:00.0: Stopped the command ring failed, maybe the host is dead
[   49.120757] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.120759] xhci_hcd 0000:1b:00.0: Abort command ring failed
[   49.120760] xhci_hcd 0000:1b:00.0: HC died; cleaning up
[   49.122075] xHCI xhci_drop_endpoint called for root hub
[   49.122076] xHCI xhci_check_bandwidth called for root hub
[   49.123825] usb usb5: Oops, 'acpi_handle' corrupt
[   49.123906] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.124208] xhci_hcd 0000:1b:00.0: USB bus 5 deregistered
[   52.150756] ata8.00: disabled
[   52.172219] r8169 0000:19:00.0 enp25s0: rtl_counters_cond == 1 (loop: 1000, delay: 10).
[   52.182516] r8169 0000:19:00.0 enp25s0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
[   52.188939] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.189542] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190191] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190746] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.191299] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.212009] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.222185] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.232357] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.242529] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.260158] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[   52.265799] [drm] radeon: finishing device.
[   52.265804] [drm] Disabling audio support
[   52.267668] radeon 0000:16:00.0: ffff880251e28400 unpin not necessary
[   52.268033] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown
[   52.268164] [TTM] Finalizing pool allocator
[   52.268340] [TTM] Finalizing DMA pool allocator
[   52.268389] ------------[ cut here ]------------
[   52.268395] WARNING: at drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:533 ttm_dma_free_pool+0x101/0x110 [ttm]()
[   52.268396] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd dm_mirror
[   52.268444]  dm_region_hash dm_log dm_mod [last unloaded: microcode]
[   52.268449] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G         C   3.10.0-rc6-rafael #1
[   52.268450] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[   52.268455] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[   52.268456]  ffffffffa081f268 ffff8802540d38b8 ffffffff8165af98 ffff8802540d38f8
[   52.268460]  ffffffff8103c8cb ffff8802540d38c8 ffff880251f53700 ffff8802513e23c0
[   52.268463]  0000000000000008 ffff880253d02530 ffff880254079730 ffff8802540d3908
[   52.268466] Call Trace:
[   52.268470]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[   52.268474]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[   52.268476]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[   52.268480]  [<ffffffffa081cd01>] ttm_dma_free_pool+0x101/0x110 [ttm]
[   52.268484]  [<ffffffffa081dee5>] ttm_dma_page_alloc_fini+0x85/0xcc [ttm]
[   52.268487]  [<ffffffffa0813455>] ttm_mem_global_release+0x25/0xa0 [ttm]
[   52.268497]  [<ffffffffa08494ed>] radeon_ttm_mem_global_release+0xd/0x10 [radeon]
[   52.268507]  [<ffffffffa0176213>] drm_global_item_unref+0x63/0x90 [drm]
[   52.268514]  [<ffffffffa084a721>] radeon_ttm_fini+0xd1/0xe0 [radeon]
[   52.268522]  [<ffffffffa084b129>] radeon_bo_fini+0x9/0x10 [radeon]
[   52.268531]  [<ffffffffa0893bf1>] evergreen_fini+0x91/0xc0 [radeon]
[   52.268537]  [<ffffffffa08336ea>] radeon_device_fini+0x3a/0xf0 [radeon]
[   52.268543]  [<ffffffffa08353d1>] radeon_driver_unload_kms+0x41/0x70 [radeon]
[   52.268550]  [<ffffffffa016524e>] drm_put_dev+0x6e/0x210 [drm]
[   52.268555]  [<ffffffffa0832068>] radeon_pci_remove+0x18/0x20 [radeon]
[   52.268557]  [<ffffffff81385831>] pci_device_remove+0x41/0xc0
[   52.268561]  [<ffffffff8143bfd7>] __device_release_driver+0x77/0xe0
[   52.268563]  [<ffffffff8143c069>] device_release_driver+0x29/0x40
[   52.268566]  [<ffffffff8143ba71>] bus_remove_device+0xf1/0x140
[   52.268568]  [<ffffffff8143915d>] device_del+0x11d/0x1b0
[   52.268572]  [<ffffffff8138082c>] pci_stop_bus_device+0x9c/0xb0
[   52.268574]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268576]  [<ffffffff813a11e5>] ? acpiphp_disable_slot+0x35/0x140
[   52.268579]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268581]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268584]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268586]  [<ffffffff81380991>] pci_stop_and_remove_bus_device+0x11/0x20
[   52.268588]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[   52.268591]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[   52.268594]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[   52.268597]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[   52.268599]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[   52.268601]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[   52.268604]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[   52.268606]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[   52.268609]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268612]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[   52.268615]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268669] ---[ end trace 46b4e977738a3df6 ]---
[   52.269258] [TTM] Zone  kernel: Used memory at exit: 13 kiB
[   52.269266] [TTM] Zone   dma32: Used memory at exit: 9 kiB
[   52.269295] [drm] radeon: ttm finalized
[   52.273103] pci_bus 0000:0b: busn_res: [bus 0b] is released
[   52.273732] pci_bus 0000:0c: busn_res: [bus 0c] is released
[   52.273816] pci_bus 0000:16: busn_res: [bus 16] is released
[  146.648094] fuse init (API version 7.22)
[  146.903850] ata1.00: configured for UDMA/133
[  146.903857] ata1: EH complete
[  146.909710] ata2.00: configured for UDMA/133
[  146.909716] ata2: EH complete
[  146.953161] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[  146.959395] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[  146.962325] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[  146.974233] EXT4-fs (dm-3): re-mounted. Opts: commit=0
[  147.708038] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[  147.708052] Bluetooth: HIDP socket layer initialized
[  242.063120] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[  242.063124] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  242.063126] kworker/0:0     D ffff8802540adf40     0     4      2 0x00000000
[  242.063134] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[  242.063136]  ffff8802540d3828 0000000000000046 ffff8802540ae6d8 4ba25e032c97a1cb
[  242.063139]  ffff8802540d3738 ffff8802540d3fd8 ffff8802540d3fd8 0000000000004000
[  242.063142]  ffffffff81c11440 ffff8802540adf40 ffff8802540d3758 ffffffff8109cadb
[  242.063145] Call Trace:
[  242.063150]  [<ffffffff8109cadb>] ? add_lock_to_list.isra.20.constprop.37+0x7b/0xc0
[  242.063152]  [<ffffffff8109fcc5>] ? __lock_acquire+0x1265/0x1ee0
[  242.063156]  [<ffffffff8101020a>] ? save_stack_trace+0x2a/0x50
[  242.063159]  [<ffffffff8165f764>] schedule+0x24/0x70
[  242.063163]  [<ffffffff8165cab5>] schedule_timeout+0x205/0x260
[  242.063165]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  242.063169]  [<ffffffff81059deb>] ? flush_workqueue_prep_pwqs+0x6b/0x1b0
[  242.063171]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  242.063174]  [<ffffffff810a1a35>] ? trace_hardirqs_on_caller+0x105/0x1d0
[  242.063176]  [<ffffffff8165ea74>] wait_for_common+0x114/0x170
[  242.063179]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  242.063182]  [<ffffffff810742a0>] ? try_to_wake_up+0x310/0x310
[  242.063185]  [<ffffffff8165eae8>] wait_for_completion+0x18/0x20
[  242.063187]  [<ffffffff8105abca>] flush_workqueue+0x1ca/0x6c0
[  242.063190]  [<ffffffff8105aa00>] ? wq_cpumask_show+0x80/0x80
[  242.063193]  [<ffffffff814380a5>] ? dev_vprintk_emit+0x55/0x70
[  242.063196]  [<ffffffff813a0260>] ? handle_hotplug_event_func+0x80/0x80
[  242.063199]  [<ffffffff813bfd67>] acpi_os_wait_events_complete+0x1c/0x1e
[  242.063202]  [<ffffffff813d31e2>] acpi_remove_notify_handler+0x40/0x178
[  242.063204]  [<ffffffff813a0ef8>] acpiphp_remove_slots+0x88/0x200
[  242.063207]  [<ffffffff813a5c15>] acpi_pci_remove_bus+0x15/0x20
[  242.063210]  [<ffffffff815335d9>] pcibios_remove_bus+0x9/0x10
[  242.063215]  [<ffffffff81380881>] pci_remove_bus+0x41/0x60
[  242.063217]  [<ffffffff813808eb>] pci_remove_bus_device+0x4b/0xe0
[  242.063219]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063222]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063224]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063226]  [<ffffffff81380999>] pci_stop_and_remove_bus_device+0x19/0x20
[  242.063229]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[  242.063231]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[  242.063234]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  242.063236]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  242.063238]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  242.063241]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  242.063243]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  242.063245]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  242.063248]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063251]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  242.063253]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063255] 4 locks held by kworker/0:0/4:
[  242.063256]  #0:  (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063262]  #1:  ((&hp_work->work)){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063266]  #2:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  242.063272]  #3:  (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a11d0>] acpiphp_disable_slot+0x20/0x140
[  242.063281] INFO: task kworker/0:2:78 blocked for more than 120 seconds.
[  242.063282] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  242.063283] kworker/0:2     D ffff88025422bf80     0    78      2 0x00000000
[  242.063287] Workqueue: kacpi_notify acpi_os_execute_deferred
[  242.063288]  ffff880250b37b58 0000000000000046 ffff8802000000cb 0000000000000000
[  242.063291]  0000000a450e9017 ffff880250b37fd8 ffff880250b37fd8 0000000000004000
[  242.063294]  ffff8802540adf40 ffff88025422bf80 0000000000000000 0000000000000000
[  242.063296] Call Trace:
[  242.063300]  [<ffffffff81086f60>] ? cpuacct_css_alloc+0xa0/0xa0
[  242.063302]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  242.063305]  [<ffffffff8165deed>] ? mutex_lock_nested+0x22d/0x3e0
[  242.063307]  [<ffffffff8165f764>] schedule+0x24/0x70
[  242.063309]  [<ffffffff8165fa83>] schedule_preempt_disabled+0x13/0x20
[  242.063311]  [<ffffffff8165de37>] mutex_lock_nested+0x177/0x3e0
[  242.063313]  [<ffffffff813c3ac6>] ? acpi_scan_lock_acquire+0x12/0x14
[  242.063316]  [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  242.063318]  [<ffffffff813c7849>] acpi_dock_notifier_call+0x22/0xa3
[  242.063321]  [<ffffffff81664add>] notifier_call_chain+0x4d/0x70
[  242.063324]  [<ffffffff810698f3>] __blocking_notifier_call_chain+0x53/0x80
[  242.063326]  [<ffffffff81069931>] blocking_notifier_call_chain+0x11/0x20
[  242.063328]  [<ffffffff813c3041>] acpi_bus_notify+0x29/0x7c
[  242.063331]  [<ffffffff813d1fd4>] acpi_ev_notify_dispatch+0x24/0x57
[  242.063333]  [<ffffffff813bfd89>] acpi_os_execute_deferred+0x20/0x2d
[  242.063336]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  242.063338]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  242.063341]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  242.063343]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  242.063344]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  242.063347]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  242.063349]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  242.063352]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063354]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  242.063356]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063358] 4 locks held by kworker/0:2/78:
[  242.063359]  #0:  (kacpi_notify){++++.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063363]  #1:  ((&dpc->work)#2){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063368]  #2:  ((acpi_bus_notify_list).rwsem){.+.+.+}, at: [<ffffffff810698dd>] __blocking_notifier_call_chain+0x3d/0x80
[  242.063372]  #3:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  362.212136] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[  362.212140] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  362.212142] kworker/0:0     D ffff8802540adf40     0     4      2 0x00000000
[  362.212150] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[  362.212160]  ffff8802540d3828 0000000000000046 ffff8802540ae6d8 4ba25e032c97a1cb
[  362.212164]  ffff8802540d3738 ffff8802540d3fd8 ffff8802540d3fd8 0000000000004000
[  362.212168]  ffffffff81c11440 ffff8802540adf40 ffff8802540d3758 ffffffff8109cadb
[  362.212173] Call Trace:
[  362.212180]  [<ffffffff8109cadb>] ? add_lock_to_list.isra.20.constprop.37+0x7b/0xc0
[  362.212183]  [<ffffffff8109fcc5>] ? __lock_acquire+0x1265/0x1ee0
[  362.212188]  [<ffffffff8101020a>] ? save_stack_trace+0x2a/0x50
[  362.212192]  [<ffffffff8165f764>] schedule+0x24/0x70
[  362.212197]  [<ffffffff8165cab5>] schedule_timeout+0x205/0x260
[  362.212200]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  362.212206]  [<ffffffff81059deb>] ? flush_workqueue_prep_pwqs+0x6b/0x1b0
[  362.212209]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  362.212213]  [<ffffffff810a1a35>] ? trace_hardirqs_on_caller+0x105/0x1d0
[  362.212217]  [<ffffffff8165ea74>] wait_for_common+0x114/0x170
[  362.212221]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  362.212225]  [<ffffffff810742a0>] ? try_to_wake_up+0x310/0x310
[  362.212229]  [<ffffffff8165eae8>] wait_for_completion+0x18/0x20
[  362.212233]  [<ffffffff8105abca>] flush_workqueue+0x1ca/0x6c0
[  362.212237]  [<ffffffff8105aa00>] ? wq_cpumask_show+0x80/0x80
[  362.212241]  [<ffffffff814380a5>] ? dev_vprintk_emit+0x55/0x70
[  362.212246]  [<ffffffff813a0260>] ? handle_hotplug_event_func+0x80/0x80
[  362.212250]  [<ffffffff813bfd67>] acpi_os_wait_events_complete+0x1c/0x1e
[  362.212254]  [<ffffffff813d31e2>] acpi_remove_notify_handler+0x40/0x178
[  362.212257]  [<ffffffff813a0ef8>] acpiphp_remove_slots+0x88/0x200
[  362.212261]  [<ffffffff813a5c15>] acpi_pci_remove_bus+0x15/0x20
[  362.212266]  [<ffffffff815335d9>] pcibios_remove_bus+0x9/0x10
[  362.212272]  [<ffffffff81380881>] pci_remove_bus+0x41/0x60
[  362.212275]  [<ffffffff813808eb>] pci_remove_bus_device+0x4b/0xe0
[  362.212279]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  362.212282]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  362.212286]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  362.212290]  [<ffffffff81380999>] pci_stop_and_remove_bus_device+0x19/0x20
[  362.212293]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[  362.212297]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[  362.212301]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  362.212305]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  362.212308]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  362.212311]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  362.212315]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  362.212319]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  362.212323]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  362.212327]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  362.212331]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  362.212334] 4 locks held by kworker/0:0/4:
[  362.212335]  #0:  (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  362.212342]  #1:  ((&hp_work->work)){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  362.212349]  #2:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  362.212357]  #3:  (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a11d0>] acpiphp_disable_slot+0x20/0x140
[  362.212368] INFO: task kworker/0:2:78 blocked for more than 120 seconds.
[  362.212370] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  362.212371] kworker/0:2     D ffff88025422bf80     0    78      2 0x00000000
[  362.212376] Workqueue: kacpi_notify acpi_os_execute_deferred
[  362.212378]  ffff880250b37b58 0000000000000046 ffff8802000000cb 0000000000000000
[  362.212382]  0000000a450e9017 ffff880250b37fd8 ffff880250b37fd8 0000000000004000
[  362.212386]  ffff8802540adf40 ffff88025422bf80 0000000000000000 0000000000000000
[  362.212391] Call Trace:
[  362.212395]  [<ffffffff81086f60>] ? cpuacct_css_alloc+0xa0/0xa0
[  362.212399]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  362.212403]  [<ffffffff8165deed>] ? mutex_lock_nested+0x22d/0x3e0
[  362.212406]  [<ffffffff8165f764>] schedule+0x24/0x70
[  362.212409]  [<ffffffff8165fa83>] schedule_preempt_disabled+0x13/0x20
[  362.212412]  [<ffffffff8165de37>] mutex_lock_nested+0x177/0x3e0
[  362.212416]  [<ffffffff813c3ac6>] ? acpi_scan_lock_acquire+0x12/0x14
[  362.212420]  [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  362.212424]  [<ffffffff813c7849>] acpi_dock_notifier_call+0x22/0xa3
[  362.212427]  [<ffffffff81664add>] notifier_call_chain+0x4d/0x70
[  362.212432]  [<ffffffff810698f3>] __blocking_notifier_call_chain+0x53/0x80
[  362.212435]  [<ffffffff81069931>] blocking_notifier_call_chain+0x11/0x20
[  362.212439]  [<ffffffff813c3041>] acpi_bus_notify+0x29/0x7c
[  362.212443]  [<ffffffff813d1fd4>] acpi_ev_notify_dispatch+0x24/0x57
[  362.212446]  [<ffffffff813bfd89>] acpi_os_execute_deferred+0x20/0x2d
[  362.212450]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  362.212454]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  362.212457]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  362.212460]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  362.212463]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  362.212467]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  362.212470]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  362.212474]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  362.212478]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  362.212481]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  362.212484] 4 locks held by kworker/0:2/78:
[  362.212485]  #0:  (kacpi_notify){++++.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  362.212492]  #1:  ((&dpc->work)#2){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  362.212499]  #2:  ((acpi_bus_notify_list).rwsem){.+.+.+}, at: [<ffffffff810698dd>] __blocking_notifier_call_chain+0x3d/0x80
[  362.212505]  #3:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  482.361079] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[  482.361084] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  482.361087] kworker/0:0     D ffff8802540adf40     0     4      2 0x00000000
[  482.361100] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[  482.361103]  ffff8802540d3828 0000000000000046 ffff8802540ae6d8 4ba25e032c97a1cb
[  482.361109]  ffff8802540d3738 ffff8802540d3fd8 ffff8802540d3fd8 0000000000004000
[  482.361114]  ffffffff81c11440 ffff8802540adf40 ffff8802540d3758 ffffffff8109cadb
[  482.361120] Call Trace:
[  482.361128]  [<ffffffff8109cadb>] ? add_lock_to_list.isra.20.constprop.37+0x7b/0xc0
[  482.361133]  [<ffffffff8109fcc5>] ? __lock_acquire+0x1265/0x1ee0
[  482.361138]  [<ffffffff8101020a>] ? save_stack_trace+0x2a/0x50
[  482.361143]  [<ffffffff8165f764>] schedule+0x24/0x70
[  482.361149]  [<ffffffff8165cab5>] schedule_timeout+0x205/0x260
[  482.361153]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  482.361160]  [<ffffffff81059deb>] ? flush_workqueue_prep_pwqs+0x6b/0x1b0
[  482.361165]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  482.361169]  [<ffffffff810a1a35>] ? trace_hardirqs_on_caller+0x105/0x1d0
[  482.361174]  [<ffffffff8165ea74>] wait_for_common+0x114/0x170
[  482.361179]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  482.361184]  [<ffffffff810742a0>] ? try_to_wake_up+0x310/0x310
[  482.361189]  [<ffffffff8165eae8>] wait_for_completion+0x18/0x20
[  482.361194]  [<ffffffff8105abca>] flush_workqueue+0x1ca/0x6c0
[  482.361199]  [<ffffffff8105aa00>] ? wq_cpumask_show+0x80/0x80
[  482.361205]  [<ffffffff814380a5>] ? dev_vprintk_emit+0x55/0x70
[  482.361210]  [<ffffffff813a0260>] ? handle_hotplug_event_func+0x80/0x80
[  482.361215]  [<ffffffff813bfd67>] acpi_os_wait_events_complete+0x1c/0x1e
[  482.361220]  [<ffffffff813d31e2>] acpi_remove_notify_handler+0x40/0x178
[  482.361224]  [<ffffffff813a0ef8>] acpiphp_remove_slots+0x88/0x200
[  482.361230]  [<ffffffff813a5c15>] acpi_pci_remove_bus+0x15/0x20
[  482.361235]  [<ffffffff815335d9>] pcibios_remove_bus+0x9/0x10
[  482.361241]  [<ffffffff81380881>] pci_remove_bus+0x41/0x60
[  482.361246]  [<ffffffff813808eb>] pci_remove_bus_device+0x4b/0xe0
[  482.361250]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  482.361254]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  482.361259]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  482.361263]  [<ffffffff81380999>] pci_stop_and_remove_bus_device+0x19/0x20
[  482.361268]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[  482.361272]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[  482.361278]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  482.361282]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  482.361286]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  482.361290]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  482.361296]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  482.361300]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  482.361305]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  482.361312]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  482.361317]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  482.361320] 4 locks held by kworker/0:0/4:
[  482.361322]  #0:  (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  482.361332]  #1:  ((&hp_work->work)){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  482.361340]  #2:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  482.361350]  #3:  (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a11d0>] acpiphp_disable_slot+0x20/0x140
[  482.361363] INFO: task kworker/0:2:78 blocked for more than 120 seconds.
[  482.361365] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  482.361367] kworker/0:2     D ffff88025422bf80     0    78      2 0x00000000
[  482.361374] Workqueue: kacpi_notify acpi_os_execute_deferred
[  482.361377]  ffff880250b37b58 0000000000000046 ffff8802000000cb 0000000000000000
[  482.361382]  0000000a450e9017 ffff880250b37fd8 ffff880250b37fd8 0000000000004000
[  482.361387]  ffff8802540adf40 ffff88025422bf80 0000000000000000 0000000000000000
[  482.361392] Call Trace:
[  482.361398]  [<ffffffff81086f60>] ? cpuacct_css_alloc+0xa0/0xa0
[  482.361402]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  482.361408]  [<ffffffff8165deed>] ? mutex_lock_nested+0x22d/0x3e0
[  482.361411]  [<ffffffff8165f764>] schedule+0x24/0x70
[  482.361415]  [<ffffffff8165fa83>] schedule_preempt_disabled+0x13/0x20
[  482.361420]  [<ffffffff8165de37>] mutex_lock_nested+0x177/0x3e0
[  482.361425]  [<ffffffff813c3ac6>] ? acpi_scan_lock_acquire+0x12/0x14
[  482.361430]  [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  482.361435]  [<ffffffff813c7849>] acpi_dock_notifier_call+0x22/0xa3
[  482.361441]  [<ffffffff81664add>] notifier_call_chain+0x4d/0x70
[  482.361446]  [<ffffffff810698f3>] __blocking_notifier_call_chain+0x53/0x80
[  482.361465]  [<ffffffff81069931>] blocking_notifier_call_chain+0x11/0x20
[  482.361470]  [<ffffffff813c3041>] acpi_bus_notify+0x29/0x7c
[  482.361476]  [<ffffffff813d1fd4>] acpi_ev_notify_dispatch+0x24/0x57
[  482.361480]  [<ffffffff813bfd89>] acpi_os_execute_deferred+0x20/0x2d
[  482.361484]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  482.361489]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  482.361493]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  482.361497]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  482.361501]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  482.361505]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  482.361509]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  482.361514]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  482.361519]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  482.361523]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  482.361526] 4 locks held by kworker/0:2/78:
[  482.361528]  #0:  (kacpi_notify){++++.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  482.361536]  #1:  ((&dpc->work)#2){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  482.361545]  #2:  ((acpi_bus_notify_list).rwsem){.+.+.+}, at: [<ffffffff810698dd>] __blocking_notifier_call_chain+0x3d/0x80
[  482.361553]  #3:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  504.193051] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[  504.193289] pci 0000:0a:00.0: supports D1 D2
[  504.193292] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  504.193359] ------------[ cut here ]------------
[  504.193367] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.193370] kobject_add_internal failed for 0000:0a:00.0 (error: -2 parent: 0000:08:00.0)
[  504.193372] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.193463]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.193473] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.193475] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.193477]  ffffffff81a2918a ffff8802540d79c8 ffffffff8165af98 ffff8802540d7a08
[  504.193483]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff880252e340a8
[  504.193488]  ffff8802504ee0a8 00000000ffffffea 000000000000000a ffff8802540d7a68
[  504.193494] Call Trace:
[  504.193501]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.193506]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.193511]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.193516]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.193521]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  504.193526]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.193530]  [<ffffffff8163e7ec>] ? klist_init+0x3c/0x60
[  504.193536]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.193542]  [<ffffffff8137f4f0>] pci_device_add+0x110/0x150
[  504.193546]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.193551]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.193556]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.193560]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.193564]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.193569]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.193572]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.193577]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.193581]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.193585]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.193589]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.193593]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.193598]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.193602]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.193607]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.193611]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.193617]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.193620] ---[ end trace 46b4e977738a3df7 ]---
[  504.193622] ------------[ cut here ]------------
[  504.193626] WARNING: at drivers/pci/probe.c:1350 pci_device_add+0x14b/0x150()
[  504.193628] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.193706]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.193713] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.193715] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.193717]  ffffffff81a2a2b8 ffff8802540d7b68 ffffffff8165af98 ffff8802540d7ba8
[  504.193722]  ffffffff8103c8cb ffff880252e34098 ffff880252e34000 ffff880252e34098
[  504.193727]  ffff8802528bc000 ffff880252e34000 000000000000000a ffff8802540d7bb8
[  504.193733] Call Trace:
[  504.193737]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.193741]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.193745]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.193749]  [<ffffffff8137f52b>] pci_device_add+0x14b/0x150
[  504.193753]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.193758]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.193762]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.193766]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.193770]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.193775]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.193779]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.193783]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.193787]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.193792]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.193796]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.193800]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.193804]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.193808]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.193811]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.193815]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.193820]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.193823] ---[ end trace 46b4e977738a3df8 ]---
[  504.193904] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[  504.194104] pci 0000:0a:03.0: supports D1 D2
[  504.194110] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[  504.194155] ------------[ cut here ]------------
[  504.194160] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.194165] kobject_add_internal failed for 0000:0a:03.0 (error: -2 parent: 0000:08:00.0)
[  504.194169] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.194262]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.194269] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.194271] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.194273]  ffffffff81a2918a ffff8802540d79c8 ffffffff8165af98 ffff8802540d7a08
[  504.194278]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff880252e300a8
[  504.194284]  ffff8802504ee0a8 00000000ffffffea 000000000000000a ffff8802540d7a68
[  504.194289] Call Trace:
[  504.194293]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.194297]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.194301]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.194306]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.194310]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  504.194315]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.194318]  [<ffffffff8163e7ec>] ? klist_init+0x3c/0x60
[  504.194323]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.194328]  [<ffffffff8137f4f0>] pci_device_add+0x110/0x150
[  504.194332]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.194336]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.194340]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.194344]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.194348]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.194353]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.194357]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.194361]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.194365]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.194369]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.194373]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.194377]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.194381]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.194385]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.194389]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.194392]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.194397]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.194400] ---[ end trace 46b4e977738a3df9 ]---
[  504.194402] ------------[ cut here ]------------
[  504.194406] WARNING: at drivers/pci/probe.c:1350 pci_device_add+0x14b/0x150()
[  504.194407] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.194485]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.194492] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.194494] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.194496]  ffffffff81a2a2b8 ffff8802540d7b68 ffffffff8165af98 ffff8802540d7ba8
[  504.194501]  ffffffff8103c8cb ffff880252e30098 ffff880252e30000 ffff880252e30098
[  504.194506]  ffff8802528bc000 ffff880252e30000 000000000000000a ffff8802540d7bb8
[  504.194511] Call Trace:
[  504.194516]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.194520]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.194529]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.194537]  [<ffffffff8137f52b>] pci_device_add+0x14b/0x150
[  504.194546]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.194555]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.194563]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.194570]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.194577]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.194588]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.194595]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.194603]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.194610]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.194619]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.194627]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.194634]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.194642]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.194649]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.194658]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.194668]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.194676]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.194682] ---[ end trace 46b4e977738a3dfa ]---
[  504.195219] ------------[ cut here ]------------
[  504.195223] WARNING: at fs/sysfs/dir.c:530 sysfs_add_one+0xb3/0xd0()
[  504.195226] sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:1c.6/0000:08:00.0/0000:0a:04.0/0000:14:00.0/0000:15:03.0/pci_bus/0000:16'
[  504.195227] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.195314]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.195321] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.195323] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.195325]  ffffffff81a1262c ffff8802540d76e8 ffffffff8165af98 ffff8802540d7728
[  504.195330]  ffffffff8103c8cb ffff880240ca83f0 00000000ffffffef ffff880252e31000
[  504.195336]  ffff880240ca83f0 ffff8802540d77d8 ffff8802540d7830 ffff8802540d7788
[  504.195341] Call Trace:
[  504.195346]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.195350]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.195354]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.195358]  [<ffffffff8135f3f0>] ? strlcat+0x60/0x80
[  504.195362]  [<ffffffff811e50f3>] sysfs_add_one+0xb3/0xd0
[  504.195366]  [<ffffffff811e526a>] create_dir+0x7a/0xd0
[  504.195370]  [<ffffffff811e55d4>] sysfs_create_dir+0x84/0xe0
[  504.195375]  [<ffffffff8135a326>] kobject_add_internal+0x96/0x210
[  504.195380]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  504.195385]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.195389]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.195394]  [<ffffffff81448a86>] ? pm_runtime_init+0x106/0x110
[  504.195398]  [<ffffffff81439dc9>] device_register+0x19/0x20
[  504.195403]  [<ffffffff816435c8>] pci_add_new_bus+0x1b8/0x390
[  504.195407]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.195411]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195415]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195419]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195424]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195428]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195432]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195436]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195440]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195444]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195448]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195453]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195457]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195461]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195465]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195469]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195474]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195478]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.195482]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.195486]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.195489]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.195493]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.195497]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.195502]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.195505] ---[ end trace 46b4e977738a3dfb ]---
[  504.195509] ------------[ cut here ]------------
[  504.195513] WARNING: at lib/kobject.c:196 kobject_add_internal+0x1f5/0x210()
[  504.195516] kobject_add_internal failed for 0000:16 with -EEXIST, don't try to register things with the same name in the same directory.
[  504.195517] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.195592]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.195599] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.195601] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.195603]  ffffffff81a2918a ffff8802540d77b8 ffffffff8165af98 ffff8802540d77f8
[  504.195608]  ffffffff8103c8cb 0000000000000000 00000000ffffffef ffff880253cab120
[  504.195613]  ffff8802536ab480 00000000ffffffea 0000000000000000 ffff8802540d7858
[  504.195618] Call Trace:
[  504.195622]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.195626]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.195630]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.195635]  [<ffffffff8135a485>] kobject_add_internal+0x1f5/0x210
[  504.195640]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  504.195644]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.195649]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.195653]  [<ffffffff81448a86>] ? pm_runtime_init+0x106/0x110
[  504.195657]  [<ffffffff81439dc9>] device_register+0x19/0x20
[  504.195661]  [<ffffffff816435c8>] pci_add_new_bus+0x1b8/0x390
[  504.195665]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.195669]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195673]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195677]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195681]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195686]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195689]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195693]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195697]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195702]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195705]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195709]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195714]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195718]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195722]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195726]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195730]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195734]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.195738]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.195742]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.195746]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.195750]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.195753]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.195758]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.195761] ---[ end trace 46b4e977738a3dfc ]---
[  504.195763] ------------[ cut here ]------------
[  504.195766] WARNING: at drivers/pci/probe.c:674 pci_add_new_bus+0x38b/0x390()
[  504.195768] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.195844]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.195851] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.195853] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.195855]  ffffffff81a2a2b8 ffff8802540d7978 ffffffff8165af98 ffff8802540d79b8
[  504.195860]  ffffffff8103c8cb ffff880240c50000 ffff880253cab000 ffff880240c50000
[  504.195865]  ffff880253701000 ffff880253701000 0000000000000000 ffff8802540d79c8
[  504.195870] Call Trace:
[  504.195874]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.195878]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.195882]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.195886]  [<ffffffff8164379b>] pci_add_new_bus+0x38b/0x390
[  504.195891]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.195894]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195899]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195903]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195907]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195912]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195915]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195920]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195923]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195928]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195931]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195936]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195940]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195944]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.195948]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.195952]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.195956]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.195960]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.195964]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.195968]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.195972]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.195975]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.195979]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.195984]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.195986] ---[ end trace 46b4e977738a3dfd ]---
[  504.196064] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[  504.196138] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[  504.196196] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[  504.196240] pci 0000:16:00.0: reg 20: [io  0x0000-0x00ff]
[  504.196310] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[  504.196489] pci 0000:16:00.0: supports D1 D2
[  504.196543] ------------[ cut here ]------------
[  504.196550] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.196554] kobject_add_internal failed for 0000:16:00.0 (error: -2 parent: 0000:15:03.0)
[  504.196558] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.196692]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.196698] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.196700] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.196701]  ffffffff81a2918a ffff8802540d7758 ffffffff8165af98 ffff8802540d7798
[  504.196706]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff880252e310a8
[  504.196710]  ffff8802537010a8 00000000ffffffea 0000000000000016 ffff8802540d77f8
[  504.196715] Call Trace:
[  504.196719]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.196722]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.196726]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.196730]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.196734]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  504.196738]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.196741]  [<ffffffff8163e7ec>] ? klist_init+0x3c/0x60
[  504.196745]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.196749]  [<ffffffff8137f4f0>] pci_device_add+0x110/0x150
[  504.196753]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.196757]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.196761]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.196764]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.196768]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.196772]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.196775]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.196779]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.196783]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.196786]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.196790]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.196794]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.196797]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.196801]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.196805]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.196809]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.196812]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.196816]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.196819]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.196823]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.196826]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.196830]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.196834]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.196837]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.196840]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.196844]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.196852]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.196856] ---[ end trace 46b4e977738a3dfe ]---
[  504.196863] ------------[ cut here ]------------
[  504.196867] WARNING: at drivers/pci/probe.c:1350 pci_device_add+0x14b/0x150()
[  504.196870] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.196993]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.196999] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.197000] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.197002]  ffffffff81a2a2b8 ffff8802540d78f8 ffffffff8165af98 ffff8802540d7938
[  504.197019]  ffffffff8103c8cb ffff880252e31098 ffff880252e31000 ffff880252e31098
[  504.197027]  ffff880253cab000 ffff880252e31000 0000000000000016 ffff8802540d7948
[  504.197034] Call Trace:
[  504.197039]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.197044]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.197050]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.197056]  [<ffffffff8137f52b>] pci_device_add+0x14b/0x150
[  504.197069]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.197074]  [<ffffffff8137f579>] pci_scan_slot+0x49/0x130
[  504.197079]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.197084]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197088]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.197093]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197098]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197103]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197108]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197112]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197117]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197122]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.197127]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197131]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197140]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197148]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197155]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197164]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197172]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.197180]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197185]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.197201]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.197210]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.197216]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.197224]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.197230]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.197238]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.197240] ---[ end trace 46b4e977738a3dff ]---
[  504.197302] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[  504.197371] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[  504.197725] pci 0000:16:00.1: supports D1 D2
[  504.197776] ------------[ cut here ]------------
[  504.197781] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.197783] kobject_add_internal failed for 0000:16:00.1 (error: -2 parent: 0000:15:03.0)
[  504.197785] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.197861]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.197868] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.197870] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.197872]  ffffffff81a2918a ffff8802540d7758 ffffffff8165af98 ffff8802540d7798
[  504.197877]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff880252e350a8
[  504.197882]  ffff8802537010a8 00000000ffffffea 0000000000000016 ffff8802540d77f8
[  504.197887] Call Trace:
[  504.197892]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.197896]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.197900]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.197905]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.197908]  [<ffffffff810a1b0d>] ? trace_hardirqs_on+0xd/0x10
[  504.197913]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.197917]  [<ffffffff8163e7ec>] ? klist_init+0x3c/0x60
[  504.197921]  [<ffffffff8143980f>] device_add+0xdf/0x680
[  504.197926]  [<ffffffff8137f4f0>] pci_device_add+0x110/0x150
[  504.197930]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.197934]  [<ffffffff8137f5a4>] pci_scan_slot+0x74/0x130
[  504.197938]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.197943]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197946]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.197951]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197955]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197959]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197963]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197967]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197971]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197975]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.197979]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197983]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.197987]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.197992]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.197995]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.198000]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198003]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.198021]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198025]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.198029]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.198034]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.198037]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.198045]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.198053]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.198062]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.198066] ---[ end trace 46b4e977738a3e00 ]---
[  504.198070] ------------[ cut here ]------------
[  504.198075] WARNING: at drivers/pci/probe.c:1350 pci_device_add+0x14b/0x150()
[  504.198078] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.198195]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.198201] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.198202] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.198204]  ffffffff81a2a2b8 ffff8802540d78f8 ffffffff8165af98 ffff8802540d7938
[  504.198208]  ffffffff8103c8cb ffff880252e35098 ffff880252e35000 ffff880252e35098
[  504.198213]  ffff880253cab000 ffff880252e35000 0000000000000016 ffff8802540d7948
[  504.198218] Call Trace:
[  504.198221]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.198225]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.198228]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.198232]  [<ffffffff8137f52b>] pci_device_add+0x14b/0x150
[  504.198236]  [<ffffffff816433f7>] pci_scan_single_device+0xa7/0xc0
[  504.198240]  [<ffffffff8137f5a4>] pci_scan_slot+0x74/0x130
[  504.198243]  [<ffffffff813802dd>] pci_scan_child_bus+0x2d/0xc0
[  504.198247]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198251]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.198255]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198258]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.198262]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198266]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198269]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.198273]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198276]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.198280]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198284]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.198288]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198292]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198295]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.198299]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.198302]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.198306]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.198310]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.198313]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.198317]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.198320]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.198324]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.198330]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.198338]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.198344] ---[ end trace 46b4e977738a3e01 ]---
[  504.198460] pci 0000:15:03.0: PCI bridge to [bus 16]
[  504.198478] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[  504.198488] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[  504.198507] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[  504.199439] ------------[ cut here ]------------
[  504.199445] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.199447] kobject_add_internal failed for pci_bus (error: -2 parent: 0000:0a:00.0)
[  504.199450] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.199533]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.199541] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.199543] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.199545]  ffffffff81a2918a ffff8802540d7928 ffffffff8165af98 ffff8802540d7968
[  504.199550]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff88022746c9c0
[  504.199555]  ffff880252e340a8 00000000ffffffea 0000000000000000 ffff8802540d79c8
[  504.199561] Call Trace:
[  504.199566]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.199570]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.199574]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.199579]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.199584]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.199588]  [<ffffffff814393e4>] ? get_device_parent+0x114/0x1c0
[  504.199592]  [<ffffffff81439426>] get_device_parent+0x156/0x1c0
[  504.199597]  [<ffffffff814397df>] device_add+0xaf/0x680
[  504.199601]  [<ffffffff81448a86>] ? pm_runtime_init+0x106/0x110
[  504.199605]  [<ffffffff81439dc9>] device_register+0x19/0x20
[  504.199609]  [<ffffffff816435c8>] pci_add_new_bus+0x1b8/0x390
[  504.199614]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.199618]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.199622]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.199626]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.199630]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.199635]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.199639]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.199643]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.199647]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.199651]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.199655]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.199659]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.199664]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.199667]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.199671]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.199675]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.199680]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.199683] ---[ end trace 46b4e977738a3e02 ]---
[  504.200027] ------------[ cut here ]------------
[  504.200035] WARNING: at drivers/pci/probe.c:674 pci_add_new_bus+0x38b/0x390()
[  504.200039] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.200175]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.200182] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.200183] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.200185]  ffffffff81a2a2b8 ffff8802540d7b18 ffffffff8165af98 ffff8802540d7b58
[  504.200190]  ffffffff8103c8cb ffff8802528bc000 ffff880253caa000 ffff8802528bc000
[  504.200194]  ffff880252e34000 ffff880252e34000 0000000000000000 ffff8802540d7b68
[  504.200199] Call Trace:
[  504.200203]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.200207]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.200211]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.200214]  [<ffffffff8164379b>] pci_add_new_bus+0x38b/0x390
[  504.200218]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.200222]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200226]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200229]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200233]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200237]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200241]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200245]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200248]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200252]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200256]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.200260]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.200263]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.200267]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.200270]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.200273]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.200278]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.200280] ---[ end trace 46b4e977738a3e03 ]---
[  504.200289] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[  504.200309] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[  504.200426] ------------[ cut here ]------------
[  504.200430] WARNING: at lib/kobject.c:200 kobject_add_internal+0x162/0x210()
[  504.200432] kobject_add_internal failed for pci_bus (error: -2 parent: 0000:0a:03.0)
[  504.200434] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.200509]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.200515] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.200517] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.200519]  ffffffff81a2918a ffff8802540d7928 ffffffff8165af98 ffff8802540d7968
[  504.200524]  ffffffff8103c8cb 0000000000000000 00000000fffffffe ffff88022746c9c0
[  504.200528]  ffff880252e300a8 00000000ffffffea 0000000000000000 ffff8802540d79c8
[  504.200533] Call Trace:
[  504.200537]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.200541]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.200544]  [<ffffffff8103c9a1>] warn_slowpath_fmt+0x41/0x50
[  504.200549]  [<ffffffff8135a3f2>] kobject_add_internal+0x162/0x210
[  504.200553]  [<ffffffff8135a747>] kobject_add+0x67/0xc0
[  504.200557]  [<ffffffff814393e4>] ? get_device_parent+0x114/0x1c0
[  504.200561]  [<ffffffff81439426>] get_device_parent+0x156/0x1c0
[  504.200565]  [<ffffffff814397df>] device_add+0xaf/0x680
[  504.200569]  [<ffffffff81448a86>] ? pm_runtime_init+0x106/0x110
[  504.200572]  [<ffffffff81439dc9>] device_register+0x19/0x20
[  504.200576]  [<ffffffff816435c8>] pci_add_new_bus+0x1b8/0x390
[  504.200580]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.200584]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200588]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200591]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200595]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200599]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200603]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200607]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200610]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200614]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200618]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.200622]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.200626]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.200629]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.200632]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.200636]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.200640]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.200642] ---[ end trace 46b4e977738a3e04 ]---
[  504.200676] ------------[ cut here ]------------
[  504.200679] WARNING: at drivers/pci/probe.c:674 pci_add_new_bus+0x38b/0x390()
[  504.200680] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.200749]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.200755] CPU: 2 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.200757] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.200759]  ffffffff81a2a2b8 ffff8802540d7b18 ffffffff8165af98 ffff8802540d7b58
[  504.200763]  ffffffff8103c8cb ffff8802528bc000 ffff880253caa800 ffff8802528bc000
[  504.200768]  ffff880252e30000 ffff880252e30000 0000000000000000 ffff8802540d7b68
[  504.200773] Call Trace:
[  504.200777]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[  504.200780]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[  504.200784]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[  504.200788]  [<ffffffff8164379b>] pci_add_new_bus+0x38b/0x390
[  504.200792]  [<ffffffff81380275>] pci_scan_bridge+0x5e5/0x620
[  504.200795]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200799]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200803]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200806]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200810]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200814]  [<ffffffff81386c97>] ? pci_find_bus+0x47/0x70
[  504.200818]  [<ffffffff8137ffcb>] pci_scan_bridge+0x33b/0x620
[  504.200821]  [<ffffffff816433b4>] ? pci_scan_single_device+0x64/0xc0
[  504.200825]  [<ffffffff81380334>] pci_scan_child_bus+0x84/0xc0
[  504.200829]  [<ffffffff816437b8>] pci_rescan_bus+0x18/0x40
[  504.200833]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.200836]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.200840]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.200843]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.200846]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.200851]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.200853] ---[ end trace 46b4e977738a3e05 ]---
[  504.200860] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[  504.201132] pci 0000:18:00.0: bridge window [mem 0x00100000-0x000fffff] to [bus 19] add_size 400000
[  504.201169] pci 0000:18:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1a] add_size 200000
[  504.201205] pci 0000:18:02.0: bridge window [io  0x1000-0x0fff] to [bus 1b] add_size 1000
[  504.201209] pci 0000:18:02.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1b] add_size 200000
[  504.201243] pci 0000:18:03.0: bridge window [io  0x1000-0x0fff] to [bus 1c] add_size 1000
[  504.201246] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1c] add_size 200000
[  504.201249] pci 0000:18:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1c] add_size 200000
[  504.201282] pci 0000:18:04.0: bridge window [io  0x1000-0x0fff] to [bus 1d] add_size 1000
[  504.201285] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 1d] add_size 200000
[  504.201288] pci 0000:18:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 1d] add_size 200000
[  504.201400] pci 0000:0a:00.0: bridge window [io  0x1000-0x0fff] to [bus 0b] add_size 1000
[  504.201404] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000
[  504.201411] pci 0000:0a:00.0: bridge window [mem 0x00100000-0x001fffff] to [bus 0b] add_size 200000
[  504.201430] pci 0000:0a:03.0: bridge window [io  0x1000-0x0fff] to [bus 0c] add_size 1000
[  504.201433] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0c] add_size 200000
[  504.201436] pci 0000:0a:03.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0c] add_size 200000
[  504.201469] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
[  504.201479] pci 0000:0a:00.0: res[14]=[mem 0x00100000-0x001fffff] get_res_add_size add_size 200000
[  504.201482] pci 0000:0a:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201485] pci 0000:0a:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  504.201488] pci 0000:0a:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201492] pci 0000:0a:00.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  504.201496] pci 0000:0a:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  504.201503] pci 0000:0a:00.0: BAR 14: can't assign mem (size 0x300000)
[  504.201510] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201514] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[  504.201519] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201523] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[  504.201526] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[  504.201533] pci 0000:0a:00.0: BAR 14: assigned [mem 0xc0300000-0xc03fffff]
[  504.201536] pci 0000:0a:03.0: BAR 14: can't assign mem (size 0x200000)
[  504.201540] pci 0000:0a:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201543] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[  504.201547] pci 0000:0a:00.0: BAR 14: can't assign mem (size 0x100000)
[  504.201550] pci 0000:0a:00.0: failed to add 200000 res[14]=[mem 0xc0300000-0xc03fffff]
[  504.201556] pci 0000:0a:00.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201561] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[  504.201570] pci 0000:16:00.0: BAR 0: assigned [mem 0xb0000000-0xbfffffff 64bit pref]
[  504.201608] pci 0000:16:00.0: BAR 2: assigned [mem 0xc0200000-0xc021ffff 64bit]
[  504.201645] pci 0000:16:00.0: BAR 6: assigned [mem 0xc0220000-0xc023ffff pref]
[  504.201648] pci 0000:16:00.1: BAR 0: assigned [mem 0xc0240000-0xc0243fff 64bit]
[  504.201684] pci 0000:16:00.0: BAR 4: assigned [io  0x5000-0x50ff]
[  504.201700] pci 0000:15:03.0: PCI bridge to [bus 16]
[  504.201706] pci 0000:15:03.0:   bridge window [io  0x5000-0x5fff]
[  504.201720] pci 0000:15:03.0:   bridge window [mem 0xc0200000-0xc02fffff]
[  504.201730] pci 0000:15:03.0:   bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[  504.201754] pci 0000:18:00.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 400000
[  504.201757] pci 0000:18:01.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201760] pci 0000:18:02.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201762] pci 0000:18:03.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  504.201765] pci 0000:18:03.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201768] pci 0000:18:04.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000
[  504.201771] pci 0000:18:04.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[  504.201774] pci 0000:18:02.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  504.201776] pci 0000:18:03.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  504.201779] pci 0000:18:04.0: res[13]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[  504.201782] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x400000)
[  504.201786] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201789] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201792] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[  504.201796] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201799] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[  504.201803] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201806] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[  504.201809] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[  504.201812] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[  504.201821] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[  504.201825] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201828] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[  504.201831] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[  504.201835] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201838] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[  504.201842] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201845] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[  504.201849] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[  504.201852] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x400000)
[  504.201858] pci 0000:18:00.0: PCI bridge to [bus 19]
[  504.201865] pci 0000:18:00.0:   bridge window [io  0x4000-0x4fff]
[  504.201894] pci 0000:18:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.201917] pci 0000:18:01.0: PCI bridge to [bus 1a]
[  504.201924] pci 0000:18:01.0:   bridge window [io  0x3000-0x3fff]
[  504.201942] pci 0000:18:01.0:   bridge window [mem 0xc0100000-0xc01fffff]
[  504.201976] pci 0000:18:02.0: PCI bridge to [bus 1b]
[  504.201994] pci 0000:18:02.0:   bridge window [mem 0xc0000000-0xc00fffff]
[  504.202077] pci 0000:18:03.0: PCI bridge to [bus 1c]
[  504.202136] pci 0000:18:04.0: PCI bridge to [bus 1d]
[  504.202185] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[  504.202193] pci 0000:17:00.0:   bridge window [io  0x3000-0x4fff]
[  504.202212] pci 0000:17:00.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  504.202226] pci 0000:17:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.202249] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[  504.202259] pci 0000:15:04.0:   bridge window [io  0x3000-0x4fff]
[  504.202276] pci 0000:15:04.0:   bridge window [mem 0xc0000000-0xc01fffff]
[  504.202290] pci 0000:15:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.202310] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[  504.202317] pci 0000:14:00.0:   bridge window [io  0x3000-0x5fff]
[  504.202332] pci 0000:14:00.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  504.202341] pci 0000:14:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.202357] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[  504.202361] pci 0000:0a:04.0:   bridge window [io  0x3000-0x5fff]
[  504.202370] pci 0000:0a:04.0:   bridge window [mem 0xb0000000-0xc02fffff]
[  504.202376] pci 0000:0a:04.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.202387] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[  504.202396] pci 0000:0a:00.0:   bridge window [mem 0xc0300000-0xc03fffff]
[  504.202412] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[  504.202433] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[  504.202437] pci 0000:08:00.0:   bridge window [io  0x3000-0x5fff]
[  504.202446] pci 0000:08:00.0:   bridge window [mem 0xb0000000-0xc03fffff]
[  504.202452] pci 0000:08:00.0:   bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[  504.203296] ------------[ cut here ]------------
[  504.203320] kernel BUG at fs/sysfs/bin.c:488!
[  504.203338] invalid opcode: 0000 [#1] PREEMPT SMP 
[  504.203364] Modules linked in: hidp fuse ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd
[  504.203740]  dm_mirror dm_region_hash dm_log dm_mod [last unloaded: microcode]
[  504.203771] CPU: 3 PID: 2746 Comm: bash Tainted: G        WC   3.10.0-rc6-rafael #1
[  504.203799] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[  504.203827] task: ffff88022e4ebf80 ti: ffff8802540d6000 task.ti: ffff8802540d6000
[  504.203854] RIP: 0010:[<ffffffff811e6e23>]  [<ffffffff811e6e23>] sysfs_create_bin_file+0x23/0x30
[  504.203889] RSP: 0018:ffff8802540d7d68  EFLAGS: 00010246
[  504.203910] RAX: 0000000000003595 RBX: ffff8802504ee000 RCX: 0000000000000000
[  504.203935] RDX: 00000000ffffffff RSI: ffffffff81c61bc0 RDI: 0000000000000000
[  504.203961] RBP: ffff8802540d7d68 R08: 0000000000000000 R09: 0000000000000001
[  504.203987] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880253d19028
[  504.204013] R13: 00000000fffffff3 R14: ffff8802504ee000 R15: ffff8802504ee0a8
[  504.204039] FS:  00007fad04ef2700(0000) GS:ffff88025fac0000(0000) knlGS:0000000000000000
[  504.204068] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  504.204089] CR2: 0000000001328220 CR3: 000000022e566000 CR4: 00000000000407e0
[  504.204115] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  504.204141] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  504.204167] Stack:
[  504.204176]  ffff8802540d7db8 ffffffff81388479 0000000000000001 ffff8802543327e0
[  504.204209]  ffff8802540d7db8 ffff8802504ee000 ffff880253d19028 ffff880253d19000
[  504.204242]  ffff88022de600c0 ffffffff8186e050 ffff8802540d7dd8 ffffffff8137dac1
[  504.204275] Call Trace:
[  504.204288]  [<ffffffff81388479>] pci_create_sysfs_dev_files+0x59/0x3c0
[  504.204314]  [<ffffffff8137dac1>] pci_bus_add_device+0x21/0x60
[  504.204337]  [<ffffffff8137db39>] pci_bus_add_devices+0x39/0xa0
[  504.204360]  [<ffffffff8137db87>] pci_bus_add_devices+0x87/0xa0
[  504.204383]  [<ffffffff816437d3>] pci_rescan_bus+0x33/0x40
[  504.204405]  [<ffffffff81387748>] bus_rescan_store+0x58/0x80
[  504.204428]  [<ffffffff8143a502>] bus_attr_store+0x22/0x30
[  504.204450]  [<ffffffff811e35c1>] sysfs_write_file+0xe1/0x160
[  504.204473]  [<ffffffff81170a39>] vfs_write+0xc9/0x1f0
[  504.204493]  [<ffffffff81170f20>] SyS_write+0x50/0xa0
[  504.204514]  [<ffffffff81668616>] system_call_fastpath+0x1a/0x1f
[  504.204536] Code: 0f 1f 84 00 00 00 00 00 55 48 85 ff 48 89 e5 74 1a 48 85 f6 48 8b 7f 30 74 11 48 85 ff 74 0c ba 04 00 00 00 e8 bf d2 ff ff 5d c3 <0f> 0b 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 53 48 89 fb 
[  504.204723] RIP  [<ffffffff811e6e23>] sysfs_create_bin_file+0x23/0x30
[  504.204750]  RSP <ffff8802540d7d68>
[  504.212983] ---[ end trace 46b4e977738a3e06 ]---

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-21  4:36           ` Alexander E. Patrakov
  2013-06-21  4:37             ` Alexander E. Patrakov
@ 2013-06-21 12:47             ` Rafael J. Wysocki
  2013-06-21 13:02               ` Alexander E. Patrakov
  1 sibling, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-21 12:47 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

On Friday, June 21, 2013 10:36:05 AM Alexander E. Patrakov wrote:
> 2013/6/21 Rafael J. Wysocki <rjw@sisk.pl>:
> > On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> >> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> >> > OK, let's try to untangle this a bit.
> >> >
> >> > If you applyt patches [1/4] and [4/4] from the $subject series only, what
> >> > does remain unfixed?
> >>
> >> [not tested, can do so in 12 hours if needed]
> >>
> >> I think there will be problems on undocking and/or on the second
> >> docking, as described in comments #6 - #8 of
> >> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> >
> > OK, I think I have something that might work.  It may not solve all problems,
> > but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> > if you can.
> >
> > Please apply [1/4] and [4/4] and the one below and see what happens.
> 
> Tested on top of 3.10-rc6.
> 
> Attached dmesg output for the following testcase: boot undocked, dock,
> undock, dock.
> 
> The initial dock went OK. The subsequent undock resulted in the blue
> led on the dock cable turning off quickly, but in PCI devices slowly,
> one-by-one, disappearing from the bus. Also, there were "acpi_handle
> corrupt" messages in dmesg. The subsequent dock resulted in no devices
> added to the bus. So - your patch is not a good replacement for
> patches 2 and 3 in the original series.

Well, this particular patch maybe not, but I like the direction better.

Here's the relevant piece of your dmesg:

[   43.635516] ACPI: \_SB_.DOCK: undocking
[   44.108267] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[   44.110349] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.110497] usb usb6: USB disconnect, device number 1
[   44.112203]  port1: Oops, 'acpi_handle' corrupt
[   44.112242]  port2: Oops, 'acpi_handle' corrupt

What happens here is that USB ports are in the list of dock dependent devices,
but they don't have the ops pointer set, so dock_remove_acpi_device() will be
called for them *before* the usual USB teardown is triggered from the
acpiphp_glue code for their parent.  I *think* the solution may be to simply
skip those things from ds->dependent_list (as they depend on something already
in that list anyway).

I'll attach an updated patch with that change to the bug entry.

[   44.112332] xHCI xhci_drop_endpoint called for root hub
[   44.112334] xHCI xhci_check_bandwidth called for root hub
[   44.114313] usb usb6: Oops, 'acpi_handle' corrupt

Same thing again.

[   44.114349] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   44.114351] xhci_hcd 0000:1b:00.0: USB bus 6 deregistered
[   44.114360] xhci_hcd 0000:1b:00.0: remove, state 4
[   44.114392] usb usb5: USB disconnect, device number 1
[   44.114394] usb 5-1: USB disconnect, device number 2
[   49.120740] xhci_hcd 0000:1b:00.0: Timeout while waiting for configure endpoint command
[   49.120750] xhci_hcd 0000:1b:00.0: Stopped the command ring failed, maybe the host is dead
[   49.120757] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.120759] xhci_hcd 0000:1b:00.0: Abort command ring failed
[   49.120760] xhci_hcd 0000:1b:00.0: HC died; cleaning up
[   49.122075] xHCI xhci_drop_endpoint called for root hub
[   49.122076] xHCI xhci_check_bandwidth called for root hub
[   49.123825] usb usb5: Oops, 'acpi_handle' corrupt

Same thing again.

[   49.123906] xhci_hcd 0000:1b:00.0: Host not halted after 16000 microseconds.
[   49.124208] xhci_hcd 0000:1b:00.0: USB bus 5 deregistered
[   52.150756] ata8.00: disabled
[   52.172219] r8169 0000:19:00.0 enp25s0: rtl_counters_cond == 1 (loop: 1000, delay: 10).
[   52.182516] r8169 0000:19:00.0 enp25s0: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
[   52.188939] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.189542] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190191] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.190746] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.191299] r8169 0000:19:00.0 enp25s0: rtl_phyar_cond == 1 (loop: 20, delay: 25).
[   52.212009] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.222185] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.232357] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.242529] r8169 0000:19:00.0 (unregistered net_device): rtl_eriar_cond == 1 (loop: 100, delay: 100).
[   52.260158] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[   52.265799] [drm] radeon: finishing device.
[   52.265804] [drm] Disabling audio support
[   52.267668] radeon 0000:16:00.0: ffff880251e28400 unpin not necessary
[   52.268033] [drm:drm_mm_takedown] *ERROR* Memory manager not clean. Delaying takedown
[   52.268164] [TTM] Finalizing pool allocator
[   52.268340] [TTM] Finalizing DMA pool allocator

The thing below looks like a radeon problem?

[   52.268389] ------------[ cut here ]------------
[   52.268395] WARNING: at drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:533 ttm_dma_free_pool+0x101/0x110 [ttm]()
[   52.268396] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_ms rtsx_pci_sdmmc mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr i2c_i801 uvcvideo qcserial usb_wwan videobuf2_vmalloc videobuf2_memops videobuf2_core usbserial btusb videodev bluetooth arc4 media iwldvm mac80211 snd_hda_codec_hdmi iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_realtek i915 sony_laptop rfkill intel_agp snd_hda_intel intel_gtt snd_hda_codec i2c_algo_bit snd_hwdep drm_kms_helper snd_pcm snd_page_alloc drm snd_timer agpgart lpc_ich snd mfd_core sha256_ssse3 sha256_generic dm_crypt raid0 md_mod crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd xhci_hcd ehci_pci ehci_hcd dm_mirror
[   52.268444]  dm_region_hash dm_log dm_mod [last unloaded: microcode]
[   52.268449] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G         C   3.10.0-rc6-rafael #1
[   52.268450] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[   52.268455] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[   52.268456]  ffffffffa081f268 ffff8802540d38b8 ffffffff8165af98 ffff8802540d38f8
[   52.268460]  ffffffff8103c8cb ffff8802540d38c8 ffff880251f53700 ffff8802513e23c0
[   52.268463]  0000000000000008 ffff880253d02530 ffff880254079730 ffff8802540d3908
[   52.268466] Call Trace:
[   52.268470]  [<ffffffff8165af98>] dump_stack+0x19/0x1b
[   52.268474]  [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[   52.268476]  [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[   52.268480]  [<ffffffffa081cd01>] ttm_dma_free_pool+0x101/0x110 [ttm]
[   52.268484]  [<ffffffffa081dee5>] ttm_dma_page_alloc_fini+0x85/0xcc [ttm]
[   52.268487]  [<ffffffffa0813455>] ttm_mem_global_release+0x25/0xa0 [ttm]
[   52.268497]  [<ffffffffa08494ed>] radeon_ttm_mem_global_release+0xd/0x10 [radeon]
[   52.268507]  [<ffffffffa0176213>] drm_global_item_unref+0x63/0x90 [drm]
[   52.268514]  [<ffffffffa084a721>] radeon_ttm_fini+0xd1/0xe0 [radeon]
[   52.268522]  [<ffffffffa084b129>] radeon_bo_fini+0x9/0x10 [radeon]
[   52.268531]  [<ffffffffa0893bf1>] evergreen_fini+0x91/0xc0 [radeon]
[   52.268537]  [<ffffffffa08336ea>] radeon_device_fini+0x3a/0xf0 [radeon]
[   52.268543]  [<ffffffffa08353d1>] radeon_driver_unload_kms+0x41/0x70 [radeon]
[   52.268550]  [<ffffffffa016524e>] drm_put_dev+0x6e/0x210 [drm]
[   52.268555]  [<ffffffffa0832068>] radeon_pci_remove+0x18/0x20 [radeon]
[   52.268557]  [<ffffffff81385831>] pci_device_remove+0x41/0xc0
[   52.268561]  [<ffffffff8143bfd7>] __device_release_driver+0x77/0xe0
[   52.268563]  [<ffffffff8143c069>] device_release_driver+0x29/0x40
[   52.268566]  [<ffffffff8143ba71>] bus_remove_device+0xf1/0x140
[   52.268568]  [<ffffffff8143915d>] device_del+0x11d/0x1b0
[   52.268572]  [<ffffffff8138082c>] pci_stop_bus_device+0x9c/0xb0
[   52.268574]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268576]  [<ffffffff813a11e5>] ? acpiphp_disable_slot+0x35/0x140
[   52.268579]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268581]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268584]  [<ffffffff813807cb>] pci_stop_bus_device+0x3b/0xb0
[   52.268586]  [<ffffffff81380991>] pci_stop_and_remove_bus_device+0x11/0x20
[   52.268588]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[   52.268591]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[   52.268594]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[   52.268597]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[   52.268599]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[   52.268601]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[   52.268604]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[   52.268606]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[   52.268609]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268612]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[   52.268615]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[   52.268669] ---[ end trace 46b4e977738a3df6 ]---
[   52.269258] [TTM] Zone  kernel: Used memory at exit: 13 kiB
[   52.269266] [TTM] Zone   dma32: Used memory at exit: 9 kiB
[   52.269295] [drm] radeon: ttm finalized

But it looks like the removal actually succeeded.

[   52.273103] pci_bus 0000:0b: busn_res: [bus 0b] is released
[   52.273732] pci_bus 0000:0c: busn_res: [bus 0c] is released
[   52.273816] pci_bus 0000:16: busn_res: [bus 16] is released

Is the re-dock attempt included?  It doesn't seem to leave any trace ...

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-21 12:47             ` Rafael J. Wysocki
@ 2013-06-21 13:02               ` Alexander E. Patrakov
  0 siblings, 0 replies; 47+ messages in thread
From: Alexander E. Patrakov @ 2013-06-21 13:02 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

2013/6/21 Rafael J. Wysocki <rjw@sisk.pl>:
> The thing below looks like a radeon problem?
>
> [   52.268389] ------------[ cut here ]------------
> [   52.268395] WARNING: at drivers/gpu/drm/ttm/ttm_page_alloc_dma.c:533 ttm_dma_free_pool+0x101/0x110 [ttm]()

Yes. Let's ignore it for now, as it is a separate bug, likely a
special case of https://bugzilla.kernel.org/show_bug.cgi?id=59681

> But it looks like the removal actually succeeded.

It did.

> [   52.273103] pci_bus 0000:0b: busn_res: [bus 0b] is released
> [   52.273732] pci_bus 0000:0c: busn_res: [bus 0c] is released
> [   52.273816] pci_bus 0000:16: busn_res: [bus 16] is released
>
> Is the re-dock attempt included?  It doesn't seem to leave any trace ...

It is, and indeed it left no traces. See the followup when I attached
the result of manually rescanning the bus - you have already commented
on the deadlock there.

-- 
Alexander E. Patrakov

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-21  4:37             ` Alexander E. Patrakov
@ 2013-06-21 13:06               ` Rafael J. Wysocki
  0 siblings, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-21 13:06 UTC (permalink / raw)
  To: Alexander E. Patrakov
  Cc: Jiang Liu, alexdeucher, Bjorn Helgaas, Yinghai Lu,
	Greg Kroah-Hartman, Yijing Wang, linux-acpi, Jiang Liu,
	linux-pci, linux-kernel

On Friday, June 21, 2013 10:37:47 AM Alexander E. Patrakov wrote:
> 2013/6/21 Alexander E. Patrakov <patrakov@gmail.com>:
> > The initial dock went OK. The subsequent undock resulted in the blue
> > led on the dock cable turning off quickly, but in PCI devices slowly,
> > one-by-one, disappearing from the bus. Also, there were "acpi_handle
> > corrupt" messages in dmesg. The subsequent dock resulted in no devices
> > added to the bus. So - your patch is not a good replacement for
> > patches 2 and 3 in the original series.
> 
> In this state, echo 1 > /sys/bus/pci/rescan resulted in a kernel BUG,
> see the attached dmesg.

This one is much more interesting than the previous one.

So first of all we have a deadlock related to the
flush_workqueue(kacpi_notify_wq) in acpi_os_wait_events_complete().  I beleve
it is related to the removal of a notify handler in cleanup_bridge().

[  242.063120] INFO: task kworker/0:0:4 blocked for more than 120 seconds.
[  242.063124] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  242.063126] kworker/0:0     D ffff8802540adf40     0     4      2 0x00000000
[  242.063134] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[  242.063136]  ffff8802540d3828 0000000000000046 ffff8802540ae6d8 4ba25e032c97a1cb
[  242.063139]  ffff8802540d3738 ffff8802540d3fd8 ffff8802540d3fd8 0000000000004000
[  242.063142]  ffffffff81c11440 ffff8802540adf40 ffff8802540d3758 ffffffff8109cadb
[  242.063145] Call Trace:
[  242.063150]  [<ffffffff8109cadb>] ? add_lock_to_list.isra.20.constprop.37+0x7b/0xc0
[  242.063152]  [<ffffffff8109fcc5>] ? __lock_acquire+0x1265/0x1ee0
[  242.063156]  [<ffffffff8101020a>] ? save_stack_trace+0x2a/0x50
[  242.063159]  [<ffffffff8165f764>] schedule+0x24/0x70
[  242.063163]  [<ffffffff8165cab5>] schedule_timeout+0x205/0x260
[  242.063165]  [<ffffffff810a1841>] ? mark_held_locks+0x61/0x150
[  242.063169]  [<ffffffff81059deb>] ? flush_workqueue_prep_pwqs+0x6b/0x1b0
[  242.063171]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  242.063174]  [<ffffffff810a1a35>] ? trace_hardirqs_on_caller+0x105/0x1d0
[  242.063176]  [<ffffffff8165ea74>] wait_for_common+0x114/0x170
[  242.063179]  [<ffffffff8165e195>] ? __mutex_unlock_slowpath+0xf5/0x1a0
[  242.063182]  [<ffffffff810742a0>] ? try_to_wake_up+0x310/0x310
[  242.063185]  [<ffffffff8165eae8>] wait_for_completion+0x18/0x20
[  242.063187]  [<ffffffff8105abca>] flush_workqueue+0x1ca/0x6c0
[  242.063190]  [<ffffffff8105aa00>] ? wq_cpumask_show+0x80/0x80
[  242.063193]  [<ffffffff814380a5>] ? dev_vprintk_emit+0x55/0x70
[  242.063196]  [<ffffffff813a0260>] ? handle_hotplug_event_func+0x80/0x80
[  242.063199]  [<ffffffff813bfd67>] acpi_os_wait_events_complete+0x1c/0x1e
[  242.063202]  [<ffffffff813d31e2>] acpi_remove_notify_handler+0x40/0x178
[  242.063204]  [<ffffffff813a0ef8>] acpiphp_remove_slots+0x88/0x200
[  242.063207]  [<ffffffff813a5c15>] acpi_pci_remove_bus+0x15/0x20
[  242.063210]  [<ffffffff815335d9>] pcibios_remove_bus+0x9/0x10
[  242.063215]  [<ffffffff81380881>] pci_remove_bus+0x41/0x60
[  242.063217]  [<ffffffff813808eb>] pci_remove_bus_device+0x4b/0xe0
[  242.063219]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063222]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063224]  [<ffffffff813808db>] pci_remove_bus_device+0x3b/0xe0
[  242.063226]  [<ffffffff81380999>] pci_stop_and_remove_bus_device+0x19/0x20
[  242.063229]  [<ffffffff813a1236>] acpiphp_disable_slot+0x86/0x140
[  242.063231]  [<ffffffff813a1622>] _handle_hotplug_event_func+0x102/0x1e0
[  242.063234]  [<ffffffff8105c2c2>] process_one_work+0x1c2/0x560
[  242.063236]  [<ffffffff8105c257>] ? process_one_work+0x157/0x560
[  242.063238]  [<ffffffff8105d1d6>] worker_thread+0x116/0x370
[  242.063241]  [<ffffffff8105d0c0>] ? manage_workers.isra.20+0x2d0/0x2d0
[  242.063243]  [<ffffffff81063a36>] kthread+0xd6/0xe0
[  242.063245]  [<ffffffff816611ab>] ? _raw_spin_unlock_irq+0x2b/0x60
[  242.063248]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063251]  [<ffffffff8166856c>] ret_from_fork+0x7c/0xb0
[  242.063253]  [<ffffffff81063960>] ? __init_kthread_worker+0x70/0x70
[  242.063255] 4 locks held by kworker/0:0/4:
[  242.063256]  #0:  (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063262]  #1:  ((&hp_work->work)){+.+.+.}, at: [<ffffffff8105c257>] process_one_work+0x157/0x560
[  242.063266]  #2:  (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3ac6>] acpi_scan_lock_acquire+0x12/0x14
[  242.063272]  #3:  (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a11d0>] acpiphp_disable_slot+0x20/0x140

And that is the source of the subsequent re-dock failure (the event cannot be
processed due to the workqueue being stuck).  I don't know why this happens at
the moment, but I'm going to figure out.

And the BUG is because we pass a NULL pointer to sysfs_create_bin_file()
somewhere in pci_create_sysfs_dev_files(), but again I don't know why exactly
at the moment.

Let's communicate further in bug #59501.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-20 19:06         ` Rafael J. Wysocki
  2013-06-21  4:36           ` Alexander E. Patrakov
@ 2013-06-21 16:54           ` Jiang Liu
  2013-06-22  0:13             ` Rafael J. Wysocki
  1 sibling, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-21 16:54 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
>>> OK, let's try to untangle this a bit.
>>>
>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
>>> does remain unfixed?
>>
>> [not tested, can do so in 12 hours if needed]
>>
>> I think there will be problems on undocking and/or on the second
>> docking, as described in comments #6 - #8 of
>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> 
> OK, I think I have something that might work.  It may not solve all problems,
> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> if you can.
> 
> Please apply [1/4] and [4/4] and the one below and see what happens.
> 
> Thanks,
> Rafael
> 
> 
> ---
> Rationale:
> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
> 	after removing the companion PCI devices, so the dock station code
> 	doesn't need to trim them separately for the dependent devices handled
> 	by acpiphp.
> 
> 	Moreover, acpiphp_glue.c is the only user of
> 	[un]register_hotplug_dock_device(), so *all* devices on the
> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
> 	of them.
Hi Rafael,
    There's an ongoing patch to fix a disk bay hotplug regression, which
may add a second caller of register_hotplug_device(). Please refer to
bug 59871, and the proposed patch is at:
https://bugzilla.kernel.org/attachment.cgi?id=105581

> 
> 	This means that (1) the ds->hotplug_devices list is not necessary (we
> 	can always walk ds->dependent_devices instead and look for those that
> 	have dd->ops set) and (2) we don't need to call
> 	dock_remove_acpi_device(dd->handle) on eject for any of those devices,
> 	because dd->ops->handler() is going to take care of the ACPI device
> 	objects trimming for them anyway.
> 
> 	Taking the above into account make the following changes:
> 	(1) Drop hotplug_devices from struct dock_station.
> 	(2) Drop dock_{add|del}_hotplug_device()
> 	(3) Make [un]register_hotplug_dock_device() [un]set 'ops' and
> 	    'context' for the given device under ds->hp_lock.
> 	(4) Add hot_remove_dock_devices() that walks ds->dependent_devices and
> 	    either calls dd->ops->handler(), if present, or trims the underlying
> 	    ACPI device object, otherwise.
> 	(5) Replace hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST) calls
> 	    with hot_remove_dock_devices(ds).
> 	(6) Rename hotplug_dock_devices() to hot_add_dock_devices() and make
> 	    it only handle bus check and device check requests.  Make it walk
> 	    ds->dependent_devices instead of ds->hotplug devices.
> 	(7) Make dock_event() walk ds->dependent_devices (instead of
> 	    ds->hotplug devices) under ds->hp_lock.
> ---
>  drivers/acpi/dock.c |  111 ++++++++++++++++++++++++----------------------------
>  1 file changed, 53 insertions(+), 58 deletions(-)
> 
> Index: linux-pm/drivers/acpi/dock.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/dock.c
> +++ linux-pm/drivers/acpi/dock.c
> @@ -66,7 +66,6 @@ struct dock_station {
>  	spinlock_t dd_lock;
>  	struct mutex hp_lock;
>  	struct list_head dependent_devices;
> -	struct list_head hotplug_devices;
>  
>  	struct list_head sibling;
>  	struct platform_device *dock_device;
> @@ -121,38 +120,6 @@ add_dock_dependent_device(struct dock_st
>  }
>  
>  /**
> - * dock_add_hotplug_device - associate a hotplug handler with the dock station
> - * @ds: The dock station
> - * @dd: The dependent device struct
> - *
> - * Add the dependent device to the dock's hotplug device list
> - */
> -static void
> -dock_add_hotplug_device(struct dock_station *ds,
> -			struct dock_dependent_device *dd)
> -{
> -	mutex_lock(&ds->hp_lock);
> -	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> -	mutex_unlock(&ds->hp_lock);
> -}
> -
> -/**
> - * dock_del_hotplug_device - remove a hotplug handler from the dock station
> - * @ds: The dock station
> - * @dd: the dependent device struct
> - *
> - * Delete the dependent device from the dock's hotplug device list
> - */
> -static void
> -dock_del_hotplug_device(struct dock_station *ds,
> -			struct dock_dependent_device *dd)
> -{
> -	mutex_lock(&ds->hp_lock);
> -	list_del(&dd->hotplug_list);
> -	mutex_unlock(&ds->hp_lock);
> -}
> -
> -/**
>   * find_dock_dependent_device - get a device dependent on this dock
>   * @ds: the dock station
>   * @handle: the acpi_handle of the device we want
> @@ -342,40 +309,60 @@ static void dock_remove_acpi_device(acpi
>  }
>  
>  /**
> - * hotplug_dock_devices - insert or remove devices on the dock station
> - * @ds: the dock station
> - * @event: either bus check or eject request
> + * hot_remove_dock_devices - Remove devices on a dock station.
> + * @ds: Dock station to remove devices for.
> + *
> + * For each device depending on @ds, if a dock event handler is registered,
> + * call it for the device, or trim the underlying ACPI device object otherwise.
> + *
> + * Dock event handlers are responsible for trimming the underlying ACPI device
> + * objects if present.
> + */
> +static void hot_remove_dock_devices(struct dock_station *ds)
> +{
> +	struct dock_dependent_device *dd;
> +
> +	mutex_lock(&ds->hp_lock);
> +
> +	list_for_each_entry(dd, &ds->dependent_devices, list) {
> +		if (dd->ops && dd->ops->handler)
> +			dd->ops->handler(dd->handle, ACPI_NOTIFY_EJECT_REQUEST,
> +					 dd->context);
> +		else
> +			dock_remove_acpi_device(dd->handle);
> +	}
The proposed patch for bug 59871 may not be safe with above changes
because the ACPI ATA hotplug handler may not remove ACPI devices as
acpiphp driver does.

On the other hand, the above change does get rid of the warning message
"Oops, 'acpi_handle' corrupt", but it may hide the real issue. With
current implementation, devices on the dock station are stopped and
removed after invoking ACPI _DCK method, which seems a little dangerous.
I think ACPI _DCK method should be called to power off the dock station
after stopping all affected devices.

Regards!
Gerry

> +
> +	mutex_unlock(&ds->hp_lock);
> +}
> +
> +/**
> + * hot_add_dock_devices - Insert devices on a dock station.
> + * @ds: Dock station to insert devices for.
>   *
>   * Some devices on the dock station need to have drivers called
>   * to perform hotplug operations after a dock event has occurred.
>   * Traverse the list of dock devices that have registered a
>   * hotplug handler, and call the handler.
>   */
> -static void hotplug_dock_devices(struct dock_station *ds, u32 event)
> +static void hot_add_dock_devices(struct dock_station *ds, u32 event)
>  {
>  	struct dock_dependent_device *dd;
>  
>  	mutex_lock(&ds->hp_lock);
>  
> -	/*
> -	 * First call driver specific hotplug functions
> -	 */
> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> +	/* First call driver specific hotplug event handlers. */
> +	list_for_each_entry(dd, &ds->dependent_devices, list)
>  		if (dd->ops && dd->ops->handler)
>  			dd->ops->handler(dd->handle, event, dd->context);
>  
>  	/*
> -	 * Now make sure that an acpi_device is created for each
> -	 * dependent device, or removed if this is an eject request.
> -	 * This will cause acpi_drivers to be stopped/started if they
> -	 * exist
> +	 * Now make sure that an acpi_device is created for each dependent
> +	 * device.  That will cause scan handlers to attach to devices objects
> +	 * or  acpi_drivers to be started if they exist.
>  	 */
> -	list_for_each_entry(dd, &ds->dependent_devices, list) {
> -		if (event == ACPI_NOTIFY_EJECT_REQUEST)
> -			dock_remove_acpi_device(dd->handle);
> -		else
> -			dock_create_acpi_device(dd->handle);
> -	}
> +	list_for_each_entry(dd, &ds->dependent_devices, list)
> +		dock_create_acpi_device(dd->handle);
> +
>  	mutex_unlock(&ds->hp_lock);
>  }
>  
> @@ -398,10 +385,14 @@ static void dock_event(struct dock_stati
>  	if (num == DOCK_EVENT)
>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>  
> -	list_for_each_entry(dd, &ds->hotplug_devices, hotplug_list)
> +	mutex_lock(&ds->hp_lock);
> +
> +	list_for_each_entry(dd, &ds->dependent_devices, list)
>  		if (dd->ops && dd->ops->uevent)
>  			dd->ops->uevent(dd->handle, event, dd->context);
>  
> +	mutex_unlock(&ds->hp_lock);
> +
>  	if (num != DOCK_EVENT)
>  		kobject_uevent_env(&dev->kobj, KOBJ_CHANGE, envp);
>  }
> @@ -598,9 +589,10 @@ register_hotplug_dock_device(acpi_handle
>  		 */
>  		dd = find_dock_dependent_device(dock_station, handle);
>  		if (dd) {
> +			mutex_lock(&dock_station->hp_lock);
>  			dd->ops = ops;
>  			dd->context = context;
> -			dock_add_hotplug_device(dock_station, dd);
> +			mutex_unlock(&dock_station->hp_lock);
>  			ret = 0;
>  		}
>  	}
> @@ -623,8 +615,12 @@ void unregister_hotplug_dock_device(acpi
>  
>  	list_for_each_entry(dock_station, &dock_stations, sibling) {
>  		dd = find_dock_dependent_device(dock_station, handle);
> -		if (dd)
> -			dock_del_hotplug_device(dock_station, dd);
> +		if (dd) {
> +			mutex_lock(&dock_station->hp_lock);
> +			dd->ops = NULL;
> +			dd->context = NULL;
> +			mutex_unlock(&dock_station->hp_lock);
> +		}
>  	}
>  }
>  EXPORT_SYMBOL_GPL(unregister_hotplug_dock_device);
> @@ -649,7 +645,7 @@ static int handle_eject_request(struct d
>  	 */
>  	dock_event(ds, event, UNDOCK_EVENT);
>  
> -	hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST);
> +	hot_remove_dock_devices(ds);
>  	undock(ds);
>  	dock_lock(ds, 0);
>  	eject_dock(ds);
> @@ -708,7 +704,7 @@ static void dock_notify(acpi_handle hand
>  			}
>  			atomic_notifier_call_chain(&dock_notifier_list,
>  						   event, NULL);
> -			hotplug_dock_devices(ds, event);
> +			hot_add_dock_devices(ds, event);
>  			complete_dock(ds);
>  			dock_event(ds, event, DOCK_EVENT);
>  			dock_lock(ds, 1);
> @@ -953,7 +949,6 @@ static int __init dock_add(acpi_handle h
>  	mutex_init(&dock_station->hp_lock);
>  	spin_lock_init(&dock_station->dd_lock);
>  	INIT_LIST_HEAD(&dock_station->sibling);
> -	INIT_LIST_HEAD(&dock_station->hotplug_devices);
>  	ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>  	INIT_LIST_HEAD(&dock_station->dependent_devices);
>  
> 
> 
> 


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-21 16:54           ` Jiang Liu
@ 2013-06-22  0:13             ` Rafael J. Wysocki
  2013-06-22  2:47               ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-22  0:13 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
> > On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> >> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> >>> OK, let's try to untangle this a bit.
> >>>
> >>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
> >>> does remain unfixed?
> >>
> >> [not tested, can do so in 12 hours if needed]
> >>
> >> I think there will be problems on undocking and/or on the second
> >> docking, as described in comments #6 - #8 of
> >> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> > 
> > OK, I think I have something that might work.  It may not solve all problems,
> > but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> > if you can.
> > 
> > Please apply [1/4] and [4/4] and the one below and see what happens.
> > 
> > Thanks,
> > Rafael
> > 
> > 
> > ---
> > Rationale:
> > 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
> > 	after removing the companion PCI devices, so the dock station code
> > 	doesn't need to trim them separately for the dependent devices handled
> > 	by acpiphp.
> > 
> > 	Moreover, acpiphp_glue.c is the only user of
> > 	[un]register_hotplug_dock_device(), so *all* devices on the
> > 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
> > 	of them.
> Hi Rafael,
>     There's an ongoing patch to fix a disk bay hotplug regression, which
> may add a second caller of register_hotplug_device(). Please refer to
> bug 59871, and the proposed patch is at:
> https://bugzilla.kernel.org/attachment.cgi?id=105581
> 
> > 
> > 	This means that (1) the ds->hotplug_devices list is not necessary (we
> > 	can always walk ds->dependent_devices instead and look for those that
> > 	have dd->ops set) and (2) we don't need to call
> > 	dock_remove_acpi_device(dd->handle) on eject for any of those devices,
> > 	because dd->ops->handler() is going to take care of the ACPI device
> > 	objects trimming for them anyway.
> > 
> > 	Taking the above into account make the following changes:
> > 	(1) Drop hotplug_devices from struct dock_station.
> > 	(2) Drop dock_{add|del}_hotplug_device()
> > 	(3) Make [un]register_hotplug_dock_device() [un]set 'ops' and
> > 	    'context' for the given device under ds->hp_lock.
> > 	(4) Add hot_remove_dock_devices() that walks ds->dependent_devices and
> > 	    either calls dd->ops->handler(), if present, or trims the underlying
> > 	    ACPI device object, otherwise.
> > 	(5) Replace hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST) calls
> > 	    with hot_remove_dock_devices(ds).
> > 	(6) Rename hotplug_dock_devices() to hot_add_dock_devices() and make
> > 	    it only handle bus check and device check requests.  Make it walk
> > 	    ds->dependent_devices instead of ds->hotplug devices.
> > 	(7) Make dock_event() walk ds->dependent_devices (instead of
> > 	    ds->hotplug devices) under ds->hp_lock.
> > ---
> >  drivers/acpi/dock.c |  111 ++++++++++++++++++++++++----------------------------
> >  1 file changed, 53 insertions(+), 58 deletions(-)
> > 
> > Index: linux-pm/drivers/acpi/dock.c
> > ===================================================================
> > --- linux-pm.orig/drivers/acpi/dock.c
> > +++ linux-pm/drivers/acpi/dock.c
> > @@ -66,7 +66,6 @@ struct dock_station {
> >  	spinlock_t dd_lock;
> >  	struct mutex hp_lock;
> >  	struct list_head dependent_devices;
> > -	struct list_head hotplug_devices;
> >  
> >  	struct list_head sibling;
> >  	struct platform_device *dock_device;
> > @@ -121,38 +120,6 @@ add_dock_dependent_device(struct dock_st
> >  }
> >  
> >  /**
> > - * dock_add_hotplug_device - associate a hotplug handler with the dock station
> > - * @ds: The dock station
> > - * @dd: The dependent device struct
> > - *
> > - * Add the dependent device to the dock's hotplug device list
> > - */
> > -static void
> > -dock_add_hotplug_device(struct dock_station *ds,
> > -			struct dock_dependent_device *dd)
> > -{
> > -	mutex_lock(&ds->hp_lock);
> > -	list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> > -	mutex_unlock(&ds->hp_lock);
> > -}
> > -
> > -/**
> > - * dock_del_hotplug_device - remove a hotplug handler from the dock station
> > - * @ds: The dock station
> > - * @dd: the dependent device struct
> > - *
> > - * Delete the dependent device from the dock's hotplug device list
> > - */
> > -static void
> > -dock_del_hotplug_device(struct dock_station *ds,
> > -			struct dock_dependent_device *dd)
> > -{
> > -	mutex_lock(&ds->hp_lock);
> > -	list_del(&dd->hotplug_list);
> > -	mutex_unlock(&ds->hp_lock);
> > -}
> > -
> > -/**
> >   * find_dock_dependent_device - get a device dependent on this dock
> >   * @ds: the dock station
> >   * @handle: the acpi_handle of the device we want
> > @@ -342,40 +309,60 @@ static void dock_remove_acpi_device(acpi
> >  }
> >  
> >  /**
> > - * hotplug_dock_devices - insert or remove devices on the dock station
> > - * @ds: the dock station
> > - * @event: either bus check or eject request
> > + * hot_remove_dock_devices - Remove devices on a dock station.
> > + * @ds: Dock station to remove devices for.
> > + *
> > + * For each device depending on @ds, if a dock event handler is registered,
> > + * call it for the device, or trim the underlying ACPI device object otherwise.
> > + *
> > + * Dock event handlers are responsible for trimming the underlying ACPI device
> > + * objects if present.
> > + */
> > +static void hot_remove_dock_devices(struct dock_station *ds)
> > +{
> > +	struct dock_dependent_device *dd;
> > +
> > +	mutex_lock(&ds->hp_lock);
> > +
> > +	list_for_each_entry(dd, &ds->dependent_devices, list) {
> > +		if (dd->ops && dd->ops->handler)
> > +			dd->ops->handler(dd->handle, ACPI_NOTIFY_EJECT_REQUEST,
> > +					 dd->context);
> > +		else
> > +			dock_remove_acpi_device(dd->handle);
> > +	}
> The proposed patch for bug 59871 may not be safe with above changes
> because the ACPI ATA hotplug handler may not remove ACPI devices as
> acpiphp driver does.

Well, since there's not ATA hotplug handler in 3.10-rc6, as far as I can say,
I suppose that you're talking about a new patch scheduled for 3.11.  If so,
can you please give me a pointer to that patch, possibly the tree it is
queued on etc.?

> On the other hand, the above change does get rid of the warning message
> "Oops, 'acpi_handle' corrupt", but it may hide the real issue. With
> current implementation, devices on the dock station are stopped and
> removed after invoking ACPI _DCK method, which seems a little dangerous.

Yes, that's something I actually overlooked.  In fact, the execution of
_DCK has to wait for all of the asynchronous work items spawned by
hotplug_dock_devices() to complete, so we *have* *to* run the acpiphp
stuff (the internals of _handle_hotplug_event_func() basically)
synchronously from the dock context.

> I think ACPI _DCK method should be called to power off the dock station
> after stopping all affected devices.

That's correct.  Not really to power off, but to disconnect ("isolate from
connector" as the spec puts that), although from the kernel's point of view
the result is pretty much the same - the devices are gone.

I have attached a new patch for Alexander to try at
https://bugzilla.kernel.org/show_bug.cgi?id=59501#c25

It kind of combines your patches [2/4] and [3/4] from the $subject series with
my last patch.  The most obvious difference is that it doesn't use klists. :-)

Seriously, I really think we don't need a separate "hotplug devices" list
for docking stations, one "dependent devices" list should be sufficient for
everything (it doesn't change anyway after the initialization), but I stole
your idea with the "get" and "put" routines (I called them "init" and
"release").  However, I didn't add them to struct acpi_dock_ops, but modified
register_hotplug_dock_device() to pass them directly instead (I believe this is
less prone to errors that way, because the callers of
register_hotplug_dock_device() cannot really overlook them).

We still may need to modify find_dock_devices() on top of that.

To summarize, we have multiple different problems in that code.

First, there is the ordering issue of the dock initialization versus PCI
enumeration, so basically dock_init() has to run before the main ACPI namespace
scan.  This is addressed by your patch [1/4] in the $subject series, but I'm
not 100% happy with that approach (I believe we need it as a stopgap fix for
now, though), because it means we have to carry out a full namespace walk
(possibly several of them even) before we even start to create struct
acpi_device objects and that doesn't sound quite right.

Second, there is the resources allocation issue addressed by your patch [4/4]
from the $subject series.  I believe that this patch is correct and Yinghai
seems to agree with me.

Next, there is the problem with asynchronous handling of dock events by acpiphp
that we're trying to solve at the moment and a couple of things are clear to
me here:

 1. Clearly, the dock driver assumes that dd->ops->handler() will always be
    synchronous, because otherwise there would have been a completion mechanism
    preventing _DCK from being executed before all of the handlers return.
    Since there's no such thing, we're dealing with a genuine acpiphp bug
    in its implementation of the dock handler and I'm not sure how it's ever
    been supposed to work.

 2. Whoever wrote find_dock_devices() didn't seem to know how
    acpi_bus_scan() worked, or that function would have been arranged
    differently and (moreover) the whay acpi_bus_scan() works has changed
    since then, so the assumptions made there may not be valid any more.
    Moreover, it looks like ds->dependent_list should be walked in the
    reverse order during removal.

 3. When we remove dock_{add|del}_hotplug_device(), this way or another,
    ds->hp_lock will be pointless, because its only user is
    hotplug_dock_devices() and it is always called under acpi_scan_lock.

Finally, there seem to be problems with PCI device drivers' .remove() callbacks
not working correctly in some cases and causing problems to happen.

Thanks,
Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-22  0:13             ` Rafael J. Wysocki
@ 2013-06-22  2:47               ` Jiang Liu
  2013-06-22 19:59                 ` Rafael J. Wysocki
  0 siblings, 1 reply; 47+ messages in thread
From: Jiang Liu @ 2013-06-22  2:47 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On 06/22/2013 08:13 AM, Rafael J. Wysocki wrote:
> On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
>> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
>>> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
>>>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
>>>>> OK, let's try to untangle this a bit.
>>>>>
>>>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
>>>>> does remain unfixed?
>>>>
>>>> [not tested, can do so in 12 hours if needed]
>>>>
>>>> I think there will be problems on undocking and/or on the second
>>>> docking, as described in comments #6 - #8 of
>>>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
>>>
>>> OK, I think I have something that might work.  It may not solve all problems,
>>> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
>>> if you can.
>>>
>>> Please apply [1/4] and [4/4] and the one below and see what happens.
>>>
>>> Thanks,
>>> Rafael
>>>
>>>
>>> ---
>>> Rationale:
>>> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
>>> 	after removing the companion PCI devices, so the dock station code
>>> 	doesn't need to trim them separately for the dependent devices handled
>>> 	by acpiphp.
>>>
>>> 	Moreover, acpiphp_glue.c is the only user of
>>> 	[un]register_hotplug_dock_device(), so *all* devices on the
>>> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
>>> 	of them.
>> Hi Rafael,
>>     There's an ongoing patch to fix a disk bay hotplug regression, which
>> may add a second caller of register_hotplug_device(). Please refer to
>> bug 59871, and the proposed patch is at:
>> https://bugzilla.kernel.org/attachment.cgi?id=105581
Hi Rafael,
    You can find the proposed patch for ATA Bay hotplug at
https://bugzilla.kernel.org/attachment.cgi?id=105581
Regards!
Gerry

>>
>> The proposed patch for bug 59871 may not be safe with above changes
>> because the ACPI ATA hotplug handler may not remove ACPI devices as
>> acpiphp driver does.
> 
> Well, since there's not ATA hotplug handler in 3.10-rc6, as far as I can say,
> I suppose that you're talking about a new patch scheduled for 3.11.  If so,u
> can you please give me a pointer to that patch, possibly the tree it is
> queued on etc.?
[...]
> 
> Thanks,
> Rafael
> 
> 


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-22  2:47               ` Jiang Liu
@ 2013-06-22 19:59                 ` Rafael J. Wysocki
  2013-06-23 15:57                   ` Jiang Liu
  0 siblings, 1 reply; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-22 19:59 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On Saturday, June 22, 2013 10:47:24 AM Jiang Liu wrote:
> On 06/22/2013 08:13 AM, Rafael J. Wysocki wrote:
> > On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
> >> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
> >>> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> >>>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> >>>>> OK, let's try to untangle this a bit.
> >>>>>
> >>>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
> >>>>> does remain unfixed?
> >>>>
> >>>> [not tested, can do so in 12 hours if needed]
> >>>>
> >>>> I think there will be problems on undocking and/or on the second
> >>>> docking, as described in comments #6 - #8 of
> >>>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> >>>
> >>> OK, I think I have something that might work.  It may not solve all problems,
> >>> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> >>> if you can.
> >>>
> >>> Please apply [1/4] and [4/4] and the one below and see what happens.
> >>>
> >>> Thanks,
> >>> Rafael
> >>>
> >>>
> >>> ---
> >>> Rationale:
> >>> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
> >>> 	after removing the companion PCI devices, so the dock station code
> >>> 	doesn't need to trim them separately for the dependent devices handled
> >>> 	by acpiphp.
> >>>
> >>> 	Moreover, acpiphp_glue.c is the only user of
> >>> 	[un]register_hotplug_dock_device(), so *all* devices on the
> >>> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
> >>> 	of them.
> >> Hi Rafael,
> >>     There's an ongoing patch to fix a disk bay hotplug regression, which
> >> may add a second caller of register_hotplug_device(). Please refer to
> >> bug 59871, and the proposed patch is at:
> >> https://bugzilla.kernel.org/attachment.cgi?id=105581
> Hi Rafael,
>     You can find the proposed patch for ATA Bay hotplug at
> https://bugzilla.kernel.org/attachment.cgi?id=105581

Well, maybe it'll have to be reworked slightly.

Which BZ entry is that?

Rafael


-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-22 19:59                 ` Rafael J. Wysocki
@ 2013-06-23 15:57                   ` Jiang Liu
  2013-06-23 21:51                     ` Rafael J. Wysocki
  2013-06-23 21:52                     ` Rafael J. Wysocki
  0 siblings, 2 replies; 47+ messages in thread
From: Jiang Liu @ 2013-06-23 15:57 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On 06/23/2013 03:59 AM, Rafael J. Wysocki wrote:
> On Saturday, June 22, 2013 10:47:24 AM Jiang Liu wrote:
>> On 06/22/2013 08:13 AM, Rafael J. Wysocki wrote:
>>> On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
>>>> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
>>>>> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
>>>>>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
>>>>>>> OK, let's try to untangle this a bit.
>>>>>>>
>>>>>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
>>>>>>> does remain unfixed?
>>>>>>
>>>>>> [not tested, can do so in 12 hours if needed]
>>>>>>
>>>>>> I think there will be problems on undocking and/or on the second
>>>>>> docking, as described in comments #6 - #8 of
>>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
>>>>>
>>>>> OK, I think I have something that might work.  It may not solve all problems,
>>>>> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
>>>>> if you can.
>>>>>
>>>>> Please apply [1/4] and [4/4] and the one below and see what happens.
>>>>>
>>>>> Thanks,
>>>>> Rafael
>>>>>
>>>>>
>>>>> ---
>>>>> Rationale:
>>>>> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
>>>>> 	after removing the companion PCI devices, so the dock station code
>>>>> 	doesn't need to trim them separately for the dependent devices handled
>>>>> 	by acpiphp.
>>>>>
>>>>> 	Moreover, acpiphp_glue.c is the only user of
>>>>> 	[un]register_hotplug_dock_device(), so *all* devices on the
>>>>> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
>>>>> 	of them.
>>>> Hi Rafael,
>>>>     There's an ongoing patch to fix a disk bay hotplug regression, which
>>>> may add a second caller of register_hotplug_device(). Please refer to
>>>> bug 59871, and the proposed patch is at:
>>>> https://bugzilla.kernel.org/attachment.cgi?id=105581
>> Hi Rafael,
>>     You can find the proposed patch for ATA Bay hotplug at
>> https://bugzilla.kernel.org/attachment.cgi?id=105581
> 
> Well, maybe it'll have to be reworked slightly.
> 
> Which BZ entry is that?
Hi Rafael,
	It's bug 59871, please refer to:
https://bugzilla.kernel.org/show_bug.cgi?id=59871
Regards!
Gerry

> 
> Rafael
> 
> 


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-23 15:57                   ` Jiang Liu
@ 2013-06-23 21:51                     ` Rafael J. Wysocki
  2013-06-23 21:52                     ` Rafael J. Wysocki
  1 sibling, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-23 21:51 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On Sunday, June 23, 2013 11:57:46 PM Jiang Liu wrote:
> On 06/23/2013 03:59 AM, Rafael J. Wysocki wrote:
> > On Saturday, June 22, 2013 10:47:24 AM Jiang Liu wrote:
> >> On 06/22/2013 08:13 AM, Rafael J. Wysocki wrote:
> >>> On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
> >>>> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
> >>>>> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> >>>>>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> >>>>>>> OK, let's try to untangle this a bit.
> >>>>>>>
> >>>>>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
> >>>>>>> does remain unfixed?
> >>>>>>
> >>>>>> [not tested, can do so in 12 hours if needed]
> >>>>>>
> >>>>>> I think there will be problems on undocking and/or on the second
> >>>>>> docking, as described in comments #6 - #8 of
> >>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> >>>>>
> >>>>> OK, I think I have something that might work.  It may not solve all problems,
> >>>>> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> >>>>> if you can.
> >>>>>
> >>>>> Please apply [1/4] and [4/4] and the one below and see what happens.
> >>>>>
> >>>>> Thanks,
> >>>>> Rafael
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> Rationale:
> >>>>> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
> >>>>> 	after removing the companion PCI devices, so the dock station code
> >>>>> 	doesn't need to trim them separately for the dependent devices handled
> >>>>> 	by acpiphp.
> >>>>>
> >>>>> 	Moreover, acpiphp_glue.c is the only user of
> >>>>> 	[un]register_hotplug_dock_device(), so *all* devices on the
> >>>>> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
> >>>>> 	of them.
> >>>> Hi Rafael,
> >>>>     There's an ongoing patch to fix a disk bay hotplug regression, which
> >>>> may add a second caller of register_hotplug_device(). Please refer to
> >>>> bug 59871, and the proposed patch is at:
> >>>> https://bugzilla.kernel.org/attachment.cgi?id=105581
> >> Hi Rafael,
> >>     You can find the proposed patch for ATA Bay hotplug at
> >> https://bugzilla.kernel.org/attachment.cgi?id=105581
> > 
> > Well, maybe it'll have to be reworked slightly.
> > 
> > Which BZ entry is that?
> Hi Rafael,
> 	It's bug 59871, please refer to:
> https://bugzilla.kernel.org/show_bug.cgi?id=59871

OK, thanks!

I suppose it would be most convenient to simply add that patch to this
patchset.

Thanks,
Rafael


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

* Re: [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581
  2013-06-23 15:57                   ` Jiang Liu
  2013-06-23 21:51                     ` Rafael J. Wysocki
@ 2013-06-23 21:52                     ` Rafael J. Wysocki
  1 sibling, 0 replies; 47+ messages in thread
From: Rafael J. Wysocki @ 2013-06-23 21:52 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Alexander E. Patrakov, Jiang Liu, alexdeucher, Bjorn Helgaas,
	Yinghai Lu, Greg Kroah-Hartman, Yijing Wang, linux-acpi,
	linux-pci, linux-kernel

On Sunday, June 23, 2013 11:57:46 PM Jiang Liu wrote:
> On 06/23/2013 03:59 AM, Rafael J. Wysocki wrote:
> > On Saturday, June 22, 2013 10:47:24 AM Jiang Liu wrote:
> >> On 06/22/2013 08:13 AM, Rafael J. Wysocki wrote:
> >>> On Saturday, June 22, 2013 12:54:21 AM Jiang Liu wrote:
> >>>> On 06/21/2013 03:06 AM, Rafael J. Wysocki wrote:
> >>>>> On Wednesday, June 19, 2013 11:18:41 AM Alexander E. Patrakov wrote:
> >>>>>> 2013/6/19 Rafael J. Wysocki <rjw@sisk.pl>:
> >>>>>>> OK, let's try to untangle this a bit.
> >>>>>>>
> >>>>>>> If you applyt patches [1/4] and [4/4] from the $subject series only, what
> >>>>>>> does remain unfixed?
> >>>>>>
> >>>>>> [not tested, can do so in 12 hours if needed]
> >>>>>>
> >>>>>> I think there will be problems on undocking and/or on the second
> >>>>>> docking, as described in comments #6 - #8 of
> >>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=59501
> >>>>>
> >>>>> OK, I think I have something that might work.  It may not solve all problems,
> >>>>> but maybe it helps a bit.  Unfortunately, I can't really test it, so please do
> >>>>> if you can.
> >>>>>
> >>>>> Please apply [1/4] and [4/4] and the one below and see what happens.
> >>>>>
> >>>>> Thanks,
> >>>>> Rafael
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> Rationale:
> >>>>> 	acpiphp_glue.c:disable_device() trims the underlying ACPI device objects
> >>>>> 	after removing the companion PCI devices, so the dock station code
> >>>>> 	doesn't need to trim them separately for the dependent devices handled
> >>>>> 	by acpiphp.
> >>>>>
> >>>>> 	Moreover, acpiphp_glue.c is the only user of
> >>>>> 	[un]register_hotplug_dock_device(), so *all* devices on the
> >>>>> 	ds->hotplug_devices list are handled by acpiphp and ops is set for all
> >>>>> 	of them.
> >>>> Hi Rafael,
> >>>>     There's an ongoing patch to fix a disk bay hotplug regression, which
> >>>> may add a second caller of register_hotplug_device(). Please refer to
> >>>> bug 59871, and the proposed patch is at:
> >>>> https://bugzilla.kernel.org/attachment.cgi?id=105581
> >> Hi Rafael,
> >>     You can find the proposed patch for ATA Bay hotplug at
> >> https://bugzilla.kernel.org/attachment.cgi?id=105581
> > 
> > Well, maybe it'll have to be reworked slightly.
> > 
> > Which BZ entry is that?
> Hi Rafael,
> 	It's bug 59871, please refer to:
> https://bugzilla.kernel.org/show_bug.cgi?id=59871

OK, thanks!

I suppose it would be most convenient to simply add that patch to this
patchset.

Thanks,
Rafael

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

end of thread, other threads:[~2013-06-23 21:43 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-14 19:27 [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Jiang Liu
2013-06-14 19:27 ` [BUGFIX v2 1/4] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
2013-06-15  6:51   ` Yinghai Lu
2013-06-15 10:05     ` Jiang Liu
2013-06-15 20:03       ` Rafael J. Wysocki
2013-06-14 19:27 ` [BUGFIX v2 2/4] ACPI, DOCK: resolve possible deadlock scenarios Jiang Liu
2013-06-14 22:21   ` Rafael J. Wysocki
2013-06-15  1:44     ` Jiang Liu
2013-06-15 20:17       ` Rafael J. Wysocki
2013-06-15 21:20         ` Rafael J. Wysocki
2013-06-15 22:54           ` Rafael J. Wysocki
2013-06-16 17:12             ` Jiang Liu
2013-06-17 11:40               ` Rafael J. Wysocki
2013-06-18 16:03                 ` Jiang Liu
2013-06-18 21:25                   ` Rafael J. Wysocki
2013-06-16 17:01           ` Jiang Liu
2013-06-17 11:39             ` Rafael J. Wysocki
2013-06-17 12:54               ` Rafael J. Wysocki
2013-06-18 15:36               ` Jiang Liu
2013-06-18 21:12                 ` Rafael J. Wysocki
2013-06-16 16:27         ` Jiang Liu
2013-06-14 19:28 ` [BUGFIX v2 3/4] PCI, ACPI: fix device destroying order issue when handling dock notification Jiang Liu
2013-06-15  6:50   ` Yinghai Lu
2013-06-14 19:28 ` [BUGFIX v2 4/4] ACPIPHP: fix bug 56531 Sony VAIO VPCZ23A4R: can't assign mem/io after docking Jiang Liu
2013-06-14 21:03   ` Yinghai Lu
2013-06-17 11:57   ` Rafael J. Wysocki
2013-06-15  6:42 ` [BUGFIX v2 0/4] fix bug 56531, 59501 and 59581 Alexander E. Patrakov
2013-06-15  7:25   ` Alexander E. Patrakov
2013-06-18 21:35     ` Rafael J. Wysocki
2013-06-19  5:18       ` Alexander E. Patrakov
2013-06-20 19:06         ` Rafael J. Wysocki
2013-06-21  4:36           ` Alexander E. Patrakov
2013-06-21  4:37             ` Alexander E. Patrakov
2013-06-21 13:06               ` Rafael J. Wysocki
2013-06-21 12:47             ` Rafael J. Wysocki
2013-06-21 13:02               ` Alexander E. Patrakov
2013-06-21 16:54           ` Jiang Liu
2013-06-22  0:13             ` Rafael J. Wysocki
2013-06-22  2:47               ` Jiang Liu
2013-06-22 19:59                 ` Rafael J. Wysocki
2013-06-23 15:57                   ` Jiang Liu
2013-06-23 21:51                     ` Rafael J. Wysocki
2013-06-23 21:52                     ` Rafael J. Wysocki
2013-06-16 17:33   ` Jiang Liu
2013-06-17  3:27     ` Alexander E. Patrakov
2013-06-17 17:07       ` Alexander E. Patrakov
2013-06-18 15:13         ` Jiang Liu

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