* [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
@ 2013-06-13 16:32 Jiang Liu
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
` (10 more replies)
0 siblings, 11 replies; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, 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
The first patch fixes issue 1, and the second patch fixes issue 2.
These two patches, if accepted, should be material for stable branches
too.
Patch 3-9 are code improvement for ACPI and dock driver.
I have found the root cause for issue three, but still working on
solutions, and seems can't be solve in short time. So please help
to review and test patches for issue 1) and 2) first.
Hi Alexander, could you please help to test the whole patchset?
Jiang Liu (9):
ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
ACPIPHP: fix device destroying order issue when handling dock
notification
ACPI, DOCK: clean up unused module related code
ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times
ACPI, DOCK: kill redundant spin lock in dock device object
ACPI, DOCK: mark initialization functions with __init
ACPI, DOCK: simplify implementation of dock_create_acpi_device()
ACPI: introduce several helper functions
ACPI: use new helper functions to simpilify code
drivers/acpi/dock.c | 193 +++++++++----------------------------
drivers/acpi/internal.h | 5 +
drivers/acpi/scan.c | 54 +++--------
drivers/acpi/utils.c | 74 ++++++++++++++
drivers/pci/hotplug/acpiphp_glue.c | 47 ++++-----
include/acpi/acpi_bus.h | 5 +
6 files changed, 162 insertions(+), 216 deletions(-)
--
1.8.1.2
^ permalink raw reply [flat|nested] 55+ messages in thread
* [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:22 ` Rafael J. Wysocki
2013-06-13 18:24 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification Jiang Liu
` (9 subsequent siblings)
10 siblings, 2 replies; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, linux-acpi, 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] 55+ messages in thread
* [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 19:59 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code Jiang Liu
` (8 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Rafael J. Wysocki, stable
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
---
Hi Bjorn and Rafael,
The recursive lock changes haven't been tested yet, need help
from Alexander for testing.
---
drivers/acpi/dock.c | 33 +++++++++++++++++++++++++++------
drivers/pci/hotplug/acpiphp_glue.c | 32 ++++++++++++++++++--------------
2 files changed, 45 insertions(+), 20 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 02b0563..79c8d9e 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -65,6 +65,7 @@ struct dock_station {
u32 flags;
spinlock_t dd_lock;
struct mutex hp_lock;
+ struct task_struct *owner;
struct list_head dependent_devices;
struct list_head hotplug_devices;
@@ -131,9 +132,13 @@ 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);
+ if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
+ list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
+ } else {
+ mutex_lock(&ds->hp_lock);
+ list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
+ mutex_unlock(&ds->hp_lock);
+ }
}
/**
@@ -147,9 +152,13 @@ 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);
+ if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
+ list_del_init(&dd->hotplug_list);
+ } else {
+ mutex_lock(&ds->hp_lock);
+ list_del_init(&dd->hotplug_list);
+ mutex_unlock(&ds->hp_lock);
+ }
}
/**
@@ -355,7 +364,17 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
{
struct dock_dependent_device *dd;
+ /*
+ * There is a deadlock scenario as below:
+ * hotplug_dock_devices()
+ * mutex_lock(&ds->hp_lock)
+ * dd->ops->handler()
+ * register_hotplug_dock_device()
+ * mutex_lock(&ds->hp_lock)
+ * So we need recursive lock scematics here, do it by ourselves.
+ */
mutex_lock(&ds->hp_lock);
+ ds->owner = current;
/*
* First call driver specific hotplug functions
@@ -376,6 +395,8 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
else
dock_create_acpi_device(dd->handle);
}
+
+ ds->owner = NULL;
mutex_unlock(&ds->hp_lock);
}
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] 55+ messages in thread
* [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
2013-06-13 16:32 ` [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:26 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times Jiang Liu
` (7 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
ACPI dock driver can't be built as a module any more, so clean up
module related code.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/acpi/dock.c | 41 -----------------------------------------
1 file changed, 41 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 79c8d9e..50e38b7 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -53,12 +53,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
static struct atomic_notifier_head dock_notifier_list;
-static const struct acpi_device_id dock_device_ids[] = {
- {"LNXDOCK", 0},
- {"", 0},
-};
-MODULE_DEVICE_TABLE(acpi, dock_device_ids);
-
struct dock_station {
acpi_handle handle;
unsigned long last_dock_time;
@@ -1013,30 +1007,6 @@ err_unregister:
}
/**
- * dock_remove - free up resources related to the dock station
- */
-static int dock_remove(struct dock_station *ds)
-{
- struct dock_dependent_device *dd, *tmp;
- struct platform_device *dock_device = ds->dock_device;
-
- if (!dock_station_count)
- return 0;
-
- /* remove dependent devices */
- list_for_each_entry_safe(dd, tmp, &ds->dependent_devices, list)
- kfree(dd);
-
- list_del(&ds->sibling);
-
- /* cleanup sysfs */
- sysfs_remove_group(&dock_device->dev.kobj, &dock_attribute_group);
- platform_device_unregister(dock_device);
-
- return 0;
-}
-
-/**
* find_dock_and_bay - look for dock stations and bays
* @handle: acpi handle of a device
* @lvl: unused
@@ -1073,14 +1043,3 @@ int __init acpi_dock_init(void)
ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
return 0;
}
-
-static void __exit dock_exit(void)
-{
- struct dock_station *tmp, *dock_station;
-
- unregister_acpi_bus_notifier(&dock_acpi_notifier);
- list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibling)
- dock_remove(dock_station);
-}
-
-module_exit(dock_exit);
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (2 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:27 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object Jiang Liu
` (6 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
Initialize acpi_dock_notifier_list from function acpi_dock_init()
instead of dock_add() to avoid initializing it multiple times.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/acpi/dock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 50e38b7..8e578aa 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -967,7 +967,6 @@ static int __init dock_add(acpi_handle handle)
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);
/* we want the dock device to send uevents */
@@ -1038,6 +1037,7 @@ int __init acpi_dock_init(void)
return 0;
}
+ ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
register_acpi_bus_notifier(&dock_acpi_notifier);
pr_info(PREFIX "%s: %d docks/bays found\n",
ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (3 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:28 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init Jiang Liu
` (5 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
All dock device related data structures are created during driver
initialization, so kill the redundant spin lock in dock device object.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/acpi/dock.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 8e578aa..cd2d5df 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -57,7 +57,6 @@ struct dock_station {
acpi_handle handle;
unsigned long last_dock_time;
u32 flags;
- spinlock_t dd_lock;
struct mutex hp_lock;
struct task_struct *owner;
struct list_head dependent_devices;
@@ -107,10 +106,7 @@ 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);
- spin_unlock(&ds->dd_lock);
return 0;
}
@@ -168,14 +164,10 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
{
struct dock_dependent_device *dd;
- spin_lock(&ds->dd_lock);
- list_for_each_entry(dd, &ds->dependent_devices, list) {
- if (handle == dd->handle) {
- spin_unlock(&ds->dd_lock);
+ list_for_each_entry(dd, &ds->dependent_devices, list)
+ if (handle == dd->handle)
return dd;
- }
- }
- spin_unlock(&ds->dd_lock);
+
return NULL;
}
@@ -964,7 +956,6 @@ static int __init dock_add(acpi_handle handle)
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);
INIT_LIST_HEAD(&dock_station->dependent_devices);
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (4 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:29 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 7/9] ACPI, DOCK: simplify implementation of dock_create_acpi_device() Jiang Liu
` (4 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
Mark all initialization functions with __init to reduce memory
consumption at runtime.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/acpi/dock.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index cd2d5df..da3314d 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -94,7 +94,7 @@ struct dock_dependent_device {
*
* Add the dependent device to the dock's dependent device list.
*/
-static int
+static int __init
add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
{
struct dock_dependent_device *dd;
@@ -192,7 +192,7 @@ static int is_dock(acpi_handle handle)
return 1;
}
-static int is_ejectable(acpi_handle handle)
+static int __init is_ejectable(acpi_handle handle)
{
acpi_status status;
acpi_handle tmp;
@@ -203,7 +203,7 @@ static int is_ejectable(acpi_handle handle)
return 1;
}
-static int is_ata(acpi_handle handle)
+static int __init is_ata(acpi_handle handle)
{
acpi_handle tmp;
@@ -216,7 +216,7 @@ static int is_ata(acpi_handle handle)
return 0;
}
-static int is_battery(acpi_handle handle)
+static int __init is_battery(acpi_handle handle)
{
struct acpi_device_info *info;
int ret = 1;
@@ -232,7 +232,7 @@ static int is_battery(acpi_handle handle)
return ret;
}
-static int is_ejectable_bay(acpi_handle handle)
+static int __init is_ejectable_bay(acpi_handle handle)
{
acpi_handle phandle;
@@ -809,7 +809,7 @@ static struct notifier_block dock_acpi_notifier = {
* check to see if an object has an _EJD method. If it does, then it
* will see if it is dependent on the dock station.
*/
-static acpi_status
+static acpi_status __init
find_dock_devices(acpi_handle handle, u32 lvl, void *context, void **rv)
{
acpi_status status;
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 7/9] ACPI, DOCK: simplify implementation of dock_create_acpi_device()
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (5 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 16:32 ` [BUGFIX 8/9] ACPI: introduce several helper functions Jiang Liu
` (3 subsequent siblings)
10 siblings, 0 replies; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
The return value of dock_create_acpi_device() is unused, so simplify
it by returning void.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/acpi/dock.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index da3314d..72cf97e 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -299,10 +299,8 @@ static int dock_present(struct dock_station *ds)
* handle if one does not exist already. This should cause
* acpi to scan for drivers for the given devices, and call
* matching driver's add routine.
- *
- * Returns a pointer to the acpi_device corresponding to the handle.
*/
-static struct acpi_device * dock_create_acpi_device(acpi_handle handle)
+static void dock_create_acpi_device(acpi_handle handle)
{
struct acpi_device *device;
int ret;
@@ -315,10 +313,7 @@ static struct acpi_device * dock_create_acpi_device(acpi_handle handle)
ret = acpi_bus_scan(handle);
if (ret)
pr_debug("error adding bus, %x\n", -ret);
-
- acpi_bus_get_device(handle, &device);
}
- return device;
}
/**
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 8/9] ACPI: introduce several helper functions
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (6 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 7/9] ACPI, DOCK: simplify implementation of dock_create_acpi_device() Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 18:36 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 9/9] ACPI: use new helper functions to simpilify code Jiang Liu
` (2 subsequent siblings)
10 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel
Introduce several helper functions, which will be used to simplify code.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
---
drivers/acpi/utils.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++
include/acpi/acpi_bus.h | 5 ++++
2 files changed, 79 insertions(+)
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 74437130..cb66fce 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -495,3 +495,77 @@ acpi_handle_printk(const char *level, acpi_handle handle, const char *fmt, ...)
kfree(buffer.pointer);
}
EXPORT_SYMBOL(acpi_handle_printk);
+
+/**
+ * acpi_evaluate_ej0: Evaluate _EJ0 method for hotplug operations
+ * @handle: ACPI device handle
+ *
+ * Evaluate device's _EJ0 method for hotplug operations.
+ */
+acpi_status acpi_evaluate_ej0(acpi_handle handle)
+{
+ acpi_status status;
+ union acpi_object arg;
+ struct acpi_object_list arg_list;
+
+ arg.type = ACPI_TYPE_INTEGER;
+ arg.integer.value = 1;
+ arg_list.count = 1;
+ arg_list.pointer = &arg;
+ status = acpi_evaluate_object(handle, "_EJ0", &arg_list, NULL);
+ if (status == AE_NOT_FOUND) {
+ acpi_handle_warn(handle, "No _EJ0 support for device\n");
+ } else if (ACPI_FAILURE(status)) {
+ acpi_handle_warn(handle, "Eject failed (0x%x)\n", status);
+ }
+
+ return status;
+}
+
+/**
+ * acpi_evaluate_lck: Evaluate _LCK method to lock/unlock device
+ * @handle: ACPI device handle
+ * @lock: lock device if non-zero, otherwise unlock device
+ *
+ * Evaluate device's _LCK method if present to lock/unlock device
+ */
+acpi_status acpi_evaluate_lck(acpi_handle handle, int lock)
+{
+ acpi_status status;
+ union acpi_object arg;
+ struct acpi_object_list arg_list;
+
+ arg_list.count = 1;
+ arg_list.pointer = &arg;
+ arg.type = ACPI_TYPE_INTEGER;
+ arg.integer.value = !!lock;
+ status = acpi_evaluate_object(handle, "_LCK", &arg_list, NULL);
+ if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+ if (lock)
+ acpi_handle_warn(handle,
+ "Locking device failed (0x%x)\n", status);
+ else
+ acpi_handle_warn(handle,
+ "Unlocking device failed (0x%x)\n", status);
+ }
+
+ return status;
+}
+
+/**
+ * acpi_has_method: Check whether @handle has a method named @name
+ * @handle: ACPI device handle
+ * @name: name of object or method
+ *
+ * Check whether @handle has a method named @name.
+ */
+int acpi_has_method(acpi_handle handle, char *name)
+{
+ acpi_status status;
+ acpi_handle tmp;
+
+ status = acpi_get_handle(handle, name, &tmp);
+
+ return ACPI_FAILURE(status) ? 0 : 1;
+}
+EXPORT_SYMBOL(acpi_has_method);
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 636c59f..5df5f89 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -56,6 +56,11 @@ acpi_evaluate_hotplug_ost(acpi_handle handle, u32 source_event,
acpi_status
acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld_info **pld);
+
+acpi_status acpi_evaluate_ej0(acpi_handle handle);
+acpi_status acpi_evaluate_lck(acpi_handle handle, int lock);
+int acpi_has_method(acpi_handle handle, char *name);
+
#ifdef CONFIG_ACPI
#include <linux/proc_fs.h>
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* [BUGFIX 9/9] ACPI: use new helper functions to simpilify code
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (7 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 8/9] ACPI: introduce several helper functions Jiang Liu
@ 2013-06-13 16:32 ` Jiang Liu
2013-06-13 17:34 ` Alexander E. Patrakov
2013-06-13 18:38 ` Rafael J. Wysocki
2013-06-13 17:43 ` [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Alexander E. Patrakov
2013-06-13 18:42 ` Yinghai Lu
10 siblings, 2 replies; 55+ messages in thread
From: Jiang Liu @ 2013-06-13 16:32 UTC (permalink / raw)
To: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu,
Alexander E . Patrakov
Cc: Jiang Liu, Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel
Use new helper functions to simpilify ACPI dock, acpiphp code.
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
---
drivers/acpi/dock.c | 78 ++++----------------------------------
drivers/acpi/scan.c | 53 ++++++--------------------
drivers/pci/hotplug/acpiphp_glue.c | 15 ++------
3 files changed, 21 insertions(+), 125 deletions(-)
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 72cf97e..1811f4f 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -181,26 +181,14 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
* If an acpi object has a _DCK method, then it is by definition a dock
* station, so return true.
*/
-static int is_dock(acpi_handle handle)
+static inline int is_dock(acpi_handle handle)
{
- acpi_status status;
- acpi_handle tmp;
-
- status = acpi_get_handle(handle, "_DCK", &tmp);
- if (ACPI_FAILURE(status))
- return 0;
- return 1;
+ return acpi_has_method(handle, "_DCK");
}
-static int __init is_ejectable(acpi_handle handle)
+static inline int is_ejectable(acpi_handle handle)
{
- acpi_status status;
- acpi_handle tmp;
-
- status = acpi_get_handle(handle, "_EJ0", &tmp);
- if (ACPI_FAILURE(status))
- return 0;
- return 1;
+ return acpi_has_method(handle, "_EJ0");
}
static int __init is_ata(acpi_handle handle)
@@ -409,37 +397,6 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
}
/**
- * eject_dock - respond to a dock eject request
- * @ds: the dock station
- *
- * This is called after _DCK is called, to execute the dock station's
- * _EJ0 method.
- */
-static void eject_dock(struct dock_station *ds)
-{
- struct acpi_object_list arg_list;
- union acpi_object arg;
- acpi_status status;
- acpi_handle tmp;
-
- /* all dock devices should have _EJ0, but check anyway */
- status = acpi_get_handle(ds->handle, "_EJ0", &tmp);
- if (ACPI_FAILURE(status)) {
- pr_debug("No _EJ0 support for dock device\n");
- return;
- }
-
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = 1;
-
- status = acpi_evaluate_object(ds->handle, "_EJ0", &arg_list, NULL);
- if (ACPI_FAILURE(status))
- pr_debug("Failed to evaluate _EJ0!\n");
-}
-
-/**
* handle_dock - handle a dock event
* @ds: the dock station
* @dock: to dock, or undock - that is the question
@@ -499,27 +456,6 @@ static inline void complete_undock(struct dock_station *ds)
ds->flags &= ~(DOCK_UNDOCKING);
}
-static void dock_lock(struct dock_station *ds, int lock)
-{
- struct acpi_object_list arg_list;
- union acpi_object arg;
- acpi_status status;
-
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = !!lock;
- status = acpi_evaluate_object(ds->handle, "_LCK", &arg_list, NULL);
- if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
- if (lock)
- acpi_handle_warn(ds->handle,
- "Locking device failed (0x%x)\n", status);
- else
- acpi_handle_warn(ds->handle,
- "Unlocking device failed (0x%x)\n", status);
- }
-}
-
/**
* dock_in_progress - see if we are in the middle of handling a dock event
* @ds: the dock station
@@ -653,8 +589,8 @@ static int handle_eject_request(struct dock_station *ds, u32 event)
hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST);
undock(ds);
- dock_lock(ds, 0);
- eject_dock(ds);
+ acpi_evaluate_lck(ds->handle, 0);
+ acpi_evaluate_ej0(ds->handle);
if (dock_present(ds)) {
acpi_handle_err(ds->handle, "Unable to undock!\n");
return -EBUSY;
@@ -713,7 +649,7 @@ static void dock_notify(acpi_handle handle, u32 event, void *data)
hotplug_dock_devices(ds, event);
complete_dock(ds);
dock_event(ds, event, DOCK_EVENT);
- dock_lock(ds, 1);
+ acpi_evaluate_lck(ds->handle, 1);
acpi_update_all_gpes();
break;
}
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 4148163..3372505 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -123,9 +123,6 @@ static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL);
static int acpi_scan_hot_remove(struct acpi_device *device)
{
acpi_handle handle = device->handle;
- acpi_handle not_used;
- struct acpi_object_list arg_list;
- union acpi_object arg;
acpi_status status;
unsigned long long sta;
@@ -144,31 +141,12 @@ static int acpi_scan_hot_remove(struct acpi_device *device)
put_device(&device->dev);
device = NULL;
- if (ACPI_SUCCESS(acpi_get_handle(handle, "_LCK", ¬_used))) {
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = 0;
- acpi_evaluate_object(handle, "_LCK", &arg_list, NULL);
- }
-
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = 1;
-
- /*
- * TBD: _EJD support.
- */
- status = acpi_evaluate_object(handle, "_EJ0", &arg_list, NULL);
- if (ACPI_FAILURE(status)) {
- if (status == AE_NOT_FOUND) {
- return -ENODEV;
- } else {
- acpi_handle_warn(handle, "Eject failed (0x%x)\n",
- status);
- return -EIO;
- }
+ acpi_evaluate_lck(handle, 0);
+ status = acpi_evaluate_ej0(handle);
+ if (status == AE_NOT_FOUND) {
+ return -ENODEV;
+ } else if (ACPI_FAILURE(status)) {
+ return -EIO;
}
/*
@@ -536,7 +514,6 @@ static int acpi_device_setup_files(struct acpi_device *dev)
{
struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
acpi_status status;
- acpi_handle temp;
unsigned long long sun;
int result = 0;
@@ -562,8 +539,7 @@ static int acpi_device_setup_files(struct acpi_device *dev)
/*
* If device has _STR, 'description' file is created
*/
- status = acpi_get_handle(dev->handle, "_STR", &temp);
- if (ACPI_SUCCESS(status)) {
+ if (acpi_has_method(dev->handle, "_STR")) {
status = acpi_evaluate_object(dev->handle, "_STR",
NULL, &buffer);
if (ACPI_FAILURE(status))
@@ -593,8 +569,7 @@ static int acpi_device_setup_files(struct acpi_device *dev)
* If device has _EJ0, 'eject' file is created that is used to trigger
* hot-removal function from userland.
*/
- status = acpi_get_handle(dev->handle, "_EJ0", &temp);
- if (ACPI_SUCCESS(status)) {
+ if (acpi_has_method(dev->handle, "_EJ0")) {
result = device_create_file(&dev->dev, &dev_attr_eject);
if (result)
return result;
@@ -616,9 +591,6 @@ end:
static void acpi_device_remove_files(struct acpi_device *dev)
{
- acpi_status status;
- acpi_handle temp;
-
if (dev->flags.power_manageable) {
device_remove_file(&dev->dev, &dev_attr_power_state);
if (dev->power.flags.power_resources)
@@ -629,20 +601,17 @@ static void acpi_device_remove_files(struct acpi_device *dev)
/*
* If device has _STR, remove 'description' file
*/
- status = acpi_get_handle(dev->handle, "_STR", &temp);
- if (ACPI_SUCCESS(status)) {
+ if (acpi_has_method(dev->handle, "_STR")) {
kfree(dev->pnp.str_obj);
device_remove_file(&dev->dev, &dev_attr_description);
}
/*
* If device has _EJ0, remove 'eject' file.
*/
- status = acpi_get_handle(dev->handle, "_EJ0", &temp);
- if (ACPI_SUCCESS(status))
+ if (acpi_has_method(dev->handle, "_EJ0"))
device_remove_file(&dev->dev, &dev_attr_eject);
- status = acpi_get_handle(dev->handle, "_SUN", &temp);
- if (ACPI_SUCCESS(status))
+ if (acpi_has_method(dev->handle, "_SUN"))
device_remove_file(&dev->dev, &dev_attr_sun);
if (dev->pnp.unique_id)
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 699b8ca..d0699ed 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -828,23 +828,14 @@ int acpiphp_eject_slot(struct acpiphp_slot *slot)
{
acpi_status status;
struct acpiphp_func *func;
- struct acpi_object_list arg_list;
- union acpi_object arg;
list_for_each_entry(func, &slot->funcs, sibling) {
/* We don't want to call _EJ0 on non-existing functions. */
if ((func->flags & FUNC_HAS_EJ0)) {
- /* _EJ0 method take one argument */
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = 1;
-
- status = acpi_evaluate_object(func->handle, "_EJ0", &arg_list, NULL);
- if (ACPI_FAILURE(status)) {
- warn("%s: _EJ0 failed\n", __func__);
+ status = acpi_evaluate_ej0(func->handle);
+ if (ACPI_FAILURE(status))
return -1;
- } else
+ else
break;
}
}
--
1.8.1.2
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [BUGFIX 9/9] ACPI: use new helper functions to simpilify code
2013-06-13 16:32 ` [BUGFIX 9/9] ACPI: use new helper functions to simpilify code Jiang Liu
@ 2013-06-13 17:34 ` Alexander E. Patrakov
2013-06-13 18:38 ` Rafael J. Wysocki
1 sibling, 0 replies; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-13 17:34 UTC (permalink / raw)
To: Jiang Liu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci, linux-kernel@vger.kernel.org
2013/6/13 Jiang Liu <jiang.liu@huawei.com>:
> Use new helper functions to simpilify ACPI dock, acpiphp code.
Not tested yet, just looking at the code
> - /*
> - * TBD: _EJD support.
> - */
You have removed this comment. Did it become invalid since it has been written?
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (8 preceding siblings ...)
2013-06-13 16:32 ` [BUGFIX 9/9] ACPI: use new helper functions to simpilify code Jiang Liu
@ 2013-06-13 17:43 ` Alexander E. Patrakov
2013-06-13 18:26 ` Alexander E. Patrakov
2013-06-13 18:42 ` Yinghai Lu
10 siblings, 1 reply; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-13 17:43 UTC (permalink / raw)
To: Jiang Liu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci, linux-kernel@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 1193 bytes --]
2013/6/13 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
>
> The first patch fixes issue 1, and the second patch fixes issue 2.
> These two patches, if accepted, should be material for stable branches
> too.
> Patch 3-9 are code improvement for ACPI and dock driver.
>
> I have found the root cause for issue three, but still working on
> solutions, and seems can't be solve in short time. So please help
> to review and test patches for issue 1) and 2) first.
>
> Hi Alexander, could you please help to test the whole patchset?
Tested on top of 3.10-rc5, with no other patches applied.
Unfortunately, lockdep complains on the second docking attempt in the
initially-undocked case. Please see the attached dmesg output.
I have not tested the initially-docked case yet, will do that in 10 minutes.
--
Alexander E. Patrakov
[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 102185 bytes --]
[ 0.004916] mce: CPU supports 7 MCE banks
[ 0.004982] CPU0: Thermal monitoring enabled (TM1)
[ 0.005053] 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.005316] Freeing SMP alternatives: 24k freed
[ 0.005381] ACPI: Core revision 20130328
[ 0.016560] ACPI: All ACPI Tables successfully acquired
[ 0.029183] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.039260] smpboot: CPU0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (fam: 06, model: 2a, stepping: 07)
[ 0.039462] TSC deadline timer enabled
[ 0.039476] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[ 0.039713] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[ 0.039794] ... version: 3
[ 0.039851] ... bit width: 48
[ 0.039909] ... generic registers: 4
[ 0.039966] ... value mask: 0000ffffffffffff
[ 0.040026] ... max period: 000000007fffffff
[ 0.040085] ... fixed-purpose events: 3
[ 0.040143] ... event mask: 000000070000000f
[ 0.049838] SMP alternatives: lockdep: fixing up alternatives
[ 0.063389] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 0.049916] smpboot: Booting Node 0, Processors #1
[ 0.065324] SMP alternatives: lockdep: fixing up alternatives
[ 0.065436] #2
[ 0.080886] SMP alternatives: lockdep: fixing up alternatives
[ 0.081001] #3
[ 0.094328] Brought up 4 CPUs
[ 0.094437] smpboot: Total of 4 processors activated (22349.49 BogoMIPS)
[ 0.098058] devtmpfs: initialized
[ 0.100641] PM: Registering ACPI NVS region [mem 0x9aebf000-0x9afbefff] (1048576 bytes)
[ 0.100977] xor: automatically using best checksumming function:
[ 0.110420] avx : 20552.000 MB/sec
[ 0.110655] NET: Registered protocol family 16
[ 0.111074] ACPI: bus type PCI registered
[ 0.111133] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.111266] dca service started, version 1.12.1
[ 0.111385] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[ 0.111469] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 0.134024] PCI: Using configuration type 1 for base access
[ 0.136135] bio: create slab <bio-0> at 0
[ 0.152599] raid6: sse2x1 7582 MB/s
[ 0.169645] raid6: sse2x2 9339 MB/s
[ 0.186693] raid6: sse2x4 10820 MB/s
[ 0.186750] raid6: using algorithm sse2x4 (10820 MB/s)
[ 0.186810] raid6: using ssse3x2 recovery algorithm
[ 0.186943] ACPI: Added _OSI(Module Device)
[ 0.187003] ACPI: Added _OSI(Processor Device)
[ 0.187062] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.187119] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.191781] ACPI: EC: Look up EC in DSDT
[ 0.196305] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.204922] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 0.212827] ACPI: SSDT 000000009ae70718 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.214153] ACPI: Dynamic OEM Table Load:
[ 0.214291] ACPI: SSDT (null) 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.218161] ACPI: SSDT 000000009ae71a98 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.219546] ACPI: Dynamic OEM Table Load:
[ 0.219683] ACPI: SSDT (null) 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.224078] ACPI: SSDT 000000009ae6fd98 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.225411] ACPI: Dynamic OEM Table Load:
[ 0.225548] ACPI: SSDT (null) 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.637203] ACPI: Interpreter enabled
[ 0.637267] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20130328/hwxface-568)
[ 0.637426] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130328/hwxface-568)
[ 0.637613] ACPI: (supports S0 S3 S4 S5)
[ 0.637671] ACPI: Using IOAPIC for interrupt routing
[ 0.637764] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.638739] ACPI: ACPI Dock Station Driver: 1 docks/bays found
[ 0.656862] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[ 0.657041] \_SB_.PCI0:_OSC invalid UUID
[ 0.657043] _OSC request data:1 8 0
[ 0.658081] PCI host bridge to bus 0000:00
[ 0.658142] pci_bus 0000:00: root bus resource [bus 00-fe]
[ 0.658203] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
[ 0.658265] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
[ 0.658327] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[ 0.658390] pci_bus 0000:00: root bus resource [mem 0x9fa00000-0xfeafffff]
[ 0.658487] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[ 0.658697] pci 0000:00:02.0: [8086:0126] type 00 class 0x030000
[ 0.658713] pci 0000:00:02.0: reg 10: [mem 0xd0000000-0xd03fffff 64bit]
[ 0.658721] pci 0000:00:02.0: reg 18: [mem 0xa0000000-0xafffffff 64bit pref]
[ 0.658727] pci 0000:00:02.0: reg 20: [io 0xa000-0xa03f]
[ 0.658915] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[ 0.658953] pci 0000:00:16.0: reg 10: [mem 0xd9404000-0xd940400f 64bit]
[ 0.659089] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 0.659273] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[ 0.659569] pci 0000:00:1a.0: reg 10: [mem 0xd9409000-0xd94093ff]
[ 0.661277] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 0.661371] pci 0000:00:1a.0: System wakeup disabled by ACPI
[ 0.661544] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[ 0.661573] pci 0000:00:1b.0: reg 10: [mem 0xd9400000-0xd9403fff 64bit]
[ 0.661709] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.661761] pci 0000:00:1b.0: System wakeup disabled by ACPI
[ 0.661881] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[ 0.662024] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.662083] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 0.662208] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[ 0.662354] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 0.662414] pci 0000:00:1c.1: System wakeup disabled by ACPI
[ 0.662534] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[ 0.662680] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.662742] pci 0000:00:1c.2: System wakeup disabled by ACPI
[ 0.662860] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[ 0.663005] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.663072] pci 0000:00:1c.3: System wakeup disabled by ACPI
[ 0.663195] pci 0000:00:1c.6: [8086:1c1c] type 01 class 0x060400
[ 0.663350] pci 0000:00:1c.6: PME# supported from D0 D3hot D3cold
[ 0.663422] pci 0000:00:1c.6: System wakeup disabled by ACPI
[ 0.663553] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[ 0.663844] pci 0000:00:1d.0: reg 10: [mem 0xd9408000-0xd94083ff]
[ 0.665556] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 0.665623] pci 0000:00:1d.0: System wakeup disabled by ACPI
[ 0.665744] pci 0000:00:1f.0: [8086:1c4b] type 00 class 0x060100
[ 0.665985] pci 0000:00:1f.2: [8086:282a] type 00 class 0x010400
[ 0.666022] pci 0000:00:1f.2: reg 10: [io 0xa088-0xa08f]
[ 0.666037] pci 0000:00:1f.2: reg 14: [io 0xa094-0xa097]
[ 0.666052] pci 0000:00:1f.2: reg 18: [io 0xa080-0xa087]
[ 0.666067] pci 0000:00:1f.2: reg 1c: [io 0xa090-0xa093]
[ 0.666081] pci 0000:00:1f.2: reg 20: [io 0xa060-0xa07f]
[ 0.666097] pci 0000:00:1f.2: reg 24: [mem 0xd9407000-0xd94077ff]
[ 0.666196] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.666310] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[ 0.666338] pci 0000:00:1f.3: reg 10: [mem 0xd9405000-0xd94050ff 64bit]
[ 0.666383] pci 0000:00:1f.3: reg 20: [io 0xa040-0xa05f]
[ 0.666845] pci 0000:02:00.0: [8086:0091] type 00 class 0x028000
[ 0.667090] pci 0000:02:00.0: reg 10: [mem 0xd8400000-0xd8401fff 64bit]
[ 0.668598] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[ 0.668843] pci 0000:02:00.0: System wakeup disabled by ACPI
[ 0.670598] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.670662] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.670668] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.670677] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.670830] pci 0000:03:00.0: [10ec:5209] type 00 class 0xff0000
[ 0.670859] pci 0000:03:00.0: reg 10: [mem 0xd7400000-0xd7400fff]
[ 0.671067] pci 0000:03:00.0: supports D1 D2
[ 0.671069] pci 0000:03:00.0: PME# supported from D1 D2 D3hot
[ 0.671119] pci 0000:03:00.0: System wakeup disabled by ACPI
[ 0.672477] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.672567] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.672572] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.672582] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.672787] pci 0000:04:00.0: [1033:0194] type 00 class 0x0c0330
[ 0.672825] pci 0000:04:00.0: reg 10: [mem 0xd6400000-0xd6401fff 64bit]
[ 0.673023] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[ 0.673080] pci 0000:04:00.0: System wakeup disabled by ACPI
[ 0.674549] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.674613] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.674620] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.674630] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.674836] pci 0000:05:00.0: [10ec:8168] type 00 class 0x020000
[ 0.674911] pci 0000:05:00.0: reg 10: [io 0x6000-0x60ff]
[ 0.675045] pci 0000:05:00.0: reg 18: [mem 0xd3404000-0xd3404fff 64bit pref]
[ 0.675127] pci 0000:05:00.0: reg 20: [mem 0xd3400000-0xd3403fff 64bit pref]
[ 0.675500] pci 0000:05:00.0: supports D1 D2
[ 0.675501] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.675639] pci 0000:05:00.0: System wakeup disabled by ACPI
[ 0.677545] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.677624] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.677630] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.677640] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.677793] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
[ 0.677911] acpiphp: Slot [1] registered
[ 0.678024] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.678088] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.678093] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.678103] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.678212] \_SB_.PCI0:_OSC invalid UUID
[ 0.678214] _OSC request data:1 1f 0
[ 0.678219] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[ 0.678295] acpi PNP0A08:00: Unable to request _OSC control (_OSC support mask: 0x08)
[ 0.680055] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.680741] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.681369] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.682000] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.682629] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.683303] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 0.684024] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.684654] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.686037] ACPI: Enabled 6 GPEs in block 00 to 3F
[ 0.686181] acpi root: \_SB_.PCI0 notify handler is installed
[ 0.686331] Found 1 acpi root devices
[ 0.686459] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.686860] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.686942] vgaarb: loaded
[ 0.686997] vgaarb: bridge control possible 0000:00:02.0
[ 0.687133] SCSI subsystem initialized
[ 0.687191] ACPI: bus type ATA registered
[ 0.687331] libata version 3.00 loaded.
[ 0.687344] ACPI: bus type USB registered
[ 0.687426] usbcore: registered new interface driver usbfs
[ 0.687499] usbcore: registered new interface driver hub
[ 0.687590] usbcore: registered new device driver usb
[ 0.687694] PCI: Using ACPI for IRQ routing
[ 0.695849] PCI: pci_cache_line_size set to 64 bytes
[ 0.696033] e820: reserve RAM buffer [mem 0x0008f400-0x0008ffff]
[ 0.696041] e820: reserve RAM buffer [mem 0x9ae3f000-0x9bffffff]
[ 0.696043] e820: reserve RAM buffer [mem 0x9b000000-0x9bffffff]
[ 0.696045] e820: reserve RAM buffer [mem 0x25fe00000-0x25fffffff]
[ 0.696393] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.696812] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 0.698896] Switching to clocksource hpet
[ 0.705552] pnp: PnP ACPI init
[ 0.705638] ACPI: bus type PNP registered
[ 0.705808] pnp 00:00: [dma 4]
[ 0.705862] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.705900] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[ 0.706022] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[ 0.706076] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.706151] system 00:04: [io 0x0680-0x069f] has been reserved
[ 0.706214] system 00:04: [io 0x1000-0x100f] has been reserved
[ 0.706276] system 00:04: [io 0xffff] has been reserved
[ 0.706337] system 00:04: [io 0xffff] has been reserved
[ 0.706397] system 00:04: [io 0x0400-0x0453] has been reserved
[ 0.706459] system 00:04: [io 0x0458-0x047f] has been reserved
[ 0.706522] system 00:04: [io 0x0500-0x057f] has been reserved
[ 0.706584] system 00:04: [io 0x164e-0x164f] has been reserved
[ 0.706645] system 00:04: [io 0x2000] has been reserved
[ 0.706705] system 00:04: [io 0x2004] has been reserved
[ 0.706768] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.706811] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.706877] system 00:06: [io 0x0454-0x0457] has been reserved
[ 0.706941] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 0.706991] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 (active)
[ 0.707050] pnp 00:08: Plug and Play ACPI device, IDs SNY9015 PNP0f13 (active)
[ 0.707240] system 00:09: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.707304] system 00:09: [mem 0xfed10000-0xfed17fff] has been reserved
[ 0.707367] system 00:09: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.707429] system 00:09: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.707492] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[ 0.707554] system 00:09: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 0.707617] system 00:09: [mem 0xfed90000-0xfed93fff] has been reserved
[ 0.707680] system 00:09: [mem 0xff000000-0xffffffff] could not be reserved
[ 0.707744] system 00:09: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 0.707807] system 00:09: [mem 0x9fa00000-0x9fa00fff] has been reserved
[ 0.707871] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.708662] system 00:0a: [mem 0x20000000-0x201fffff] could not be reserved
[ 0.708733] system 00:0a: [mem 0x40000000-0x401fffff] could not be reserved
[ 0.708803] system 00:0a: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.708825] pnp: PnP ACPI: found 11 devices
[ 0.708883] ACPI: bus type PNP unregistered
[ 0.717085] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.717149] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.717216] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.717283] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.717366] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.717428] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.717495] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.718050] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.718133] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.718194] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.718261] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.718329] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.718411] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.718473] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.718541] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.718607] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.718690] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.718753] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.718820] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.718888] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.719399] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
[ 0.719401] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
[ 0.719403] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[ 0.719405] pci_bus 0000:00: resource 7 [mem 0x9fa00000-0xfeafffff]
[ 0.719407] pci_bus 0000:02: resource 0 [io 0x9000-0x9fff]
[ 0.719409] pci_bus 0000:02: resource 1 [mem 0xd8400000-0xd93fffff]
[ 0.719411] pci_bus 0000:02: resource 2 [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.719412] pci_bus 0000:03: resource 0 [io 0x8000-0x8fff]
[ 0.719414] pci_bus 0000:03: resource 1 [mem 0xd7400000-0xd83fffff]
[ 0.719416] pci_bus 0000:03: resource 2 [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.719418] pci_bus 0000:04: resource 0 [io 0x7000-0x7fff]
[ 0.719419] pci_bus 0000:04: resource 1 [mem 0xd6400000-0xd73fffff]
[ 0.719421] pci_bus 0000:04: resource 2 [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.719423] pci_bus 0000:05: resource 0 [io 0x6000-0x6fff]
[ 0.719424] pci_bus 0000:05: resource 1 [mem 0xd5400000-0xd63fffff]
[ 0.719426] pci_bus 0000:05: resource 2 [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.719428] pci_bus 0000:08: resource 0 [io 0x3000-0x5fff]
[ 0.719429] pci_bus 0000:08: resource 1 [mem 0xb0000000-0xcfffffff]
[ 0.719431] pci_bus 0000:08: resource 2 [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.719478] NET: Registered protocol family 2
[ 0.719984] TCP established hash table entries: 65536 (order: 8, 1048576 bytes)
[ 0.720471] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
[ 0.723958] TCP: Hash tables configured (established 65536 bind 65536)
[ 0.724088] TCP: reno registered
[ 0.724193] UDP hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.724736] UDP-Lite hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.725450] NET: Registered protocol family 1
[ 0.725525] pci 0000:00:02.0: Boot video device
[ 0.759855] PCI: CLS 64 bytes, default 64
[ 0.760011] Unpacking initramfs...
[ 0.844727] Freeing initrd memory: 5360k freed
[ 0.845495] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.845564] software IO TLB [mem 0x96e3f000-0x9ae3f000] (64MB) mapped at [ffff880096e3f000-ffff88009ae3efff]
[ 0.845678] Simple Boot Flag at 0x44 set to 0x1
[ 0.846357] audit: initializing netlink socket (disabled)
[ 0.846448] type=2000 audit(1371145129.823:1): initialized
[ 0.867059] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.869694] VFS: Disk quotas dquot_6.5.2
[ 0.869805] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.870456] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.870823] NILFS version 2 loaded
[ 0.871074] bio: create slab <bio-1> at 1
[ 0.871407] Btrfs loaded
[ 0.871470] msgmni has been set to 15780
[ 0.872167] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.872274] io scheduler noop registered
[ 0.872332] io scheduler deadline registered
[ 0.872456] io scheduler cfq registered (default)
[ 0.873017] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.873160] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.873241] cpcihp_zt5550: ZT5550 CompactPCI Hot Plug Driver version: 0.2
[ 0.873326] cpcihp_generic: Generic port I/O CompactPCI Hot Plug Driver version: 0.1
[ 0.873401] cpcihp_generic: not configured, disabling.
[ 0.873479] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.876235] acpiphp_ibm: ibm_acpiphp_init: acpi_walk_namespace failed
[ 0.876706] intel_idle: MWAIT substates: 0x21120
[ 0.876708] intel_idle: v0.4 model 0x2A
[ 0.876709] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 0.876864] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.877107] ACPI: AC Adapter [ADP1] (off-line)
[ 0.877425] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0
[ 0.877536] ACPI: Lid Switch [LID0]
[ 0.877643] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1
[ 0.877749] ACPI: Power Button [PWRB]
[ 0.877910] ACPI: Requesting acpi_cpufreq
[ 0.885442] thermal LNXTHERM:00: registered as thermal_zone0
[ 0.885506] ACPI: Thermal Zone [TZ01] (59 C)
[ 0.885686] ioatdma: Intel(R) QuickData Technology Driver 4.00
[ 0.885882] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.890908] loop: module loaded
[ 0.891389] mei_me 0000:00:16.0: setting latency timer to 64
[ 0.891499] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[ 0.891853] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.891945] ACPI: Battery Slot [BAT1] (battery present)
[ 0.892118] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.892208] ACPI: Battery Slot [BAT2] (battery absent)
[ 0.896540] Loading iSCSI transport class v2.0-870.
[ 0.896743] iscsi: registered transport (tcp)
[ 0.896867] ahci 0000:00:1f.2: version 3.0
[ 0.897042] ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
[ 0.897115] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3 impl RAID mode
[ 0.897194] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part apst
[ 0.897284] ahci 0000:00:1f.2: setting latency timer to 64
[ 0.898275] scsi0 : ahci
[ 0.898551] scsi1 : ahci
[ 0.898718] scsi2 : ahci
[ 0.898872] scsi3 : ahci
[ 0.899021] scsi4 : ahci
[ 0.899191] scsi5 : ahci
[ 0.899317] ata1: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407100 irq 41
[ 0.899405] ata2: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407180 irq 41
[ 0.899480] ata3: DUMMY
[ 0.899534] ata4: DUMMY
[ 0.899609] ata5: DUMMY
[ 0.899664] ata6: DUMMY
[ 0.899937] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[ 0.902934] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.903184] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.903434] mousedev: PS/2 mouse device common for all mice
[ 0.903948] rtc_cmos 00:05: RTC can wake from S4
[ 0.904268] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[ 0.904366] rtc_cmos 00:05: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 0.904496] Intel P-state driver initializing.
[ 0.904575] Intel pstate controlling: cpu 0
[ 0.904707] Intel pstate controlling: cpu 1
[ 0.904781] Intel pstate controlling: cpu 2
[ 0.904857] Intel pstate controlling: cpu 3
[ 0.905144] cpuidle: using governor ladder
[ 0.905687] cpuidle: using governor menu
[ 0.905751] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.905828] hidraw: raw HID events driver (C) Jiri Kosina
[ 0.906124] TCP: cubic registered
[ 0.906182] Initializing XFRM netlink socket
[ 0.906416] NET: Registered protocol family 10
[ 0.906892] NET: Registered protocol family 17
[ 0.907033] Key type dns_resolver registered
[ 0.907500] PM: Hibernation image not present or could not be loaded.
[ 0.907521] registered taskstats version 1
[ 0.908681] rtc_cmos 00:05: setting system clock to 2013-06-13 17:38:50 UTC (1371145130)
[ 0.922369] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[ 1.204774] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.204948] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.205694] ata1.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.205809] ata1.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.206053] ata2.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.206159] ata2.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.206545] ata1.00: configured for UDMA/133
[ 1.206764] ata2.00: configured for UDMA/133
[ 1.207400] scsi 0:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.208555] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.208964] sd 0:0:0:0: [sda] Write Protect is off
[ 1.209029] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.209087] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.209119] scsi 1:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.209345] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.209600] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.209691] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.209742] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.210563] sda: sda1 sda2
[ 1.210567] sdb: unknown partition table
[ 1.211060] sda: p2 size 489641984 extends beyond EOD, enabling native capacity
[ 1.211472] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 1.213484] sda: sda1 sda2
[ 1.213756] sda: p2 size 489641984 extends beyond EOD, truncated
[ 1.214338] sd 0:0:0:0: [sda] Attached SCSI disk
[ 1.215404] Freeing unused kernel memory: 980k freed
[ 1.215576] Write protecting the kernel read-only data: 12288k
[ 1.218916] Freeing unused kernel memory: 1604k freed
[ 1.221583] Freeing unused kernel memory: 1256k freed
[ 1.248136] dracut: dracut-027-r3
[ 1.270898] device-mapper: uevent: version 1.0.3
[ 1.271073] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
[ 1.275054] systemd-udevd[168]: starting version 204
[ 1.339167] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.339356] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 1
[ 1.339712] xhci_hcd 0000:04:00.0: irq 42 for MSI/MSI-X
[ 1.339720] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[ 1.339726] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[ 1.339733] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[ 1.339740] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[ 1.339968] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.340149] ehci-pci: EHCI PCI platform driver
[ 1.340385] ehci-pci 0000:00:1a.0: setting latency timer to 64
[ 1.341081] xHCI xhci_add_endpoint called for root hub
[ 1.341084] xHCI xhci_check_bandwidth called for root hub
[ 1.341388] hub 1-0:1.0: USB hub found
[ 1.341542] hub 1-0:1.0: 2 ports detected
[ 1.342564] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 1.342600] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.342699] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 2
[ 1.342728] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 3
[ 1.342885] ehci-pci 0000:00:1a.0: debug port 2
[ 1.344319] xHCI xhci_add_endpoint called for root hub
[ 1.344323] xHCI xhci_check_bandwidth called for root hub
[ 1.344428] hub 3-0:1.0: USB hub found
[ 1.345505] hub 3-0:1.0: 2 ports detected
[ 1.346904] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 1.346951] ehci-pci 0000:00:1a.0: irq 23, io mem 0xd9409000
[ 1.352827] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 1.354460] hub 2-0:1.0: USB hub found
[ 1.354558] hub 2-0:1.0: 2 ports detected
[ 1.355522] ehci-pci 0000:00:1d.0: setting latency timer to 64
[ 1.355537] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 1.355610] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[ 1.355705] ehci-pci 0000:00:1d.0: debug port 2
[ 1.359675] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 1.359709] ehci-pci 0000:00:1d.0: irq 20, io mem 0xd9408000
[ 1.364850] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 1.365972] hub 4-0:1.0: USB hub found
[ 1.366094] hub 4-0:1.0: 2 ports detected
[ 1.390776] md: bind<sdb>
[ 1.599238] md: bind<sda>
[ 1.607850] md: bind<sdb>
[ 1.608479] md: bind<sda>
[ 1.610361] md: raid0 personality registered for level 0
[ 1.610765] md/raid0:md126: md_size is 500129792 sectors.
[ 1.610826] md: RAID0 configuration for md126 - 1 zone
[ 1.610884] md: zone0=[sda/sdb]
[ 1.611056] zone-offset= 0KB, device-offset= 0KB, size= 250065152KB
[ 1.611257] md126: detected capacity change from 0 to 256066453504
[ 1.612503] md126: p1 p2
[ 1.657221] usb 2-1: new high-speed USB device number 2 using ehci-pci
[ 1.685108] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x122c00, board id: 1690, fw id: 934878
[ 1.720334] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[ 1.773698] hub 2-1:1.0: USB hub found
[ 1.773862] hub 2-1:1.0: 6 ports detected
[ 1.847715] tsc: Refined TSC clocksource calibration: 2793.655 MHz
[ 1.847817] Switching to clocksource tsc
[ 1.877513] usb 4-1: new high-speed USB device number 2 using ehci-pci
[ 1.971641] dracut: luksOpen /dev/md126p2 luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521
[ 1.993347] hub 4-1:1.0: USB hub found
[ 1.993477] hub 4-1:1.0: 8 ports detected
[ 2.058009] usb 2-1.1: new full-speed USB device number 3 using ehci-pci
[ 2.220179] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[ 2.376385] usb 2-1.3: new high-speed USB device number 5 using ehci-pci
[ 2.547655] usb 2-1.4: new high-speed USB device number 6 using ehci-pci
[ 2.636657] usb 2-1.4: config 1 has an invalid interface number: 8 but max is 3
[ 2.636777] usb 2-1.4: config 1 has no interface number 1
[ 8.211310] sha256_ssse3: Using AVX optimized SHA-256 implementation
[ 8.212701] bio: create slab <bio-2> at 2
[ 8.374184] dracut: Scanning devices dm-0 for LVM logical volumes vaio/gentoo64a-root
[ 8.385076] dracut: inactive '/dev/vaio/gentoo64a-root' [16.00 GiB] inherit
[ 8.385215] dracut: inactive '/dev/vaio/portage' [12.00 GiB] inherit
[ 8.385343] dracut: inactive '/dev/vaio/home' [180.00 GiB] inherit
[ 8.428078] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 8.440295] dracut: Checking ext4: /dev/vaio/gentoo64a-root
[ 8.440390] dracut: issuing e2fsck -a /dev/vaio/gentoo64a-root
[ 8.492203] dracut: /dev/vaio/gentoo64a-root: clean, 655118/1048576 files, 3909714/4194304 blocks
[ 8.494158] dracut: Mounting /dev/vaio/gentoo64a-root with -o noatime,ro
[ 8.498436] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 8.505745] dracut: Mounted root filesystem /dev/mapper/vaio-gentoo64a--root
[ 8.520159] dracut: Switching root
[ 8.839095] systemd-udevd[629]: starting version 204
[ 8.921011] ACPI Warning: 0x000000000000a040-0x000000000000a05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251)
[ 8.921018] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 8.922651] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20130328/utaddress-251)
[ 8.922657] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 8.922661] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 8.922665] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 8.922666] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 8.922669] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 8.922670] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 8.922673] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 8.922674] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 8.923132] rtsx_pci 0000:03:00.0: irq 47 for MSI/MSI-X
[ 8.923149] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 47
[ 8.924738] Linux agpgart interface v0.103
[ 8.930907] [drm] Initialized drm 1.1.0 20060810
[ 8.935131] cfg80211: Calling CRDA to update world regulatory domain
[ 8.936663] sony_laptop: Sony Notebook Control Driver v0.6
[ 8.939489] input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input4
[ 8.939933] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input5
[ 8.942629] Intel(R) Wireless WiFi driver for Linux, in-tree:
[ 8.942633] Copyright(c) 2003-2013 Intel Corporation
[ 8.943118] iwlwifi 0000:02:00.0: irq 48 for MSI/MSI-X
[ 8.948197] [drm] Memory usable by graphics device = 2048M
[ 8.948255] i915 0000:00:02.0: setting latency timer to 64
[ 8.948804] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[ 8.964931] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 8.964935] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[ 8.964938] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[ 8.964940] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[ 8.964942] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[ 8.964945] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[ 8.965093] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 8.966654] sony_laptop: brightness ignored, must be controlled by ACPI video driver
[ 8.991604] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 8.994661] i915 0000:00:02.0: irq 49 for MSI/MSI-X
[ 8.994675] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 8.994676] [drm] Driver supports precise vblank timestamp query.
[ 8.995168] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 9.001137] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 9.001535] r8169 0000:05:00.0: irq 50 for MSI/MSI-X
[ 9.002121] r8169 0000:05:00.0 eth0: RTL8168evl/8111evl at 0xffffc9001145a000, 54:42:49:9a:df:1e, XID 0c900800 IRQ 50
[ 9.002125] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 9.003544] usbcore: registered new interface driver usbserial
[ 9.003562] usbcore: registered new interface driver usbserial_generic
[ 9.005013] usbserial: USB Serial support registered for generic
[ 9.012878] usbcore: registered new interface driver qcserial
[ 9.012912] usbserial: USB Serial support registered for Qualcomm USB modem
[ 9.013903] qcserial 2-1.4:1.0: Qualcomm USB modem converter detected
[ 9.018494] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[ 9.021473] Bluetooth: Core ver 2.16
[ 9.021495] NET: Registered protocol family 31
[ 9.021497] Bluetooth: HCI device and connection manager initialized
[ 9.021546] Bluetooth: HCI socket layer initialized
[ 9.021551] Bluetooth: L2CAP socket layer initialized
[ 9.021564] Bluetooth: SCO socket layer initialized
[ 9.021784] qcserial 2-1.4:1.2: Qualcomm USB modem converter detected
[ 9.023327] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[ 9.024660] qcserial 2-1.4:1.3: Qualcomm USB modem converter detected
[ 9.025279] media: Linux media interface: v0.10
[ 9.025966] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[ 9.027004] usbcore: registered new interface driver btusb
[ 9.028297] Linux video capture interface: v2.00
[ 9.033163] uvcvideo: Found UVC 1.00 device USB2.0 Camera (05c8:0318)
[ 9.035969] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1a.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input6
[ 9.036715] usbcore: registered new interface driver uvcvideo
[ 9.036717] USB Video Class driver (1.1.1)
[ 9.042955] [drm] Wrong MCH_SSKPD value: 0x16040307
[ 9.042958] [drm] This can cause pipe underruns and display issues.
[ 9.042960] [drm] Please upgrade your BIOS to fix this.
[ 9.049360] input: PC Speaker as /devices/platform/pcspkr/input/input7
[ 9.052139] Error: Driver 'pcspkr' is already registered, aborting...
[ 9.058442] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 9.059437] fbcon: inteldrmfb (fb0) is primary device
[ 9.059630] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060111] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[ 9.060243] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060295] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060528] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[ 9.060594] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060644] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060885] microcode: CPU2 updated to revision 0x28, date = 2012-04-24
[ 9.060896] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 9.060951] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 9.061221] microcode: CPU3 updated to revision 0x28, date = 2012-04-24
[ 9.061236] perf_event_intel: PEBS enabled due to microcode update
[ 9.061935] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[ 9.110506] iTCO_vendor_support: vendor-support=0
[ 9.112176] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[ 9.112214] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[ 9.151939] cfg80211: World regulatory domain updated:
[ 9.151941] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 9.151943] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.151945] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.151946] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 9.151948] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.151949] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.153635] systemd-udevd[653]: renamed network interface wlan0 to wlp2s0
[ 9.159619] systemd-udevd[652]: renamed network interface eth0 to enp5s0
[ 10.738650] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
[ 10.845725] Console: switching to colour frame buffer device 240x67
[ 10.850618] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[ 10.850620] i915 0000:00:02.0: registered panic notifier
[ 10.851199] [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.
[ 10.851212] [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.
[ 10.851226] [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.
[ 10.851239] [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.
[ 10.851252] [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.
[ 10.851265] [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.
[ 10.851277] [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.
[ 10.853297] acpi device:3e: registered as cooling_device5
[ 10.853612] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 10.853706] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:09/input/input8
[ 10.854064] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[ 10.854404] snd_hda_intel 0000:00:1b.0: irq 51 for MSI/MSI-X
[ 10.866813] hda_codec: ALC275: SKU not ready 0x411111f0
[ 10.868484] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input9
[ 10.875241] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[ 10.875396] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[ 11.626699] EXT4-fs (dm-1): re-mounted. Opts: (null)
[ 11.702113] EXT4-fs (md126p1): mounted filesystem with ordered data mode. Opts: (null)
[ 11.705841] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 11.710993] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[ 12.114000] microcode: Microcode Update Driver: v2.00 removed.
[ 12.588207] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 12.595246] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 12.971497] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 12.978383] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 13.176935] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 14.689050] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 14.689054] Bluetooth: BNEP filters: protocol multicast
[ 14.689064] Bluetooth: BNEP socket layer initialized
[ 14.852781] Bluetooth: RFCOMM TTY layer initialized
[ 14.852795] Bluetooth: RFCOMM socket layer initialized
[ 14.852796] Bluetooth: RFCOMM ver 1.11
[ 15.076797] zram: module is from the staging directory, the quality is unknown, you have been warned.
[ 15.083684] zram: Created 4 device(s) ...
[ 15.094631] Adding 1572860k swap on /dev/zram0. Priority:10 extents:1 across:1572860k SSFS
[ 15.101210] Adding 1572860k swap on /dev/zram1. Priority:10 extents:1 across:1572860k SSFS
[ 15.107503] Adding 1572860k swap on /dev/zram2. Priority:10 extents:1 across:1572860k SSFS
[ 15.114249] Adding 1572860k swap on /dev/zram3. Priority:10 extents:1 across:1572860k SSFS
[ 16.435419] wlp2s0: authenticate with 08:60:6e:cc:a2:94
[ 16.441941] wlp2s0: send auth to 08:60:6e:cc:a2:94 (try 1/3)
[ 16.568116] wlp2s0: authenticated
[ 16.568773] wlp2s0: associate with 08:60:6e:cc:a2:94 (try 1/3)
[ 16.569574] wlp2s0: RX AssocResp from 08:60:6e:cc:a2:94 (capab=0x11 status=0 aid=1)
[ 16.572561] wlp2s0: associated
[ 16.572622] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 25.947796] ACPI: \_SB_.DOCK: docking
[ 25.948031] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[ 25.948076] acpiphp_glue: bus exists... trim
[ 25.948643] ACPI: Device does not support D3cold
[ 25.948782] ACPI: Device does not support D3cold
[ 25.949135] ACPI: Device does not support D3cold
[ 25.949278] ACPI: Device does not support D3cold
[ 25.949974] ACPI: Device does not support D3cold
[ 25.950563] ACPI: Device does not support D3cold
[ 25.950840] ACPI: Device does not support D3cold
[ 25.950940] ACPI: Device does not support D3cold
[ 25.952213] ACPI: Device does not support D3cold
[ 25.953923] ACPI: Device does not support D3cold
[ 25.954387] ACPI: Device does not support D3cold
[ 25.955502] ACPI: Device does not support D3cold
[ 25.955660] ACPI: Device does not support D3cold
[ 25.956162] ACPI: Device does not support D3cold
[ 25.956383] ACPI: Device does not support D3cold
[ 25.956528] ACPI: Device does not support D3cold
[ 25.956682] ACPI: Device does not support D3cold
[ 25.956913] ACPI: Device does not support D3cold
[ 25.957546] ACPI: Device does not support D3cold
[ 25.959385] ACPI: Device does not support D3cold
[ 25.959989] ACPI: Device does not support D3cold
[ 25.960909] ACPI: Device does not support D3cold
[ 25.961154] ACPI: Device does not support D3cold
[ 25.961613] ACPI: Device does not support D3cold
[ 25.961790] ACPI: Device does not support D3cold
[ 25.961927] ACPI: Device does not support D3cold
[ 25.961975] ACPI: Device does not support D3cold
[ 25.962019] ACPI: Device does not support D3cold
[ 25.962064] ACPI: Device does not support D3cold
[ 25.962109] ACPI: Device does not support D3cold
[ 25.962155] ACPI: Device does not support D3cold
[ 25.968539] [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.
[ 25.968574] [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.
[ 25.968661] [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.
[ 25.968917] [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.
[ 25.968973] [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.
[ 25.969017] [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.
[ 25.969071] [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.
[ 25.969342] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[ 25.969520] pci 0000:08:00.0: supports D1 D2
[ 25.969522] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.971908] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[ 25.973283] acpiphp: Slot [1-1] registered
[ 25.973317] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[ 25.973705] acpiphp: Slot [2] registered
[ 25.973731] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[ 25.975319] acpiphp: Slot [3] registered
[ 25.975394] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[ 25.975577] pci 0000:0a:00.0: supports D1 D2
[ 25.975580] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.976436] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[ 25.976612] pci 0000:0a:03.0: supports D1 D2
[ 25.976614] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.977948] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[ 25.978111] pci 0000:0a:04.0: supports D1 D2
[ 25.978112] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.980861] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 25.980875] pci 0000:08:00.0: bridge window [io 0x3000-0x5fff]
[ 25.980882] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc03fffff]
[ 25.980894] pci 0000:08:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.981039] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 25.981053] pci 0000:0a:00.0: bridge window [mem 0xc0300000-0xc03fffff]
[ 25.981193] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 25.984614] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[ 25.984866] pci 0000:14:00.0: supports D1 D2
[ 25.984869] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.986071] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 25.986084] pci 0000:0a:04.0: bridge window [io 0x3000-0x5fff]
[ 25.986092] pci 0000:0a:04.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 25.986105] pci 0000:0a:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.987404] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[ 25.987636] pci 0000:15:03.0: supports D1 D2
[ 25.987638] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.989334] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[ 25.989599] pci 0000:15:04.0: supports D1 D2
[ 25.989602] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.991355] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 25.991374] pci 0000:14:00.0: bridge window [io 0x3000-0x5fff]
[ 25.991384] pci 0000:14:00.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 25.991402] pci 0000:14:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.991788] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[ 25.991824] acpiphp: Slot [1-2] registered
[ 25.991851] acpiphp_glue: sibling found, but _SUN doesn't match!
[ 25.991908] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[ 25.991976] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[ 25.992025] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[ 25.992057] pci 0000:16:00.0: reg 20: [io 0x0000-0x00ff]
[ 25.992119] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[ 25.992289] pci 0000:16:00.0: supports D1 D2
[ 25.993742] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[ 25.993747] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[ 25.993748] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:16:00.0
[ 25.993935] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[ 25.994002] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[ 25.994333] pci 0000:16:00.1: supports D1 D2
[ 25.994653] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 25.994671] pci 0000:15:03.0: bridge window [io 0x5000-0x5fff]
[ 25.994682] pci 0000:15:03.0: bridge window [mem 0xc0200000-0xc02fffff]
[ 25.994700] pci 0000:15:03.0: bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[ 25.995126] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[ 25.995475] pci 0000:17:00.0: supports D1 D2
[ 25.995478] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.995785] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 25.995805] pci 0000:15:04.0: bridge window [io 0x3000-0x4fff]
[ 25.995815] pci 0000:15:04.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 25.995833] pci 0000:15:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.996206] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[ 25.996562] pci 0000:18:00.0: supports D1 D2
[ 25.996564] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.996809] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[ 25.997124] pci 0000:18:01.0: supports D1 D2
[ 25.997126] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.998448] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[ 25.998786] pci 0000:18:02.0: supports D1 D2
[ 25.998789] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.999289] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[ 25.999628] pci 0000:18:03.0: supports D1 D2
[ 25.999630] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.999846] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[ 26.000161] pci 0000:18:04.0: supports D1 D2
[ 26.000162] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 26.000460] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 26.000480] pci 0000:17:00.0: bridge window [io 0x3000-0x4fff]
[ 26.000491] pci 0000:17:00.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 26.000538] pci 0000:17:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 26.000771] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[ 26.000795] acpiphp: Slot [1-3] registered
[ 26.000878] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[ 26.000936] pci 0000:19:00.0: reg 10: [io 0x0000-0x00ff]
[ 26.001038] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[ 26.001100] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[ 26.001392] pci 0000:19:00.0: supports D1 D2
[ 26.001393] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 26.001645] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 26.001665] pci 0000:18:00.0: bridge window [io 0x4000-0x4fff]
[ 26.001694] pci 0000:18:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 26.001922] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[ 26.001940] acpiphp: Slot [1-4] registered
[ 26.002022] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[ 26.002079] pci 0000:1a:00.0: reg 10: [io 0x8000-0x8007]
[ 26.002119] pci 0000:1a:00.0: reg 14: [io 0x8040-0x8043]
[ 26.002159] pci 0000:1a:00.0: reg 18: [io 0x8200-0x8207]
[ 26.002198] pci 0000:1a:00.0: reg 1c: [io 0x8800-0x8803]
[ 26.002238] pci 0000:1a:00.0: reg 20: [io 0x900000-0x90000f]
[ 26.002277] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[ 26.002562] pci 0000:1a:00.0: supports D1
[ 26.002563] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[ 26.002770] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 26.002790] pci 0000:18:01.0: bridge window [io 0x3000-0x3fff]
[ 26.002801] pci 0000:18:01.0: bridge window [mem 0xc0100000-0xc01fffff]
[ 26.003048] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[ 26.003065] acpiphp: Slot [1-5] registered
[ 26.003156] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[ 26.003233] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[ 26.003692] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[ 26.005610] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 26.005645] pci 0000:18:02.0: bridge window [mem 0xc0000000-0xc00fffff]
[ 26.007446] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 26.007748] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 26.008343] pci 0000:08:00.0: BAR 15: can't assign mem pref (size 0x28000000)
[ 26.008346] pci 0000:08:00.0: BAR 14: assigned [mem 0xb0000000-0xc06fffff]
[ 26.008348] pci 0000:08:00.0: BAR 13: can't assign io (size 0xb000)
[ 26.008352] pci 0000:0a:04.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 26.008354] pci 0000:0a:00.0: BAR 14: assigned [mem 0xb0000000-0xb01fffff]
[ 26.008356] pci 0000:0a:00.0: BAR 15: assigned [mem 0xb0200000-0xb03fffff 64bit pref]
[ 26.008358] pci 0000:0a:03.0: BAR 14: assigned [mem 0xb0400000-0xb05fffff]
[ 26.008360] pci 0000:0a:03.0: BAR 15: assigned [mem 0xb0600000-0xb07fffff 64bit pref]
[ 26.008362] pci 0000:0a:04.0: BAR 14: can't assign mem (size 0x10300000)
[ 26.008364] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[ 26.008365] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[ 26.008380] pci 0000:0a:04.0: BAR 13: can't assign io (size 0x8000)
[ 26.008387] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 26.008398] pci 0000:0a:00.0: bridge window [mem 0xb0000000-0xb01fffff]
[ 26.008405] pci 0000:0a:00.0: bridge window [mem 0xb0200000-0xb03fffff 64bit pref]
[ 26.008416] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 26.008427] pci 0000:0a:03.0: bridge window [mem 0xb0400000-0xb05fffff]
[ 26.008435] pci 0000:0a:03.0: bridge window [mem 0xb0600000-0xb07fffff 64bit pref]
[ 26.008449] pci 0000:14:00.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 26.008452] pci 0000:14:00.0: BAR 14: can't assign mem (size 0x10300000)
[ 26.008455] pci 0000:14:00.0: BAR 13: can't assign io (size 0x7000)
[ 26.008462] pci 0000:15:03.0: BAR 15: can't assign mem pref (size 0x18000000)
[ 26.008466] pci 0000:15:03.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008470] pci 0000:15:04.0: BAR 14: can't assign mem (size 0xa00000)
[ 26.008474] pci 0000:15:04.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 26.008477] pci 0000:15:03.0: BAR 13: can't assign io (size 0x1000)
[ 26.008480] pci 0000:15:04.0: BAR 13: can't assign io (size 0x6000)
[ 26.008486] pci 0000:16:00.0: BAR 0: can't assign mem pref (size 0x10000000)
[ 26.008489] pci 0000:16:00.0: BAR 2: can't assign mem (size 0x20000)
[ 26.008492] pci 0000:16:00.0: BAR 6: can't assign mem pref (size 0x20000)
[ 26.008495] pci 0000:16:00.1: BAR 0: can't assign mem (size 0x4000)
[ 26.008498] pci 0000:16:00.0: BAR 4: can't assign io (size 0x100)
[ 26.008504] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 26.008541] pci 0000:17:00.0: BAR 14: can't assign mem (size 0xa00000)
[ 26.008544] pci 0000:17:00.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 26.008547] pci 0000:17:00.0: BAR 13: can't assign io (size 0x5000)
[ 26.008555] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008557] pci 0000:18:00.0: BAR 15: can't assign mem pref (size 0x200000)
[ 26.008561] pci 0000:18:01.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008565] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[ 26.008568] pci 0000:18:02.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008573] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[ 26.008577] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008580] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[ 26.008583] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[ 26.008586] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[ 26.008589] pci 0000:18:00.0: BAR 13: can't assign io (size 0x1000)
[ 26.008592] pci 0000:18:01.0: BAR 13: can't assign io (size 0x1000)
[ 26.008595] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[ 26.008598] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[ 26.008601] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[ 26.008609] pci 0000:19:00.0: BAR 4: can't assign mem pref (size 0x4000)
[ 26.008614] pci 0000:19:00.0: BAR 2: can't assign mem pref (size 0x1000)
[ 26.008618] pci 0000:19:00.0: BAR 0: can't assign io (size 0x100)
[ 26.008624] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 26.008675] pci 0000:1a:00.0: BAR 5: can't assign mem (size 0x400)
[ 26.008678] pci 0000:1a:00.0: BAR 4: can't assign io (size 0x10)
[ 26.008681] pci 0000:1a:00.0: BAR 0: can't assign io (size 0x8)
[ 26.008683] pci 0000:1a:00.0: BAR 2: can't assign io (size 0x8)
[ 26.008686] pci 0000:1a:00.0: BAR 1: can't assign io (size 0x4)
[ 26.008689] pci 0000:1a:00.0: BAR 3: can't assign io (size 0x4)
[ 26.008694] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 26.008743] pci 0000:1b:00.0: BAR 0: can't assign mem (size 0x2000)
[ 26.008746] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 26.008795] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 26.008841] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 26.008886] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 26.008929] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 26.008961] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 26.008993] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 26.009013] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 26.009022] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc06fffff]
[ 26.009046] pci 0000:08:00.0: no hotplug settings from platform
[ 26.009056] pci 0000:0a:00.0: no hotplug settings from platform
[ 26.009066] pci 0000:0a:03.0: no hotplug settings from platform
[ 26.009076] pci 0000:0a:04.0: no hotplug settings from platform
[ 26.009089] pci 0000:14:00.0: no hotplug settings from platform
[ 26.009104] pci 0000:15:03.0: no hotplug settings from platform
[ 26.009123] pci 0000:16:00.0: no hotplug settings from platform
[ 26.009141] pci 0000:16:00.1: no hotplug settings from platform
[ 26.009157] pci 0000:15:04.0: no hotplug settings from platform
[ 26.009175] pci 0000:17:00.0: no hotplug settings from platform
[ 26.009197] pci 0000:18:00.0: no hotplug settings from platform
[ 26.009221] pci 0000:19:00.0: no hotplug settings from platform
[ 26.009242] pci 0000:18:01.0: no hotplug settings from platform
[ 26.009266] pci 0000:1a:00.0: no hotplug settings from platform
[ 26.009287] pci 0000:18:02.0: no hotplug settings from platform
[ 26.009311] pci 0000:1b:00.0: no hotplug settings from platform
[ 26.009332] pci 0000:18:03.0: no hotplug settings from platform
[ 26.009353] pci 0000:18:04.0: no hotplug settings from platform
[ 26.011383] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[ 26.011895] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[ 26.013962] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[ 26.016536] [drm] radeon kernel modesetting enabled.
[ 26.016687] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[ 26.017055] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[ 26.018836] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[ 26.019609] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[ 26.021882] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[ 26.021891] radeon 0000:16:00.0: Fatal error during GPU init
[ 26.024908] radeon: probe of 0000:16:00.0 failed with error -12
[ 26.025153] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[ 26.025185] ------------[ cut here ]------------
[ 26.025193] WARNING: at drivers/pci/pci.c:130 pci_ioremap_bar+0x69/0x70()
[ 26.025194] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep snd_hda_codec_hdmi snd_hda_codec_realtek rtsx_pci_sdmmc rtsx_pci_ms memstick mmc_core iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media btusb bluetooth qcserial usb_wwan usbserial r8169 mii arc4 iwldvm mac80211 snd_hda_intel i915 snd_hda_codec iwlwifi intel_agp intel_gtt snd_hwdep i2c_algo_bit sony_laptop drm_kms_helper cfg80211 snd_pcm drm snd_page_alloc agpgart rtsx_pci lpc_ich rfkill snd_timer i2c_i801 snd mfd_core 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 ehci_pci xhci_hcd ehci_hcd dm_mirror
[ 26.025271] dm_region_hash dm_log dm_mod [last unloaded: microcode]
[ 26.025278] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: G C 3.10.0-rc5 #1
[ 26.025280] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 26.025285] Workqueue: kacpi_hotplug acpi_os_execute_deferred
[ 26.025288] ffffffff81a2a334 ffff8802540d37a8 ffffffff8165abb8 ffff8802540d37e8
[ 26.025293] ffffffff8103c8cb ffff8802540d37c8 ffff880247eda000 ffff880247f6e000
[ 26.025298] 0000000000000000 ffff880247ed9800 0000000000000001 ffff8802540d37f8
[ 26.025303] Call Trace:
[ 26.025309] [<ffffffff8165abb8>] dump_stack+0x19/0x1b
[ 26.025314] [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[ 26.025318] [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[ 26.025322] [<ffffffff81383269>] pci_ioremap_bar+0x69/0x70
[ 26.025328] [<ffffffffa0443bd6>] azx_first_init+0x56/0x600 [snd_hda_intel]
[ 26.025333] [<ffffffff8138696f>] ? pci_get_domain_bus_and_slot+0x2f/0x70
[ 26.025338] [<ffffffffa0445d25>] azx_probe+0x555/0x940 [snd_hda_intel]
[ 26.025342] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 26.025347] [<ffffffff81384fe6>] local_pci_probe+0x46/0x80
[ 26.025351] [<ffffffff81385859>] pci_device_probe+0xf9/0x120
[ 26.025357] [<ffffffff8143c2e6>] driver_probe_device+0x76/0x220
[ 26.025362] [<ffffffff8143c58b>] __device_attach+0x4b/0x60
[ 26.025366] [<ffffffff8143c540>] ? __driver_attach+0xb0/0xb0
[ 26.025370] [<ffffffff8143a63c>] bus_for_each_drv+0x5c/0x90
[ 26.025374] [<ffffffff8143c238>] device_attach+0x98/0xb0
[ 26.025378] [<ffffffff8137d954>] pci_bus_add_device+0x34/0x60
[ 26.025381] [<ffffffff8137d9b9>] pci_bus_add_devices+0x39/0xa0
[ 26.025385] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 26.025404] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 26.025411] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 26.025416] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 26.025423] [<ffffffff816447b0>] enable_device+0x370/0x450
[ 26.025430] [<ffffffff813a0f7a>] acpiphp_enable_slot+0xca/0x140
[ 26.025436] [<ffffffff813a13f6>] _handle_hotplug_event_func+0x96/0x1a0
[ 26.025443] [<ffffffff813c736b>] hotplug_dock_devices+0x67/0xed
[ 26.025449] [<ffffffff81664640>] ? notifier_call_chain+0x70/0x70
[ 26.025453] [<ffffffff813c7a84>] acpi_dock_deferred_cb+0xd4/0x1c9
[ 26.025456] [<ffffffff813bfbe9>] acpi_os_execute_deferred+0x20/0x2d
[ 26.025461] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 26.025464] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 26.025468] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 26.025471] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 26.025475] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 26.025479] [<ffffffff81660cfb>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 26.025483] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 26.025488] [<ffffffff816680ac>] ret_from_fork+0x7c/0xb0
[ 26.025492] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 26.025495] ---[ end trace 983106dfcbc31db4 ]---
[ 26.025497] hda-intel 0000:16:00.1: ioremap error
[ 26.025897] pcieport 0000:17:00.0: irq 59 for MSI/MSI-X
[ 26.026302] pcieport 0000:18:00.0: irq 60 for MSI/MSI-X
[ 26.026739] pcieport 0000:18:01.0: irq 61 for MSI/MSI-X
[ 26.027434] pcieport 0000:18:02.0: irq 62 for MSI/MSI-X
[ 26.027852] pcieport 0000:18:03.0: irq 63 for MSI/MSI-X
[ 26.028718] pcieport 0000:18:04.0: irq 64 for MSI/MSI-X
[ 26.029146] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 26.029278] r8169 0000:19:00.0 (unregistered net_device): region #2 not an MMIO resource, aborting
[ 26.030104] pata_marvell 0000:1a:00.0: no available native port
[ 26.030255] pata_acpi 0000:1a:00.0: no available native port
[ 26.030670] xhci_hcd 0000:1b:00.0: init 0000:1b:00.0 fail, -16
[ 26.030675] xhci_hcd: probe of 0000:1b:00.0 failed with error -16
[ 26.030686] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[ 26.030690] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[ 26.030694] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[ 26.030698] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[ 26.030713] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[ 26.030725] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[ 26.030733] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[ 26.030740] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[ 50.664655] acpiphp_glue: _handle_hotplug_event_func: Device eject notify on \_SB_.PCI0.RP07.LPMB
[ 50.670495] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[ 50.677336] pci_bus 0000:0b: busn_res: [bus 0b] is released
[ 50.677634] pci_bus 0000:0c: busn_res: [bus 0c] is released
[ 50.677714] pci_bus 0000:16: busn_res: [bus 16] is released
[ 50.692010] acpiphp: Slot [1-2] unregistered
[ 50.692179] acpiphp: release_slot - physical_slot = 1-2
[ 50.692532] pci_bus 0000:19: busn_res: [bus 19] is released
[ 50.698006] acpiphp: Slot [1-3] unregistered
[ 50.698017] acpiphp: release_slot - physical_slot = 1-3
[ 50.698112] pci_bus 0000:1a: busn_res: [bus 1a] is released
[ 50.703024] acpiphp: Slot [1-4] unregistered
[ 50.703045] acpiphp: release_slot - physical_slot = 1-4
[ 50.703131] pci_bus 0000:1b: busn_res: [bus 1b] is released
[ 50.708031] acpiphp: Slot [1-5] unregistered
[ 50.708051] acpiphp: release_slot - physical_slot = 1-5
[ 50.708128] pci_bus 0000:1c: busn_res: [bus 1c] is released
[ 50.708186] pci_bus 0000:1d: busn_res: [bus 1d] is released
[ 50.708367] pci_bus 0000:18: busn_res: [bus 18-1d] is released
[ 50.708470] pci_bus 0000:17: busn_res: [bus 17-1d] is released
[ 50.708543] pci_bus 0000:15: busn_res: [bus 15-1d] is released
[ 50.708654] pci_bus 0000:14: busn_res: [bus 14-1d] is released
[ 50.708717] pci_bus 0000:0a: busn_res: [bus 0a-1d] is released
[ 50.713038] acpiphp: Slot [1-1] unregistered
[ 50.713058] acpiphp: release_slot - physical_slot = 1-1
[ 50.722035] acpiphp: Slot [2] unregistered
[ 50.722045] acpiphp: release_slot - physical_slot = 2
[ 50.727049] acpiphp: Slot [3] unregistered
[ 50.727061] acpiphp: release_slot - physical_slot = 3
[ 50.727427] ACPI: Device does not support D3cold
[ 50.727474] ACPI: Device does not support D3cold
[ 50.727643] ACPI: Device does not support D3cold
[ 50.727828] ACPI: Device does not support D3cold
[ 50.728247] ACPI: Device does not support D3cold
[ 50.728341] ACPI: Device does not support D3cold
[ 50.728703] ACPI: Device does not support D3cold
[ 50.728889] ACPI: Device does not support D3cold
[ 50.729671] ACPI: Device does not support D3cold
[ 50.730454] ACPI: Device does not support D3cold
[ 50.730626] ACPI: Device does not support D3cold
[ 50.731583] ACPI: Device does not support D3cold
[ 50.731724] ACPI: Device does not support D3cold
[ 50.731813] ACPI: Device does not support D3cold
[ 50.732541] ACPI: Device does not support D3cold
[ 50.733010] ACPI: Device does not support D3cold
[ 50.733601] ACPI: Device does not support D3cold
[ 50.735955] ACPI: Device does not support D3cold
[ 50.736088] ACPI: Device does not support D3cold
[ 50.736325] ACPI: Device does not support D3cold
[ 50.736678] ACPI: Device does not support D3cold
[ 50.737582] ACPI: Device does not support D3cold
[ 50.738652] ACPI: Device does not support D3cold
[ 50.739283] ACPI: Device does not support D3cold
[ 50.739437] ACPI: Device does not support D3cold
[ 50.739655] ACPI: Device does not support D3cold
[ 50.740247] ACPI: Device does not support D3cold
[ 50.740459] ACPI: Device does not support D3cold
[ 50.740683] ACPI: Device does not support D3cold
[ 50.740838] ACPI: Device does not support D3cold
[ 50.740987] ACPI: Device does not support D3cold
[ 50.741834] ACPI: Device does not support D3cold
[ 50.741850] ACPI: \_SB_.DOCK: undocking
[ 51.215137] ACPI: \_SB_.DOCK: docking
[ 51.215326] ACPI: \_SB_.DOCK: Unable to dock!
[ 51.215369] acpiphp_glue: _handle_hotplug_event_bridge: Bus check notify on \_SB_.PCI0.RP07
[ 51.215371] acpiphp_glue: _handle_hotplug_event_bridge: re-enumerating slots under \_SB_.PCI0.RP07
[ 51.215381] acpiphp_glue: acpiphp_check_bridge: 0 enabled, 0 disabled
[ 77.180536] acpiphp_glue: _handle_hotplug_event_bridge: Device check notify on \_SB_.PCI0.RP07
[ 77.201881] [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.
[ 77.201949] [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.
[ 77.201975] [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.
[ 77.202001] [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.
[ 77.202172] [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.
[ 77.202220] [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.
[ 77.202264] [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.
[ 77.202445] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[ 77.202623] pci 0000:08:00.0: supports D1 D2
[ 77.202625] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.205149] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[ 77.205438] acpiphp: Slot [1-1] registered
[ 77.205974] ======================================================
[ 77.206605] [ INFO: possible circular locking dependency detected ]
[ 77.207256] 3.10.0-rc5 #1 Tainted: G WC
[ 77.207918] -------------------------------------------------------
[ 77.208588] kworker/0:2/530 is trying to acquire lock:
[ 77.209247] (&dock_station->hp_lock){+.+.+.}, at: [<ffffffff813c768b>] register_hotplug_dock_device+0xb7/0x10d
[ 77.209950]
but task is already holding lock:
[ 77.211268] (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a0ece>] acpiphp_enable_slot+0x1e/0x140
[ 77.211982]
which lock already depends on the new lock.
[ 77.214021]
the existing dependency chain (in reverse order) is:
[ 77.215356]
-> #1 (&slot->crit_sect){+.+.+.}:
[ 77.216706] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 77.217415] [<ffffffff8165d86e>] mutex_lock_nested+0x5e/0x3e0
[ 77.218136] [<ffffffff813a0ece>] acpiphp_enable_slot+0x1e/0x140
[ 77.218851] [<ffffffff813a13f6>] _handle_hotplug_event_func+0x96/0x1a0
[ 77.219579] [<ffffffff813c736b>] hotplug_dock_devices+0x67/0xed
[ 77.220328] [<ffffffff813c7a84>] acpi_dock_deferred_cb+0xd4/0x1c9
[ 77.221074] [<ffffffff813bfbe9>] acpi_os_execute_deferred+0x20/0x2d
[ 77.221802] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 77.222551] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 77.223300] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 77.224046] [<ffffffff816680ac>] ret_from_fork+0x7c/0xb0
[ 77.224774]
-> #0 (&dock_station->hp_lock){+.+.+.}:
[ 77.226252] [<ffffffff810a06d3>] __lock_acquire+0x1d23/0x1ee0
[ 77.227026] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 77.227786] [<ffffffff8165d86e>] mutex_lock_nested+0x5e/0x3e0
[ 77.228574] [<ffffffff813c768b>] register_hotplug_dock_device+0xb7/0x10d
[ 77.229382] [<ffffffff813a06b7>] register_slot+0x467/0x5b0
[ 77.230198] [<ffffffff813de058>] acpi_ns_walk_namespace+0xbb/0x17b
[ 77.231031] [<ffffffff813de7d6>] acpi_walk_namespace+0x8e/0xc8
[ 77.231846] [<ffffffff813a0b4d>] acpiphp_enumerate_slots+0x1bd/0x320
[ 77.232696] [<ffffffff813a5a4f>] acpi_pci_add_bus+0x2f/0x40
[ 77.233552] [<ffffffff81533299>] pcibios_add_bus+0x9/0x10
[ 77.234419] [<ffffffff81643228>] pci_add_new_bus+0x1c8/0x390
[ 77.235294] [<ffffffff813800f5>] pci_scan_bridge+0x5e5/0x620
[ 77.236177] [<ffffffff816445a9>] enable_device+0x169/0x450
[ 77.237065] [<ffffffff813a0f7a>] acpiphp_enable_slot+0xca/0x140
[ 77.237966] [<ffffffff813a11a7>] acpiphp_check_bridge+0x77/0x100
[ 77.238855] [<ffffffff813a169d>] _handle_hotplug_event_bridge+0x13d/0x290
[ 77.239779] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 77.240716] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 77.241660] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 77.242610] [<ffffffff816680ac>] ret_from_fork+0x7c/0xb0
[ 77.243573]
other info that might help us debug this:
[ 77.246475] Possible unsafe locking scenario:
[ 77.248465] CPU0 CPU1
[ 77.249474] ---- ----
[ 77.250483] lock(&slot->crit_sect);
[ 77.251500] lock(&dock_station->hp_lock);
[ 77.252546] lock(&slot->crit_sect);
[ 77.253598] lock(&dock_station->hp_lock);
[ 77.254649]
*** DEADLOCK ***
[ 77.257752] 4 locks held by kworker/0:2/530:
[ 77.258782] #0: (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c1a7>] process_one_work+0x157/0x560
[ 77.259847] #1: ((&hp_work->work)){+.+.+.}, at: [<ffffffff8105c1a7>] process_one_work+0x157/0x560
[ 77.260927] #2: (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3a5f>] acpi_scan_lock_acquire+0x12/0x14
[ 77.262009] #3: (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a0ece>] acpiphp_enable_slot+0x1e/0x140
[ 77.263083]
stack backtrace:
[ 77.265164] CPU: 0 PID: 530 Comm: kworker/0:2 Tainted: G WC 3.10.0-rc5 #1
[ 77.266226] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 77.267279] Workqueue: kacpi_hotplug _handle_hotplug_event_bridge
[ 77.268323] ffffffff82110540 ffff880252517628 ffffffff8165abb8 ffff880252517678
[ 77.269392] ffffffff81656944 ffff880252517728 ffff8802525176f0 ffff880252711fc0
[ 77.270447] ffff880252712730 ffff880252711fc0 ffffffff82110540 ffff880252712758
[ 77.271493] Call Trace:
[ 77.272524] [<ffffffff8165abb8>] dump_stack+0x19/0x1b
[ 77.273564] [<ffffffff81656944>] print_circular_bug+0x2b0/0x2c1
[ 77.274617] [<ffffffff810a06d3>] __lock_acquire+0x1d23/0x1ee0
[ 77.275666] [<ffffffff81069621>] ? up+0x11/0x50
[ 77.276708] [<ffffffff810a1791>] ? mark_held_locks+0x61/0x150
[ 77.277760] [<ffffffff81660cb5>] ? _raw_spin_unlock_irqrestore+0x65/0x80
[ 77.278809] [<ffffffff813c768b>] ? register_hotplug_dock_device+0xb7/0x10d
[ 77.279861] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 77.280914] [<ffffffff813c768b>] ? register_hotplug_dock_device+0xb7/0x10d
[ 77.281993] [<ffffffff813c768b>] ? register_hotplug_dock_device+0xb7/0x10d
[ 77.283041] [<ffffffff8165d86e>] mutex_lock_nested+0x5e/0x3e0
[ 77.284085] [<ffffffff813c768b>] ? register_hotplug_dock_device+0xb7/0x10d
[ 77.285138] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 77.286188] [<ffffffff813c768b>] register_hotplug_dock_device+0xb7/0x10d
[ 77.287249] [<ffffffff813a06b7>] register_slot+0x467/0x5b0
[ 77.288304] [<ffffffff813de058>] acpi_ns_walk_namespace+0xbb/0x17b
[ 77.289362] [<ffffffff813c0723>] ? acpi_os_wait_semaphore+0x3f/0x55
[ 77.290422] [<ffffffff813a0250>] ? free_bridge+0x100/0x100
[ 77.291481] [<ffffffff813a0250>] ? free_bridge+0x100/0x100
[ 77.292524] [<ffffffff813de7d6>] acpi_walk_namespace+0x8e/0xc8
[ 77.293569] [<ffffffff813a0b4d>] acpiphp_enumerate_slots+0x1bd/0x320
[ 77.294619] [<ffffffff81448816>] ? pm_runtime_init+0x106/0x110
[ 77.295664] [<ffffffff813a5a4f>] acpi_pci_add_bus+0x2f/0x40
[ 77.296711] [<ffffffff81533299>] pcibios_add_bus+0x9/0x10
[ 77.297755] [<ffffffff81643228>] pci_add_new_bus+0x1c8/0x390
[ 77.298798] [<ffffffff813800f5>] pci_scan_bridge+0x5e5/0x620
[ 77.299838] [<ffffffff816445a9>] enable_device+0x169/0x450
[ 77.300881] [<ffffffff813a0f7a>] acpiphp_enable_slot+0xca/0x140
[ 77.301925] [<ffffffff813a11a7>] acpiphp_check_bridge+0x77/0x100
[ 77.302980] [<ffffffff813a169d>] _handle_hotplug_event_bridge+0x13d/0x290
[ 77.304043] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 77.305095] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 77.306147] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 77.307205] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 77.308258] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 77.309313] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 77.310364] [<ffffffff81660cfb>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 77.311423] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 77.312483] [<ffffffff816680ac>] ret_from_fork+0x7c/0xb0
[ 77.313539] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 77.314683] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[ 77.315708] acpiphp: Slot [2] registered
[ 77.316612] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[ 77.317457] acpiphp: Slot [3] registered
[ 77.318383] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[ 77.319357] pci 0000:0a:00.0: supports D1 D2
[ 77.320186] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.321171] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[ 77.322212] pci 0000:0a:03.0: supports D1 D2
[ 77.323059] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.323989] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[ 77.325035] pci 0000:0a:04.0: supports D1 D2
[ 77.325855] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.326852] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 77.327740] pci 0000:08:00.0: bridge window [io 0x3000-0x5fff]
[ 77.328591] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc03fffff]
[ 77.329449] pci 0000:08:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.330395] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 77.331284] pci 0000:0a:00.0: bridge window [mem 0xc0300000-0xc03fffff]
[ 77.332235] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 77.333279] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[ 77.334373] pci 0000:14:00.0: supports D1 D2
[ 77.335181] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.338058] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 77.338841] pci 0000:0a:04.0: bridge window [io 0x3000-0x5fff]
[ 77.339639] pci 0000:0a:04.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 77.340442] pci 0000:0a:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.341441] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[ 77.342521] pci 0000:15:03.0: supports D1 D2
[ 77.343312] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.344283] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[ 77.345386] pci 0000:15:04.0: supports D1 D2
[ 77.346177] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.347181] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 77.348040] pci 0000:14:00.0: bridge window [io 0x3000-0x5fff]
[ 77.348837] pci 0000:14:00.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 77.349662] pci 0000:14:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.350644] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[ 77.351521] acpiphp: Slot [1-2] registered
[ 77.352402] acpiphp_glue: sibling found, but _SUN doesn't match!
[ 77.353281] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[ 77.354167] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[ 77.355003] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[ 77.355844] pci 0000:16:00.0: reg 20: [io 0x0000-0x00ff]
[ 77.356712] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[ 77.357686] pci 0000:16:00.0: supports D1 D2
[ 77.358581] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[ 77.359411] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=none
[ 77.360330] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[ 77.361295] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[ 77.362432] pci 0000:16:00.1: supports D1 D2
[ 77.365100] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 77.365953] pci 0000:15:03.0: bridge window [io 0x5000-0x5fff]
[ 77.366800] pci 0000:15:03.0: bridge window [mem 0xc0200000-0xc02fffff]
[ 77.367654] pci 0000:15:03.0: bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[ 77.368717] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[ 77.369902] pci 0000:17:00.0: supports D1 D2
[ 77.370731] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.371766] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 77.372678] pci 0000:15:04.0: bridge window [io 0x3000-0x4fff]
[ 77.373542] pci 0000:15:04.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 77.374414] pci 0000:15:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.375533] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[ 77.376731] pci 0000:18:00.0: supports D1 D2
[ 77.377578] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.378619] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[ 77.379821] pci 0000:18:01.0: supports D1 D2
[ 77.380655] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.381692] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[ 77.382875] pci 0000:18:02.0: supports D1 D2
[ 77.383706] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.384725] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[ 77.385905] pci 0000:18:03.0: supports D1 D2
[ 77.386736] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.387753] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[ 77.388935] pci 0000:18:04.0: supports D1 D2
[ 77.389762] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.390851] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 77.391753] pci 0000:17:00.0: bridge window [io 0x3000-0x4fff]
[ 77.392606] pci 0000:17:00.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 77.393470] pci 0000:17:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.394521] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[ 77.395435] acpiphp: Slot [1-3] registered
[ 77.396413] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[ 77.397313] pci 0000:19:00.0: reg 10: [io 0x0000-0x00ff]
[ 77.398268] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[ 77.399187] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[ 77.400301] pci 0000:19:00.0: supports D1 D2
[ 77.401158] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 77.402220] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 77.403125] pci 0000:18:00.0: bridge window [io 0x4000-0x4fff]
[ 77.403958] pci 0000:18:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 77.404999] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[ 77.405911] acpiphp: Slot [1-4] registered
[ 77.406849] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[ 77.407755] pci 0000:1a:00.0: reg 10: [io 0x8000-0x8007]
[ 77.408636] pci 0000:1a:00.0: reg 14: [io 0x8040-0x8043]
[ 77.409521] pci 0000:1a:00.0: reg 18: [io 0x8200-0x8207]
[ 77.410405] pci 0000:1a:00.0: reg 1c: [io 0x8800-0x8803]
[ 77.411258] pci 0000:1a:00.0: reg 20: [io 0x900000-0x90000f]
[ 77.412088] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[ 77.413128] pci 0000:1a:00.0: supports D1
[ 77.413910] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[ 77.414902] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 77.415793] pci 0000:18:01.0: bridge window [io 0x3000-0x3fff]
[ 77.416619] pci 0000:18:01.0: bridge window [mem 0xc0100000-0xc01fffff]
[ 77.417670] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[ 77.418555] acpiphp: Slot [1-5] registered
[ 77.419551] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[ 77.420452] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[ 77.421667] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[ 77.422706] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 77.423765] pci 0000:18:02.0: bridge window [mem 0xc0000000-0xc00fffff]
[ 77.424819] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 77.426013] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 77.427455] pci 0000:08:00.0: BAR 15: can't assign mem pref (size 0x28000000)
[ 77.428267] pci 0000:08:00.0: BAR 14: assigned [mem 0xb0000000-0xc06fffff]
[ 77.429052] pci 0000:08:00.0: BAR 13: can't assign io (size 0xb000)
[ 77.429868] pci 0000:0a:04.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 77.430673] pci 0000:0a:00.0: BAR 14: assigned [mem 0xb0000000-0xb01fffff]
[ 77.431505] pci 0000:0a:00.0: BAR 15: assigned [mem 0xb0200000-0xb03fffff 64bit pref]
[ 77.432333] pci 0000:0a:03.0: BAR 14: assigned [mem 0xb0400000-0xb05fffff]
[ 77.433112] pci 0000:0a:03.0: BAR 15: assigned [mem 0xb0600000-0xb07fffff 64bit pref]
[ 77.433905] pci 0000:0a:04.0: BAR 14: can't assign mem (size 0x10300000)
[ 77.434701] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[ 77.435517] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[ 77.436307] pci 0000:0a:04.0: BAR 13: can't assign io (size 0x8000)
[ 77.437083] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 77.437852] pci 0000:0a:00.0: bridge window [mem 0xb0000000-0xb01fffff]
[ 77.438623] pci 0000:0a:00.0: bridge window [mem 0xb0200000-0xb03fffff 64bit pref]
[ 77.439404] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 77.440175] pci 0000:0a:03.0: bridge window [mem 0xb0400000-0xb05fffff]
[ 77.440940] pci 0000:0a:03.0: bridge window [mem 0xb0600000-0xb07fffff 64bit pref]
[ 77.441724] pci 0000:14:00.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 77.442508] pci 0000:14:00.0: BAR 14: can't assign mem (size 0x10300000)
[ 77.443273] pci 0000:14:00.0: BAR 13: can't assign io (size 0x7000)
[ 77.444035] pci 0000:15:03.0: BAR 15: can't assign mem pref (size 0x18000000)
[ 77.444774] pci 0000:15:03.0: BAR 14: can't assign mem (size 0x200000)
[ 77.445544] pci 0000:15:04.0: BAR 14: can't assign mem (size 0xa00000)
[ 77.446285] pci 0000:15:04.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 77.447030] pci 0000:15:03.0: BAR 13: can't assign io (size 0x1000)
[ 77.447748] pci 0000:15:04.0: BAR 13: can't assign io (size 0x6000)
[ 77.448488] pci 0000:16:00.0: BAR 0: can't assign mem pref (size 0x10000000)
[ 77.449227] pci 0000:16:00.0: BAR 2: can't assign mem (size 0x20000)
[ 77.449956] pci 0000:16:00.0: BAR 6: can't assign mem pref (size 0x20000)
[ 77.450661] pci 0000:16:00.1: BAR 0: can't assign mem (size 0x4000)
[ 77.451391] pci 0000:16:00.0: BAR 4: can't assign io (size 0x100)
[ 77.452112] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 77.452843] pci 0000:17:00.0: BAR 14: can't assign mem (size 0xa00000)
[ 77.453553] pci 0000:17:00.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 77.454266] pci 0000:17:00.0: BAR 13: can't assign io (size 0x5000)
[ 77.454976] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x200000)
[ 77.455659] pci 0000:18:00.0: BAR 15: can't assign mem pref (size 0x200000)
[ 77.456372] pci 0000:18:01.0: BAR 14: can't assign mem (size 0x200000)
[ 77.457077] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[ 77.457757] pci 0000:18:02.0: BAR 14: can't assign mem (size 0x200000)
[ 77.458457] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[ 77.459152] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[ 77.459824] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[ 77.460511] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[ 77.461193] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[ 77.461865] pci 0000:18:00.0: BAR 13: can't assign io (size 0x1000)
[ 77.462514] pci 0000:18:01.0: BAR 13: can't assign io (size 0x1000)
[ 77.463181] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[ 77.463843] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[ 77.464482] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[ 77.465137] pci 0000:19:00.0: BAR 4: can't assign mem pref (size 0x4000)
[ 77.465777] pci 0000:19:00.0: BAR 2: can't assign mem pref (size 0x1000)
[ 77.466433] pci 0000:19:00.0: BAR 0: can't assign io (size 0x100)
[ 77.467087] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 77.467765] pci 0000:1a:00.0: BAR 5: can't assign mem (size 0x400)
[ 77.468446] pci 0000:1a:00.0: BAR 4: can't assign io (size 0x10)
[ 77.469097] pci 0000:1a:00.0: BAR 0: can't assign io (size 0x8)
[ 77.469717] pci 0000:1a:00.0: BAR 2: can't assign io (size 0x8)
[ 77.470349] pci 0000:1a:00.0: BAR 1: can't assign io (size 0x4)
[ 77.470969] pci 0000:1a:00.0: BAR 3: can't assign io (size 0x4)
[ 77.471560] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 77.472224] pci 0000:1b:00.0: BAR 0: can't assign mem (size 0x2000)
[ 77.472829] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 77.473467] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 77.474101] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 77.474730] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 77.475368] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 77.475976] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 77.476575] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 77.477164] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 77.477733] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc06fffff]
[ 77.478333] pci 0000:08:00.0: no hotplug settings from platform
[ 77.478907] pci 0000:0a:00.0: no hotplug settings from platform
[ 77.479475] pci 0000:0a:03.0: no hotplug settings from platform
[ 77.480036] pci 0000:0a:04.0: no hotplug settings from platform
[ 77.480591] pci 0000:14:00.0: no hotplug settings from platform
[ 77.481147] pci 0000:15:03.0: no hotplug settings from platform
[ 77.481705] pci 0000:16:00.0: no hotplug settings from platform
[ 77.482269] pci 0000:16:00.1: no hotplug settings from platform
[ 77.482814] pci 0000:15:04.0: no hotplug settings from platform
[ 77.483353] pci 0000:17:00.0: no hotplug settings from platform
[ 77.483887] pci 0000:18:00.0: no hotplug settings from platform
[ 77.484413] pci 0000:19:00.0: no hotplug settings from platform
[ 77.484934] pci 0000:18:01.0: no hotplug settings from platform
[ 77.485445] pci 0000:1a:00.0: no hotplug settings from platform
[ 77.485956] pci 0000:18:02.0: no hotplug settings from platform
[ 77.486465] pci 0000:1b:00.0: no hotplug settings from platform
[ 77.486963] pci 0000:18:03.0: no hotplug settings from platform
[ 77.487463] pci 0000:18:04.0: no hotplug settings from platform
[ 77.488420] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[ 77.489056] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[ 77.489758] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[ 77.490504] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[ 77.491247] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[ 77.492036] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[ 77.492834] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[ 77.494014] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[ 77.494539] radeon 0000:16:00.0: Fatal error during GPU init
[ 77.495203] radeon: probe of 0000:16:00.0 failed with error -12
[ 77.495978] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[ 77.496511] ------------[ cut here ]------------
[ 77.497025] WARNING: at drivers/pci/pci.c:130 pci_ioremap_bar+0x69/0x70()
[ 77.497572] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep snd_hda_codec_hdmi snd_hda_codec_realtek rtsx_pci_sdmmc rtsx_pci_ms memstick mmc_core iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev pcspkr uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media btusb bluetooth qcserial usb_wwan usbserial r8169 mii arc4 iwldvm mac80211 snd_hda_intel i915 snd_hda_codec iwlwifi intel_agp intel_gtt snd_hwdep i2c_algo_bit sony_laptop drm_kms_helper cfg80211 snd_pcm drm snd_page_alloc agpgart rtsx_pci lpc_ich rfkill snd_timer i2c_i801 snd mfd_core 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 ehci_pci xhci_hcd ehci_hcd dm_mirror
[ 77.499638] dm_region_hash dm_log dm_mod [last unloaded: microcode]
[ 77.500331] CPU: 0 PID: 530 Comm: kworker/0:2 Tainted: G WC 3.10.0-rc5 #1
[ 77.501007] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 77.501706] Workqueue: kacpi_hotplug _handle_hotplug_event_bridge
[ 77.502421] ffffffff81a2a334 ffff880252517808 ffffffff8165abb8 ffff880252517848
[ 77.503133] ffffffff8103c8cb ffff880252517828 ffff880247e21000 ffff880251b32000
[ 77.503850] 0000000000000000 ffff880247e20800 0000000000000001 ffff880252517858
[ 77.504589] Call Trace:
[ 77.505336] [<ffffffff8165abb8>] dump_stack+0x19/0x1b
[ 77.506055] [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[ 77.506791] [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[ 77.507562] [<ffffffff81383269>] pci_ioremap_bar+0x69/0x70
[ 77.508325] [<ffffffffa0443bd6>] azx_first_init+0x56/0x600 [snd_hda_intel]
[ 77.509060] [<ffffffff8138696f>] ? pci_get_domain_bus_and_slot+0x2f/0x70
[ 77.509840] [<ffffffffa0445d25>] azx_probe+0x555/0x940 [snd_hda_intel]
[ 77.510610] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 77.511361] [<ffffffff81384fe6>] local_pci_probe+0x46/0x80
[ 77.512100] [<ffffffff81385859>] pci_device_probe+0xf9/0x120
[ 77.512848] [<ffffffff8143c2e6>] driver_probe_device+0x76/0x220
[ 77.513617] [<ffffffff8143c58b>] __device_attach+0x4b/0x60
[ 77.514386] [<ffffffff8143c540>] ? __driver_attach+0xb0/0xb0
[ 77.515157] [<ffffffff8143a63c>] bus_for_each_drv+0x5c/0x90
[ 77.515918] [<ffffffff8143c238>] device_attach+0x98/0xb0
[ 77.516678] [<ffffffff8137d954>] pci_bus_add_device+0x34/0x60
[ 77.517439] [<ffffffff8137d9b9>] pci_bus_add_devices+0x39/0xa0
[ 77.518204] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 77.518946] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 77.519713] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 77.520473] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 77.521233] [<ffffffff816447b0>] enable_device+0x370/0x450
[ 77.521977] [<ffffffff813a0f7a>] acpiphp_enable_slot+0xca/0x140
[ 77.522730] [<ffffffff813a11a7>] acpiphp_check_bridge+0x77/0x100
[ 77.523503] [<ffffffff813a169d>] _handle_hotplug_event_bridge+0x13d/0x290
[ 77.524274] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 77.525035] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 77.525800] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 77.526576] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 77.527367] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 77.528164] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 77.528953] [<ffffffff81660cfb>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 77.529768] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 77.530585] [<ffffffff816680ac>] ret_from_fork+0x7c/0xb0
[ 77.531406] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 77.532230] ---[ end trace 983106dfcbc31db5 ]---
[ 77.533044] hda-intel 0000:16:00.1: ioremap error
[ 77.534077] pcieport 0000:17:00.0: irq 59 for MSI/MSI-X
[ 77.535226] pcieport 0000:18:00.0: irq 60 for MSI/MSI-X
[ 77.536396] pcieport 0000:18:01.0: irq 61 for MSI/MSI-X
[ 77.537567] pcieport 0000:18:02.0: irq 62 for MSI/MSI-X
[ 77.538744] pcieport 0000:18:03.0: irq 63 for MSI/MSI-X
[ 77.539914] pcieport 0000:18:04.0: irq 64 for MSI/MSI-X
[ 77.541037] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 77.541960] r8169 0000:19:00.0 (unregistered net_device): region #2 not an MMIO resource, aborting
[ 77.543001] pata_marvell 0000:1a:00.0: no available native port
[ 77.543968] pata_acpi 0000:1a:00.0: no available native port
[ 77.545096] xhci_hcd 0000:1b:00.0: init 0000:1b:00.0 fail, -16
[ 77.546002] xhci_hcd: probe of 0000:1b:00.0 failed with error -16
[ 77.546915] acpiphp_glue: acpiphp_check_bridge: 1 enabled, 0 disabled
[ 77.547854] ACPI: \_SB_.DOCK: docking
[ 77.548950] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[ 77.549852] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[ 77.550757] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[ 77.551654] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[ 77.552543] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[ 77.553408] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[ 77.554211] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[ 77.554980] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[ 77.555728] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
[ 114.078854] fuse init (API version 7.22)
[ 114.209206] CPU3: Package power limit notification (total events = 1)
[ 114.209207] CPU2: Package power limit notification (total events = 1)
[ 114.209212] CPU0: Package power limit notification (total events = 1)
[ 114.209214] CPU1: Package power limit notification (total events = 1)
[ 114.220214] CPU2: Package power limit normal
[ 114.220216] CPU3: Package power limit normal
[ 114.220220] CPU0: Package power limit normal
[ 114.220221] CPU1: Package power limit normal
[ 114.295098] ata1.00: configured for UDMA/133
[ 114.295105] ata1: EH complete
[ 114.300425] ata2.00: configured for UDMA/133
[ 114.300431] ata2: EH complete
[ 114.327904] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[ 114.332166] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[ 114.334763] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[ 114.344300] EXT4-fs (dm-3): re-mounted. Opts: commit=0
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
@ 2013-06-13 18:22 ` Rafael J. Wysocki
2013-06-13 18:24 ` Rafael J. Wysocki
1 sibling, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:22 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, linux-acpi, stable
On Friday, June 14, 2013 12:32:24 AM Jiang Liu 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+
Can you please send the whole series to linux-acpi next time?
First, because I believe it should go in through the ACPI tree. Second,
because it is kind of useful to have all of the patches in context.
Thanks,
Rafael
> ---
> 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);
> /*
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
2013-06-13 18:22 ` Rafael J. Wysocki
@ 2013-06-13 18:24 ` Rafael J. Wysocki
1 sibling, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:24 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, linux-acpi, stable
On Friday, June 14, 2013 12:32:24 AM Jiang Liu 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.
This change makes sense to me.
Thanks,
Rafael
> 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);
> /*
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 17:43 ` [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Alexander E. Patrakov
@ 2013-06-13 18:26 ` Alexander E. Patrakov
0 siblings, 0 replies; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-13 18:26 UTC (permalink / raw)
To: Jiang Liu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci, linux-kernel@vger.kernel.org
2013/6/13 Alexander E. Patrakov <patrakov@gmail.com>:
> 2013/6/13 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
>>
>> The first patch fixes issue 1, and the second patch fixes issue 2.
>> These two patches, if accepted, should be material for stable branches
>> too.
>> Patch 3-9 are code improvement for ACPI and dock driver.
>>
>> I have found the root cause for issue three, but still working on
>> solutions, and seems can't be solve in short time. So please help
>> to review and test patches for issue 1) and 2) first.
>>
>> Hi Alexander, could you please help to test the whole patchset?
>
> Tested on top of 3.10-rc5, with no other patches applied.
> Unfortunately, lockdep complains on the second docking attempt in the
> initially-undocked case. Please see the attached dmesg output.
>
> I have not tested the initially-docked case yet, will do that in 10 minutes.
Tested. The device list is updated as expected if the radeon driver is
blacklisted and there are no open fds to the audio card.
If radeon is not blacklisted, I hit
https://bugzilla.kernel.org/show_bug.cgi?id=59681 , but it is not a
regression.
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code
2013-06-13 16:32 ` [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code Jiang Liu
@ 2013-06-13 18:26 ` Rafael J. Wysocki
2013-06-13 18:39 ` Rafael J. Wysocki
2013-06-14 14:04 ` Jiang Liu
0 siblings, 2 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:26 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 12:32:26 AM Jiang Liu wrote:
> ACPI dock driver can't be built as a module any more, so clean up
> module related code.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Shaohua Li <shaohua.li@intel.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
How exactly does this depend on [2/9]? If it doesn't at all, it should go
after [1/9].
> ---
> drivers/acpi/dock.c | 41 -----------------------------------------
> 1 file changed, 41 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 79c8d9e..50e38b7 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -53,12 +53,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
>
> static struct atomic_notifier_head dock_notifier_list;
>
> -static const struct acpi_device_id dock_device_ids[] = {
> - {"LNXDOCK", 0},
> - {"", 0},
> -};
> -MODULE_DEVICE_TABLE(acpi, dock_device_ids);
> -
Don't we actually need the device IDs?
> struct dock_station {
> acpi_handle handle;
> unsigned long last_dock_time;
> @@ -1013,30 +1007,6 @@ err_unregister:
> }
>
> /**
> - * dock_remove - free up resources related to the dock station
> - */
> -static int dock_remove(struct dock_station *ds)
> -{
> - struct dock_dependent_device *dd, *tmp;
> - struct platform_device *dock_device = ds->dock_device;
> -
> - if (!dock_station_count)
> - return 0;
> -
> - /* remove dependent devices */
> - list_for_each_entry_safe(dd, tmp, &ds->dependent_devices, list)
> - kfree(dd);
> -
> - list_del(&ds->sibling);
> -
> - /* cleanup sysfs */
> - sysfs_remove_group(&dock_device->dev.kobj, &dock_attribute_group);
> - platform_device_unregister(dock_device);
> -
> - return 0;
> -}
> -
> -/**
> * find_dock_and_bay - look for dock stations and bays
> * @handle: acpi handle of a device
> * @lvl: unused
> @@ -1073,14 +1043,3 @@ int __init acpi_dock_init(void)
> ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
> return 0;
> }
> -
> -static void __exit dock_exit(void)
> -{
> - struct dock_station *tmp, *dock_station;
> -
> - unregister_acpi_bus_notifier(&dock_acpi_notifier);
> - list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibling)
> - dock_remove(dock_station);
> -}
> -
> -module_exit(dock_exit);
The other changes look OK to me.
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times
2013-06-13 16:32 ` [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times Jiang Liu
@ 2013-06-13 18:27 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:27 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 12:32:27 AM Jiang Liu wrote:
> Initialize acpi_dock_notifier_list from function acpi_dock_init()
> instead of dock_add() to avoid initializing it multiple times.
Well, makes sense.
Thanks,
Rafael
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Shaohua Li <shaohua.li@intel.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
> drivers/acpi/dock.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 50e38b7..8e578aa 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -967,7 +967,6 @@ static int __init dock_add(acpi_handle handle)
> 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);
>
> /* we want the dock device to send uevents */
> @@ -1038,6 +1037,7 @@ int __init acpi_dock_init(void)
> return 0;
> }
>
> + ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
> register_acpi_bus_notifier(&dock_acpi_notifier);
> pr_info(PREFIX "%s: %d docks/bays found\n",
> ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object
2013-06-13 16:32 ` [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object Jiang Liu
@ 2013-06-13 18:28 ` Rafael J. Wysocki
2013-06-14 14:05 ` Jiang Liu
0 siblings, 1 reply; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:28 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 12:32:28 AM Jiang Liu wrote:
> All dock device related data structures are created during driver
> initialization, so kill the redundant spin lock in dock device object.
As a cleanup, it definitely makes sense, but does it fix anything?
Rafael
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Shaohua Li <shaohua.li@intel.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
> drivers/acpi/dock.c | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 8e578aa..cd2d5df 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -57,7 +57,6 @@ struct dock_station {
> acpi_handle handle;
> unsigned long last_dock_time;
> u32 flags;
> - spinlock_t dd_lock;
> struct mutex hp_lock;
> struct task_struct *owner;
> struct list_head dependent_devices;
> @@ -107,10 +106,7 @@ 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);
> - spin_unlock(&ds->dd_lock);
>
> return 0;
> }
> @@ -168,14 +164,10 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
> {
> struct dock_dependent_device *dd;
>
> - spin_lock(&ds->dd_lock);
> - list_for_each_entry(dd, &ds->dependent_devices, list) {
> - if (handle == dd->handle) {
> - spin_unlock(&ds->dd_lock);
> + list_for_each_entry(dd, &ds->dependent_devices, list)
> + if (handle == dd->handle)
> return dd;
> - }
> - }
> - spin_unlock(&ds->dd_lock);
> +
> return NULL;
> }
>
> @@ -964,7 +956,6 @@ static int __init dock_add(acpi_handle handle)
> 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);
> 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] 55+ messages in thread
* Re: [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init
2013-06-13 16:32 ` [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init Jiang Liu
@ 2013-06-13 18:29 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:29 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 12:32:29 AM Jiang Liu wrote:
> Mark all initialization functions with __init to reduce memory
> consumption at runtime.
Again, this is a *cleanup*, not a fix. Please don't mix cleanups with fixes,
especially with ones you want to go into 3.10, because the cleanups aren't
3.10 material for sure.
Thanks,
Rafael
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> Cc: Shaohua Li <shaohua.li@intel.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> Cc: linux-acpi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
> drivers/acpi/dock.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index cd2d5df..da3314d 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -94,7 +94,7 @@ struct dock_dependent_device {
> *
> * Add the dependent device to the dock's dependent device list.
> */
> -static int
> +static int __init
> add_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
> {
> struct dock_dependent_device *dd;
> @@ -192,7 +192,7 @@ static int is_dock(acpi_handle handle)
> return 1;
> }
>
> -static int is_ejectable(acpi_handle handle)
> +static int __init is_ejectable(acpi_handle handle)
> {
> acpi_status status;
> acpi_handle tmp;
> @@ -203,7 +203,7 @@ static int is_ejectable(acpi_handle handle)
> return 1;
> }
>
> -static int is_ata(acpi_handle handle)
> +static int __init is_ata(acpi_handle handle)
> {
> acpi_handle tmp;
>
> @@ -216,7 +216,7 @@ static int is_ata(acpi_handle handle)
> return 0;
> }
>
> -static int is_battery(acpi_handle handle)
> +static int __init is_battery(acpi_handle handle)
> {
> struct acpi_device_info *info;
> int ret = 1;
> @@ -232,7 +232,7 @@ static int is_battery(acpi_handle handle)
> return ret;
> }
>
> -static int is_ejectable_bay(acpi_handle handle)
> +static int __init is_ejectable_bay(acpi_handle handle)
> {
> acpi_handle phandle;
>
> @@ -809,7 +809,7 @@ static struct notifier_block dock_acpi_notifier = {
> * check to see if an object has an _EJD method. If it does, then it
> * will see if it is dependent on the dock station.
> */
> -static acpi_status
> +static acpi_status __init
> find_dock_devices(acpi_handle handle, u32 lvl, void *context, void **rv)
> {
> acpi_status status;
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 8/9] ACPI: introduce several helper functions
2013-06-13 16:32 ` [BUGFIX 8/9] ACPI: introduce several helper functions Jiang Liu
@ 2013-06-13 18:36 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:36 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel
On Friday, June 14, 2013 12:32:31 AM Jiang Liu wrote:
> Introduce several helper functions, which will be used to simplify code.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Again, this is not 3.10 material.
And you could easily say "three" instead of "several" in the changelog. :-)
Thanks,
Rafael
> ---
> drivers/acpi/utils.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++
> include/acpi/acpi_bus.h | 5 ++++
> 2 files changed, 79 insertions(+)
>
> diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
> index 74437130..cb66fce 100644
> --- a/drivers/acpi/utils.c
> +++ b/drivers/acpi/utils.c
> @@ -495,3 +495,77 @@ acpi_handle_printk(const char *level, acpi_handle handle, const char *fmt, ...)
> kfree(buffer.pointer);
> }
> EXPORT_SYMBOL(acpi_handle_printk);
> +
> +/**
> + * acpi_evaluate_ej0: Evaluate _EJ0 method for hotplug operations
> + * @handle: ACPI device handle
> + *
> + * Evaluate device's _EJ0 method for hotplug operations.
> + */
> +acpi_status acpi_evaluate_ej0(acpi_handle handle)
> +{
> + acpi_status status;
> + union acpi_object arg;
> + struct acpi_object_list arg_list;
> +
> + arg.type = ACPI_TYPE_INTEGER;
> + arg.integer.value = 1;
> + arg_list.count = 1;
> + arg_list.pointer = &arg;
> + status = acpi_evaluate_object(handle, "_EJ0", &arg_list, NULL);
> + if (status == AE_NOT_FOUND) {
> + acpi_handle_warn(handle, "No _EJ0 support for device\n");
> + } else if (ACPI_FAILURE(status)) {
> + acpi_handle_warn(handle, "Eject failed (0x%x)\n", status);
> + }
> +
> + return status;
> +}
> +
> +/**
> + * acpi_evaluate_lck: Evaluate _LCK method to lock/unlock device
> + * @handle: ACPI device handle
> + * @lock: lock device if non-zero, otherwise unlock device
> + *
> + * Evaluate device's _LCK method if present to lock/unlock device
> + */
> +acpi_status acpi_evaluate_lck(acpi_handle handle, int lock)
> +{
> + acpi_status status;
> + union acpi_object arg;
> + struct acpi_object_list arg_list;
> +
> + arg_list.count = 1;
> + arg_list.pointer = &arg;
> + arg.type = ACPI_TYPE_INTEGER;
> + arg.integer.value = !!lock;
> + status = acpi_evaluate_object(handle, "_LCK", &arg_list, NULL);
> + if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
> + if (lock)
> + acpi_handle_warn(handle,
> + "Locking device failed (0x%x)\n", status);
> + else
> + acpi_handle_warn(handle,
> + "Unlocking device failed (0x%x)\n", status);
> + }
> +
> + return status;
> +}
> +
> +/**
> + * acpi_has_method: Check whether @handle has a method named @name
> + * @handle: ACPI device handle
> + * @name: name of object or method
> + *
> + * Check whether @handle has a method named @name.
> + */
> +int acpi_has_method(acpi_handle handle, char *name)
> +{
> + acpi_status status;
> + acpi_handle tmp;
> +
> + status = acpi_get_handle(handle, name, &tmp);
> +
> + return ACPI_FAILURE(status) ? 0 : 1;
> +}
> +EXPORT_SYMBOL(acpi_has_method);
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index 636c59f..5df5f89 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -56,6 +56,11 @@ acpi_evaluate_hotplug_ost(acpi_handle handle, u32 source_event,
>
> acpi_status
> acpi_get_physical_device_location(acpi_handle handle, struct acpi_pld_info **pld);
> +
> +acpi_status acpi_evaluate_ej0(acpi_handle handle);
> +acpi_status acpi_evaluate_lck(acpi_handle handle, int lock);
> +int acpi_has_method(acpi_handle handle, char *name);
> +
> #ifdef CONFIG_ACPI
>
> #include <linux/proc_fs.h>
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 9/9] ACPI: use new helper functions to simpilify code
2013-06-13 16:32 ` [BUGFIX 9/9] ACPI: use new helper functions to simpilify code Jiang Liu
2013-06-13 17:34 ` Alexander E. Patrakov
@ 2013-06-13 18:38 ` Rafael J. Wysocki
1 sibling, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:38 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel
On Friday, June 14, 2013 12:32:32 AM Jiang Liu wrote:
> Use new helper functions to simpilify ACPI dock, acpiphp code.
>
> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Not 3.10 material.
For now, please *only* send the patches from this series that are *necessary*
to fix the regression. All of the other related stuff should be sent in a
separate series for 3.11, ideally later (hint: when the essential changes have
been tested and approved).
So it looks like we need to focus on [1-2/9] from this series for now.
Thanks,
Rafael
> ---
> drivers/acpi/dock.c | 78 ++++----------------------------------
> drivers/acpi/scan.c | 53 ++++++--------------------
> drivers/pci/hotplug/acpiphp_glue.c | 15 ++------
> 3 files changed, 21 insertions(+), 125 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 72cf97e..1811f4f 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -181,26 +181,14 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
> * If an acpi object has a _DCK method, then it is by definition a dock
> * station, so return true.
> */
> -static int is_dock(acpi_handle handle)
> +static inline int is_dock(acpi_handle handle)
> {
> - acpi_status status;
> - acpi_handle tmp;
> -
> - status = acpi_get_handle(handle, "_DCK", &tmp);
> - if (ACPI_FAILURE(status))
> - return 0;
> - return 1;
> + return acpi_has_method(handle, "_DCK");
> }
>
> -static int __init is_ejectable(acpi_handle handle)
> +static inline int is_ejectable(acpi_handle handle)
> {
> - acpi_status status;
> - acpi_handle tmp;
> -
> - status = acpi_get_handle(handle, "_EJ0", &tmp);
> - if (ACPI_FAILURE(status))
> - return 0;
> - return 1;
> + return acpi_has_method(handle, "_EJ0");
> }
>
> static int __init is_ata(acpi_handle handle)
> @@ -409,37 +397,6 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
> }
>
> /**
> - * eject_dock - respond to a dock eject request
> - * @ds: the dock station
> - *
> - * This is called after _DCK is called, to execute the dock station's
> - * _EJ0 method.
> - */
> -static void eject_dock(struct dock_station *ds)
> -{
> - struct acpi_object_list arg_list;
> - union acpi_object arg;
> - acpi_status status;
> - acpi_handle tmp;
> -
> - /* all dock devices should have _EJ0, but check anyway */
> - status = acpi_get_handle(ds->handle, "_EJ0", &tmp);
> - if (ACPI_FAILURE(status)) {
> - pr_debug("No _EJ0 support for dock device\n");
> - return;
> - }
> -
> - arg_list.count = 1;
> - arg_list.pointer = &arg;
> - arg.type = ACPI_TYPE_INTEGER;
> - arg.integer.value = 1;
> -
> - status = acpi_evaluate_object(ds->handle, "_EJ0", &arg_list, NULL);
> - if (ACPI_FAILURE(status))
> - pr_debug("Failed to evaluate _EJ0!\n");
> -}
> -
> -/**
> * handle_dock - handle a dock event
> * @ds: the dock station
> * @dock: to dock, or undock - that is the question
> @@ -499,27 +456,6 @@ static inline void complete_undock(struct dock_station *ds)
> ds->flags &= ~(DOCK_UNDOCKING);
> }
>
> -static void dock_lock(struct dock_station *ds, int lock)
> -{
> - struct acpi_object_list arg_list;
> - union acpi_object arg;
> - acpi_status status;
> -
> - arg_list.count = 1;
> - arg_list.pointer = &arg;
> - arg.type = ACPI_TYPE_INTEGER;
> - arg.integer.value = !!lock;
> - status = acpi_evaluate_object(ds->handle, "_LCK", &arg_list, NULL);
> - if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
> - if (lock)
> - acpi_handle_warn(ds->handle,
> - "Locking device failed (0x%x)\n", status);
> - else
> - acpi_handle_warn(ds->handle,
> - "Unlocking device failed (0x%x)\n", status);
> - }
> -}
> -
> /**
> * dock_in_progress - see if we are in the middle of handling a dock event
> * @ds: the dock station
> @@ -653,8 +589,8 @@ static int handle_eject_request(struct dock_station *ds, u32 event)
>
> hotplug_dock_devices(ds, ACPI_NOTIFY_EJECT_REQUEST);
> undock(ds);
> - dock_lock(ds, 0);
> - eject_dock(ds);
> + acpi_evaluate_lck(ds->handle, 0);
> + acpi_evaluate_ej0(ds->handle);
> if (dock_present(ds)) {
> acpi_handle_err(ds->handle, "Unable to undock!\n");
> return -EBUSY;
> @@ -713,7 +649,7 @@ static void dock_notify(acpi_handle handle, u32 event, void *data)
> hotplug_dock_devices(ds, event);
> complete_dock(ds);
> dock_event(ds, event, DOCK_EVENT);
> - dock_lock(ds, 1);
> + acpi_evaluate_lck(ds->handle, 1);
> acpi_update_all_gpes();
> break;
> }
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 4148163..3372505 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -123,9 +123,6 @@ static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL);
> static int acpi_scan_hot_remove(struct acpi_device *device)
> {
> acpi_handle handle = device->handle;
> - acpi_handle not_used;
> - struct acpi_object_list arg_list;
> - union acpi_object arg;
> acpi_status status;
> unsigned long long sta;
>
> @@ -144,31 +141,12 @@ static int acpi_scan_hot_remove(struct acpi_device *device)
> put_device(&device->dev);
> device = NULL;
>
> - if (ACPI_SUCCESS(acpi_get_handle(handle, "_LCK", ¬_used))) {
> - arg_list.count = 1;
> - arg_list.pointer = &arg;
> - arg.type = ACPI_TYPE_INTEGER;
> - arg.integer.value = 0;
> - acpi_evaluate_object(handle, "_LCK", &arg_list, NULL);
> - }
> -
> - arg_list.count = 1;
> - arg_list.pointer = &arg;
> - arg.type = ACPI_TYPE_INTEGER;
> - arg.integer.value = 1;
> -
> - /*
> - * TBD: _EJD support.
> - */
> - status = acpi_evaluate_object(handle, "_EJ0", &arg_list, NULL);
> - if (ACPI_FAILURE(status)) {
> - if (status == AE_NOT_FOUND) {
> - return -ENODEV;
> - } else {
> - acpi_handle_warn(handle, "Eject failed (0x%x)\n",
> - status);
> - return -EIO;
> - }
> + acpi_evaluate_lck(handle, 0);
> + status = acpi_evaluate_ej0(handle);
> + if (status == AE_NOT_FOUND) {
> + return -ENODEV;
> + } else if (ACPI_FAILURE(status)) {
> + return -EIO;
> }
>
> /*
> @@ -536,7 +514,6 @@ static int acpi_device_setup_files(struct acpi_device *dev)
> {
> struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
> acpi_status status;
> - acpi_handle temp;
> unsigned long long sun;
> int result = 0;
>
> @@ -562,8 +539,7 @@ static int acpi_device_setup_files(struct acpi_device *dev)
> /*
> * If device has _STR, 'description' file is created
> */
> - status = acpi_get_handle(dev->handle, "_STR", &temp);
> - if (ACPI_SUCCESS(status)) {
> + if (acpi_has_method(dev->handle, "_STR")) {
> status = acpi_evaluate_object(dev->handle, "_STR",
> NULL, &buffer);
> if (ACPI_FAILURE(status))
> @@ -593,8 +569,7 @@ static int acpi_device_setup_files(struct acpi_device *dev)
> * If device has _EJ0, 'eject' file is created that is used to trigger
> * hot-removal function from userland.
> */
> - status = acpi_get_handle(dev->handle, "_EJ0", &temp);
> - if (ACPI_SUCCESS(status)) {
> + if (acpi_has_method(dev->handle, "_EJ0")) {
> result = device_create_file(&dev->dev, &dev_attr_eject);
> if (result)
> return result;
> @@ -616,9 +591,6 @@ end:
>
> static void acpi_device_remove_files(struct acpi_device *dev)
> {
> - acpi_status status;
> - acpi_handle temp;
> -
> if (dev->flags.power_manageable) {
> device_remove_file(&dev->dev, &dev_attr_power_state);
> if (dev->power.flags.power_resources)
> @@ -629,20 +601,17 @@ static void acpi_device_remove_files(struct acpi_device *dev)
> /*
> * If device has _STR, remove 'description' file
> */
> - status = acpi_get_handle(dev->handle, "_STR", &temp);
> - if (ACPI_SUCCESS(status)) {
> + if (acpi_has_method(dev->handle, "_STR")) {
> kfree(dev->pnp.str_obj);
> device_remove_file(&dev->dev, &dev_attr_description);
> }
> /*
> * If device has _EJ0, remove 'eject' file.
> */
> - status = acpi_get_handle(dev->handle, "_EJ0", &temp);
> - if (ACPI_SUCCESS(status))
> + if (acpi_has_method(dev->handle, "_EJ0"))
> device_remove_file(&dev->dev, &dev_attr_eject);
>
> - status = acpi_get_handle(dev->handle, "_SUN", &temp);
> - if (ACPI_SUCCESS(status))
> + if (acpi_has_method(dev->handle, "_SUN"))
> device_remove_file(&dev->dev, &dev_attr_sun);
>
> if (dev->pnp.unique_id)
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
> index 699b8ca..d0699ed 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -828,23 +828,14 @@ int acpiphp_eject_slot(struct acpiphp_slot *slot)
> {
> acpi_status status;
> struct acpiphp_func *func;
> - struct acpi_object_list arg_list;
> - union acpi_object arg;
>
> list_for_each_entry(func, &slot->funcs, sibling) {
> /* We don't want to call _EJ0 on non-existing functions. */
> if ((func->flags & FUNC_HAS_EJ0)) {
> - /* _EJ0 method take one argument */
> - arg_list.count = 1;
> - arg_list.pointer = &arg;
> - arg.type = ACPI_TYPE_INTEGER;
> - arg.integer.value = 1;
> -
> - status = acpi_evaluate_object(func->handle, "_EJ0", &arg_list, NULL);
> - if (ACPI_FAILURE(status)) {
> - warn("%s: _EJ0 failed\n", __func__);
> + status = acpi_evaluate_ej0(func->handle);
> + if (ACPI_FAILURE(status))
> return -1;
> - } else
> + else
> break;
> }
> }
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code
2013-06-13 18:26 ` Rafael J. Wysocki
@ 2013-06-13 18:39 ` Rafael J. Wysocki
2013-06-14 14:04 ` Jiang Liu
1 sibling, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 18:39 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Shaohua Li, Len Brown, linux-acpi
On Thursday, June 13, 2013 08:26:10 PM Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 12:32:26 AM Jiang Liu wrote:
> > ACPI dock driver can't be built as a module any more, so clean up
> > module related code.
> >
> > Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> > Cc: Shaohua Li <shaohua.li@intel.com>
> > Cc: Len Brown <lenb@kernel.org>
> > Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> > Cc: linux-acpi@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org
>
> How exactly does this depend on [2/9]? If it doesn't at all, it should go
> after [1/9].
However, this isn't even 3.10 material, so please stop sending it for now.
Thanks,
Rafael
> > ---
> > drivers/acpi/dock.c | 41 -----------------------------------------
> > 1 file changed, 41 deletions(-)
> >
> > diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> > index 79c8d9e..50e38b7 100644
> > --- a/drivers/acpi/dock.c
> > +++ b/drivers/acpi/dock.c
> > @@ -53,12 +53,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
> >
> > static struct atomic_notifier_head dock_notifier_list;
> >
> > -static const struct acpi_device_id dock_device_ids[] = {
> > - {"LNXDOCK", 0},
> > - {"", 0},
> > -};
> > -MODULE_DEVICE_TABLE(acpi, dock_device_ids);
> > -
>
> Don't we actually need the device IDs?
>
> > struct dock_station {
> > acpi_handle handle;
> > unsigned long last_dock_time;
> > @@ -1013,30 +1007,6 @@ err_unregister:
> > }
> >
> > /**
> > - * dock_remove - free up resources related to the dock station
> > - */
> > -static int dock_remove(struct dock_station *ds)
> > -{
> > - struct dock_dependent_device *dd, *tmp;
> > - struct platform_device *dock_device = ds->dock_device;
> > -
> > - if (!dock_station_count)
> > - return 0;
> > -
> > - /* remove dependent devices */
> > - list_for_each_entry_safe(dd, tmp, &ds->dependent_devices, list)
> > - kfree(dd);
> > -
> > - list_del(&ds->sibling);
> > -
> > - /* cleanup sysfs */
> > - sysfs_remove_group(&dock_device->dev.kobj, &dock_attribute_group);
> > - platform_device_unregister(dock_device);
> > -
> > - return 0;
> > -}
> > -
> > -/**
> > * find_dock_and_bay - look for dock stations and bays
> > * @handle: acpi handle of a device
> > * @lvl: unused
> > @@ -1073,14 +1043,3 @@ int __init acpi_dock_init(void)
> > ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
> > return 0;
> > }
> > -
> > -static void __exit dock_exit(void)
> > -{
> > - struct dock_station *tmp, *dock_station;
> > -
> > - unregister_acpi_bus_notifier(&dock_acpi_notifier);
> > - list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibling)
> > - dock_remove(dock_station);
> > -}
> > -
> > -module_exit(dock_exit);
>
> The other changes look OK to me.
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
` (9 preceding siblings ...)
2013-06-13 17:43 ` [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Alexander E. Patrakov
@ 2013-06-13 18:42 ` Yinghai Lu
2013-06-13 19:02 ` Rafael J. Wysocki
` (2 more replies)
10 siblings, 3 replies; 55+ messages in thread
From: Yinghai Lu @ 2013-06-13 18:42 UTC (permalink / raw)
To: Jiang Liu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 1082 bytes --]
On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
> 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
>
> The first patch fixes issue 1, and the second patch fixes issue 2.
> These two patches, if accepted, should be material for stable branches
> too.
> Patch 3-9 are code improvement for ACPI and dock driver.
>
> I have found the root cause for issue three, but still working on
> solutions, and seems can't be solve in short time. So please help
> to review and test patches for issue 1) and 2) first.
the 3) is about pci resource allocation?
because pcibios_add_bus is called too early?
If that is case, we should have something like attached patch for it.
With that, we will not need to worry about _OSC set for 3.10 etc.
[-- Attachment #2: pci_move_pcibios_add_bus_down.patch --]
[-- Type: application/octet-stream, Size: 1695 bytes --]
diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
index b1ff02a..68ed5d8 100644
--- a/drivers/pci/bus.c
+++ b/drivers/pci/bus.c
@@ -186,6 +186,14 @@ int pci_bus_add_device(struct pci_dev *dev)
return 0;
}
+void __weak pcibios_add_bus(struct pci_bus *bus)
+{
+}
+
+void __weak pcibios_remove_bus(struct pci_bus *bus)
+{
+}
+
/**
* pci_bus_add_devices - start driver for PCI devices
* @bus: bus to check for new devices
@@ -198,6 +206,11 @@ void pci_bus_add_devices(const struct pci_bus *bus)
struct pci_bus *child;
int retval;
+ if (bus->is_added == 1) {
+ pcibios_add_bus(bus);
+ bus->is_added++;
+ }
+
list_for_each_entry(dev, &bus->devices, bus_list) {
/* Skip already-added devices */
if (dev->is_added)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 3dfc907..51404e6 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -704,8 +704,6 @@ add_dev:
ret = device_add(&child->dev);
WARN_ON(ret < 0);
- pcibios_add_bus(child);
-
/* Create legacy_io and legacy_mem files for this bus */
pci_create_legacy_files(child);
@@ -1688,14 +1686,6 @@ int __weak pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
return 0;
}
-void __weak pcibios_add_bus(struct pci_bus *bus)
-{
-}
-
-void __weak pcibios_remove_bus(struct pci_bus *bus)
-{
-}
-
struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
struct pci_ops *ops, void *sysdata, struct list_head *resources)
{
@@ -1742,8 +1732,6 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
if (error)
goto class_dev_reg_err;
- pcibios_add_bus(b);
-
/* Create legacy_io and legacy_mem files for this bus */
pci_create_legacy_files(b);
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 18:42 ` Yinghai Lu
@ 2013-06-13 19:02 ` Rafael J. Wysocki
2013-06-13 19:08 ` Yinghai Lu
2013-06-14 2:06 ` Alexander E. Patrakov
2013-06-14 2:09 ` Jiang Liu (Gerry)
2 siblings, 1 reply; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 19:02 UTC (permalink / raw)
To: Yinghai Lu
Cc: Jiang Liu, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thursday, June 13, 2013 11:42:16 AM Yinghai Lu wrote:
> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
> > 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
> >
> > The first patch fixes issue 1, and the second patch fixes issue 2.
> > These two patches, if accepted, should be material for stable branches
> > too.
> > Patch 3-9 are code improvement for ACPI and dock driver.
> >
> > I have found the root cause for issue three, but still working on
> > solutions, and seems can't be solve in short time. So please help
> > to review and test patches for issue 1) and 2) first.
>
> the 3) is about pci resource allocation?
> because pcibios_add_bus is called too early?
>
> If that is case, we should have something like attached patch for it.
I'm including the patch below to make it easier to comment.
> With that, we will not need to worry about _OSC set for 3.10 etc.
> diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
> index b1ff02a..68ed5d8 100644
> --- a/drivers/pci/bus.c
> +++ b/drivers/pci/bus.c
> @@ -186,6 +186,14 @@ int pci_bus_add_device(struct pci_dev *dev)
> return 0;
> }
>
> +void __weak pcibios_add_bus(struct pci_bus *bus)
> +{
> +}
> +
> +void __weak pcibios_remove_bus(struct pci_bus *bus)
> +{
> +}
> +
> /**
> * pci_bus_add_devices - start driver for PCI devices
> * @bus: bus to check for new devices
> @@ -198,6 +206,11 @@ void pci_bus_add_devices(const struct pci_bus *bus)
> struct pci_bus *child;
> int retval;
>
> + if (bus->is_added == 1) {
> + pcibios_add_bus(bus);
> + bus->is_added++;
> + }
Do we need that in all of the places pci_bus_add_devices() is called?
It looks like pci_scan_child_bus() might be a better place for adding this,
or am I overlooking something?
[Hint: the bus->is_added++ hack is <explicit content> ugly.]
> +
> list_for_each_entry(dev, &bus->devices, bus_list) {
> /* Skip already-added devices */
> if (dev->is_added)
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 3dfc907..51404e6 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -704,8 +704,6 @@ add_dev:
> ret = device_add(&child->dev);
> WARN_ON(ret < 0);
>
> - pcibios_add_bus(child);
> -
> /* Create legacy_io and legacy_mem files for this bus */
> pci_create_legacy_files(child);
>
> @@ -1688,14 +1686,6 @@ int __weak pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
> return 0;
> }
>
> -void __weak pcibios_add_bus(struct pci_bus *bus)
> -{
> -}
> -
> -void __weak pcibios_remove_bus(struct pci_bus *bus)
> -{
> -}
> -
> struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> struct pci_ops *ops, void *sysdata, struct list_head *resources)
> {
> @@ -1742,8 +1732,6 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
> if (error)
> goto class_dev_reg_err;
>
> - pcibios_add_bus(b);
> -
> /* Create legacy_io and legacy_mem files for this bus */
> pci_create_legacy_files(b);
>
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 19:02 ` Rafael J. Wysocki
@ 2013-06-13 19:08 ` Yinghai Lu
0 siblings, 0 replies; 55+ messages in thread
From: Yinghai Lu @ 2013-06-13 19:08 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 12:02 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Thursday, June 13, 2013 11:42:16 AM Yinghai Lu wrote:
>> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>> > 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
>> >
>> > The first patch fixes issue 1, and the second patch fixes issue 2.
>> > These two patches, if accepted, should be material for stable branches
>> > too.
>> > Patch 3-9 are code improvement for ACPI and dock driver.
>> >
>> > I have found the root cause for issue three, but still working on
>> > solutions, and seems can't be solve in short time. So please help
>> > to review and test patches for issue 1) and 2) first.
>>
>> the 3) is about pci resource allocation?
>> because pcibios_add_bus is called too early?
>>
>> If that is case, we should have something like attached patch for it.
>
> I'm including the patch below to make it easier to comment.
>
>> With that, we will not need to worry about _OSC set for 3.10 etc.
>
>> diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c
>> index b1ff02a..68ed5d8 100644
>> --- a/drivers/pci/bus.c
>> +++ b/drivers/pci/bus.c
>> @@ -186,6 +186,14 @@ int pci_bus_add_device(struct pci_dev *dev)
>> return 0;
>> }
>>
>> +void __weak pcibios_add_bus(struct pci_bus *bus)
>> +{
>> +}
>> +
>> +void __weak pcibios_remove_bus(struct pci_bus *bus)
>> +{
>> +}
>> +
>> /**
>> * pci_bus_add_devices - start driver for PCI devices
>> * @bus: bus to check for new devices
>> @@ -198,6 +206,11 @@ void pci_bus_add_devices(const struct pci_bus *bus)
>> struct pci_bus *child;
>> int retval;
>>
>> + if (bus->is_added == 1) {
>> + pcibios_add_bus(bus);
>> + bus->is_added++;
>> + }
>
> Do we need that in all of the places pci_bus_add_devices() is called?
Yes.
>
> It looks like pci_scan_child_bus() might be a better place for adding this,
> or am I overlooking something?
acpiphp and acpi_pci_slot used to get attached when pci devices
get enumerated and pci resources get assigned unallocated...
they some kind of pci drivers to pci bus (comparing with real pci diver to
pci devices).
in dock case, could be, we just got bus, and do not scan pci devices under it.
then we try to scan dock pci devices too early...
>
> [Hint: the bus->is_added++ hack is <explicit content> ugly.]
Yeah, if we could move pcibios_fixup_bus to right place, we can move
bus->is_added setting to same place like we set pci_dev->is_added.
Yinghai
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-13 16:32 ` [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification Jiang Liu
@ 2013-06-13 19:59 ` Rafael J. Wysocki
2013-06-14 12:23 ` Rafael J. Wysocki
2013-06-14 13:53 ` Jiang Liu
0 siblings, 2 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-13 19:59 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Rafael J. Wysocki, stable
On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
So my question is, did we have this problem before commit 3b63aaa70e1?
If we did, then when did it start? Or was it present forever?
> 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.
Would not the solution be to modify it so that it didn't spawn the other
task (T2), but removed the affected physical devices synchronously?
> 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
> ---
> Hi Bjorn and Rafael,
> The recursive lock changes haven't been tested yet, need help
> from Alexander for testing.
Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
here?
Rafael
> ---
> drivers/acpi/dock.c | 33 +++++++++++++++++++++++++++------
> drivers/pci/hotplug/acpiphp_glue.c | 32 ++++++++++++++++++--------------
> 2 files changed, 45 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 02b0563..79c8d9e 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -65,6 +65,7 @@ struct dock_station {
> u32 flags;
> spinlock_t dd_lock;
> struct mutex hp_lock;
> + struct task_struct *owner;
> struct list_head dependent_devices;
> struct list_head hotplug_devices;
>
> @@ -131,9 +132,13 @@ 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);
> + if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
> + list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> + } else {
> + mutex_lock(&ds->hp_lock);
> + list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> + mutex_unlock(&ds->hp_lock);
> + }
> }
>
> /**
> @@ -147,9 +152,13 @@ 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);
> + if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
> + list_del_init(&dd->hotplug_list);
> + } else {
> + mutex_lock(&ds->hp_lock);
> + list_del_init(&dd->hotplug_list);
> + mutex_unlock(&ds->hp_lock);
> + }
> }
>
> /**
> @@ -355,7 +364,17 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
> {
> struct dock_dependent_device *dd;
>
> + /*
> + * There is a deadlock scenario as below:
> + * hotplug_dock_devices()
> + * mutex_lock(&ds->hp_lock)
> + * dd->ops->handler()
> + * register_hotplug_dock_device()
> + * mutex_lock(&ds->hp_lock)
> + * So we need recursive lock scematics here, do it by ourselves.
> + */
> mutex_lock(&ds->hp_lock);
> + ds->owner = current;
>
> /*
> * First call driver specific hotplug functions
> @@ -376,6 +395,8 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
> else
> dock_create_acpi_device(dd->handle);
> }
> +
> + ds->owner = NULL;
> mutex_unlock(&ds->hp_lock);
> }
>
> 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);
> }
>
> /*
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 18:42 ` Yinghai Lu
2013-06-13 19:02 ` Rafael J. Wysocki
@ 2013-06-14 2:06 ` Alexander E. Patrakov
2013-06-14 3:22 ` Yinghai Lu
2013-06-14 2:09 ` Jiang Liu (Gerry)
2 siblings, 1 reply; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 2:06 UTC (permalink / raw)
To: Yinghai Lu
Cc: Jiang Liu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
2013/6/14 Yinghai Lu <yinghai@kernel.org>:
> the 3) is about pci resource allocation?
> because pcibios_add_bus is called too early?
(3) is https://bugzilla.kernel.org/show_bug.cgi?id=56531
> If that is case, we should have something like attached patch for it.
It does not even compile because the argument of pci_bus_add_devices()
points to a const struct. You can't increment a member of it. And even
if you remove the const from both the declaration and the definition
of that function, the patch doesn't help at all.
Here is /proc/ioports with the fixed-up patch:
0000-0cf7 : PCI Bus 0000:00
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0062-0062 : EC data
0064-0064 : keyboard
0066-0066 : EC cmd
0070-0077 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00e1-00e1 : #ENUM hotswap signal register
00f0-00ff : fpu
03c0-03df : vga+
0400-0453 : pnp 00:04
0400-0403 : ACPI PM1a_EVT_BLK
0404-0405 : ACPI PM1a_CNT_BLK
0408-040b : ACPI PM_TMR
0410-0415 : ACPI CPU throttle
0420-042f : ACPI GPE0_BLK
0430-0433 : iTCO_wdt
0450-0450 : ACPI PM2_CNT_BLK
0454-0457 : pnp 00:06
0458-047f : pnp 00:04
0460-047f : iTCO_wdt
0500-057f : pnp 00:04
0680-069f : pnp 00:04
0cf8-0cff : PCI conf1
0d00-ffff : PCI Bus 0000:00
1000-100f : pnp 00:04
164e-164f : pnp 00:04
2000-2000 : pnp 00:04
2004-2004 : pnp 00:04
3000-5fff : PCI Bus 0000:08
6000-6fff : PCI Bus 0000:05
6000-60ff : 0000:05:00.0
6000-60ff : r8169
7000-7fff : PCI Bus 0000:04
8000-8fff : PCI Bus 0000:03
9000-9fff : PCI Bus 0000:02
a000-a03f : 0000:00:02.0
a040-a05f : 0000:00:1f.3
a060-a07f : 0000:00:1f.2
a060-a07f : ahci
a080-a087 : 0000:00:1f.2
a080-a087 : ahci
a088-a08f : 0000:00:1f.2
a088-a08f : ahci
a090-a093 : 0000:00:1f.2
a090-a093 : ahci
a094-a097 : 0000:00:1f.2
a094-a097 : ahci
ffff-ffff : pnp 00:04
ffff-ffff : pnp 00:04
And /proc/iomem:
00000000-00000fff : reserved
00001000-0008f3ff : System RAM
0008f400-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000cffff : Video ROM
000d0000-000da3ff : Adapter ROM
000e0000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-9ae3efff : System RAM
01000000-0166bfff : Kernel code
0166c000-01cbca3f : Kernel data
01dba000-026b8fff : Kernel bss
9ae3f000-9aebefff : reserved
9aebf000-9afbefff : ACPI Non-volatile Storage
9afbf000-9affefff : ACPI Tables
9afff000-9affffff : System RAM
9b000000-9f9fffff : reserved
9fa00000-feafffff : PCI Bus 0000:00
9fa00000-9fa00fff : pnp 00:09
a0000000-afffffff : 0000:00:02.0
b0000000-cfffffff : PCI Bus 0000:08
b0000000-c06fffff : PCI Bus 0000:0a
b0000000-b01fffff : PCI Bus 0000:0b
b0200000-b03fffff : PCI Bus 0000:0b
b0400000-b05fffff : PCI Bus 0000:0c
b0600000-b07fffff : PCI Bus 0000:0c
d0000000-d03fffff : 0000:00:02.0
d0400000-d13fffff : PCI Bus 0000:02
d1400000-d23fffff : PCI Bus 0000:03
d2400000-d33fffff : PCI Bus 0000:04
d3400000-d43fffff : PCI Bus 0000:05
d3400000-d3403fff : 0000:05:00.0
d3400000-d3403fff : r8169
d3404000-d3404fff : 0000:05:00.0
d3404000-d3404fff : r8169
d4400000-d53fffff : PCI Bus 0000:08
d5400000-d63fffff : PCI Bus 0000:05
d6400000-d73fffff : PCI Bus 0000:04
d6400000-d6401fff : 0000:04:00.0
d6400000-d6401fff : xhci_hcd
d7400000-d83fffff : PCI Bus 0000:03
d7400000-d7400fff : 0000:03:00.0
d7400000-d7400fff : rtsx_pci
d8400000-d93fffff : PCI Bus 0000:02
d8400000-d8401fff : 0000:02:00.0
d8400000-d8401fff : iwlwifi
d9400000-d9403fff : 0000:00:1b.0
d9400000-d9403fff : ICH HD audio
d9404000-d940400f : 0000:00:16.0
d9404000-d940400f : mei_me
d9405000-d94050ff : 0000:00:1f.3
d9407000-d94077ff : 0000:00:1f.2
d9407000-d94077ff : ahci
d9408000-d94083ff : 0000:00:1d.0
d9408000-d94083ff : ehci_hcd
d9409000-d94093ff : 0000:00:1a.0
d9409000-d94093ff : ehci_hcd
e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
e0000000-efffffff : reserved
e0000000-efffffff : pnp 00:09
feb00000-feb03fff : reserved
fec00000-fec00fff : reserved
fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
fed10000-fed19fff : reserved
fed10000-fed17fff : pnp 00:09
fed18000-fed18fff : pnp 00:09
fed19000-fed19fff : pnp 00:09
fed1c000-fed1ffff : reserved
fed1c000-fed1ffff : pnp 00:09
fed1f410-fed1f414 : iTCO_wdt
fed20000-fed3ffff : pnp 00:09
fed90000-fed93fff : pnp 00:09
fee00000-fee00fff : Local APIC
fee00000-fee00fff : reserved
ffd80000-ffffffff : reserved
100000000-25fdfffff : System RAM
25fe00000-25fffffff : RAM buffer
You can compare them with other files from
https://bugzilla.kernel.org/show_bug.cgi?id=56531
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-13 18:42 ` Yinghai Lu
2013-06-13 19:02 ` Rafael J. Wysocki
2013-06-14 2:06 ` Alexander E. Patrakov
@ 2013-06-14 2:09 ` Jiang Liu (Gerry)
2013-06-14 2:30 ` Yinghai Lu
2 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu (Gerry) @ 2013-06-14 2:09 UTC (permalink / raw)
To: Yinghai Lu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On 2013/6/14 2:42, Yinghai Lu wrote:
> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>> 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
>>
>> The first patch fixes issue 1, and the second patch fixes issue 2.
>> These two patches, if accepted, should be material for stable branches
>> too.
>> Patch 3-9 are code improvement for ACPI and dock driver.
>>
>> I have found the root cause for issue three, but still working on
>> solutions, and seems can't be solve in short time. So please help
>> to review and test patches for issue 1) and 2) first.
>
> the 3) is about pci resource allocation?
> because pcibios_add_bus is called too early?
>
> If that is case, we should have something like attached patch for it.
>
> With that, we will not need to worry about _OSC set for 3.10 etc.
>
Hi Yinghai,
Seems not related to pcibios_add_bus(). According to my
investigation, the issue is caused by difference in PCI resource
assignment between boot time and runtime hotplug. On x86 platforms,
it respects PCI resource assignment from BIOS and only reassign
resources for unassigned BARs. But with acpiphp, it ignores BIOS
resource assignment and reassign all resources by OS.
If we have enough resources, reassigning all PCI resources should
work too, but may fail if we are under resource constraints. On the
other handle, current PCI IOMM align algorithm may waste huge MMIO
address space if we have some PCI devices with huge IOMM BAR.
On this Sony laptop, BIOS allocates limited IOMM resources for
the dock station and the dock station has a gfx which has a 256MB
IOMM BAR. So current acpiphp driver fails to allocate resources
for most devices on the dock station.
Currently I'm trying to change acpiphp to respect BIOS resource
assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
The other way is to change the IOMM resource allocation algorithm,
but obviously it's much more risky of regressions if changing the
algorithm.
Regards!
Gerry
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:09 ` Jiang Liu (Gerry)
@ 2013-06-14 2:30 ` Yinghai Lu
2013-06-14 2:40 ` Alexander E. Patrakov
2013-06-14 2:51 ` Jiang Liu (Gerry)
0 siblings, 2 replies; 55+ messages in thread
From: Yinghai Lu @ 2013-06-14 2:30 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 7:09 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com> wrote:
> On 2013/6/14 2:42, Yinghai Lu wrote:
>>
>> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>>>
>>> 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
>>>
>>> The first patch fixes issue 1, and the second patch fixes issue 2.
>>> These two patches, if accepted, should be material for stable branches
>>> too.
>>> Patch 3-9 are code improvement for ACPI and dock driver.
>>>
>>> I have found the root cause for issue three, but still working on
>>> solutions, and seems can't be solve in short time. So please help
>>> to review and test patches for issue 1) and 2) first.
>>
>>
>> the 3) is about pci resource allocation?
>> because pcibios_add_bus is called too early?
>>
>> If that is case, we should have something like attached patch for it.
>>
>> With that, we will not need to worry about _OSC set for 3.10 etc.
>>
> Hi Yinghai,
> Seems not related to pcibios_add_bus(). According to my
> investigation, the issue is caused by difference in PCI resource
> assignment between boot time and runtime hotplug. On x86 platforms,
> it respects PCI resource assignment from BIOS and only reassign
> resources for unassigned BARs. But with acpiphp, it ignores BIOS
> resource assignment and reassign all resources by OS.
> If we have enough resources, reassigning all PCI resources should
> work too, but may fail if we are under resource constraints. On the
> other handle, current PCI IOMM align algorithm may waste huge MMIO
> address space if we have some PCI devices with huge IOMM BAR.
> On this Sony laptop, BIOS allocates limited IOMM resources for
> the dock station and the dock station has a gfx which has a 256MB
> IOMM BAR. So current acpiphp driver fails to allocate resources
> for most devices on the dock station.
Is it a regression?
> Currently I'm trying to change acpiphp to respect BIOS resource
> assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
> The other way is to change the IOMM resource allocation algorithm,
> but obviously it's much more risky of regressions if changing the
> algorithm.
that is not going to help, need to increase bridge resource.
please check if BIOS have setup option about hotplug MMIO pad size.
Yinghai
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:30 ` Yinghai Lu
@ 2013-06-14 2:40 ` Alexander E. Patrakov
2013-06-14 2:51 ` Jiang Liu (Gerry)
1 sibling, 0 replies; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 2:40 UTC (permalink / raw)
To: Yinghai Lu
Cc: Jiang Liu (Gerry), Rafael J . Wysocki, Bjorn Helgaas,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
2013/6/14 Yinghai Lu <yinghai@kernel.org>:
> Is it a regression?
No.
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:30 ` Yinghai Lu
2013-06-14 2:40 ` Alexander E. Patrakov
@ 2013-06-14 2:51 ` Jiang Liu (Gerry)
2013-06-14 3:30 ` Yinghai Lu
2013-06-14 4:07 ` Alexander E. Patrakov
1 sibling, 2 replies; 55+ messages in thread
From: Jiang Liu (Gerry) @ 2013-06-14 2:51 UTC (permalink / raw)
To: Yinghai Lu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On 2013/6/14 10:30, Yinghai Lu wrote:
> On Thu, Jun 13, 2013 at 7:09 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com> wrote:
>> On 2013/6/14 2:42, Yinghai Lu wrote:
>>>
>>> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>>>>
>>>> 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
>>>>
>>>> The first patch fixes issue 1, and the second patch fixes issue 2.
>>>> These two patches, if accepted, should be material for stable branches
>>>> too.
>>>> Patch 3-9 are code improvement for ACPI and dock driver.
>>>>
>>>> I have found the root cause for issue three, but still working on
>>>> solutions, and seems can't be solve in short time. So please help
>>>> to review and test patches for issue 1) and 2) first.
>>>
>>>
>>> the 3) is about pci resource allocation?
>>> because pcibios_add_bus is called too early?
>>>
>>> If that is case, we should have something like attached patch for it.
>>>
>>> With that, we will not need to worry about _OSC set for 3.10 etc.
>>>
>> Hi Yinghai,
>> Seems not related to pcibios_add_bus(). According to my
>> investigation, the issue is caused by difference in PCI resource
>> assignment between boot time and runtime hotplug. On x86 platforms,
>> it respects PCI resource assignment from BIOS and only reassign
>> resources for unassigned BARs. But with acpiphp, it ignores BIOS
>> resource assignment and reassign all resources by OS.
>> If we have enough resources, reassigning all PCI resources should
>> work too, but may fail if we are under resource constraints. On the
>> other handle, current PCI IOMM align algorithm may waste huge MMIO
>> address space if we have some PCI devices with huge IOMM BAR.
>> On this Sony laptop, BIOS allocates limited IOMM resources for
>> the dock station and the dock station has a gfx which has a 256MB
>> IOMM BAR. So current acpiphp driver fails to allocate resources
>> for most devices on the dock station.
>
> Is it a regression?
Not sure. But a little concern about check_hotplug_bridge(), it treats
dock station and devices on dock station with _EJD as hot-plug-gable
PCI bus and reserve extra resources for possible hot-adding. But I
think we should only reserve extra resource for dock station, and should
not reserve resource for devices on station with _EJD method.
>
>> Currently I'm trying to change acpiphp to respect BIOS resource
>> assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
>> The other way is to change the IOMM resource allocation algorithm,
>> but obviously it's much more risky of regressions if changing the
>> algorithm.
>
> that is not going to help, need to increase bridge resource.
>
> please check if BIOS have setup option about hotplug MMIO pad size.
For the first step, I'm trying to make hotplug case work in the same way
as boot time. Do you think this patch help?
diff --git a/drivers/pci/hotplug/acpiphp_glue.c
b/drivers/pci/hotplug/acpiphp_gl
index 270fdba..12e3f6e 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -837,13 +837,13 @@ 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->subordi
}
}
}
}
- pci_bus_assign_resources(bus);
+ pci_assign_unassigned_bus_resources(bus);
acpiphp_sanitize_bus(bus);
acpiphp_set_hpp_values(bus);
acpiphp_set_acpi_region(slot);
---
>
> Yinghai
>
> .
>
^ permalink raw reply related [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:06 ` Alexander E. Patrakov
@ 2013-06-14 3:22 ` Yinghai Lu
2013-06-14 3:57 ` Alexander E. Patrakov
0 siblings, 1 reply; 55+ messages in thread
From: Yinghai Lu @ 2013-06-14 3:22 UTC (permalink / raw)
To: Alexander E. Patrakov
Cc: Jiang Liu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 7:06 PM, Alexander E. Patrakov
<patrakov@gmail.com> wrote:
> 2013/6/14 Yinghai Lu <yinghai@kernel.org>:
>> the 3) is about pci resource allocation?
>> because pcibios_add_bus is called too early?
>
> (3) is https://bugzilla.kernel.org/show_bug.cgi?id=56531
>
>> If that is case, we should have something like attached patch for it.
>
> It does not even compile because the argument of pci_bus_add_devices()
> points to a const struct. You can't increment a member of it. And even
> if you remove the const from both the declaration and the definition
> of that function, the patch doesn't help at all.
>
> Here is /proc/ioports with the fixed-up patch:
dmesg with the fixed-up patch on v3.10-rc?
After look at the your dmesg v3.10-rc5, we really should move
pcibios_add_bus down.
as we do have children slots under ....
Yinghai
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:51 ` Jiang Liu (Gerry)
@ 2013-06-14 3:30 ` Yinghai Lu
2013-06-14 3:43 ` Yinghai Lu
2013-06-14 3:53 ` Yinghai Lu
2013-06-14 4:07 ` Alexander E. Patrakov
1 sibling, 2 replies; 55+ messages in thread
From: Yinghai Lu @ 2013-06-14 3:30 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 7:51 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com> wrote:
> On 2013/6/14 10:30, Yinghai Lu wrote:
>>
>> On Thu, Jun 13, 2013 at 7:09 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com>
>> wrote:
>
> Not sure. But a little concern about check_hotplug_bridge(), it treats
> dock station and devices on dock station with _EJD as hot-plug-gable
> PCI bus and reserve extra resources for possible hot-adding. But I
> think we should only reserve extra resource for dock station, and should
> not reserve resource for devices on station with _EJD method.
That is should be...
if there is children hotplug slots, we should add extra...
>
>
>>
>>> Currently I'm trying to change acpiphp to respect BIOS resource
>>> assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
>>> The other way is to change the IOMM resource allocation algorithm,
>>> but obviously it's much more risky of regressions if changing the
>>> algorithm.
>>
>>
>> that is not going to help, need to increase bridge resource.
>>
>> please check if BIOS have setup option about hotplug MMIO pad size.
>
> For the first step, I'm trying to make hotplug case work in the same way as
> boot time. Do you think this patch help?
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
> b/drivers/pci/hotplug/acpiphp_gl
> index 270fdba..12e3f6e 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -837,13 +837,13 @@ 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->subordi
> }
> }
> }
> }
>
> - pci_bus_assign_resources(bus);
> + pci_assign_unassigned_bus_resources(bus);
> acpiphp_sanitize_bus(bus);
> acpiphp_set_hpp_values(bus);
> acpiphp_set_acpi_region(slot);
> ---
Yes, it should help. but may need to after pcibios_add_bus move down patch.
otherwise, we could enable children slot and survery them and assign
unassigned for them at first
and then go to parent slots.
that will make children slots survey fails, that is too early and
should be done after parent slots.
Yinghai
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 3:30 ` Yinghai Lu
@ 2013-06-14 3:43 ` Yinghai Lu
2013-06-14 3:56 ` Jiang Liu (Gerry)
2013-06-14 3:53 ` Yinghai Lu
1 sibling, 1 reply; 55+ messages in thread
From: Yinghai Lu @ 2013-06-14 3:43 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 8:30 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> On Thu, Jun 13, 2013 at 7:51 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com> wrote:
>> For the first step, I'm trying to make hotplug case work in the same way as
>> boot time. Do you think this patch help?
>>
>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
>> b/drivers/pci/hotplug/acpiphp_gl
>> index 270fdba..12e3f6e 100644
>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>> @@ -837,13 +837,13 @@ 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->subordi
>> }
>> }
>> }
>> }
>>
>> - pci_bus_assign_resources(bus);
>> + pci_assign_unassigned_bus_resources(bus);
can not use use pci_assign_unassigned_bus_resources directly. as bus
could have devices that is there already
before this enable_device and could have driver loaded before.
that is why we have checking
if (PCI_SLOT(dev->devfn) != slot->device)
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 3:30 ` Yinghai Lu
2013-06-14 3:43 ` Yinghai Lu
@ 2013-06-14 3:53 ` Yinghai Lu
1 sibling, 0 replies; 55+ messages in thread
From: Yinghai Lu @ 2013-06-14 3:53 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On Thu, Jun 13, 2013 at 8:30 PM, Yinghai Lu <yinghai@kernel.org> wrote:
>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
>> b/drivers/pci/hotplug/acpiphp_gl
>> index 270fdba..12e3f6e 100644
>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>> @@ -837,13 +837,13 @@ 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->subordi
>> }
>> }
>> }
>> }
>>
>> - pci_bus_assign_resources(bus);
>> + pci_assign_unassigned_bus_resources(bus);
>> acpiphp_sanitize_bus(bus);
>> acpiphp_set_hpp_values(bus);
>> acpiphp_set_acpi_region(slot);
>> ---
>
> Yes, it should help. but may need to after pcibios_add_bus move down patch.
>
> otherwise, we could enable children slot and survery them and assign
> unassigned for them at first
> and then go to parent slots.
> that will make children slots survey fails, that is too early and
> should be done after parent slots.
oh, it seems we should get enable_slot called children slots before parent slots
finished.
so should not need "pcibios_add_bus move down" patch.
Yinghai
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 3:43 ` Yinghai Lu
@ 2013-06-14 3:56 ` Jiang Liu (Gerry)
0 siblings, 0 replies; 55+ messages in thread
From: Jiang Liu (Gerry) @ 2013-06-14 3:56 UTC (permalink / raw)
To: Yinghai Lu
Cc: Rafael J . Wysocki, Bjorn Helgaas, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu,
linux-pci@vger.kernel.org, Linux Kernel Mailing List
On 2013/6/14 11:43, Yinghai Lu wrote:
> On Thu, Jun 13, 2013 at 8:30 PM, Yinghai Lu <yinghai@kernel.org> wrote:
>> On Thu, Jun 13, 2013 at 7:51 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com> wrote:
>
>>> For the first step, I'm trying to make hotplug case work in the same way as
>>> boot time. Do you think this patch help?
>>>
>>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
>>> b/drivers/pci/hotplug/acpiphp_gl
>>> index 270fdba..12e3f6e 100644
>>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>>> @@ -837,13 +837,13 @@ 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->subordi
>>> }
>>> }
>>> }
>>> }
>>>
>>> - pci_bus_assign_resources(bus);
>>> + pci_assign_unassigned_bus_resources(bus);
>
> can not use use pci_assign_unassigned_bus_resources directly. as bus
> could have devices that is there already
> before this enable_device and could have driver loaded before.
>
> that is why we have checking
> if (PCI_SLOT(dev->devfn) != slot->device)
>
Thanks for reminder.
This a quick solution for prove of concept and it should be OK for
this Sony laptop case.
On the other hand, we may need to enhance
pci_bus_size_bridges(dev->subordinate) and
pci_bus_assign_resources(bus) to support realloc_list.
> .
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 3:22 ` Yinghai Lu
@ 2013-06-14 3:57 ` Alexander E. Patrakov
0 siblings, 0 replies; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 3:57 UTC (permalink / raw)
To: Yinghai Lu
Cc: Jiang Liu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 296 bytes --]
2013/6/14 Yinghai Lu <yinghai@kernel.org>:
> dmesg with the fixed-up patch on v3.10-rc5?
Attached. This is on top of the whole initially-posted series of 9
patches, with your fixed-up patch, but without
https://lkml.org/lkml/2013/6/13/654, and with radeon blacklisted.
--
Alexander E. Patrakov
[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 82973 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-rc5 (root@aep-vaio) (gcc version 4.6.3 (Gentoo 4.6.3 p1.11, pie-0.5.2) ) #2 SMP PREEMPT Fri Jun 14 07:54:22 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 0x7fac3000-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: 8074252k/9959424k available (6576k kernel code, 1657032k absent, 228140k reserved, 6466k 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.687 MHz processor
[ 0.000002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5587.37 BogoMIPS (lpj=2793687)
[ 0.000122] pid_max: default: 32768 minimum: 301
[ 0.000237] Security Framework initialized
[ 0.000823] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[ 0.002402] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.003100] Mount-cache hash table entries: 256
[ 0.003767] Initializing cgroup subsys memory
[ 0.003848] Initializing cgroup subsys devices
[ 0.003932] Initializing cgroup subsys freezer
[ 0.004484] Initializing cgroup subsys blkio
[ 0.004543] Initializing cgroup subsys net_prio
[ 0.004602] Initializing cgroup subsys hugetlb
[ 0.004705] CPU: Physical Processor ID: 0
[ 0.004763] CPU: Processor Core ID: 0
[ 0.004823] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[ 0.004919] mce: CPU supports 7 MCE banks
[ 0.004985] CPU0: Thermal monitoring enabled (TM1)
[ 0.005055] 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.005317] Freeing SMP alternatives: 24k freed
[ 0.005383] ACPI: Core revision 20130328
[ 0.016568] ACPI: All ACPI Tables successfully acquired
[ 0.028849] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.038929] smpboot: CPU0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (fam: 06, model: 2a, stepping: 07)
[ 0.039130] TSC deadline timer enabled
[ 0.039145] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[ 0.039385] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[ 0.039465] ... version: 3
[ 0.039523] ... bit width: 48
[ 0.039581] ... generic registers: 4
[ 0.039638] ... value mask: 0000ffffffffffff
[ 0.039697] ... max period: 000000007fffffff
[ 0.039756] ... fixed-purpose events: 3
[ 0.039814] ... event mask: 000000070000000f
[ 0.049505] SMP alternatives: lockdep: fixing up alternatives
[ 0.063156] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 0.049584] smpboot: Booting Node 0, Processors #1
[ 0.065090] SMP alternatives: lockdep: fixing up alternatives
[ 0.065204] #2
[ 0.080552] SMP alternatives: lockdep: fixing up alternatives
[ 0.080668] #3
[ 0.093991] Brought up 4 CPUs
[ 0.094100] smpboot: Total of 4 processors activated (22349.49 BogoMIPS)
[ 0.097721] devtmpfs: initialized
[ 0.100300] PM: Registering ACPI NVS region [mem 0x9aebf000-0x9afbefff] (1048576 bytes)
[ 0.100632] xor: automatically using best checksumming function:
[ 0.110083] avx : 20480.000 MB/sec
[ 0.110317] NET: Registered protocol family 16
[ 0.110735] ACPI: bus type PCI registered
[ 0.110794] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.110928] dca service started, version 1.12.1
[ 0.111045] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[ 0.111129] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 0.133679] PCI: Using configuration type 1 for base access
[ 0.135790] bio: create slab <bio-0> at 0
[ 0.152258] raid6: sse2x1 7582 MB/s
[ 0.169305] raid6: sse2x2 9320 MB/s
[ 0.186358] raid6: sse2x4 10820 MB/s
[ 0.186415] raid6: using algorithm sse2x4 (10820 MB/s)
[ 0.186475] raid6: using ssse3x2 recovery algorithm
[ 0.186610] ACPI: Added _OSI(Module Device)
[ 0.186669] ACPI: Added _OSI(Processor Device)
[ 0.186728] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.186787] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.191452] ACPI: EC: Look up EC in DSDT
[ 0.195975] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.204580] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 0.212509] ACPI: SSDT 000000009ae70718 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.213836] ACPI: Dynamic OEM Table Load:
[ 0.213973] ACPI: SSDT (null) 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.217817] ACPI: SSDT 000000009ae71a98 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.219202] ACPI: Dynamic OEM Table Load:
[ 0.219339] ACPI: SSDT (null) 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.222722] ACPI: SSDT 000000009ae6fd98 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.224054] ACPI: Dynamic OEM Table Load:
[ 0.224190] ACPI: SSDT (null) 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.635788] ACPI: Interpreter enabled
[ 0.635853] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20130328/hwxface-568)
[ 0.636012] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130328/hwxface-568)
[ 0.636198] ACPI: (supports S0 S3 S4 S5)
[ 0.636256] ACPI: Using IOAPIC for interrupt routing
[ 0.636349] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.637284] ACPI: ACPI Dock Station Driver: 1 docks/bays found
[ 0.654374] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[ 0.654551] \_SB_.PCI0:_OSC invalid UUID
[ 0.654553] _OSC request data:1 8 0
[ 0.655509] PCI host bridge to bus 0000:00
[ 0.655575] pci_bus 0000:00: root bus resource [bus 00-fe]
[ 0.655637] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
[ 0.655699] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
[ 0.655760] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[ 0.655823] pci_bus 0000:00: root bus resource [mem 0x9fa00000-0xfeafffff]
[ 0.655921] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[ 0.656132] pci 0000:00:02.0: [8086:0126] type 00 class 0x030000
[ 0.656147] pci 0000:00:02.0: reg 10: [mem 0xd0000000-0xd03fffff 64bit]
[ 0.656156] pci 0000:00:02.0: reg 18: [mem 0xa0000000-0xafffffff 64bit pref]
[ 0.656162] pci 0000:00:02.0: reg 20: [io 0xa000-0xa03f]
[ 0.656350] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[ 0.656388] pci 0000:00:16.0: reg 10: [mem 0xd9404000-0xd940400f 64bit]
[ 0.656519] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 0.656702] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[ 0.657001] pci 0000:00:1a.0: reg 10: [mem 0xd9409000-0xd94093ff]
[ 0.658711] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 0.658805] pci 0000:00:1a.0: System wakeup disabled by ACPI
[ 0.658976] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[ 0.659005] pci 0000:00:1b.0: reg 10: [mem 0xd9400000-0xd9403fff 64bit]
[ 0.659143] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.659196] pci 0000:00:1b.0: System wakeup disabled by ACPI
[ 0.659318] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[ 0.659461] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.659517] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 0.659635] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[ 0.659783] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 0.659845] pci 0000:00:1c.1: System wakeup disabled by ACPI
[ 0.659965] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[ 0.660110] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.660173] pci 0000:00:1c.2: System wakeup disabled by ACPI
[ 0.660290] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[ 0.660436] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.660503] pci 0000:00:1c.3: System wakeup disabled by ACPI
[ 0.660625] pci 0000:00:1c.6: [8086:1c1c] type 01 class 0x060400
[ 0.660776] pci 0000:00:1c.6: PME# supported from D0 D3hot D3cold
[ 0.660848] pci 0000:00:1c.6: System wakeup disabled by ACPI
[ 0.660980] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[ 0.661279] pci 0000:00:1d.0: reg 10: [mem 0xd9408000-0xd94083ff]
[ 0.662985] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 0.663051] pci 0000:00:1d.0: System wakeup disabled by ACPI
[ 0.663171] pci 0000:00:1f.0: [8086:1c4b] type 00 class 0x060100
[ 0.663412] pci 0000:00:1f.2: [8086:282a] type 00 class 0x010400
[ 0.663451] pci 0000:00:1f.2: reg 10: [io 0xa088-0xa08f]
[ 0.663466] pci 0000:00:1f.2: reg 14: [io 0xa094-0xa097]
[ 0.663481] pci 0000:00:1f.2: reg 18: [io 0xa080-0xa087]
[ 0.663494] pci 0000:00:1f.2: reg 1c: [io 0xa090-0xa093]
[ 0.663509] pci 0000:00:1f.2: reg 20: [io 0xa060-0xa07f]
[ 0.663523] pci 0000:00:1f.2: reg 24: [mem 0xd9407000-0xd94077ff]
[ 0.663622] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.663736] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[ 0.663765] pci 0000:00:1f.3: reg 10: [mem 0xd9405000-0xd94050ff 64bit]
[ 0.663807] pci 0000:00:1f.3: reg 20: [io 0xa040-0xa05f]
[ 0.664277] pci 0000:02:00.0: [8086:0091] type 00 class 0x028000
[ 0.664633] pci 0000:02:00.0: reg 10: [mem 0xd8400000-0xd8401fff 64bit]
[ 0.666217] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[ 0.666415] pci 0000:02:00.0: System wakeup disabled by ACPI
[ 0.668158] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.668224] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.668230] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.668240] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.668372] pci 0000:03:00.0: [10ec:5209] type 00 class 0xff0000
[ 0.668400] pci 0000:03:00.0: reg 10: [mem 0xd7400000-0xd7400fff]
[ 0.668608] pci 0000:03:00.0: supports D1 D2
[ 0.668610] pci 0000:03:00.0: PME# supported from D1 D2 D3hot
[ 0.668661] pci 0000:03:00.0: System wakeup disabled by ACPI
[ 0.670035] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.670121] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.670127] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.670137] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.670325] pci 0000:04:00.0: [1033:0194] type 00 class 0x0c0330
[ 0.670362] pci 0000:04:00.0: reg 10: [mem 0xd6400000-0xd6401fff 64bit]
[ 0.670559] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[ 0.670616] pci 0000:04:00.0: System wakeup disabled by ACPI
[ 0.670755] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.670819] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.670824] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.670834] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.671025] pci 0000:05:00.0: [10ec:8168] type 00 class 0x020000
[ 0.671100] pci 0000:05:00.0: reg 10: [io 0x6000-0x60ff]
[ 0.671234] pci 0000:05:00.0: reg 18: [mem 0xd3404000-0xd3404fff 64bit pref]
[ 0.671316] pci 0000:05:00.0: reg 20: [mem 0xd3400000-0xd3403fff 64bit pref]
[ 0.671686] pci 0000:05:00.0: supports D1 D2
[ 0.671687] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.671822] pci 0000:05:00.0: System wakeup disabled by ACPI
[ 0.673085] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.673164] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.673169] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.673179] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.673285] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.673350] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.673356] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.673366] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.673476] \_SB_.PCI0:_OSC invalid UUID
[ 0.673477] _OSC request data:1 1f 0
[ 0.673482] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[ 0.673558] acpi PNP0A08:00: Unable to request _OSC control (_OSC support mask: 0x08)
[ 0.673830] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
[ 0.673940] acpiphp: Slot [1] registered
[ 0.675719] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.676403] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.677030] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.677660] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.678290] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.678965] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 0.679686] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.680314] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.681707] ACPI: Enabled 6 GPEs in block 00 to 3F
[ 0.681851] acpi root: \_SB_.PCI0 notify handler is installed
[ 0.682002] Found 1 acpi root devices
[ 0.682130] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.682527] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.682611] vgaarb: loaded
[ 0.682666] vgaarb: bridge control possible 0000:00:02.0
[ 0.682802] SCSI subsystem initialized
[ 0.682860] ACPI: bus type ATA registered
[ 0.683001] libata version 3.00 loaded.
[ 0.683014] ACPI: bus type USB registered
[ 0.683096] usbcore: registered new interface driver usbfs
[ 0.683169] usbcore: registered new interface driver hub
[ 0.683264] usbcore: registered new device driver usb
[ 0.683367] PCI: Using ACPI for IRQ routing
[ 0.691503] PCI: pci_cache_line_size set to 64 bytes
[ 0.691693] e820: reserve RAM buffer [mem 0x0008f400-0x0008ffff]
[ 0.691701] e820: reserve RAM buffer [mem 0x9ae3f000-0x9bffffff]
[ 0.691703] e820: reserve RAM buffer [mem 0x9b000000-0x9bffffff]
[ 0.691705] e820: reserve RAM buffer [mem 0x25fe00000-0x25fffffff]
[ 0.692050] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.692468] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 0.694551] Switching to clocksource hpet
[ 0.701194] pnp: PnP ACPI init
[ 0.701280] ACPI: bus type PNP registered
[ 0.701450] pnp 00:00: [dma 4]
[ 0.701504] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.701542] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[ 0.701663] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[ 0.701715] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.701789] system 00:04: [io 0x0680-0x069f] has been reserved
[ 0.701852] system 00:04: [io 0x1000-0x100f] has been reserved
[ 0.701914] system 00:04: [io 0xffff] has been reserved
[ 0.701974] system 00:04: [io 0xffff] has been reserved
[ 0.702034] system 00:04: [io 0x0400-0x0453] has been reserved
[ 0.702096] system 00:04: [io 0x0458-0x047f] has been reserved
[ 0.702158] system 00:04: [io 0x0500-0x057f] has been reserved
[ 0.702220] system 00:04: [io 0x164e-0x164f] has been reserved
[ 0.702282] system 00:04: [io 0x2000] has been reserved
[ 0.702343] system 00:04: [io 0x2004] has been reserved
[ 0.702406] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.702449] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.702515] system 00:06: [io 0x0454-0x0457] has been reserved
[ 0.702578] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 0.702629] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 (active)
[ 0.702688] pnp 00:08: Plug and Play ACPI device, IDs SNY9015 PNP0f13 (active)
[ 0.702876] system 00:09: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.702940] system 00:09: [mem 0xfed10000-0xfed17fff] has been reserved
[ 0.703003] system 00:09: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.703066] system 00:09: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.703129] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[ 0.703193] system 00:09: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 0.703255] system 00:09: [mem 0xfed90000-0xfed93fff] has been reserved
[ 0.703318] system 00:09: [mem 0xff000000-0xffffffff] could not be reserved
[ 0.703384] system 00:09: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 0.703447] system 00:09: [mem 0x9fa00000-0x9fa00fff] has been reserved
[ 0.703512] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.704302] system 00:0a: [mem 0x20000000-0x201fffff] could not be reserved
[ 0.704374] system 00:0a: [mem 0x40000000-0x401fffff] could not be reserved
[ 0.704445] system 00:0a: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.704467] pnp: PnP ACPI: found 11 devices
[ 0.704527] ACPI: bus type PNP unregistered
[ 0.712702] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.712766] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.712834] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.712901] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.712984] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.713046] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.713115] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.713670] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.713754] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.713816] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.713883] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.713950] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.714033] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.714095] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.714162] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.714228] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.714311] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.714374] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.714441] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.714508] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.715019] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
[ 0.715021] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
[ 0.715023] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[ 0.715025] pci_bus 0000:00: resource 7 [mem 0x9fa00000-0xfeafffff]
[ 0.715027] pci_bus 0000:02: resource 0 [io 0x9000-0x9fff]
[ 0.715028] pci_bus 0000:02: resource 1 [mem 0xd8400000-0xd93fffff]
[ 0.715030] pci_bus 0000:02: resource 2 [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.715032] pci_bus 0000:03: resource 0 [io 0x8000-0x8fff]
[ 0.715033] pci_bus 0000:03: resource 1 [mem 0xd7400000-0xd83fffff]
[ 0.715035] pci_bus 0000:03: resource 2 [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.715037] pci_bus 0000:04: resource 0 [io 0x7000-0x7fff]
[ 0.715039] pci_bus 0000:04: resource 1 [mem 0xd6400000-0xd73fffff]
[ 0.715040] pci_bus 0000:04: resource 2 [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.715042] pci_bus 0000:05: resource 0 [io 0x6000-0x6fff]
[ 0.715044] pci_bus 0000:05: resource 1 [mem 0xd5400000-0xd63fffff]
[ 0.715045] pci_bus 0000:05: resource 2 [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.715047] pci_bus 0000:08: resource 0 [io 0x3000-0x5fff]
[ 0.715049] pci_bus 0000:08: resource 1 [mem 0xb0000000-0xcfffffff]
[ 0.715050] pci_bus 0000:08: resource 2 [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.715097] NET: Registered protocol family 2
[ 0.715603] TCP established hash table entries: 65536 (order: 8, 1048576 bytes)
[ 0.716088] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
[ 0.719575] TCP: Hash tables configured (established 65536 bind 65536)
[ 0.719705] TCP: reno registered
[ 0.719811] UDP hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.720354] UDP-Lite hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.721067] NET: Registered protocol family 1
[ 0.721142] pci 0000:00:02.0: Boot video device
[ 0.754828] PCI: CLS 64 bytes, default 64
[ 0.754985] Unpacking initramfs...
[ 0.839859] Freeing initrd memory: 5360k freed
[ 0.840616] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.840683] software IO TLB [mem 0x96e3f000-0x9ae3f000] (64MB) mapped at [ffff880096e3f000-ffff88009ae3efff]
[ 0.840798] Simple Boot Flag at 0x44 set to 0x1
[ 0.841484] audit: initializing netlink socket (disabled)
[ 0.841577] type=2000 audit(1371181871.818:1): initialized
[ 0.862138] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.864762] VFS: Disk quotas dquot_6.5.2
[ 0.864882] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.865526] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.865883] NILFS version 2 loaded
[ 0.866136] bio: create slab <bio-1> at 1
[ 0.866456] Btrfs loaded
[ 0.866520] msgmni has been set to 15780
[ 0.867213] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.867303] io scheduler noop registered
[ 0.867361] io scheduler deadline registered
[ 0.867482] io scheduler cfq registered (default)
[ 0.868056] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.868200] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.868263] cpcihp_zt5550: ZT5550 CompactPCI Hot Plug Driver version: 0.2
[ 0.868346] cpcihp_generic: Generic port I/O CompactPCI Hot Plug Driver version: 0.1
[ 0.868421] cpcihp_generic: not configured, disabling.
[ 0.868501] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.871193] acpiphp_ibm: ibm_acpiphp_init: acpi_walk_namespace failed
[ 0.871665] intel_idle: MWAIT substates: 0x21120
[ 0.871666] intel_idle: v0.4 model 0x2A
[ 0.871667] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 0.871821] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.872099] ACPI: AC Adapter [ADP1] (off-line)
[ 0.872393] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0
[ 0.872503] ACPI: Lid Switch [LID0]
[ 0.872619] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1
[ 0.872725] ACPI: Power Button [PWRB]
[ 0.872897] ACPI: Requesting acpi_cpufreq
[ 0.880420] thermal LNXTHERM:00: registered as thermal_zone0
[ 0.880484] ACPI: Thermal Zone [TZ01] (43 C)
[ 0.880688] ioatdma: Intel(R) QuickData Technology Driver 4.00
[ 0.880934] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.885592] loop: module loaded
[ 0.886078] mei_me 0000:00:16.0: setting latency timer to 64
[ 0.886196] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[ 0.887005] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.887096] ACPI: Battery Slot [BAT1] (battery present)
[ 0.887268] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.887359] ACPI: Battery Slot [BAT2] (battery absent)
[ 0.891382] Loading iSCSI transport class v2.0-870.
[ 0.891586] iscsi: registered transport (tcp)
[ 0.891711] ahci 0000:00:1f.2: version 3.0
[ 0.891897] ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
[ 0.891973] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3 impl RAID mode
[ 0.892052] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part apst
[ 0.892131] ahci 0000:00:1f.2: setting latency timer to 64
[ 0.893129] scsi0 : ahci
[ 0.893406] scsi1 : ahci
[ 0.893568] scsi2 : ahci
[ 0.893721] scsi3 : ahci
[ 0.893870] scsi4 : ahci
[ 0.894032] scsi5 : ahci
[ 0.894150] ata1: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407100 irq 41
[ 0.894247] ata2: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407180 irq 41
[ 0.894322] ata3: DUMMY
[ 0.894377] ata4: DUMMY
[ 0.894433] ata5: DUMMY
[ 0.894502] ata6: DUMMY
[ 0.894789] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[ 0.897422] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.897674] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.897933] mousedev: PS/2 mouse device common for all mice
[ 0.898453] rtc_cmos 00:05: RTC can wake from S4
[ 0.898758] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[ 0.898854] rtc_cmos 00:05: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 0.899003] Intel P-state driver initializing.
[ 0.899082] Intel pstate controlling: cpu 0
[ 0.899217] Intel pstate controlling: cpu 1
[ 0.899296] Intel pstate controlling: cpu 2
[ 0.899371] Intel pstate controlling: cpu 3
[ 0.899658] cpuidle: using governor ladder
[ 0.900195] cpuidle: using governor menu
[ 0.900259] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.900337] hidraw: raw HID events driver (C) Jiri Kosina
[ 0.900634] TCP: cubic registered
[ 0.900693] Initializing XFRM netlink socket
[ 0.900921] NET: Registered protocol family 10
[ 0.901402] NET: Registered protocol family 17
[ 0.901550] Key type dns_resolver registered
[ 0.902033] PM: Hibernation image not present or could not be loaded.
[ 0.902055] registered taskstats version 1
[ 0.903280] rtc_cmos 00:05: setting system clock to 2013-06-14 03:51:12 UTC (1371181872)
[ 0.916752] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[ 1.199427] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.199580] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.200473] ata1.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.200591] ata1.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.200732] ata2.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.200834] ata2.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.201348] ata1.00: configured for UDMA/133
[ 1.201442] ata2.00: configured for UDMA/133
[ 1.202438] scsi 0:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.203392] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.203747] sd 0:0:0:0: [sda] Write Protect is off
[ 1.203841] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.203930] scsi 1:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.203967] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.204333] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.204621] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.204699] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.204745] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.205183] sda: sda1 sda2
[ 1.205405] sda: p2 size 489641984 extends beyond EOD, enabling native capacity
[ 1.205526] sdb: unknown partition table
[ 1.206455] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 1.206971] sda: sda1 sda2
[ 1.207133] sda: p2 size 489641984 extends beyond EOD, truncated
[ 1.207604] sd 0:0:0:0: [sda] Attached SCSI disk
[ 1.208499] Freeing unused kernel memory: 980k freed
[ 1.208656] Write protecting the kernel read-only data: 12288k
[ 1.211531] Freeing unused kernel memory: 1604k freed
[ 1.213740] Freeing unused kernel memory: 1256k freed
[ 1.238763] dracut: dracut-027-r3
[ 1.261311] device-mapper: uevent: version 1.0.3
[ 1.261543] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
[ 1.265560] systemd-udevd[168]: starting version 204
[ 1.328501] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.328957] ehci-pci: EHCI PCI platform driver
[ 1.329201] ehci-pci 0000:00:1a.0: setting latency timer to 64
[ 1.329273] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 1.329499] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[ 1.329632] ehci-pci 0000:00:1a.0: debug port 2
[ 1.333671] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 1.333736] ehci-pci 0000:00:1a.0: irq 23, io mem 0xd9409000
[ 1.339475] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 1.340389] hub 1-0:1.0: USB hub found
[ 1.340513] hub 1-0:1.0: 2 ports detected
[ 1.341159] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.341239] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
[ 1.341268] ehci-pci 0000:00:1d.0: setting latency timer to 64
[ 1.341635] xhci_hcd 0000:04:00.0: irq 42 for MSI/MSI-X
[ 1.341644] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[ 1.341650] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[ 1.341657] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[ 1.341664] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[ 1.342363] xHCI xhci_add_endpoint called for root hub
[ 1.342367] xHCI xhci_check_bandwidth called for root hub
[ 1.342519] hub 2-0:1.0: USB hub found
[ 1.342633] hub 2-0:1.0: 2 ports detected
[ 1.343559] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.343653] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 3
[ 1.343713] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 1.343724] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[ 1.343750] ehci-pci 0000:00:1d.0: debug port 2
[ 1.345256] xHCI xhci_add_endpoint called for root hub
[ 1.345259] xHCI xhci_check_bandwidth called for root hub
[ 1.345494] hub 3-0:1.0: USB hub found
[ 1.345609] hub 3-0:1.0: 2 ports detected
[ 1.347665] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 1.347700] ehci-pci 0000:00:1d.0: irq 20, io mem 0xd9408000
[ 1.353482] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 1.353825] hub 4-0:1.0: USB hub found
[ 1.353896] hub 4-0:1.0: 2 ports detected
[ 1.375902] md: bind<sda>
[ 1.583282] md: bind<sdb>
[ 1.591085] md: bind<sdb>
[ 1.591435] md: bind<sda>
[ 1.593701] md: raid0 personality registered for level 0
[ 1.594216] md/raid0:md126: md_size is 500129792 sectors.
[ 1.594276] md: RAID0 configuration for md126 - 1 zone
[ 1.594345] md: zone0=[sda/sdb]
[ 1.594525] zone-offset= 0KB, device-offset= 0KB, size= 250065152KB
[ 1.594739] md126: detected capacity change from 0 to 256066453504
[ 1.596494] md126: p1 p2
[ 1.642853] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 1.680609] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x122c00, board id: 1690, fw id: 934878
[ 1.716466] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[ 1.758679] hub 1-1:1.0: USB hub found
[ 1.758884] hub 1-1:1.0: 6 ports detected
[ 1.843448] tsc: Refined TSC clocksource calibration: 2793.652 MHz
[ 1.843588] Switching to clocksource tsc
[ 1.862126] usb 4-1: new high-speed USB device number 2 using ehci-pci
[ 1.970431] dracut: luksOpen /dev/md126p2 luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521
[ 1.977134] hub 4-1:1.0: USB hub found
[ 1.977298] hub 4-1:1.0: 8 ports detected
[ 2.052767] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[ 2.204931] usb 1-1.2: new full-speed USB device number 4 using ehci-pci
[ 2.371128] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[ 2.553350] usb 1-1.4: new high-speed USB device number 6 using ehci-pci
[ 2.641307] usb 1-1.4: config 1 has an invalid interface number: 8 but max is 3
[ 2.641421] usb 1-1.4: config 1 has no interface number 1
[ 9.171232] sha256_ssse3: Using AVX optimized SHA-256 implementation
[ 9.172773] bio: create slab <bio-2> at 2
[ 9.332803] dracut: Scanning devices dm-0 for LVM logical volumes vaio/gentoo64a-root
[ 9.343531] dracut: inactive '/dev/vaio/gentoo64a-root' [16.00 GiB] inherit
[ 9.343648] dracut: inactive '/dev/vaio/portage' [12.00 GiB] inherit
[ 9.343773] dracut: inactive '/dev/vaio/home' [180.00 GiB] inherit
[ 9.385518] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 9.397891] dracut: Checking ext4: /dev/vaio/gentoo64a-root
[ 9.397985] dracut: issuing e2fsck -a /dev/vaio/gentoo64a-root
[ 9.449676] dracut: /dev/vaio/gentoo64a-root: clean, 655115/1048576 files, 3910555/4194304 blocks
[ 9.451397] dracut: Mounting /dev/vaio/gentoo64a-root with -o noatime,ro
[ 9.455351] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 9.462476] dracut: Mounted root filesystem /dev/mapper/vaio-gentoo64a--root
[ 9.476183] dracut: Switching root
[ 9.791039] systemd-udevd[630]: starting version 204
[ 9.878506] ACPI Warning: 0x000000000000a040-0x000000000000a05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251)
[ 9.878513] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.879322] Linux agpgart interface v0.103
[ 9.882426] [drm] Initialized drm 1.1.0 20060810
[ 9.882563] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20130328/utaddress-251)
[ 9.882571] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.882577] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.882582] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.882584] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.882589] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.882591] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.882596] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.882598] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 9.894139] snd_hda_intel 0000:00:1b.0: irq 47 for MSI/MSI-X
[ 9.898142] sony_laptop: Sony Notebook Control Driver v0.6
[ 9.901301] input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input4
[ 9.901484] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input5
[ 9.908761] hda_codec: ALC275: SKU not ready 0x411111f0
[ 9.911055] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6
[ 9.920662] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[ 9.920802] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[ 9.922260] sony_laptop: brightness ignored, must be controlled by ACPI video driver
[ 9.924242] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 9.924589] r8169 0000:05:00.0: irq 48 for MSI/MSI-X
[ 9.925036] r8169 0000:05:00.0 eth0: RTL8168evl/8111evl at 0xffffc90011aba000, 54:42:49:9a:df:1e, XID 0c900800 IRQ 48
[ 9.925038] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 9.925718] rtsx_pci 0000:03:00.0: irq 49 for MSI/MSI-X
[ 9.925737] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 49
[ 9.928136] [drm] Memory usable by graphics device = 2048M
[ 9.928182] i915 0000:00:02.0: setting latency timer to 64
[ 9.928922] cfg80211: Calling CRDA to update world regulatory domain
[ 9.936122] Intel(R) Wireless WiFi driver for Linux, in-tree:
[ 9.936125] Copyright(c) 2003-2013 Intel Corporation
[ 9.936561] iwlwifi 0000:02:00.0: irq 50 for MSI/MSI-X
[ 9.942122] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[ 9.960415] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 9.960421] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[ 9.960423] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[ 9.960426] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[ 9.960428] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[ 9.960431] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[ 9.960559] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 9.975236] i915 0000:00:02.0: irq 51 for MSI/MSI-X
[ 9.975261] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 9.975263] [drm] Driver supports precise vblank timestamp query.
[ 9.976093] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 9.987203] media: Linux media interface: v0.10
[ 9.990695] Linux video capture interface: v2.00
[ 9.992170] Bluetooth: Core ver 2.16
[ 9.992258] NET: Registered protocol family 31
[ 9.992260] Bluetooth: HCI device and connection manager initialized
[ 9.992320] Bluetooth: HCI socket layer initialized
[ 9.992324] Bluetooth: L2CAP socket layer initialized
[ 9.992337] Bluetooth: SCO socket layer initialized
[ 9.994975] usbcore: registered new interface driver btusb
[ 9.995102] input: PC Speaker as /devices/platform/pcspkr/input/input9
[ 9.996089] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 9.996737] uvcvideo: Found UVC 1.00 device USB2.0 Camera (05c8:0318)
[ 9.997830] Error: Driver 'pcspkr' is already registered, aborting...
[ 10.002561] 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
[ 10.003194] usbcore: registered new interface driver uvcvideo
[ 10.003196] USB Video Class driver (1.1.1)
[ 10.010026] usbcore: registered new interface driver usbserial
[ 10.011234] usbcore: registered new interface driver usbserial_generic
[ 10.011425] usbserial: USB Serial support registered for generic
[ 10.014165] usbcore: registered new interface driver qcserial
[ 10.014202] usbserial: USB Serial support registered for Qualcomm USB modem
[ 10.015317] qcserial 1-1.4:1.0: Qualcomm USB modem converter detected
[ 10.018152] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[ 10.019573] qcserial 1-1.4:1.2: Qualcomm USB modem converter detected
[ 10.020441] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[ 10.020450] [drm] Wrong MCH_SSKPD value: 0x16040307
[ 10.020453] [drm] This can cause pipe underruns and display issues.
[ 10.020455] [drm] Please upgrade your BIOS to fix this.
[ 10.020580] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 10.021475] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 10.021915] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[ 10.021926] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 10.021943] qcserial 1-1.4:1.3: Qualcomm USB modem converter detected
[ 10.021963] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 10.022195] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[ 10.022219] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 10.022257] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 10.022499] microcode: CPU2 updated to revision 0x28, date = 2012-04-24
[ 10.022509] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 10.022553] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 10.022816] microcode: CPU3 updated to revision 0x28, date = 2012-04-24
[ 10.022832] perf_event_intel: PEBS enabled due to microcode update
[ 10.022899] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[ 10.022906] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[ 10.035109] fbcon: inteldrmfb (fb0) is primary device
[ 10.072988] iTCO_vendor_support: vendor-support=0
[ 10.074032] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[ 10.074069] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[ 10.113465] systemd-udevd[657]: renamed network interface eth0 to enp5s0
[ 10.128718] cfg80211: World regulatory domain updated:
[ 10.128720] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 10.128722] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 10.128723] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 10.128725] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 10.128726] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 10.128727] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 10.129467] systemd-udevd[660]: renamed network interface wlan0 to wlp2s0
[ 11.743610] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
[ 11.833495] Console: switching to colour frame buffer device 240x67
[ 11.837605] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[ 11.837607] i915 0000:00:02.0: registered panic notifier
[ 11.838065] [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.
[ 11.838074] [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.
[ 11.838083] [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.
[ 11.838092] [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.
[ 11.838101] [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.
[ 11.838110] [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.
[ 11.838118] [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.
[ 11.839634] acpi device:3e: registered as cooling_device5
[ 11.839904] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 11.840060] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:09/input/input11
[ 11.840632] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[ 12.828670] EXT4-fs (dm-1): re-mounted. Opts: (null)
[ 12.908764] EXT4-fs (md126p1): mounted filesystem with ordered data mode. Opts: (null)
[ 12.913277] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 12.919400] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[ 13.368694] microcode: Microcode Update Driver: v2.00 removed.
[ 13.856924] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 13.863933] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 14.248385] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 14.255245] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 14.464745] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 16.128442] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 16.128446] Bluetooth: BNEP filters: protocol multicast
[ 16.128456] Bluetooth: BNEP socket layer initialized
[ 16.294870] Bluetooth: RFCOMM TTY layer initialized
[ 16.294888] Bluetooth: RFCOMM socket layer initialized
[ 16.294890] Bluetooth: RFCOMM ver 1.11
[ 16.572822] zram: module is from the staging directory, the quality is unknown, you have been warned.
[ 16.574132] zram: Created 4 device(s) ...
[ 16.586409] Adding 1572860k swap on /dev/zram0. Priority:10 extents:1 across:1572860k SSFS
[ 16.594083] Adding 1572860k swap on /dev/zram1. Priority:10 extents:1 across:1572860k SSFS
[ 16.600713] Adding 1572860k swap on /dev/zram2. Priority:10 extents:1 across:1572860k SSFS
[ 16.607575] Adding 1572860k swap on /dev/zram3. Priority:10 extents:1 across:1572860k SSFS
[ 18.089854] wlp2s0: authenticate with 08:60:6e:cc:a2:94
[ 18.095856] wlp2s0: send auth to 08:60:6e:cc:a2:94 (try 1/3)
[ 18.120149] wlp2s0: authenticated
[ 18.121447] wlp2s0: associate with 08:60:6e:cc:a2:94 (try 1/3)
[ 18.122337] wlp2s0: RX AssocResp from 08:60:6e:cc:a2:94 (capab=0x11 status=0 aid=1)
[ 18.126266] wlp2s0: associated
[ 18.126684] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 20.707578] fuse init (API version 7.22)
[ 20.973482] ata1.00: configured for UDMA/133
[ 20.973489] ata1: EH complete
[ 20.974070] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 20.979380] ata2.00: configured for UDMA/133
[ 20.979386] ata2: EH complete
[ 20.980084] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 21.128263] EXT4-fs (dm-1): re-mounted. Opts: commit=600
[ 21.137127] EXT4-fs (md126p1): re-mounted. Opts: commit=600
[ 21.139690] EXT4-fs (dm-2): re-mounted. Opts: commit=600
[ 21.169036] EXT4-fs (dm-3): re-mounted. Opts: commit=600
[ 27.135170] ata1.00: configured for UDMA/133
[ 27.135176] ata1: EH complete
[ 27.135356] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 27.139840] ata2.00: configured for UDMA/133
[ 27.139846] ata2: EH complete
[ 27.140073] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 27.164449] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[ 27.168852] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[ 27.171162] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[ 27.181012] EXT4-fs (dm-3): re-mounted. Opts: commit=0
[ 28.429884] ACPI: \_SB_.DOCK: docking
[ 28.430091] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[ 28.430168] acpiphp_glue: bus exists... trim
[ 28.431135] ACPI: Device does not support D3cold
[ 28.431287] ACPI: Device does not support D3cold
[ 28.431616] ACPI: Device does not support D3cold
[ 28.431711] ACPI: Device does not support D3cold
[ 28.432394] ACPI: Device does not support D3cold
[ 28.433867] ACPI: Device does not support D3cold
[ 28.435039] ACPI: Device does not support D3cold
[ 28.435780] ACPI: Device does not support D3cold
[ 28.436574] ACPI: Device does not support D3cold
[ 28.436674] ACPI: Device does not support D3cold
[ 28.436719] ACPI: Device does not support D3cold
[ 28.437297] ACPI: Device does not support D3cold
[ 28.437395] ACPI: Device does not support D3cold
[ 28.437490] ACPI: Device does not support D3cold
[ 28.437572] ACPI: Device does not support D3cold
[ 28.437640] ACPI: Device does not support D3cold
[ 28.437687] ACPI: Device does not support D3cold
[ 28.437753] ACPI: Device does not support D3cold
[ 28.437804] ACPI: Device does not support D3cold
[ 28.437850] ACPI: Device does not support D3cold
[ 28.437901] ACPI: Device does not support D3cold
[ 28.437946] ACPI: Device does not support D3cold
[ 28.437992] ACPI: Device does not support D3cold
[ 28.438072] ACPI: Device does not support D3cold
[ 28.438907] ACPI: Device does not support D3cold
[ 28.440976] ACPI: Device does not support D3cold
[ 28.441882] ACPI: Device does not support D3cold
[ 28.441950] ACPI: Device does not support D3cold
[ 28.442013] ACPI: Device does not support D3cold
[ 28.442164] ACPI: Device does not support D3cold
[ 28.442270] ACPI: Device does not support D3cold
[ 28.450807] [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.
[ 28.450830] [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.
[ 28.450848] [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.
[ 28.450867] [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.
[ 28.450884] [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.
[ 28.450902] [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.
[ 28.450920] [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.
[ 28.451305] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[ 28.451505] pci 0000:08:00.0: supports D1 D2
[ 28.451508] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.453630] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[ 28.453804] pci 0000:0a:00.0: supports D1 D2
[ 28.453807] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.455188] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[ 28.455372] pci 0000:0a:03.0: supports D1 D2
[ 28.455376] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.455635] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[ 28.455812] pci 0000:0a:04.0: supports D1 D2
[ 28.455815] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.456821] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 28.456838] pci 0000:08:00.0: bridge window [io 0x3000-0x5fff]
[ 28.456846] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc03fffff]
[ 28.456859] pci 0000:08:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.458055] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 28.458073] pci 0000:0a:00.0: bridge window [mem 0xc0300000-0xc03fffff]
[ 28.458246] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 28.460038] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[ 28.460356] pci 0000:14:00.0: supports D1 D2
[ 28.460360] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.470119] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 28.470135] pci 0000:0a:04.0: bridge window [io 0x3000-0x5fff]
[ 28.470143] pci 0000:0a:04.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 28.470157] pci 0000:0a:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.470634] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[ 28.470931] pci 0000:15:03.0: supports D1 D2
[ 28.470934] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.472850] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[ 28.473099] pci 0000:15:04.0: supports D1 D2
[ 28.473102] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.477246] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 28.477268] pci 0000:14:00.0: bridge window [io 0x3000-0x5fff]
[ 28.477278] pci 0000:14:00.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 28.477296] pci 0000:14:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.478524] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[ 28.478588] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[ 28.478639] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[ 28.478669] pci 0000:16:00.0: reg 20: [io 0x0000-0x00ff]
[ 28.478735] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[ 28.478925] pci 0000:16:00.0: supports D1 D2
[ 28.481436] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[ 28.481455] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[ 28.481456] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:16:00.0
[ 28.481566] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[ 28.481636] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[ 28.481965] pci 0000:16:00.1: supports D1 D2
[ 28.482261] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 28.482280] pci 0000:15:03.0: bridge window [io 0x5000-0x5fff]
[ 28.482291] pci 0000:15:03.0: bridge window [mem 0xc0200000-0xc02fffff]
[ 28.482309] pci 0000:15:03.0: bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[ 28.483523] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[ 28.483870] pci 0000:17:00.0: supports D1 D2
[ 28.483873] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.486275] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 28.486292] pci 0000:15:04.0: bridge window [io 0x3000-0x4fff]
[ 28.486301] pci 0000:15:04.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 28.486317] pci 0000:15:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.486603] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[ 28.486954] pci 0000:18:00.0: supports D1 D2
[ 28.486957] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.488888] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[ 28.489255] pci 0000:18:01.0: supports D1 D2
[ 28.489259] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.489476] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[ 28.489794] pci 0000:18:02.0: supports D1 D2
[ 28.489795] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.490001] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[ 28.490355] pci 0000:18:03.0: supports D1 D2
[ 28.490357] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.490570] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[ 28.490884] pci 0000:18:04.0: supports D1 D2
[ 28.490886] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.491232] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 28.491256] pci 0000:17:00.0: bridge window [io 0x3000-0x4fff]
[ 28.491270] pci 0000:17:00.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 28.491293] pci 0000:17:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.491615] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[ 28.491681] pci 0000:19:00.0: reg 10: [io 0x0000-0x00ff]
[ 28.491793] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[ 28.491861] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[ 28.492169] pci 0000:19:00.0: supports D1 D2
[ 28.492173] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 28.492470] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 28.492491] pci 0000:18:00.0: bridge window [io 0x4000-0x4fff]
[ 28.492521] pci 0000:18:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 28.492797] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[ 28.492855] pci 0000:1a:00.0: reg 10: [io 0x8000-0x8007]
[ 28.492895] pci 0000:1a:00.0: reg 14: [io 0x8040-0x8043]
[ 28.492936] pci 0000:1a:00.0: reg 18: [io 0x8200-0x8207]
[ 28.492975] pci 0000:1a:00.0: reg 1c: [io 0x8800-0x8803]
[ 28.493016] pci 0000:1a:00.0: reg 20: [io 0x900000-0x90000f]
[ 28.493056] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[ 28.493335] pci 0000:1a:00.0: supports D1
[ 28.493338] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[ 28.495931] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 28.495957] pci 0000:18:01.0: bridge window [io 0x3000-0x3fff]
[ 28.495971] pci 0000:18:01.0: bridge window [mem 0xc0100000-0xc01fffff]
[ 28.498611] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[ 28.498697] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[ 28.499200] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[ 28.501787] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 28.501823] pci 0000:18:02.0: bridge window [mem 0xc0000000-0xc00fffff]
[ 28.502117] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 28.502423] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 28.503063] pci 0000:08:00.0: BAR 15: can't assign mem pref (size 0x28000000)
[ 28.503067] pci 0000:08:00.0: BAR 14: assigned [mem 0xb0000000-0xc06fffff]
[ 28.503071] pci 0000:08:00.0: BAR 13: can't assign io (size 0xb000)
[ 28.503078] pci 0000:0a:04.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 28.503082] pci 0000:0a:00.0: BAR 14: assigned [mem 0xb0000000-0xb01fffff]
[ 28.503085] pci 0000:0a:00.0: BAR 15: assigned [mem 0xb0200000-0xb03fffff 64bit pref]
[ 28.503089] pci 0000:0a:03.0: BAR 14: assigned [mem 0xb0400000-0xb05fffff]
[ 28.503092] pci 0000:0a:03.0: BAR 15: assigned [mem 0xb0600000-0xb07fffff 64bit pref]
[ 28.503107] pci 0000:0a:04.0: BAR 14: can't assign mem (size 0x10300000)
[ 28.503110] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[ 28.503112] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[ 28.503115] pci 0000:0a:04.0: BAR 13: can't assign io (size 0x8000)
[ 28.503120] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 28.503133] pci 0000:0a:00.0: bridge window [mem 0xb0000000-0xb01fffff]
[ 28.503140] pci 0000:0a:00.0: bridge window [mem 0xb0200000-0xb03fffff 64bit pref]
[ 28.503152] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 28.503162] pci 0000:0a:03.0: bridge window [mem 0xb0400000-0xb05fffff]
[ 28.503169] pci 0000:0a:03.0: bridge window [mem 0xb0600000-0xb07fffff 64bit pref]
[ 28.503184] pci 0000:14:00.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 28.503187] pci 0000:14:00.0: BAR 14: can't assign mem (size 0x10300000)
[ 28.503190] pci 0000:14:00.0: BAR 13: can't assign io (size 0x7000)
[ 28.503196] pci 0000:15:03.0: BAR 15: can't assign mem pref (size 0x18000000)
[ 28.503201] pci 0000:15:03.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503205] pci 0000:15:04.0: BAR 14: can't assign mem (size 0xa00000)
[ 28.503209] pci 0000:15:04.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 28.503212] pci 0000:15:03.0: BAR 13: can't assign io (size 0x1000)
[ 28.503215] pci 0000:15:04.0: BAR 13: can't assign io (size 0x6000)
[ 28.503222] pci 0000:16:00.0: BAR 0: can't assign mem pref (size 0x10000000)
[ 28.503225] pci 0000:16:00.0: BAR 2: can't assign mem (size 0x20000)
[ 28.503228] pci 0000:16:00.0: BAR 6: can't assign mem pref (size 0x20000)
[ 28.503231] pci 0000:16:00.1: BAR 0: can't assign mem (size 0x4000)
[ 28.503236] pci 0000:16:00.0: BAR 4: can't assign io (size 0x100)
[ 28.503241] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 28.503278] pci 0000:17:00.0: BAR 14: can't assign mem (size 0xa00000)
[ 28.503283] pci 0000:17:00.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 28.503286] pci 0000:17:00.0: BAR 13: can't assign io (size 0x5000)
[ 28.503295] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503298] pci 0000:18:00.0: BAR 15: can't assign mem pref (size 0x200000)
[ 28.503301] pci 0000:18:01.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503304] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[ 28.503306] pci 0000:18:02.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503309] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[ 28.503312] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503314] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[ 28.503317] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[ 28.503320] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[ 28.503323] pci 0000:18:00.0: BAR 13: can't assign io (size 0x1000)
[ 28.503325] pci 0000:18:01.0: BAR 13: can't assign io (size 0x1000)
[ 28.503328] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[ 28.503331] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[ 28.503333] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[ 28.503340] pci 0000:19:00.0: BAR 4: can't assign mem pref (size 0x4000)
[ 28.503343] pci 0000:19:00.0: BAR 2: can't assign mem pref (size 0x1000)
[ 28.503346] pci 0000:19:00.0: BAR 0: can't assign io (size 0x100)
[ 28.503350] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 28.503401] pci 0000:1a:00.0: BAR 5: can't assign mem (size 0x400)
[ 28.503404] pci 0000:1a:00.0: BAR 4: can't assign io (size 0x10)
[ 28.503407] pci 0000:1a:00.0: BAR 0: can't assign io (size 0x8)
[ 28.503409] pci 0000:1a:00.0: BAR 2: can't assign io (size 0x8)
[ 28.503412] pci 0000:1a:00.0: BAR 1: can't assign io (size 0x4)
[ 28.503415] pci 0000:1a:00.0: BAR 3: can't assign io (size 0x4)
[ 28.503419] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 28.503468] pci 0000:1b:00.0: BAR 0: can't assign mem (size 0x2000)
[ 28.503472] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 28.503520] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 28.503568] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 28.503617] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 28.503691] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 28.503727] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 28.503760] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 28.503782] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 28.503792] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc06fffff]
[ 28.503825] pci 0000:08:00.0: no hotplug settings from platform
[ 28.503842] pci 0000:0a:00.0: no hotplug settings from platform
[ 28.503858] pci 0000:0a:03.0: no hotplug settings from platform
[ 28.503874] pci 0000:0a:04.0: no hotplug settings from platform
[ 28.503895] pci 0000:14:00.0: no hotplug settings from platform
[ 28.503920] pci 0000:15:03.0: no hotplug settings from platform
[ 28.503949] pci 0000:16:00.0: no hotplug settings from platform
[ 28.503978] pci 0000:16:00.1: no hotplug settings from platform
[ 28.504004] pci 0000:15:04.0: no hotplug settings from platform
[ 28.504034] pci 0000:17:00.0: no hotplug settings from platform
[ 28.504068] pci 0000:18:00.0: no hotplug settings from platform
[ 28.504119] pci 0000:19:00.0: no hotplug settings from platform
[ 28.504152] pci 0000:18:01.0: no hotplug settings from platform
[ 28.504190] pci 0000:1a:00.0: no hotplug settings from platform
[ 28.504224] pci 0000:18:02.0: no hotplug settings from platform
[ 28.504263] pci 0000:1b:00.0: no hotplug settings from platform
[ 28.504299] pci 0000:18:03.0: no hotplug settings from platform
[ 28.504334] pci 0000:18:04.0: no hotplug settings from platform
[ 28.505548] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[ 28.506257] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[ 28.507996] acpiphp: Slot [1-1] registered
[ 28.508042] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[ 28.508067] acpiphp: Slot [2] registered
[ 28.508090] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[ 28.508170] acpiphp: Slot [3] registered
[ 28.508395] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[ 28.508694] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[ 28.509877] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[ 28.510233] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[ 28.511514] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[ 28.512879] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[ 28.513464] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[ 28.514698] acpiphp: Slot [1-2] registered
[ 28.514745] acpiphp_glue: sibling found, but _SUN doesn't match!
[ 28.515205] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[ 28.515241] ------------[ cut here ]------------
[ 28.515249] WARNING: at drivers/pci/pci.c:130 pci_ioremap_bar+0x69/0x70()
[ 28.515251] Modules linked in: pata_acpi pata_marvell fuse zram(C) rfcomm bnep rtsx_pci_sdmmc rtsx_pci_ms memstick mmc_core iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev qcserial usb_wwan usbserial uvcvideo pcspkr btusb videobuf2_vmalloc arc4 videobuf2_memops videobuf2_core videodev bluetooth media iwldvm mac80211 iwlwifi r8169 rtsx_pci mii cfg80211 snd_hda_codec_hdmi snd_hda_codec_realtek sony_laptop i915 snd_hda_intel snd_hda_codec rfkill snd_hwdep intel_agp intel_gtt snd_pcm snd_page_alloc i2c_algo_bit drm_kms_helper drm snd_timer lpc_ich agpgart snd mfd_core i2c_i801 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 xhci_hcd ehci_pci ehci_hcd dm_mirror dm_region_hash dm_log
[ 28.515331] dm_mod [last unloaded: microcode]
[ 28.515336] CPU: 0 PID: 40 Comm: kworker/0:1 Tainted: G C 3.10.0-rc5 #2
[ 28.515338] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 28.515343] Workqueue: kacpi_hotplug acpi_os_execute_deferred
[ 28.515346] ffffffff81a2a334 ffff880253d3f7a8 ffffffff8165abf8 ffff880253d3f7e8
[ 28.515351] ffffffff8103c8cb ffff880253d3f7c8 ffff88023263e000 ffff880252c7b000
[ 28.515357] 0000000000000000 ffff88023263d800 0000000000000001 ffff880253d3f7f8
[ 28.515362] Call Trace:
[ 28.515368] [<ffffffff8165abf8>] dump_stack+0x19/0x1b
[ 28.515373] [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[ 28.515377] [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[ 28.515381] [<ffffffff813832a9>] pci_ioremap_bar+0x69/0x70
[ 28.515388] [<ffffffffa0271bd6>] azx_first_init+0x56/0x600 [snd_hda_intel]
[ 28.515392] [<ffffffff813869af>] ? pci_get_domain_bus_and_slot+0x2f/0x70
[ 28.515398] [<ffffffffa0273d25>] azx_probe+0x555/0x940 [snd_hda_intel]
[ 28.515403] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 28.515407] [<ffffffff81385026>] local_pci_probe+0x46/0x80
[ 28.515411] [<ffffffff81385899>] pci_device_probe+0xf9/0x120
[ 28.515418] [<ffffffff8143c326>] driver_probe_device+0x76/0x220
[ 28.515423] [<ffffffff8143c5cb>] __device_attach+0x4b/0x60
[ 28.515427] [<ffffffff8143c580>] ? __driver_attach+0xb0/0xb0
[ 28.515431] [<ffffffff8143a67c>] bus_for_each_drv+0x5c/0x90
[ 28.515435] [<ffffffff8143c278>] device_attach+0x98/0xb0
[ 28.515439] [<ffffffff8137d954>] pci_bus_add_device+0x34/0x60
[ 28.515443] [<ffffffff8137dd29>] pci_bus_add_devices+0x49/0xf0
[ 28.515447] [<ffffffff8137dd77>] pci_bus_add_devices+0x97/0xf0
[ 28.515451] [<ffffffff8137dd77>] pci_bus_add_devices+0x97/0xf0
[ 28.515454] [<ffffffff8137dd77>] pci_bus_add_devices+0x97/0xf0
[ 28.515458] [<ffffffff8137dd77>] pci_bus_add_devices+0x97/0xf0
[ 28.515463] [<ffffffff816447f0>] enable_device+0x370/0x450
[ 28.515468] [<ffffffff813a0fba>] acpiphp_enable_slot+0xca/0x140
[ 28.515472] [<ffffffff813a1436>] _handle_hotplug_event_func+0x96/0x1a0
[ 28.515477] [<ffffffff813c73ab>] hotplug_dock_devices+0x67/0xed
[ 28.515481] [<ffffffff81664680>] ? notifier_call_chain+0x70/0x70
[ 28.515485] [<ffffffff813c7ac4>] acpi_dock_deferred_cb+0xd4/0x1c9
[ 28.515489] [<ffffffff813bfc29>] acpi_os_execute_deferred+0x20/0x2d
[ 28.515494] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 28.515498] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 28.515502] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 28.515506] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 28.515510] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 28.515514] [<ffffffff81660d3b>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 28.515519] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 28.515523] [<ffffffff816680ec>] ret_from_fork+0x7c/0xb0
[ 28.515527] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 28.515530] ---[ end trace 29626ae1d9eae593 ]---
[ 28.515532] hda-intel 0000:16:00.1: ioremap error
[ 28.515948] pcieport 0000:17:00.0: irq 59 for MSI/MSI-X
[ 28.516502] pcieport 0000:18:00.0: irq 60 for MSI/MSI-X
[ 28.517573] pcieport 0000:18:01.0: irq 61 for MSI/MSI-X
[ 28.518551] pcieport 0000:18:02.0: irq 62 for MSI/MSI-X
[ 28.518963] pcieport 0000:18:03.0: irq 63 for MSI/MSI-X
[ 28.520238] pcieport 0000:18:04.0: irq 64 for MSI/MSI-X
[ 28.521195] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[ 28.521867] acpiphp: Slot [1-3] registered
[ 28.522021] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 28.522156] r8169 0000:19:00.0 (unregistered net_device): region #2 not an MMIO resource, aborting
[ 28.522501] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[ 28.522540] acpiphp: Slot [1-4] registered
[ 28.522780] pata_marvell 0000:1a:00.0: no available native port
[ 28.522997] pata_acpi 0000:1a:00.0: no available native port
[ 28.523101] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[ 28.523150] acpiphp: Slot [1-5] registered
[ 28.523626] xhci_hcd 0000:1b:00.0: init 0000:1b:00.0 fail, -16
[ 28.523634] xhci_hcd: probe of 0000:1b:00.0 failed with error -16
[ 28.523658] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM0
[ 28.523664] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM1
[ 28.523669] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2
[ 28.523673] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GFXA
[ 28.523689] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR0.GHDA
[ 28.523700] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC0.DLAN
[ 28.523708] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC1.DODD
[ 28.523715] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB.LPM2.LPRI.LPR1.LPCI.LPC2.DUSB
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 2:51 ` Jiang Liu (Gerry)
2013-06-14 3:30 ` Yinghai Lu
@ 2013-06-14 4:07 ` Alexander E. Patrakov
2013-06-14 4:14 ` Jiang Liu (Gerry)
1 sibling, 1 reply; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 4:07 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Yinghai Lu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
2013/6/14 Jiang Liu (Gerry) <jiang.liu@huawei.com>:
> On 2013/6/14 10:30, Yinghai Lu wrote:
>>
>> On Thu, Jun 13, 2013 at 7:09 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com>
>> wrote:
>>>
>>> On 2013/6/14 2:42, Yinghai Lu wrote:
>>>>
>>>>
>>>> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>>>>>
>>>>>
>>>>> 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
>>>>>
>>>>> The first patch fixes issue 1, and the second patch fixes issue 2.
>>>>> These two patches, if accepted, should be material for stable branches
>>>>> too.
>>>>> Patch 3-9 are code improvement for ACPI and dock driver.
>>>>>
>>>>> I have found the root cause for issue three, but still working on
>>>>> solutions, and seems can't be solve in short time. So please help
>>>>> to review and test patches for issue 1) and 2) first.
>>>>
>>>>
>>>>
>>>> the 3) is about pci resource allocation?
>>>> because pcibios_add_bus is called too early?
>>>>
>>>> If that is case, we should have something like attached patch for it.
>>>>
>>>> With that, we will not need to worry about _OSC set for 3.10 etc.
>>>>
>>> Hi Yinghai,
>>> Seems not related to pcibios_add_bus(). According to my
>>> investigation, the issue is caused by difference in PCI resource
>>> assignment between boot time and runtime hotplug. On x86 platforms,
>>> it respects PCI resource assignment from BIOS and only reassign
>>> resources for unassigned BARs. But with acpiphp, it ignores BIOS
>>> resource assignment and reassign all resources by OS.
>>> If we have enough resources, reassigning all PCI resources should
>>> work too, but may fail if we are under resource constraints. On the
>>> other handle, current PCI IOMM align algorithm may waste huge MMIO
>>> address space if we have some PCI devices with huge IOMM BAR.
>>> On this Sony laptop, BIOS allocates limited IOMM resources for
>>> the dock station and the dock station has a gfx which has a 256MB
>>> IOMM BAR. So current acpiphp driver fails to allocate resources
>>> for most devices on the dock station.
>>
>>
>> Is it a regression?
>
> Not sure. But a little concern about check_hotplug_bridge(), it treats
> dock station and devices on dock station with _EJD as hot-plug-gable
> PCI bus and reserve extra resources for possible hot-adding. But I
> think we should only reserve extra resource for dock station, and should
> not reserve resource for devices on station with _EJD method.
>
>
>>
>>> Currently I'm trying to change acpiphp to respect BIOS resource
>>> assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
>>> The other way is to change the IOMM resource allocation algorithm,
>>> but obviously it's much more risky of regressions if changing the
>>> algorithm.
>>
>>
>> that is not going to help, need to increase bridge resource.
>>
>> please check if BIOS have setup option about hotplug MMIO pad size.
>
> For the first step, I'm trying to make hotplug case work in the same way as
> boot time. Do you think this patch help?
>
> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
> b/drivers/pci/hotplug/acpiphp_gl
> index 270fdba..12e3f6e 100644
> --- a/drivers/pci/hotplug/acpiphp_glue.c
> +++ b/drivers/pci/hotplug/acpiphp_glue.c
> @@ -837,13 +837,13 @@ 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->subordi
> }
> }
> }
> }
>
> - pci_bus_assign_resources(bus);
> + pci_assign_unassigned_bus_resources(bus);
> acpiphp_sanitize_bus(bus);
> acpiphp_set_hpp_values(bus);
> acpiphp_set_acpi_region(slot);
> ---
The patch helped, thanks. Note: I have tested it together with
pci_move_pcibios_add_bus_down.patch, I don't know yet if
pci_move_pcibios_add_bus_down.patch is needed.
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 4:07 ` Alexander E. Patrakov
@ 2013-06-14 4:14 ` Jiang Liu (Gerry)
2013-06-14 4:43 ` Alexander E. Patrakov
0 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu (Gerry) @ 2013-06-14 4:14 UTC (permalink / raw)
To: Alexander E. Patrakov
Cc: Yinghai Lu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
On 2013/6/14 12:07, Alexander E. Patrakov wrote:
> 2013/6/14 Jiang Liu (Gerry) <jiang.liu@huawei.com>:
>> On 2013/6/14 10:30, Yinghai Lu wrote:
>>>
>>> On Thu, Jun 13, 2013 at 7:09 PM, Jiang Liu (Gerry) <jiang.liu@huawei.com>
>>> wrote:
>>>>
>>>> On 2013/6/14 2:42, Yinghai Lu wrote:
>>>>>
>>>>>
>>>>> On Thu, Jun 13, 2013 at 9:32 AM, Jiang Liu <jiang.liu@huawei.com> wrote:
>>>>>>
>>>>>>
>>>>>> 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
>>>>>>
>>>>>> The first patch fixes issue 1, and the second patch fixes issue 2.
>>>>>> These two patches, if accepted, should be material for stable branches
>>>>>> too.
>>>>>> Patch 3-9 are code improvement for ACPI and dock driver.
>>>>>>
>>>>>> I have found the root cause for issue three, but still working on
>>>>>> solutions, and seems can't be solve in short time. So please help
>>>>>> to review and test patches for issue 1) and 2) first.
>>>>>
>>>>>
>>>>>
>>>>> the 3) is about pci resource allocation?
>>>>> because pcibios_add_bus is called too early?
>>>>>
>>>>> If that is case, we should have something like attached patch for it.
>>>>>
>>>>> With that, we will not need to worry about _OSC set for 3.10 etc.
>>>>>
>>>> Hi Yinghai,
>>>> Seems not related to pcibios_add_bus(). According to my
>>>> investigation, the issue is caused by difference in PCI resource
>>>> assignment between boot time and runtime hotplug. On x86 platforms,
>>>> it respects PCI resource assignment from BIOS and only reassign
>>>> resources for unassigned BARs. But with acpiphp, it ignores BIOS
>>>> resource assignment and reassign all resources by OS.
>>>> If we have enough resources, reassigning all PCI resources should
>>>> work too, but may fail if we are under resource constraints. On the
>>>> other handle, current PCI IOMM align algorithm may waste huge MMIO
>>>> address space if we have some PCI devices with huge IOMM BAR.
>>>> On this Sony laptop, BIOS allocates limited IOMM resources for
>>>> the dock station and the dock station has a gfx which has a 256MB
>>>> IOMM BAR. So current acpiphp driver fails to allocate resources
>>>> for most devices on the dock station.
>>>
>>>
>>> Is it a regression?
>>
>> Not sure. But a little concern about check_hotplug_bridge(), it treats
>> dock station and devices on dock station with _EJD as hot-plug-gable
>> PCI bus and reserve extra resources for possible hot-adding. But I
>> think we should only reserve extra resource for dock station, and should
>> not reserve resource for devices on station with _EJD method.
>>
>>
>>>
>>>> Currently I'm trying to change acpiphp to respect BIOS resource
>>>> assignment by calling pcibios_survey_resource_bus(), as in pci_root.c.
>>>> The other way is to change the IOMM resource allocation algorithm,
>>>> but obviously it's much more risky of regressions if changing the
>>>> algorithm.
>>>
>>>
>>> that is not going to help, need to increase bridge resource.
>>>
>>> please check if BIOS have setup option about hotplug MMIO pad size.
>>
>> For the first step, I'm trying to make hotplug case work in the same way as
>> boot time. Do you think this patch help?
>>
>> diff --git a/drivers/pci/hotplug/acpiphp_glue.c
>> b/drivers/pci/hotplug/acpiphp_gl
>> index 270fdba..12e3f6e 100644
>> --- a/drivers/pci/hotplug/acpiphp_glue.c
>> +++ b/drivers/pci/hotplug/acpiphp_glue.c
>> @@ -837,13 +837,13 @@ 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->subordi
>> }
>> }
>> }
>> }
>>
>> - pci_bus_assign_resources(bus);
>> + pci_assign_unassigned_bus_resources(bus);
>> acpiphp_sanitize_bus(bus);
>> acpiphp_set_hpp_values(bus);
>> acpiphp_set_acpi_region(slot);
>> ---
>
>
> The patch helped, thanks. Note: I have tested it together with
> pci_move_pcibios_add_bus_down.patch, I don't know yet if
> pci_move_pcibios_add_bus_down.patch is needed.
What's the situation now? Could you please send out dmesgs\ioports\iomem?
Thanks!
>
> --
> Alexander E. Patrakov
>
> .
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 4:14 ` Jiang Liu (Gerry)
@ 2013-06-14 4:43 ` Alexander E. Patrakov
2013-06-14 5:11 ` Jiang Liu (Gerry)
0 siblings, 1 reply; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 4:43 UTC (permalink / raw)
To: Jiang Liu (Gerry)
Cc: Yinghai Lu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
2013/6/14 Jiang Liu (Gerry) <jiang.liu@huawei.com>:
> What's the situation now? Could you please send out dmesgs\ioports\iomem?
> Thanks!
The requested information has been added to
https://bugzilla.kernel.org/show_bug.cgi?id=56531
The changes in pci_move_pcibios_add_bus_down.patch are not needed.
The radeon card in the dock station works after docking and restarting
the X server, and its HD audio device works, too. Just for
completeness, I have tested the CD-ROM drive, the USB adapters and the
Ethernet card - they all work. IOW, everything works after docking.
I did not test undocking, as that would surely hit
https://bugzilla.kernel.org/show_bug.cgi?id=59681 and the hda_intel
bug you mentioned in the first mail in this thread.
Note that, for the initial series of patches, I still don't have any
response to the lockdep warnings in
https://lkml.org/lkml/2013/6/13/398
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver
2013-06-14 4:43 ` Alexander E. Patrakov
@ 2013-06-14 5:11 ` Jiang Liu (Gerry)
0 siblings, 0 replies; 55+ messages in thread
From: Jiang Liu (Gerry) @ 2013-06-14 5:11 UTC (permalink / raw)
To: Alexander E. Patrakov
Cc: Yinghai Lu, Rafael J . Wysocki, Bjorn Helgaas, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
Linux Kernel Mailing List
On 2013/6/14 12:43, Alexander E. Patrakov wrote:
> 2013/6/14 Jiang Liu (Gerry) <jiang.liu@huawei.com>:
>
>> What's the situation now? Could you please send out dmesgs\ioports\iomem?
>> Thanks!
>
> The requested information has been added to
> https://bugzilla.kernel.org/show_bug.cgi?id=56531
>
> The changes in pci_move_pcibios_add_bus_down.patch are not needed.
>
> The radeon card in the dock station works after docking and restarting
> the X server, and its HD audio device works, too. Just for
> completeness, I have tested the CD-ROM drive, the USB adapters and the
> Ethernet card - they all work. IOW, everything works after docking.
>
> I did not test undocking, as that would surely hit
> https://bugzilla.kernel.org/show_bug.cgi?id=59681 and the hda_intel
> bug you mentioned in the first mail in this thread.
>
> Note that, for the initial series of patches, I still don't have any
> response to the lockdep warnings in
> https://lkml.org/lkml/2013/6/13/398
Sounds great, I will rework the lockdep related patch tonight.
Thanks for testing.
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-13 19:59 ` Rafael J. Wysocki
@ 2013-06-14 12:23 ` Rafael J. Wysocki
2013-06-14 12:30 ` Alexander E. Patrakov
2013-06-14 13:57 ` Jiang Liu
2013-06-14 13:53 ` Jiang Liu
1 sibling, 2 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 12:23 UTC (permalink / raw)
To: Jiang Liu
Cc: Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, Jiang Liu, linux-pci,
linux-kernel, Rafael J. Wysocki, stable
On Thursday, June 13, 2013 09:59:44 PM Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
>
> So my question is, did we have this problem before commit 3b63aaa70e1?
>
> If we did, then when did it start? Or was it present forever?
>
> > 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.
>
> Would not the solution be to modify it so that it didn't spawn the other
> task (T2), but removed the affected physical devices synchronously?
>
> > 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
> > ---
> > Hi Bjorn and Rafael,
> > The recursive lock changes haven't been tested yet, need help
> > from Alexander for testing.
>
> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
> here?
What about the appended patch (on top of [1/9], untested)?
Rafael
---
drivers/pci/hotplug/acpiphp_glue.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
===================================================================
--- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
@@ -145,9 +145,20 @@ static int post_dock_fixups(struct notif
return NOTIFY_OK;
}
+static void handle_dock_event_func(acpi_handle handle, u32 event, void *context)
+{
+ if (event == ACPI_NOTIFY_EJECT_REQUEST) {
+ struct acpiphp_func *func = context;
+
+ if (!acpiphp_disable_slot(func->slot))
+ acpiphp_eject_slot(func->slot);
+ } else {
+ handle_hotplug_event_func(handle, event, context);
+ }
+}
static const struct acpi_dock_ops acpiphp_dock_ops = {
- .handler = handle_hotplug_event_func,
+ .handler = handle_dock_event_func,
};
/* Check whether the PCI device is managed by native PCIe hotplug driver */
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 12:23 ` Rafael J. Wysocki
@ 2013-06-14 12:30 ` Alexander E. Patrakov
2013-06-14 12:53 ` Rafael J. Wysocki
2013-06-14 13:57 ` Jiang Liu
1 sibling, 1 reply; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 12:30 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Rafael J. Wysocki, stable
2013/6/14 Rafael J. Wysocki <rjw@sisk.pl>:
> What about the appended patch (on top of [1/9], untested)?
>
> Rafael
Sorry, I have lost the track of which patches, on top of 3.10-rc5, I
should include in my testing and which I shouldn't. Could you please
restore my understanding? I.e., please provide a full list of LKML or
Bugzilla links to patches which I should test during the next boot of
the laptop.
Thanks in advance.
> ---
> drivers/pci/hotplug/acpiphp_glue.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> ===================================================================
> --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
> +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> @@ -145,9 +145,20 @@ static int post_dock_fixups(struct notif
> return NOTIFY_OK;
> }
>
> +static void handle_dock_event_func(acpi_handle handle, u32 event, void *context)
> +{
> + if (event == ACPI_NOTIFY_EJECT_REQUEST) {
> + struct acpiphp_func *func = context;
> +
> + if (!acpiphp_disable_slot(func->slot))
> + acpiphp_eject_slot(func->slot);
> + } else {
> + handle_hotplug_event_func(handle, event, context);
> + }
> +}
>
> static const struct acpi_dock_ops acpiphp_dock_ops = {
> - .handler = handle_hotplug_event_func,
> + .handler = handle_dock_event_func,
> };
>
> /* Check whether the PCI device is managed by native PCIe hotplug driver */
>
--
Alexander E. Patrakov
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 12:30 ` Alexander E. Patrakov
@ 2013-06-14 12:53 ` Rafael J. Wysocki
2013-06-14 16:58 ` Alexander E. Patrakov
0 siblings, 1 reply; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 12:53 UTC (permalink / raw)
To: Alexander E. Patrakov
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Rafael J. Wysocki, stable
On Friday, June 14, 2013 06:30:58 PM Alexander E. Patrakov wrote:
> 2013/6/14 Rafael J. Wysocki <rjw@sisk.pl>:
>
> > What about the appended patch (on top of [1/9], untested)?
> >
> > Rafael
>
> Sorry, I have lost the track of which patches, on top of 3.10-rc5, I
> should include in my testing and which I shouldn't. Could you please
> restore my understanding? I.e., please provide a full list of LKML or
> Bugzilla links to patches which I should test during the next boot of
> the laptop.
>
> Thanks in advance.
As far as I'm concerned, please test these two for now:
https://patchwork.kernel.org/patch/2717851/
https://patchwork.kernel.org/patch/2721271/
They are targeted at the ordering problems only, however, so they won't address
the resource allocation issues you're seeing.
There are some other patches Jiang Liu and Yinghai are working on as far as
I can say, but I'm not sure what their status is at the moment.
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-13 19:59 ` Rafael J. Wysocki
2013-06-14 12:23 ` Rafael J. Wysocki
@ 2013-06-14 13:53 ` Jiang Liu
2013-06-14 14:05 ` Rafael J. Wysocki
1 sibling, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-14 13:53 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On 06/14/2013 03:59 AM, Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
>
> So my question is, did we have this problem before commit 3b63aaa70e1?
>
> If we did, then when did it start? Or was it present forever?
I think this issue should exist before commit "PCI: acpiphp: Do not use
ACPI PCI subdriver mechanism". It may trace back to the changes to kill
acpi_pci_bind()/acpi_pci_unbind().
>
>> 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.
>
> Would not the solution be to modify it so that it didn't spawn the other
> task (T2), but removed the affected physical devices synchronously?
Yes, that's the way I'm going to fix this issue.
>
>> 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
>> ---
>> Hi Bjorn and Rafael,
>> The recursive lock changes haven't been tested yet, need help
>> from Alexander for testing.
>
> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
> here?
Yeah, you are right, we encounter other deadlock issue here, as reported
by Alexander. So need to find new solution here.
>
> Rafael
>
>
>> ---
>> drivers/acpi/dock.c | 33 +++++++++++++++++++++++++++------
>> drivers/pci/hotplug/acpiphp_glue.c | 32 ++++++++++++++++++--------------
>> 2 files changed, 45 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
>> index 02b0563..79c8d9e 100644
>> --- a/drivers/acpi/dock.c
>> +++ b/drivers/acpi/dock.c
>> @@ -65,6 +65,7 @@ struct dock_station {
>> u32 flags;
>> spinlock_t dd_lock;
>> struct mutex hp_lock;
>> + struct task_struct *owner;
>> struct list_head dependent_devices;
>> struct list_head hotplug_devices;
>>
>> @@ -131,9 +132,13 @@ 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);
>> + if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
>> + list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
>> + } else {
>> + mutex_lock(&ds->hp_lock);
>> + list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
>> + mutex_unlock(&ds->hp_lock);
>> + }
>> }
>>
>> /**
>> @@ -147,9 +152,13 @@ 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);
>> + if (mutex_is_locked(&ds->hp_lock) && ds->owner == current) {
>> + list_del_init(&dd->hotplug_list);
>> + } else {
>> + mutex_lock(&ds->hp_lock);
>> + list_del_init(&dd->hotplug_list);
>> + mutex_unlock(&ds->hp_lock);
>> + }
>> }
>>
>> /**
>> @@ -355,7 +364,17 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
>> {
>> struct dock_dependent_device *dd;
>>
>> + /*
>> + * There is a deadlock scenario as below:
>> + * hotplug_dock_devices()
>> + * mutex_lock(&ds->hp_lock)
>> + * dd->ops->handler()
>> + * register_hotplug_dock_device()
>> + * mutex_lock(&ds->hp_lock)
>> + * So we need recursive lock scematics here, do it by ourselves.
>> + */
>> mutex_lock(&ds->hp_lock);
>> + ds->owner = current;
>>
>> /*
>> * First call driver specific hotplug functions
>> @@ -376,6 +395,8 @@ static void hotplug_dock_devices(struct dock_station *ds, u32 event)
>> else
>> dock_create_acpi_device(dd->handle);
>> }
>> +
>> + ds->owner = NULL;
>> mutex_unlock(&ds->hp_lock);
>> }
>>
>> 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);
>> }
>>
>> /*
>>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 12:23 ` Rafael J. Wysocki
2013-06-14 12:30 ` Alexander E. Patrakov
@ 2013-06-14 13:57 ` Jiang Liu
2013-06-14 14:12 ` Rafael J. Wysocki
1 sibling, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-14 13:57 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On 06/14/2013 08:23 PM, Rafael J. Wysocki wrote:
> On Thursday, June 13, 2013 09:59:44 PM Rafael J. Wysocki wrote:
>> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
>>
>> So my question is, did we have this problem before commit 3b63aaa70e1?
>>
>> If we did, then when did it start? Or was it present forever?
>>
>>> 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.
>>
>> Would not the solution be to modify it so that it didn't spawn the other
>> task (T2), but removed the affected physical devices synchronously?
>>
>>> 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
>>> ---
>>> Hi Bjorn and Rafael,
>>> The recursive lock changes haven't been tested yet, need help
>>> from Alexander for testing.
>>
>> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
>> here?
>
> What about the appended patch (on top of [1/9], untested)?
>
> Rafael
It should have similar effect as patch 2/9, and it will encounter the
same deadlock scenario as 2/9 too.
>
>
> ---
> drivers/pci/hotplug/acpiphp_glue.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> ===================================================================
> --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
> +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> @@ -145,9 +145,20 @@ static int post_dock_fixups(struct notif
> return NOTIFY_OK;
> }
>
> +static void handle_dock_event_func(acpi_handle handle, u32 event, void *context)
> +{
> + if (event == ACPI_NOTIFY_EJECT_REQUEST) {
> + struct acpiphp_func *func = context;
> +
> + if (!acpiphp_disable_slot(func->slot))
> + acpiphp_eject_slot(func->slot);
> + } else {
> + handle_hotplug_event_func(handle, event, context);
> + }
> +}
>
> static const struct acpi_dock_ops acpiphp_dock_ops = {
> - .handler = handle_hotplug_event_func,
> + .handler = handle_dock_event_func,
> };
>
> /* Check whether the PCI device is managed by native PCIe hotplug driver */
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code
2013-06-13 18:26 ` Rafael J. Wysocki
2013-06-13 18:39 ` Rafael J. Wysocki
@ 2013-06-14 14:04 ` Jiang Liu
2013-06-14 14:16 ` Rafael J. Wysocki
1 sibling, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-14 14:04 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Shaohua Li, Len Brown, linux-acpi
On 06/14/2013 02:26 AM, Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 12:32:26 AM Jiang Liu wrote:
>> ACPI dock driver can't be built as a module any more, so clean up
>> module related code.
>>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Cc: Shaohua Li <shaohua.li@intel.com>
>> Cc: Len Brown <lenb@kernel.org>
>> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
>> Cc: linux-acpi@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>
> How exactly does this depend on [2/9]? If it doesn't at all, it should go
> after [1/9].
>
>> ---
>> drivers/acpi/dock.c | 41 -----------------------------------------
>> 1 file changed, 41 deletions(-)
>>
>> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
>> index 79c8d9e..50e38b7 100644
>> --- a/drivers/acpi/dock.c
>> +++ b/drivers/acpi/dock.c
>> @@ -53,12 +53,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
>>
>> static struct atomic_notifier_head dock_notifier_list;
>>
>> -static const struct acpi_device_id dock_device_ids[] = {
>> - {"LNXDOCK", 0},
>> - {"", 0},
>> -};
>> -MODULE_DEVICE_TABLE(acpi, dock_device_ids);
>> -
>
> Don't we actually need the device IDs?
Now dock driver could only be built as built-in, and it doesn't really
bind to ACPI dock devices, so I think the device ids are not used any
more. Not sure whether any userspace tool has dependency on the device
IDs.
>
>> struct dock_station {
>> acpi_handle handle;
>> unsigned long last_dock_time;
>> @@ -1013,30 +1007,6 @@ err_unregister:
>> }
>>
>> /**
>> - * dock_remove - free up resources related to the dock station
>> - */
>> -static int dock_remove(struct dock_station *ds)
>> -{
>> - struct dock_dependent_device *dd, *tmp;
>> - struct platform_device *dock_device = ds->dock_device;
>> -
>> - if (!dock_station_count)
>> - return 0;
>> -
>> - /* remove dependent devices */
>> - list_for_each_entry_safe(dd, tmp, &ds->dependent_devices, list)
>> - kfree(dd);
>> -
>> - list_del(&ds->sibling);
>> -
>> - /* cleanup sysfs */
>> - sysfs_remove_group(&dock_device->dev.kobj, &dock_attribute_group);
>> - platform_device_unregister(dock_device);
>> -
>> - return 0;
>> -}
>> -
>> -/**
>> * find_dock_and_bay - look for dock stations and bays
>> * @handle: acpi handle of a device
>> * @lvl: unused
>> @@ -1073,14 +1043,3 @@ int __init acpi_dock_init(void)
>> ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
>> return 0;
>> }
>> -
>> -static void __exit dock_exit(void)
>> -{
>> - struct dock_station *tmp, *dock_station;
>> -
>> - unregister_acpi_bus_notifier(&dock_acpi_notifier);
>> - list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibling)
>> - dock_remove(dock_station);
>> -}
>> -
>> -module_exit(dock_exit);
>
> The other changes look OK to me.
Thanks for review.
>
> Thanks,
> Rafael
>
>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object
2013-06-13 18:28 ` Rafael J. Wysocki
@ 2013-06-14 14:05 ` Jiang Liu
2013-06-14 14:16 ` Rafael J. Wysocki
0 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-14 14:05 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Shaohua Li, Len Brown, linux-acpi
On 06/14/2013 02:28 AM, Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 12:32:28 AM Jiang Liu wrote:
>> All dock device related data structures are created during driver
>> initialization, so kill the redundant spin lock in dock device object.
>
> As a cleanup, it definitely makes sense, but does it fix anything?
>
> Rafael
Patch 3-9 are code cleanup only, I will resend them as separate patchset
later.
>
>
>> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
>> Cc: Shaohua Li <shaohua.li@intel.com>
>> Cc: Len Brown <lenb@kernel.org>
>> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
>> Cc: linux-acpi@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> drivers/acpi/dock.c | 15 +++------------
>> 1 file changed, 3 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
>> index 8e578aa..cd2d5df 100644
>> --- a/drivers/acpi/dock.c
>> +++ b/drivers/acpi/dock.c
>> @@ -57,7 +57,6 @@ struct dock_station {
>> acpi_handle handle;
>> unsigned long last_dock_time;
>> u32 flags;
>> - spinlock_t dd_lock;
>> struct mutex hp_lock;
>> struct task_struct *owner;
>> struct list_head dependent_devices;
>> @@ -107,10 +106,7 @@ 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);
>> - spin_unlock(&ds->dd_lock);
>>
>> return 0;
>> }
>> @@ -168,14 +164,10 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
>> {
>> struct dock_dependent_device *dd;
>>
>> - spin_lock(&ds->dd_lock);
>> - list_for_each_entry(dd, &ds->dependent_devices, list) {
>> - if (handle == dd->handle) {
>> - spin_unlock(&ds->dd_lock);
>> + list_for_each_entry(dd, &ds->dependent_devices, list)
>> + if (handle == dd->handle)
>> return dd;
>> - }
>> - }
>> - spin_unlock(&ds->dd_lock);
>> +
>> return NULL;
>> }
>>
>> @@ -964,7 +956,6 @@ static int __init dock_add(acpi_handle handle)
>> 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);
>> INIT_LIST_HEAD(&dock_station->dependent_devices);
>>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 13:53 ` Jiang Liu
@ 2013-06-14 14:05 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 14:05 UTC (permalink / raw)
To: Jiang Liu
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On Friday, June 14, 2013 09:53:57 PM Jiang Liu wrote:
> On 06/14/2013 03:59 AM, Rafael J. Wysocki wrote:
> > On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
> >
> > So my question is, did we have this problem before commit 3b63aaa70e1?
> >
> > If we did, then when did it start? Or was it present forever?
> I think this issue should exist before commit "PCI: acpiphp: Do not use
> ACPI PCI subdriver mechanism". It may trace back to the changes to kill
> acpi_pci_bind()/acpi_pci_unbind().
I thought so.
> >> 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.
> >
> > Would not the solution be to modify it so that it didn't spawn the other
> > task (T2), but removed the affected physical devices synchronously?
> Yes, that's the way I'm going to fix this issue.
>
> >
> >> 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
> >> ---
> >> Hi Bjorn and Rafael,
> >> The recursive lock changes haven't been tested yet, need help
> >> from Alexander for testing.
> >
> > Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
> > here?
> Yeah, you are right, we encounter other deadlock issue here, as reported
> by Alexander. So need to find new solution here.
Can you please have a look at the patch I posted earlier in this thread?
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 13:57 ` Jiang Liu
@ 2013-06-14 14:12 ` Rafael J. Wysocki
2013-06-14 15:30 ` Jiang Liu
0 siblings, 1 reply; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 14:12 UTC (permalink / raw)
To: Jiang Liu
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On Friday, June 14, 2013 09:57:15 PM Jiang Liu wrote:
> On 06/14/2013 08:23 PM, Rafael J. Wysocki wrote:
> > On Thursday, June 13, 2013 09:59:44 PM Rafael J. Wysocki wrote:
> >> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
> >>
> >> So my question is, did we have this problem before commit 3b63aaa70e1?
> >>
> >> If we did, then when did it start? Or was it present forever?
> >>
> >>> 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.
> >>
> >> Would not the solution be to modify it so that it didn't spawn the other
> >> task (T2), but removed the affected physical devices synchronously?
> >>
> >>> 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
> >>> ---
> >>> Hi Bjorn and Rafael,
> >>> The recursive lock changes haven't been tested yet, need help
> >>> from Alexander for testing.
> >>
> >> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
> >> here?
> >
> > What about the appended patch (on top of [1/9], untested)?
> >
> > Rafael
> It should have similar effect as patch 2/9, and it will encounter the
> same deadlock scenario as 2/9 too.
And why exactly?
I'm looking at acpiphp_disable_slot() and I'm not seeing where the
problematic lock is taken. Similarly for power_off_slot().
It should take the ACPI scan lock, but that's a different matter.
Thanks,
Rafael
> > ---
> > drivers/pci/hotplug/acpiphp_glue.c | 13 ++++++++++++-
> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >
> > Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> > ===================================================================
> > --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
> > +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
> > @@ -145,9 +145,20 @@ static int post_dock_fixups(struct notif
> > return NOTIFY_OK;
> > }
> >
> > +static void handle_dock_event_func(acpi_handle handle, u32 event, void *context)
> > +{
> > + if (event == ACPI_NOTIFY_EJECT_REQUEST) {
> > + struct acpiphp_func *func = context;
> > +
> > + if (!acpiphp_disable_slot(func->slot))
> > + acpiphp_eject_slot(func->slot);
> > + } else {
> > + handle_hotplug_event_func(handle, event, context);
> > + }
> > +}
> >
> > static const struct acpi_dock_ops acpiphp_dock_ops = {
> > - .handler = handle_hotplug_event_func,
> > + .handler = handle_dock_event_func,
> > };
> >
> > /* Check whether the PCI device is managed by native PCIe hotplug driver */
> >
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code
2013-06-14 14:04 ` Jiang Liu
@ 2013-06-14 14:16 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 14:16 UTC (permalink / raw)
To: Jiang Liu
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 10:04:01 PM Jiang Liu wrote:
> On 06/14/2013 02:26 AM, Rafael J. Wysocki wrote:
> > On Friday, June 14, 2013 12:32:26 AM Jiang Liu wrote:
> >> ACPI dock driver can't be built as a module any more, so clean up
> >> module related code.
> >>
> >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> >> Cc: Shaohua Li <shaohua.li@intel.com>
> >> Cc: Len Brown <lenb@kernel.org>
> >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> >> Cc: linux-acpi@vger.kernel.org
> >> Cc: linux-kernel@vger.kernel.org
> >
> > How exactly does this depend on [2/9]? If it doesn't at all, it should go
> > after [1/9].
> >
> >> ---
> >> drivers/acpi/dock.c | 41 -----------------------------------------
> >> 1 file changed, 41 deletions(-)
> >>
> >> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> >> index 79c8d9e..50e38b7 100644
> >> --- a/drivers/acpi/dock.c
> >> +++ b/drivers/acpi/dock.c
> >> @@ -53,12 +53,6 @@ MODULE_PARM_DESC(immediate_undock, "1 (default) will cause the driver to "
> >>
> >> static struct atomic_notifier_head dock_notifier_list;
> >>
> >> -static const struct acpi_device_id dock_device_ids[] = {
> >> - {"LNXDOCK", 0},
> >> - {"", 0},
> >> -};
> >> -MODULE_DEVICE_TABLE(acpi, dock_device_ids);
> >> -
> >
> > Don't we actually need the device IDs?
> Now dock driver could only be built as built-in, and it doesn't really
> bind to ACPI dock devices, so I think the device ids are not used any
> more. Not sure whether any userspace tool has dependency on the device
> IDs.
I see. OK
Thanks,
Rafael
> >
> >> struct dock_station {
> >> acpi_handle handle;
> >> unsigned long last_dock_time;
> >> @@ -1013,30 +1007,6 @@ err_unregister:
> >> }
> >>
> >> /**
> >> - * dock_remove - free up resources related to the dock station
> >> - */
> >> -static int dock_remove(struct dock_station *ds)
> >> -{
> >> - struct dock_dependent_device *dd, *tmp;
> >> - struct platform_device *dock_device = ds->dock_device;
> >> -
> >> - if (!dock_station_count)
> >> - return 0;
> >> -
> >> - /* remove dependent devices */
> >> - list_for_each_entry_safe(dd, tmp, &ds->dependent_devices, list)
> >> - kfree(dd);
> >> -
> >> - list_del(&ds->sibling);
> >> -
> >> - /* cleanup sysfs */
> >> - sysfs_remove_group(&dock_device->dev.kobj, &dock_attribute_group);
> >> - platform_device_unregister(dock_device);
> >> -
> >> - return 0;
> >> -}
> >> -
> >> -/**
> >> * find_dock_and_bay - look for dock stations and bays
> >> * @handle: acpi handle of a device
> >> * @lvl: unused
> >> @@ -1073,14 +1043,3 @@ int __init acpi_dock_init(void)
> >> ACPI_DOCK_DRIVER_DESCRIPTION, dock_station_count);
> >> return 0;
> >> }
> >> -
> >> -static void __exit dock_exit(void)
> >> -{
> >> - struct dock_station *tmp, *dock_station;
> >> -
> >> - unregister_acpi_bus_notifier(&dock_acpi_notifier);
> >> - list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibling)
> >> - dock_remove(dock_station);
> >> -}
> >> -
> >> -module_exit(dock_exit);
> >
> > The other changes look OK to me.
> Thanks for review.
>
> >
> > Thanks,
> > Rafael
> >
> >
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object
2013-06-14 14:05 ` Jiang Liu
@ 2013-06-14 14:16 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 14:16 UTC (permalink / raw)
To: Jiang Liu
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Shaohua Li, Len Brown, linux-acpi
On Friday, June 14, 2013 10:05:47 PM Jiang Liu wrote:
> On 06/14/2013 02:28 AM, Rafael J. Wysocki wrote:
> > On Friday, June 14, 2013 12:32:28 AM Jiang Liu wrote:
> >> All dock device related data structures are created during driver
> >> initialization, so kill the redundant spin lock in dock device object.
> >
> > As a cleanup, it definitely makes sense, but does it fix anything?
> >
> > Rafael
> Patch 3-9 are code cleanup only, I will resend them as separate patchset
> later.
Cool, thanks!
Rafael
> >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
> >> Cc: Shaohua Li <shaohua.li@intel.com>
> >> Cc: Len Brown <lenb@kernel.org>
> >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> >> Cc: linux-acpi@vger.kernel.org
> >> Cc: linux-kernel@vger.kernel.org
> >> ---
> >> drivers/acpi/dock.c | 15 +++------------
> >> 1 file changed, 3 insertions(+), 12 deletions(-)
> >>
> >> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> >> index 8e578aa..cd2d5df 100644
> >> --- a/drivers/acpi/dock.c
> >> +++ b/drivers/acpi/dock.c
> >> @@ -57,7 +57,6 @@ struct dock_station {
> >> acpi_handle handle;
> >> unsigned long last_dock_time;
> >> u32 flags;
> >> - spinlock_t dd_lock;
> >> struct mutex hp_lock;
> >> struct task_struct *owner;
> >> struct list_head dependent_devices;
> >> @@ -107,10 +106,7 @@ 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);
> >> - spin_unlock(&ds->dd_lock);
> >>
> >> return 0;
> >> }
> >> @@ -168,14 +164,10 @@ find_dock_dependent_device(struct dock_station *ds, acpi_handle handle)
> >> {
> >> struct dock_dependent_device *dd;
> >>
> >> - spin_lock(&ds->dd_lock);
> >> - list_for_each_entry(dd, &ds->dependent_devices, list) {
> >> - if (handle == dd->handle) {
> >> - spin_unlock(&ds->dd_lock);
> >> + list_for_each_entry(dd, &ds->dependent_devices, list)
> >> + if (handle == dd->handle)
> >> return dd;
> >> - }
> >> - }
> >> - spin_unlock(&ds->dd_lock);
> >> +
> >> return NULL;
> >> }
> >>
> >> @@ -964,7 +956,6 @@ static int __init dock_add(acpi_handle handle)
> >> 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);
> >> 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] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 14:12 ` Rafael J. Wysocki
@ 2013-06-14 15:30 ` Jiang Liu
2013-06-14 23:12 ` Rafael J. Wysocki
0 siblings, 1 reply; 55+ messages in thread
From: Jiang Liu @ 2013-06-14 15:30 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On 06/14/2013 10:12 PM, Rafael J. Wysocki wrote:
> On Friday, June 14, 2013 09:57:15 PM Jiang Liu wrote:
>> On 06/14/2013 08:23 PM, Rafael J. Wysocki wrote:
>>> On Thursday, June 13, 2013 09:59:44 PM Rafael J. Wysocki wrote:
>>>> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
>>>>
>>>> So my question is, did we have this problem before commit 3b63aaa70e1?
>>>>
>>>> If we did, then when did it start? Or was it present forever?
>>>>
>>>>> 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.
>>>>
>>>> Would not the solution be to modify it so that it didn't spawn the other
>>>> task (T2), but removed the affected physical devices synchronously?
>>>>
>>>>> 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
>>>>> ---
>>>>> Hi Bjorn and Rafael,
>>>>> The recursive lock changes haven't been tested yet, need help
>>>>> from Alexander for testing.
>>>>
>>>> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
>>>> here?
>>>
>>> What about the appended patch (on top of [1/9], untested)?
>>>
>>> Rafael
>> It should have similar effect as patch 2/9, and it will encounter the
>> same deadlock scenario as 2/9 too.
>
> And why exactly?
>
> I'm looking at acpiphp_disable_slot() and I'm not seeing where the
> problematic lock is taken. Similarly for power_off_slot().
>
> It should take the ACPI scan lock, but that's a different matter.
>
> Thanks,
> Rafael
The deadlock scenario is the same:
hotplug_dock_devices()
mutex_lock(&ds->hp_lock)
dd->ops->handler()
destroy pci bus
unregister_hotplug_dock_device()
mutex_lock(&ds->hp_lock)
>
>
>>> ---
>>> drivers/pci/hotplug/acpiphp_glue.c | 13 ++++++++++++-
>>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>>
>>> Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
>>> ===================================================================
>>> --- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
>>> +++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
>>> @@ -145,9 +145,20 @@ static int post_dock_fixups(struct notif
>>> return NOTIFY_OK;
>>> }
>>>
>>> +static void handle_dock_event_func(acpi_handle handle, u32 event, void *context)
>>> +{
>>> + if (event == ACPI_NOTIFY_EJECT_REQUEST) {
>>> + struct acpiphp_func *func = context;
>>> +
>>> + if (!acpiphp_disable_slot(func->slot))
>>> + acpiphp_eject_slot(func->slot);
>>> + } else {
>>> + handle_hotplug_event_func(handle, event, context);
>>> + }
>>> +}
>>>
>>> static const struct acpi_dock_ops acpiphp_dock_ops = {
>>> - .handler = handle_hotplug_event_func,
>>> + .handler = handle_dock_event_func,
>>> };
>>>
>>> /* Check whether the PCI device is managed by native PCIe hotplug driver */
>>>
>>
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 12:53 ` Rafael J. Wysocki
@ 2013-06-14 16:58 ` Alexander E. Patrakov
0 siblings, 0 replies; 55+ messages in thread
From: Alexander E. Patrakov @ 2013-06-14 16:58 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Greg Kroah-Hartman,
Yijing Wang, Jiang Liu, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Rafael J. Wysocki, stable
[-- Attachment #1: Type: text/plain, Size: 300 bytes --]
2013/6/14 Rafael J. Wysocki <rjw@sisk.pl>:
> As far as I'm concerned, please test these two for now:
>
> https://patchwork.kernel.org/patch/2717851/
> https://patchwork.kernel.org/patch/2721271/
Deadlocked on undocking, as already found by code inspection. Dmesg attached.
--
Alexander E. Patrakov
[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 88459 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-rc5-rafael (root@aep-vaio) (gcc version 4.6.3 (Gentoo 4.6.3 p1.11, pie-0.5.2) ) #1 SMP PREEMPT Fri Jun 14 22:46:04 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.bisect BOOT_IMAGE=/boot/vmlinuz.bisect
[ 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 0x7fac3000-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.bisect BOOT_IMAGE=/boot/vmlinuz.bisect
[ 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: 8074252k/9959424k available (6576k kernel code, 1657032k absent, 228140k reserved, 6466k 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.681 MHz processor
[ 0.000002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5587.36 BogoMIPS (lpj=2793681)
[ 0.000123] pid_max: default: 32768 minimum: 301
[ 0.000240] Security Framework initialized
[ 0.000824] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[ 0.002404] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.003106] Mount-cache hash table entries: 256
[ 0.003770] Initializing cgroup subsys memory
[ 0.003850] Initializing cgroup subsys devices
[ 0.003934] Initializing cgroup subsys freezer
[ 0.004485] Initializing cgroup subsys blkio
[ 0.004543] Initializing cgroup subsys net_prio
[ 0.004602] Initializing cgroup subsys hugetlb
[ 0.004704] CPU: Physical Processor ID: 0
[ 0.004762] CPU: Processor Core ID: 0
[ 0.004821] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[ 0.004917] mce: CPU supports 7 MCE banks
[ 0.004983] CPU0: Thermal monitoring enabled (TM1)
[ 0.005053] 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.005316] Freeing SMP alternatives: 24k freed
[ 0.005381] ACPI: Core revision 20130328
[ 0.016551] ACPI: All ACPI Tables successfully acquired
[ 0.028796] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.038872] smpboot: CPU0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (fam: 06, model: 2a, stepping: 07)
[ 0.039077] TSC deadline timer enabled
[ 0.039091] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[ 0.039328] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[ 0.039410] ... version: 3
[ 0.039468] ... bit width: 48
[ 0.039526] ... generic registers: 4
[ 0.039583] ... value mask: 0000ffffffffffff
[ 0.039643] ... max period: 000000007fffffff
[ 0.039702] ... fixed-purpose events: 3
[ 0.039760] ... event mask: 000000070000000f
[ 0.049455] SMP alternatives: lockdep: fixing up alternatives
[ 0.063007] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 0.049534] smpboot: Booting Node 0, Processors #1
[ 0.064942] SMP alternatives: lockdep: fixing up alternatives
[ 0.065054] #2
[ 0.080505] SMP alternatives: lockdep: fixing up alternatives
[ 0.080620] #3
[ 0.093944] Brought up 4 CPUs
[ 0.094053] smpboot: Total of 4 processors activated (22349.44 BogoMIPS)
[ 0.097680] devtmpfs: initialized
[ 0.100259] PM: Registering ACPI NVS region [mem 0x9aebf000-0x9afbefff] (1048576 bytes)
[ 0.100594] xor: automatically using best checksumming function:
[ 0.110038] avx : 20480.000 MB/sec
[ 0.110274] NET: Registered protocol family 16
[ 0.110693] ACPI: bus type PCI registered
[ 0.110752] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.110885] dca service started, version 1.12.1
[ 0.111003] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[ 0.111088] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 0.133640] PCI: Using configuration type 1 for base access
[ 0.135746] bio: create slab <bio-0> at 0
[ 0.152215] raid6: sse2x1 7582 MB/s
[ 0.169264] raid6: sse2x2 9378 MB/s
[ 0.186315] raid6: sse2x4 10820 MB/s
[ 0.186374] raid6: using algorithm sse2x4 (10820 MB/s)
[ 0.186434] raid6: using ssse3x2 recovery algorithm
[ 0.186569] ACPI: Added _OSI(Module Device)
[ 0.186628] ACPI: Added _OSI(Processor Device)
[ 0.186687] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.186747] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.191384] ACPI: EC: Look up EC in DSDT
[ 0.195887] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.204544] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 0.212409] ACPI: SSDT 000000009ae70718 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.213729] ACPI: Dynamic OEM Table Load:
[ 0.213865] ACPI: SSDT (null) 0067C (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.218783] ACPI: SSDT 000000009ae71a98 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.220164] ACPI: Dynamic OEM Table Load:
[ 0.220300] ACPI: SSDT (null) 00303 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.223695] ACPI: SSDT 000000009ae6fd98 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.225019] ACPI: Dynamic OEM Table Load:
[ 0.225155] ACPI: SSDT (null) 00119 (v01 Sony VAIO 20120521 INTL 20100121)
[ 0.636793] ACPI: Interpreter enabled
[ 0.636856] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20130328/hwxface-568)
[ 0.637017] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130328/hwxface-568)
[ 0.637205] ACPI: (supports S0 S3 S4 S5)
[ 0.637264] ACPI: Using IOAPIC for interrupt routing
[ 0.637357] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.638381] ACPI: ACPI Dock Station Driver: 1 docks/bays found
[ 0.656417] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[ 0.656595] \_SB_.PCI0:_OSC invalid UUID
[ 0.656597] _OSC request data:1 8 0
[ 0.657641] PCI host bridge to bus 0000:00
[ 0.657702] pci_bus 0000:00: root bus resource [bus 00-fe]
[ 0.657763] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
[ 0.657826] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
[ 0.657889] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[ 0.657952] pci_bus 0000:00: root bus resource [mem 0x9fa00000-0xfeafffff]
[ 0.658049] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[ 0.658258] pci 0000:00:02.0: [8086:0126] type 00 class 0x030000
[ 0.658274] pci 0000:00:02.0: reg 10: [mem 0xd0000000-0xd03fffff 64bit]
[ 0.658282] pci 0000:00:02.0: reg 18: [mem 0xa0000000-0xafffffff 64bit pref]
[ 0.658289] pci 0000:00:02.0: reg 20: [io 0xa000-0xa03f]
[ 0.658478] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[ 0.658517] pci 0000:00:16.0: reg 10: [mem 0xd9404000-0xd940400f 64bit]
[ 0.658650] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 0.658830] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[ 0.659124] pci 0000:00:1a.0: reg 10: [mem 0xd9409000-0xd94093ff]
[ 0.660827] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 0.660921] pci 0000:00:1a.0: System wakeup disabled by ACPI
[ 0.661095] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[ 0.661124] pci 0000:00:1b.0: reg 10: [mem 0xd9400000-0xd9403fff 64bit]
[ 0.661264] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.661318] pci 0000:00:1b.0: System wakeup disabled by ACPI
[ 0.661440] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[ 0.661582] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.661642] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 0.661765] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[ 0.661910] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 0.661973] pci 0000:00:1c.1: System wakeup disabled by ACPI
[ 0.662092] pci 0000:00:1c.2: [8086:1c14] type 01 class 0x060400
[ 0.662233] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.662297] pci 0000:00:1c.2: System wakeup disabled by ACPI
[ 0.662415] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[ 0.662556] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.662623] pci 0000:00:1c.3: System wakeup disabled by ACPI
[ 0.662747] pci 0000:00:1c.6: [8086:1c1c] type 01 class 0x060400
[ 0.662898] pci 0000:00:1c.6: PME# supported from D0 D3hot D3cold
[ 0.662971] pci 0000:00:1c.6: System wakeup disabled by ACPI
[ 0.663103] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[ 0.663398] pci 0000:00:1d.0: reg 10: [mem 0xd9408000-0xd94083ff]
[ 0.665110] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 0.665176] pci 0000:00:1d.0: System wakeup disabled by ACPI
[ 0.665296] pci 0000:00:1f.0: [8086:1c4b] type 00 class 0x060100
[ 0.665537] pci 0000:00:1f.2: [8086:282a] type 00 class 0x010400
[ 0.665575] pci 0000:00:1f.2: reg 10: [io 0xa088-0xa08f]
[ 0.665591] pci 0000:00:1f.2: reg 14: [io 0xa094-0xa097]
[ 0.665605] pci 0000:00:1f.2: reg 18: [io 0xa080-0xa087]
[ 0.665620] pci 0000:00:1f.2: reg 1c: [io 0xa090-0xa093]
[ 0.665635] pci 0000:00:1f.2: reg 20: [io 0xa060-0xa07f]
[ 0.665650] pci 0000:00:1f.2: reg 24: [mem 0xd9407000-0xd94077ff]
[ 0.665748] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.665863] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[ 0.665891] pci 0000:00:1f.3: reg 10: [mem 0xd9405000-0xd94050ff 64bit]
[ 0.665937] pci 0000:00:1f.3: reg 20: [io 0xa040-0xa05f]
[ 0.666491] pci 0000:02:00.0: [8086:0091] type 00 class 0x028000
[ 0.666815] pci 0000:02:00.0: reg 10: [mem 0xd8400000-0xd8401fff 64bit]
[ 0.668322] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[ 0.668498] pci 0000:02:00.0: System wakeup disabled by ACPI
[ 0.670137] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.670202] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.670208] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.670218] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.670370] pci 0000:03:00.0: [10ec:5209] type 00 class 0xff0000
[ 0.670399] pci 0000:03:00.0: reg 10: [mem 0xd7400000-0xd7400fff]
[ 0.670606] pci 0000:03:00.0: supports D1 D2
[ 0.670607] pci 0000:03:00.0: PME# supported from D1 D2 D3hot
[ 0.670659] pci 0000:03:00.0: System wakeup disabled by ACPI
[ 0.672013] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.672104] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.672110] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.672120] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.672323] pci 0000:04:00.0: [1033:0194] type 00 class 0x0c0330
[ 0.672360] pci 0000:04:00.0: reg 10: [mem 0xd6400000-0xd6401fff 64bit]
[ 0.672568] pci 0000:04:00.0: PME# supported from D0 D3hot D3cold
[ 0.672627] pci 0000:04:00.0: System wakeup disabled by ACPI
[ 0.672767] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.672831] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.672837] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.672846] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.673056] pci 0000:05:00.0: [10ec:8168] type 00 class 0x020000
[ 0.673131] pci 0000:05:00.0: reg 10: [io 0x6000-0x60ff]
[ 0.673266] pci 0000:05:00.0: reg 18: [mem 0xd3404000-0xd3404fff 64bit pref]
[ 0.673348] pci 0000:05:00.0: reg 20: [mem 0xd3400000-0xd3403fff 64bit pref]
[ 0.673715] pci 0000:05:00.0: supports D1 D2
[ 0.673717] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.673853] pci 0000:05:00.0: System wakeup disabled by ACPI
[ 0.676069] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.676149] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.676155] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.676164] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.676318] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:08:00
[ 0.676438] acpiphp: Slot [1] registered
[ 0.676549] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.676614] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.676620] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.676630] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.676738] \_SB_.PCI0:_OSC invalid UUID
[ 0.676739] _OSC request data:1 1f 0
[ 0.676743] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[ 0.676820] acpi PNP0A08:00: Unable to request _OSC control (_OSC support mask: 0x08)
[ 0.678582] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.679270] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.679899] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 10 *11 12 14 15)
[ 0.680529] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.681158] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 10 11 12 14 15) *7
[ 0.681834] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 0.682555] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.683184] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 *10 11 12 14 15)
[ 0.684584] ACPI: Enabled 6 GPEs in block 00 to 3F
[ 0.684727] acpi root: \_SB_.PCI0 notify handler is installed
[ 0.684876] Found 1 acpi root devices
[ 0.685004] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.685404] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.685487] vgaarb: loaded
[ 0.685542] vgaarb: bridge control possible 0000:00:02.0
[ 0.685678] SCSI subsystem initialized
[ 0.685737] ACPI: bus type ATA registered
[ 0.685878] libata version 3.00 loaded.
[ 0.685892] ACPI: bus type USB registered
[ 0.685975] usbcore: registered new interface driver usbfs
[ 0.686049] usbcore: registered new interface driver hub
[ 0.686144] usbcore: registered new device driver usb
[ 0.686249] PCI: Using ACPI for IRQ routing
[ 0.694351] PCI: pci_cache_line_size set to 64 bytes
[ 0.694539] e820: reserve RAM buffer [mem 0x0008f400-0x0008ffff]
[ 0.694547] e820: reserve RAM buffer [mem 0x9ae3f000-0x9bffffff]
[ 0.694549] e820: reserve RAM buffer [mem 0x9b000000-0x9bffffff]
[ 0.694551] e820: reserve RAM buffer [mem 0x25fe00000-0x25fffffff]
[ 0.694900] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.695320] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 0.697404] Switching to clocksource hpet
[ 0.704037] pnp: PnP ACPI init
[ 0.704123] ACPI: bus type PNP registered
[ 0.704293] pnp 00:00: [dma 4]
[ 0.704348] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[ 0.704386] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[ 0.704508] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[ 0.704561] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 0.704636] system 00:04: [io 0x0680-0x069f] has been reserved
[ 0.704699] system 00:04: [io 0x1000-0x100f] has been reserved
[ 0.704761] system 00:04: [io 0xffff] has been reserved
[ 0.704822] system 00:04: [io 0xffff] has been reserved
[ 0.704884] system 00:04: [io 0x0400-0x0453] has been reserved
[ 0.704946] system 00:04: [io 0x0458-0x047f] has been reserved
[ 0.705007] system 00:04: [io 0x0500-0x057f] has been reserved
[ 0.705069] system 00:04: [io 0x164e-0x164f] has been reserved
[ 0.705131] system 00:04: [io 0x2000] has been reserved
[ 0.705192] system 00:04: [io 0x2004] has been reserved
[ 0.705255] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.705299] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.705364] system 00:06: [io 0x0454-0x0457] has been reserved
[ 0.705428] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 0.705479] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 (active)
[ 0.705538] pnp 00:08: Plug and Play ACPI device, IDs SNY9015 PNP0f13 (active)
[ 0.705727] system 00:09: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.705792] system 00:09: [mem 0xfed10000-0xfed17fff] has been reserved
[ 0.705855] system 00:09: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.705919] system 00:09: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.705982] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[ 0.706045] system 00:09: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 0.706109] system 00:09: [mem 0xfed90000-0xfed93fff] has been reserved
[ 0.706173] system 00:09: [mem 0xff000000-0xffffffff] could not be reserved
[ 0.706239] system 00:09: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 0.706303] system 00:09: [mem 0x9fa00000-0x9fa00fff] has been reserved
[ 0.706368] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.707160] system 00:0a: [mem 0x20000000-0x201fffff] could not be reserved
[ 0.707231] system 00:0a: [mem 0x40000000-0x401fffff] could not be reserved
[ 0.707302] system 00:0a: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.707323] pnp: PnP ACPI: found 11 devices
[ 0.707382] ACPI: bus type PNP unregistered
[ 0.715692] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.715757] pci 0000:00:1c.0: bridge window [io 0x9000-0x9fff]
[ 0.715825] pci 0000:00:1c.0: bridge window [mem 0xd8400000-0xd93fffff]
[ 0.715892] pci 0000:00:1c.0: bridge window [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.715975] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 0.716036] pci 0000:00:1c.1: bridge window [io 0x8000-0x8fff]
[ 0.716104] pci 0000:00:1c.1: bridge window [mem 0xd7400000-0xd83fffff]
[ 0.716659] pci 0000:00:1c.1: bridge window [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.716743] pci 0000:00:1c.2: PCI bridge to [bus 04]
[ 0.716805] pci 0000:00:1c.2: bridge window [io 0x7000-0x7fff]
[ 0.716873] pci 0000:00:1c.2: bridge window [mem 0xd6400000-0xd73fffff]
[ 0.716940] pci 0000:00:1c.2: bridge window [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.717024] pci 0000:00:1c.3: PCI bridge to [bus 05]
[ 0.717085] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.717152] pci 0000:00:1c.3: bridge window [mem 0xd5400000-0xd63fffff]
[ 0.717218] pci 0000:00:1c.3: bridge window [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.717301] pci 0000:00:1c.6: PCI bridge to [bus 08-20]
[ 0.717364] pci 0000:00:1c.6: bridge window [io 0x3000-0x5fff]
[ 0.717432] pci 0000:00:1c.6: bridge window [mem 0xb0000000-0xcfffffff]
[ 0.717499] pci 0000:00:1c.6: bridge window [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.718011] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
[ 0.718013] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
[ 0.718015] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[ 0.718017] pci_bus 0000:00: resource 7 [mem 0x9fa00000-0xfeafffff]
[ 0.718019] pci_bus 0000:02: resource 0 [io 0x9000-0x9fff]
[ 0.718020] pci_bus 0000:02: resource 1 [mem 0xd8400000-0xd93fffff]
[ 0.718022] pci_bus 0000:02: resource 2 [mem 0xd0400000-0xd13fffff 64bit pref]
[ 0.718024] pci_bus 0000:03: resource 0 [io 0x8000-0x8fff]
[ 0.718026] pci_bus 0000:03: resource 1 [mem 0xd7400000-0xd83fffff]
[ 0.718027] pci_bus 0000:03: resource 2 [mem 0xd1400000-0xd23fffff 64bit pref]
[ 0.718029] pci_bus 0000:04: resource 0 [io 0x7000-0x7fff]
[ 0.718031] pci_bus 0000:04: resource 1 [mem 0xd6400000-0xd73fffff]
[ 0.718032] pci_bus 0000:04: resource 2 [mem 0xd2400000-0xd33fffff 64bit pref]
[ 0.718034] pci_bus 0000:05: resource 0 [io 0x6000-0x6fff]
[ 0.718036] pci_bus 0000:05: resource 1 [mem 0xd5400000-0xd63fffff]
[ 0.718037] pci_bus 0000:05: resource 2 [mem 0xd3400000-0xd43fffff 64bit pref]
[ 0.718039] pci_bus 0000:08: resource 0 [io 0x3000-0x5fff]
[ 0.718041] pci_bus 0000:08: resource 1 [mem 0xb0000000-0xcfffffff]
[ 0.718043] pci_bus 0000:08: resource 2 [mem 0xd4400000-0xd53fffff 64bit pref]
[ 0.718089] NET: Registered protocol family 2
[ 0.718605] TCP established hash table entries: 65536 (order: 8, 1048576 bytes)
[ 0.719082] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
[ 0.722572] TCP: Hash tables configured (established 65536 bind 65536)
[ 0.722689] TCP: reno registered
[ 0.722794] UDP hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.723338] UDP-Lite hash table entries: 4096 (order: 7, 655360 bytes)
[ 0.724049] NET: Registered protocol family 1
[ 0.724123] pci 0000:00:02.0: Boot video device
[ 0.758061] PCI: CLS 64 bytes, default 64
[ 0.758218] Unpacking initramfs...
[ 0.843018] Freeing initrd memory: 5360k freed
[ 0.843798] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.843866] software IO TLB [mem 0x96e3f000-0x9ae3f000] (64MB) mapped at [ffff880096e3f000-ffff88009ae3efff]
[ 0.843979] Simple Boot Flag at 0x44 set to 0x1
[ 0.844647] audit: initializing netlink socket (disabled)
[ 0.844755] type=2000 audit(1371228900.822:1): initialized
[ 0.865363] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.868000] VFS: Disk quotas dquot_6.5.2
[ 0.868112] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.868767] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.869134] NILFS version 2 loaded
[ 0.869386] bio: create slab <bio-1> at 1
[ 0.869722] Btrfs loaded
[ 0.869784] msgmni has been set to 15780
[ 0.870480] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.870568] io scheduler noop registered
[ 0.870626] io scheduler deadline registered
[ 0.870764] io scheduler cfq registered (default)
[ 0.871328] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.871472] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.871534] cpcihp_zt5550: ZT5550 CompactPCI Hot Plug Driver version: 0.2
[ 0.871617] cpcihp_generic: Generic port I/O CompactPCI Hot Plug Driver version: 0.1
[ 0.871692] cpcihp_generic: not configured, disabling.
[ 0.871788] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.874468] acpiphp_ibm: ibm_acpiphp_init: acpi_walk_namespace failed
[ 0.874976] intel_idle: MWAIT substates: 0x21120
[ 0.874978] intel_idle: v0.4 model 0x2A
[ 0.874979] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 0.875138] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.875385] ACPI: AC Adapter [ADP1] (off-line)
[ 0.875678] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0
[ 0.875806] ACPI: Lid Switch [LID0]
[ 0.875912] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1
[ 0.876019] ACPI: Power Button [PWRB]
[ 0.876182] ACPI: Requesting acpi_cpufreq
[ 0.883717] thermal LNXTHERM:00: registered as thermal_zone0
[ 0.883799] ACPI: Thermal Zone [TZ01] (64 C)
[ 0.883981] ioatdma: Intel(R) QuickData Technology Driver 4.00
[ 0.884163] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.888909] loop: module loaded
[ 0.889346] mei_me 0000:00:16.0: setting latency timer to 64
[ 0.889466] mei_me 0000:00:16.0: irq 40 for MSI/MSI-X
[ 0.890358] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.890449] ACPI: Battery Slot [BAT1] (battery present)
[ 0.890622] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[ 0.890710] ACPI: Battery Slot [BAT2] (battery absent)
[ 0.895097] Loading iSCSI transport class v2.0-870.
[ 0.895300] iscsi: registered transport (tcp)
[ 0.895426] ahci 0000:00:1f.2: version 3.0
[ 0.895602] ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
[ 0.895680] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x3 impl RAID mode
[ 0.895769] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part apst
[ 0.895848] ahci 0000:00:1f.2: setting latency timer to 64
[ 0.896842] scsi0 : ahci
[ 0.897119] scsi1 : ahci
[ 0.897275] scsi2 : ahci
[ 0.897436] scsi3 : ahci
[ 0.897593] scsi4 : ahci
[ 0.897752] scsi5 : ahci
[ 0.897868] ata1: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407100 irq 41
[ 0.897945] ata2: SATA max UDMA/133 abar m2048@0xd9407000 port 0xd9407180 irq 41
[ 0.898020] ata3: DUMMY
[ 0.898074] ata4: DUMMY
[ 0.898147] ata5: DUMMY
[ 0.898202] ata6: DUMMY
[ 0.898471] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[ 0.901277] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.901530] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.901790] mousedev: PS/2 mouse device common for all mice
[ 0.902308] rtc_cmos 00:05: RTC can wake from S4
[ 0.902614] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[ 0.902711] rtc_cmos 00:05: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 0.902858] Intel P-state driver initializing.
[ 0.902937] Intel pstate controlling: cpu 0
[ 0.903073] Intel pstate controlling: cpu 1
[ 0.903151] Intel pstate controlling: cpu 2
[ 0.903227] Intel pstate controlling: cpu 3
[ 0.903513] cpuidle: using governor ladder
[ 0.904053] cpuidle: using governor menu
[ 0.904117] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.904194] hidraw: raw HID events driver (C) Jiri Kosina
[ 0.904490] TCP: cubic registered
[ 0.904549] Initializing XFRM netlink socket
[ 0.904778] NET: Registered protocol family 10
[ 0.905265] NET: Registered protocol family 17
[ 0.905405] Key type dns_resolver registered
[ 0.905888] PM: Hibernation image not present or could not be loaded.
[ 0.905909] registered taskstats version 1
[ 0.907132] rtc_cmos 00:05: setting system clock to 2013-06-14 16:55:01 UTC (1371228901)
[ 0.921175] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[ 1.203290] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.203430] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 1.204240] ata2.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.204345] ata2.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.204453] ata1.00: ATA-8: SAMSUNG MZRPC256HADR-000SO, CXM05S1Q, max UDMA/133
[ 1.204564] ata1.00: 250069680 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[ 1.205102] ata1.00: configured for UDMA/133
[ 1.205300] ata2.00: configured for UDMA/133
[ 1.206248] scsi 0:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.207255] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.207681] sd 0:0:0:0: [sda] Write Protect is off
[ 1.207750] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 1.207814] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.207843] scsi 1:0:0:0: Direct-Access ATA SAMSUNG MZRPC256 CXM0 PQ: 0 ANSI: 5
[ 1.208061] sd 1:0:0:0: [sdb] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 1.208359] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.208429] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.208497] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1.209317] sda: sda1 sda2
[ 1.209319] sdb: unknown partition table
[ 1.209885] sda: p2 size 489641984 extends beyond EOD, enabling native capacity
[ 1.210414] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 1.211395] sda: sda1 sda2
[ 1.211652] sda: p2 size 489641984 extends beyond EOD, truncated
[ 1.212312] sd 0:0:0:0: [sda] Attached SCSI disk
[ 1.213331] Freeing unused kernel memory: 980k freed
[ 1.213503] Write protecting the kernel read-only data: 12288k
[ 1.216744] Freeing unused kernel memory: 1604k freed
[ 1.219247] Freeing unused kernel memory: 1256k freed
[ 1.246686] dracut: dracut-027-r3
[ 1.269853] device-mapper: uevent: version 1.0.3
[ 1.270037] device-mapper: ioctl: 4.24.0-ioctl (2013-01-15) initialised: dm-devel@redhat.com
[ 1.274051] systemd-udevd[168]: starting version 204
[ 1.337371] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.337627] ehci-pci: EHCI PCI platform driver
[ 1.337877] ehci-pci 0000:00:1a.0: setting latency timer to 64
[ 1.337958] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 1.338250] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[ 1.338520] ehci-pci 0000:00:1a.0: debug port 2
[ 1.342571] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 1.342620] ehci-pci 0000:00:1a.0: irq 23, io mem 0xd9409000
[ 1.348367] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 1.350622] hub 1-0:1.0: USB hub found
[ 1.350735] hub 1-0:1.0: 2 ports detected
[ 1.351421] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.351509] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
[ 1.351541] ehci-pci 0000:00:1d.0: setting latency timer to 64
[ 1.351866] xhci_hcd 0000:04:00.0: irq 42 for MSI/MSI-X
[ 1.351877] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[ 1.351888] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[ 1.351899] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[ 1.351909] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[ 1.352628] xHCI xhci_add_endpoint called for root hub
[ 1.352632] xHCI xhci_check_bandwidth called for root hub
[ 1.352784] hub 2-0:1.0: USB hub found
[ 1.352900] hub 2-0:1.0: 2 ports detected
[ 1.354454] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 1.354470] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 1.354484] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 3
[ 1.354514] ehci-pci 0000:00:1d.0: debug port 2
[ 1.354857] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 4
[ 1.357416] xHCI xhci_add_endpoint called for root hub
[ 1.357418] xHCI xhci_check_bandwidth called for root hub
[ 1.357684] hub 4-0:1.0: USB hub found
[ 1.357786] hub 4-0:1.0: 2 ports detected
[ 1.358429] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 1.358462] ehci-pci 0000:00:1d.0: irq 20, io mem 0xd9408000
[ 1.364350] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 1.365795] hub 3-0:1.0: USB hub found
[ 1.365857] hub 3-0:1.0: 2 ports detected
[ 1.385053] md: bind<sdb>
[ 1.595746] md: bind<sda>
[ 1.605515] md: bind<sdb>
[ 1.605940] md: bind<sda>
[ 1.608001] md: raid0 personality registered for level 0
[ 1.608491] md/raid0:md126: md_size is 500129792 sectors.
[ 1.608553] md: RAID0 configuration for md126 - 1 zone
[ 1.608613] md: zone0=[sda/sdb]
[ 1.608844] zone-offset= 0KB, device-offset= 0KB, size= 250065152KB
[ 1.609032] md126: detected capacity change from 0 to 256066453504
[ 1.610413] md126: p1 p2
[ 1.652732] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 1.684769] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x122c00, board id: 1690, fw id: 934878
[ 1.720481] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input3
[ 1.769049] hub 1-1:1.0: USB hub found
[ 1.769279] hub 1-1:1.0: 6 ports detected
[ 1.847164] tsc: Refined TSC clocksource calibration: 2793.653 MHz
[ 1.847269] Switching to clocksource tsc
[ 1.873020] usb 3-1: new high-speed USB device number 2 using ehci-pci
[ 1.973280] dracut: luksOpen /dev/md126p2 luks-54ed2bf3-fb3d-4442-b8be-2f0cfda6a521
[ 1.987989] hub 3-1:1.0: USB hub found
[ 1.988152] hub 3-1:1.0: 8 ports detected
[ 2.063649] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[ 2.205828] usb 1-1.2: new full-speed USB device number 4 using ehci-pci
[ 2.371821] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[ 2.553221] usb 1-1.4: new high-speed USB device number 6 using ehci-pci
[ 2.642136] usb 1-1.4: config 1 has an invalid interface number: 8 but max is 3
[ 2.642251] usb 1-1.4: config 1 has no interface number 1
[ 8.867308] sha256_ssse3: Using AVX optimized SHA-256 implementation
[ 8.868685] bio: create slab <bio-2> at 2
[ 9.036970] dracut: Scanning devices dm-0 for LVM logical volumes vaio/gentoo64a-root
[ 9.047835] dracut: inactive '/dev/vaio/gentoo64a-root' [16.00 GiB] inherit
[ 9.047960] dracut: inactive '/dev/vaio/portage' [12.00 GiB] inherit
[ 9.048083] dracut: inactive '/dev/vaio/home' [180.00 GiB] inherit
[ 9.101472] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 9.114257] dracut: Checking ext4: /dev/vaio/gentoo64a-root
[ 9.114351] dracut: issuing e2fsck -a /dev/vaio/gentoo64a-root
[ 9.164759] dracut: /dev/vaio/gentoo64a-root: clean, 575802/1048576 files, 3584508/4194304 blocks
[ 9.166606] dracut: Mounting /dev/vaio/gentoo64a-root with -o noatime,ro
[ 9.170110] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[ 9.177249] dracut: Mounted root filesystem /dev/mapper/vaio-gentoo64a--root
[ 9.191434] dracut: Switching root
[ 9.509572] systemd-udevd[629]: starting version 204
[ 9.592305] ACPI Warning: 0x000000000000a040-0x000000000000a05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130328/utaddress-251)
[ 9.592311] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.593059] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20130328/utaddress-251)
[ 9.593064] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.593068] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.593073] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.593076] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.593081] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.593083] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20130328/utaddress-251)
[ 9.593088] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 9.593090] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 9.593481] Linux agpgart interface v0.103
[ 9.599250] [drm] Initialized drm 1.1.0 20060810
[ 9.605848] snd_hda_intel 0000:00:1b.0: irq 47 for MSI/MSI-X
[ 9.612414] sony_laptop: Sony Notebook Control Driver v0.6
[ 9.612808] input: Sony Vaio Keys as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input4
[ 9.613294] input: Sony Vaio Jogdial as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/SNY5001:00/input/input5
[ 9.621804] hda_codec: ALC275: SKU not ready 0x411111f0
[ 9.624045] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6
[ 9.634637] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[ 9.634769] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[ 9.635768] sony_laptop: brightness ignored, must be controlled by ACPI video driver
[ 9.640801] rtsx_pci 0000:03:00.0: irq 48 for MSI/MSI-X
[ 9.640827] rtsx_pci 0000:03:00.0: rtsx_pci_acquire_irq: pcr->msi_en = 1, pci->irq = 48
[ 9.646258] [drm] Memory usable by graphics device = 2048M
[ 9.646327] i915 0000:00:02.0: setting latency timer to 64
[ 9.651659] cfg80211: Calling CRDA to update world regulatory domain
[ 9.654343] Intel(R) Wireless WiFi driver for Linux, in-tree:
[ 9.654346] Copyright(c) 2003-2013 Intel Corporation
[ 9.654781] iwlwifi 0000:02:00.0: irq 49 for MSI/MSI-X
[ 9.655301] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 9.655694] r8169 0000:05:00.0: irq 50 for MSI/MSI-X
[ 9.658833] r8169 0000:05:00.0 eth0: RTL8168evl/8111evl at 0xffffc90000c7a000, 54:42:49:9a:df:1e, XID 0c900800 IRQ 50
[ 9.658837] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 9.660934] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
[ 9.669285] Bluetooth: Core ver 2.16
[ 9.669307] NET: Registered protocol family 31
[ 9.669309] Bluetooth: HCI device and connection manager initialized
[ 9.669893] Bluetooth: HCI socket layer initialized
[ 9.669898] Bluetooth: L2CAP socket layer initialized
[ 9.669912] Bluetooth: SCO socket layer initialized
[ 9.679110] usbcore: registered new interface driver btusb
[ 9.689730] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUG disabled
[ 9.689733] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[ 9.689735] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[ 9.689736] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[ 9.689737] iwlwifi 0000:02:00.0: CONFIG_IWLWIFI_P2P disabled
[ 9.689739] iwlwifi 0000:02:00.0: Detected Intel(R) Centrino(R) Advanced-N 6230 AGN, REV=0xB0
[ 9.689850] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 9.691683] usbcore: registered new interface driver usbserial
[ 9.694653] usbcore: registered new interface driver usbserial_generic
[ 9.694836] usbserial: USB Serial support registered for generic
[ 9.696052] i915 0000:00:02.0: irq 51 for MSI/MSI-X
[ 9.696510] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 9.696512] [drm] Driver supports precise vblank timestamp query.
[ 9.697541] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 9.698632] usbcore: registered new interface driver qcserial
[ 9.703698] usbserial: USB Serial support registered for Qualcomm USB modem
[ 9.704816] qcserial 1-1.4:1.0: Qualcomm USB modem converter detected
[ 9.706264] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB0
[ 9.707735] qcserial 1-1.4:1.2: Qualcomm USB modem converter detected
[ 9.708783] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB1
[ 9.710406] qcserial 1-1.4:1.3: Qualcomm USB modem converter detected
[ 9.711823] usb 1-1.4: Qualcomm USB modem converter now attached to ttyUSB2
[ 9.714046] media: Linux media interface: v0.10
[ 9.714367] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 9.717923] Linux video capture interface: v2.00
[ 9.724810] input: PC Speaker as /devices/platform/pcspkr/input/input9
[ 9.727750] uvcvideo: Found UVC 1.00 device USB2.0 Camera (05c8:0318)
[ 9.728323] Error: Driver 'pcspkr' is already registered, aborting...
[ 9.732007] 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
[ 9.732634] usbcore: registered new interface driver uvcvideo
[ 9.732637] USB Video Class driver (1.1.1)
[ 9.742513] [drm] Wrong MCH_SSKPD value: 0x16040307
[ 9.742517] [drm] This can cause pipe underruns and display issues.
[ 9.742519] [drm] Please upgrade your BIOS to fix this.
[ 9.747659] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 9.748522] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[ 9.748947] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[ 9.748961] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749013] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749246] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[ 9.749257] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749307] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749570] microcode: CPU2 updated to revision 0x28, date = 2012-04-24
[ 9.749581] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749623] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[ 9.749897] microcode: CPU3 updated to revision 0x28, date = 2012-04-24
[ 9.749999] perf_event_intel: PEBS enabled due to microcode update
[ 9.750160] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[ 9.758713] fbcon: inteldrmfb (fb0) is primary device
[ 9.794844] iTCO_vendor_support: vendor-support=0
[ 9.795691] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[ 9.795896] iTCO_wdt: unable to reset NO_REBOOT flag, device disabled by hardware/BIOS
[ 9.843467] cfg80211: World regulatory domain updated:
[ 9.843468] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 9.843470] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.843472] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.843473] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 9.843475] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.843476] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 9.849983] systemd-udevd[659]: renamed network interface eth0 to enp5s0
[ 9.883014] systemd-udevd[654]: renamed network interface wlan0 to wlp2s0
[ 11.554433] Console: switching to colour frame buffer device 240x67
[ 11.557607] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[ 11.557609] i915 0000:00:02.0: registered panic notifier
[ 11.558105] [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.
[ 11.558115] [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.
[ 11.558125] [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.
[ 11.558135] [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.
[ 11.558144] [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.
[ 11.558153] [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.
[ 11.558162] [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.
[ 11.559676] acpi device:3e: registered as cooling_device5
[ 11.559965] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 11.560043] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:09/input/input11
[ 11.560584] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[ 11.739623] [drm] Enabling RC6 states: RC6 on, RC6p on, RC6pp on
[ 12.811871] EXT4-fs (dm-1): re-mounted. Opts: (null)
[ 12.888954] EXT4-fs (md126p1): mounted filesystem with ordered data mode. Opts: (null)
[ 12.893881] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 12.899494] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[ 13.312663] microcode: Microcode Update Driver: v2.00 removed.
[ 13.798250] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 13.805275] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 14.190399] iwlwifi 0000:02:00.0: L1 Enabled; Disabling L0S
[ 14.197274] iwlwifi 0000:02:00.0: Radio type=0x1-0x2-0x0
[ 14.407370] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 15.796584] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 15.796588] Bluetooth: BNEP filters: protocol multicast
[ 15.796596] Bluetooth: BNEP socket layer initialized
[ 15.961351] Bluetooth: RFCOMM TTY layer initialized
[ 15.961369] Bluetooth: RFCOMM socket layer initialized
[ 15.961371] Bluetooth: RFCOMM ver 1.11
[ 16.313208] zram: module is from the staging directory, the quality is unknown, you have been warned.
[ 16.317010] zram: Created 4 device(s) ...
[ 16.328748] Adding 1572860k swap on /dev/zram0. Priority:10 extents:1 across:1572860k SSFS
[ 16.336492] Adding 1572860k swap on /dev/zram1. Priority:10 extents:1 across:1572860k SSFS
[ 16.343086] Adding 1572860k swap on /dev/zram2. Priority:10 extents:1 across:1572860k SSFS
[ 16.350064] Adding 1572860k swap on /dev/zram3. Priority:10 extents:1 across:1572860k SSFS
[ 17.719894] wlp2s0: authenticate with 08:60:6e:cc:a2:94
[ 17.726106] wlp2s0: send auth to 08:60:6e:cc:a2:94 (try 1/3)
[ 17.750124] wlp2s0: authenticated
[ 17.750971] wlp2s0: associate with 08:60:6e:cc:a2:94 (try 1/3)
[ 17.751869] wlp2s0: RX AssocResp from 08:60:6e:cc:a2:94 (capab=0x11 status=0 aid=1)
[ 17.755176] wlp2s0: associated
[ 17.755240] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 25.781326] ACPI: \_SB_.DOCK: docking
[ 25.782919] acpiphp_glue: _handle_hotplug_event_func: Bus check notify on \_SB_.PCI0.RP07.LPMB
[ 25.782981] acpiphp_glue: bus exists... trim
[ 25.783664] ACPI: Device does not support D3cold
[ 25.783814] ACPI: Device does not support D3cold
[ 25.784108] ACPI: Device does not support D3cold
[ 25.784260] ACPI: Device does not support D3cold
[ 25.784402] ACPI: Device does not support D3cold
[ 25.784578] ACPI: Device does not support D3cold
[ 25.784759] ACPI: Device does not support D3cold
[ 25.784845] ACPI: Device does not support D3cold
[ 25.784926] ACPI: Device does not support D3cold
[ 25.784985] ACPI: Device does not support D3cold
[ 25.785031] ACPI: Device does not support D3cold
[ 25.785108] ACPI: Device does not support D3cold
[ 25.785349] ACPI: Device does not support D3cold
[ 25.786114] ACPI: Device does not support D3cold
[ 25.786193] ACPI: Device does not support D3cold
[ 25.787583] ACPI: Device does not support D3cold
[ 25.788548] ACPI: Device does not support D3cold
[ 25.789912] ACPI: Device does not support D3cold
[ 25.791193] ACPI: Device does not support D3cold
[ 25.791312] ACPI: Device does not support D3cold
[ 25.793253] ACPI: Device does not support D3cold
[ 25.793868] ACPI: Device does not support D3cold
[ 25.794678] ACPI: Device does not support D3cold
[ 25.794858] ACPI: Device does not support D3cold
[ 25.795102] ACPI: Device does not support D3cold
[ 25.795761] ACPI: Device does not support D3cold
[ 25.796386] ACPI: Device does not support D3cold
[ 25.796907] ACPI: Device does not support D3cold
[ 25.797320] ACPI: Device does not support D3cold
[ 25.797669] ACPI: Device does not support D3cold
[ 25.797984] ACPI: Device does not support D3cold
[ 25.808038] [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.
[ 25.808060] [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.
[ 25.808077] [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.
[ 25.808095] [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.
[ 25.808112] [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.
[ 25.808129] [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.
[ 25.808146] [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.
[ 25.808316] pci 0000:08:00.0: [8086:151b] type 01 class 0x060400
[ 25.808494] pci 0000:08:00.0: supports D1 D2
[ 25.808496] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.810088] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:0a:00
[ 25.810399] acpiphp: Slot [1-1] registered
[ 25.810440] acpiphp_glue: found ACPI PCI Hotplug slot 2 at PCI 0000:0a:03
[ 25.810878] acpiphp: Slot [2] registered
[ 25.810915] acpiphp_glue: found ACPI PCI Hotplug slot 3 at PCI 0000:0a:04
[ 25.811000] acpiphp: Slot [3] registered
[ 25.811044] pci 0000:0a:00.0: [8086:151b] type 01 class 0x060400
[ 25.811201] pci 0000:0a:00.0: supports D1 D2
[ 25.811202] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.812688] pci 0000:0a:03.0: [8086:151b] type 01 class 0x060400
[ 25.812858] pci 0000:0a:03.0: supports D1 D2
[ 25.812859] pci 0000:0a:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.815661] pci 0000:0a:04.0: [8086:151b] type 01 class 0x060400
[ 25.815833] pci 0000:0a:04.0: supports D1 D2
[ 25.815834] pci 0000:0a:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.816008] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 25.816019] pci 0000:08:00.0: bridge window [io 0x3000-0x5fff]
[ 25.816025] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc03fffff]
[ 25.816035] pci 0000:08:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.817416] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 25.817432] pci 0000:0a:00.0: bridge window [mem 0xc0300000-0xc03fffff]
[ 25.820691] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 25.821446] pci 0000:14:00.0: [8086:151b] type 01 class 0x060400
[ 25.821724] pci 0000:14:00.0: supports D1 D2
[ 25.821726] pci 0000:14:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.822076] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 25.822087] pci 0000:0a:04.0: bridge window [io 0x3000-0x5fff]
[ 25.822092] pci 0000:0a:04.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 25.822103] pci 0000:0a:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.822327] pci 0000:15:03.0: [8086:151b] type 01 class 0x060400
[ 25.822563] pci 0000:15:03.0: supports D1 D2
[ 25.822564] pci 0000:15:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.822737] pci 0000:15:04.0: [8086:151b] type 01 class 0x060400
[ 25.822969] pci 0000:15:04.0: supports D1 D2
[ 25.822971] pci 0000:15:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.823183] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 25.823198] pci 0000:14:00.0: bridge window [io 0x3000-0x5fff]
[ 25.823206] pci 0000:14:00.0: bridge window [mem 0xb0000000-0xc02fffff]
[ 25.823221] pci 0000:14:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.823407] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:16:00
[ 25.823432] acpiphp: Slot [1-2] registered
[ 25.823460] acpiphp_glue: sibling found, but _SUN doesn't match!
[ 25.823518] pci 0000:16:00.0: [1002:6740] type 00 class 0x030000
[ 25.823583] pci 0000:16:00.0: reg 10: [mem 0x00000000-0x0fffffff 64bit pref]
[ 25.823865] pci 0000:16:00.0: reg 18: [mem 0x00000000-0x0001ffff 64bit]
[ 25.823902] pci 0000:16:00.0: reg 20: [io 0x0000-0x00ff]
[ 25.823969] pci 0000:16:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[ 25.824128] pci 0000:16:00.0: supports D1 D2
[ 25.825147] vgaarb: device added: PCI:0000:16:00.0,decodes=io+mem,owns=none,locks=none
[ 25.825152] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[ 25.825154] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:16:00.0
[ 25.825252] pci 0000:16:00.1: [1002:aa90] type 00 class 0x040300
[ 25.825317] pci 0000:16:00.1: reg 10: [mem 0x00000000-0x00003fff 64bit]
[ 25.825689] pci 0000:16:00.1: supports D1 D2
[ 25.826312] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 25.826327] pci 0000:15:03.0: bridge window [io 0x5000-0x5fff]
[ 25.826335] pci 0000:15:03.0: bridge window [mem 0xc0200000-0xc02fffff]
[ 25.826350] pci 0000:15:03.0: bridge window [mem 0xb0000000-0xbfffffff 64bit pref]
[ 25.826588] pci 0000:17:00.0: [8086:151b] type 01 class 0x060400
[ 25.826922] pci 0000:17:00.0: supports D1 D2
[ 25.826924] pci 0000:17:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.828648] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 25.828665] pci 0000:15:04.0: bridge window [io 0x3000-0x4fff]
[ 25.828673] pci 0000:15:04.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 25.828688] pci 0000:15:04.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.829061] pci 0000:18:00.0: [8086:151b] type 01 class 0x060400
[ 25.829392] pci 0000:18:00.0: supports D1 D2
[ 25.829394] pci 0000:18:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.830132] pci 0000:18:01.0: [8086:151b] type 01 class 0x060400
[ 25.830444] pci 0000:18:01.0: supports D1 D2
[ 25.830446] pci 0000:18:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.831199] pci 0000:18:02.0: [8086:151b] type 01 class 0x060400
[ 25.831515] pci 0000:18:02.0: supports D1 D2
[ 25.831517] pci 0000:18:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.832244] pci 0000:18:03.0: [8086:151b] type 01 class 0x060400
[ 25.832578] pci 0000:18:03.0: supports D1 D2
[ 25.832580] pci 0000:18:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.834004] pci 0000:18:04.0: [8086:151b] type 01 class 0x060400
[ 25.834364] pci 0000:18:04.0: supports D1 D2
[ 25.834368] pci 0000:18:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.834891] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 25.834915] pci 0000:17:00.0: bridge window [io 0x3000-0x4fff]
[ 25.834927] pci 0000:17:00.0: bridge window [mem 0xc0000000-0xc01fffff]
[ 25.834950] pci 0000:17:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.835707] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:19:00
[ 25.835748] acpiphp: Slot [1-3] registered
[ 25.835842] pci 0000:19:00.0: [10ec:8168] type 00 class 0x020000
[ 25.835905] pci 0000:19:00.0: reg 10: [io 0x0000-0x00ff]
[ 25.836011] pci 0000:19:00.0: reg 18: [mem 0x00000000-0x00000fff 64bit pref]
[ 25.836101] pci 0000:19:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit pref]
[ 25.836376] pci 0000:19:00.0: supports D1 D2
[ 25.836377] pci 0000:19:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 25.837450] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 25.837475] pci 0000:18:00.0: bridge window [io 0x4000-0x4fff]
[ 25.837507] pci 0000:18:00.0: bridge window [mem 0xd4400000-0xd44fffff 64bit pref]
[ 25.838467] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1a:00
[ 25.838493] acpiphp: Slot [1-4] registered
[ 25.838577] pci 0000:1a:00.0: [11ab:6121] type 00 class 0x01018f
[ 25.838635] pci 0000:1a:00.0: reg 10: [io 0x8000-0x8007]
[ 25.838695] pci 0000:1a:00.0: reg 14: [io 0x8040-0x8043]
[ 25.838736] pci 0000:1a:00.0: reg 18: [io 0x8200-0x8207]
[ 25.838776] pci 0000:1a:00.0: reg 1c: [io 0x8800-0x8803]
[ 25.838816] pci 0000:1a:00.0: reg 20: [io 0x900000-0x90000f]
[ 25.838855] pci 0000:1a:00.0: reg 24: [mem 0x00800000-0x008003ff]
[ 25.839102] pci 0000:1a:00.0: supports D1
[ 25.839104] pci 0000:1a:00.0: PME# supported from D0 D1 D3hot
[ 25.840376] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 25.840402] pci 0000:18:01.0: bridge window [io 0x3000-0x3fff]
[ 25.840416] pci 0000:18:01.0: bridge window [mem 0xc0100000-0xc01fffff]
[ 25.840776] acpiphp_glue: found ACPI PCI Hotplug slot 1 at PCI 0000:1b:00
[ 25.840805] acpiphp: Slot [1-5] registered
[ 25.840901] pci 0000:1b:00.0: [1033:0194] type 00 class 0x0c0330
[ 25.840980] pci 0000:1b:00.0: reg 10: [mem 0x00000000-0x00001fff 64bit]
[ 25.841268] [drm] radeon kernel modesetting enabled.
[ 25.841397] pci 0000:1b:00.0: PME# supported from D0 D3hot D3cold
[ 25.841731] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 25.841765] pci 0000:18:02.0: bridge window [mem 0xc0000000-0xc00fffff]
[ 25.842990] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 25.843635] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 25.844222] pci 0000:08:00.0: BAR 15: can't assign mem pref (size 0x28000000)
[ 25.844225] pci 0000:08:00.0: BAR 14: assigned [mem 0xb0000000-0xc06fffff]
[ 25.844227] pci 0000:08:00.0: BAR 13: can't assign io (size 0xb000)
[ 25.844231] pci 0000:0a:04.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 25.844233] pci 0000:0a:00.0: BAR 14: assigned [mem 0xb0000000-0xb01fffff]
[ 25.844235] pci 0000:0a:00.0: BAR 15: assigned [mem 0xb0200000-0xb03fffff 64bit pref]
[ 25.844237] pci 0000:0a:03.0: BAR 14: assigned [mem 0xb0400000-0xb05fffff]
[ 25.844239] pci 0000:0a:03.0: BAR 15: assigned [mem 0xb0600000-0xb07fffff 64bit pref]
[ 25.844241] pci 0000:0a:04.0: BAR 14: can't assign mem (size 0x10300000)
[ 25.844243] pci 0000:0a:00.0: BAR 13: can't assign io (size 0x1000)
[ 25.844244] pci 0000:0a:03.0: BAR 13: can't assign io (size 0x1000)
[ 25.844246] pci 0000:0a:04.0: BAR 13: can't assign io (size 0x8000)
[ 25.844249] pci 0000:0a:00.0: PCI bridge to [bus 0b]
[ 25.844257] pci 0000:0a:00.0: bridge window [mem 0xb0000000-0xb01fffff]
[ 25.844263] pci 0000:0a:00.0: bridge window [mem 0xb0200000-0xb03fffff 64bit pref]
[ 25.844273] pci 0000:0a:03.0: PCI bridge to [bus 0c]
[ 25.844282] pci 0000:0a:03.0: bridge window [mem 0xb0400000-0xb05fffff]
[ 25.844288] pci 0000:0a:03.0: bridge window [mem 0xb0600000-0xb07fffff 64bit pref]
[ 25.844299] pci 0000:14:00.0: BAR 15: can't assign mem pref (size 0x20000000)
[ 25.844301] pci 0000:14:00.0: BAR 14: can't assign mem (size 0x10300000)
[ 25.844302] pci 0000:14:00.0: BAR 13: can't assign io (size 0x7000)
[ 25.844305] pci 0000:15:03.0: BAR 15: can't assign mem pref (size 0x18000000)
[ 25.844307] pci 0000:15:03.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844308] pci 0000:15:04.0: BAR 14: can't assign mem (size 0xa00000)
[ 25.844310] pci 0000:15:04.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 25.844312] pci 0000:15:03.0: BAR 13: can't assign io (size 0x1000)
[ 25.844313] pci 0000:15:04.0: BAR 13: can't assign io (size 0x6000)
[ 25.844316] pci 0000:16:00.0: BAR 0: can't assign mem pref (size 0x10000000)
[ 25.844318] pci 0000:16:00.0: BAR 2: can't assign mem (size 0x20000)
[ 25.844319] pci 0000:16:00.0: BAR 6: can't assign mem pref (size 0x20000)
[ 25.844321] pci 0000:16:00.1: BAR 0: can't assign mem (size 0x4000)
[ 25.844323] pci 0000:16:00.0: BAR 4: can't assign io (size 0x100)
[ 25.844325] pci 0000:15:03.0: PCI bridge to [bus 16]
[ 25.844360] pci 0000:17:00.0: BAR 14: can't assign mem (size 0xa00000)
[ 25.844362] pci 0000:17:00.0: BAR 15: can't assign mem pref (size 0xa00000)
[ 25.844363] pci 0000:17:00.0: BAR 13: can't assign io (size 0x5000)
[ 25.844368] pci 0000:18:00.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844369] pci 0000:18:00.0: BAR 15: can't assign mem pref (size 0x200000)
[ 25.844371] pci 0000:18:01.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844372] pci 0000:18:01.0: BAR 15: can't assign mem pref (size 0x200000)
[ 25.844374] pci 0000:18:02.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844376] pci 0000:18:02.0: BAR 15: can't assign mem pref (size 0x200000)
[ 25.844377] pci 0000:18:03.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844379] pci 0000:18:03.0: BAR 15: can't assign mem pref (size 0x200000)
[ 25.844380] pci 0000:18:04.0: BAR 14: can't assign mem (size 0x200000)
[ 25.844382] pci 0000:18:04.0: BAR 15: can't assign mem pref (size 0x200000)
[ 25.844383] pci 0000:18:00.0: BAR 13: can't assign io (size 0x1000)
[ 25.844385] pci 0000:18:01.0: BAR 13: can't assign io (size 0x1000)
[ 25.844386] pci 0000:18:02.0: BAR 13: can't assign io (size 0x1000)
[ 25.844388] pci 0000:18:03.0: BAR 13: can't assign io (size 0x1000)
[ 25.844390] pci 0000:18:04.0: BAR 13: can't assign io (size 0x1000)
[ 25.844394] pci 0000:19:00.0: BAR 4: can't assign mem pref (size 0x4000)
[ 25.844396] pci 0000:19:00.0: BAR 2: can't assign mem pref (size 0x1000)
[ 25.844397] pci 0000:19:00.0: BAR 0: can't assign io (size 0x100)
[ 25.844399] pci 0000:18:00.0: PCI bridge to [bus 19]
[ 25.844443] pci 0000:1a:00.0: BAR 5: can't assign mem (size 0x400)
[ 25.844445] pci 0000:1a:00.0: BAR 4: can't assign io (size 0x10)
[ 25.844446] pci 0000:1a:00.0: BAR 0: can't assign io (size 0x8)
[ 25.844448] pci 0000:1a:00.0: BAR 2: can't assign io (size 0x8)
[ 25.844449] pci 0000:1a:00.0: BAR 1: can't assign io (size 0x4)
[ 25.844450] pci 0000:1a:00.0: BAR 3: can't assign io (size 0x4)
[ 25.844453] pci 0000:18:01.0: PCI bridge to [bus 1a]
[ 25.844495] pci 0000:1b:00.0: BAR 0: can't assign mem (size 0x2000)
[ 25.844497] pci 0000:18:02.0: PCI bridge to [bus 1b]
[ 25.844540] pci 0000:18:03.0: PCI bridge to [bus 1c]
[ 25.844582] pci 0000:18:04.0: PCI bridge to [bus 1d]
[ 25.844625] pci 0000:17:00.0: PCI bridge to [bus 18-1d]
[ 25.844677] pci 0000:15:04.0: PCI bridge to [bus 17-1d]
[ 25.844713] pci 0000:14:00.0: PCI bridge to [bus 15-1d]
[ 25.844749] pci 0000:0a:04.0: PCI bridge to [bus 14-1d]
[ 25.844772] pci 0000:08:00.0: PCI bridge to [bus 0a-1d]
[ 25.844782] pci 0000:08:00.0: bridge window [mem 0xb0000000-0xc06fffff]
[ 25.844811] pci 0000:08:00.0: no hotplug settings from platform
[ 25.844827] pci 0000:0a:00.0: no hotplug settings from platform
[ 25.844843] pci 0000:0a:03.0: no hotplug settings from platform
[ 25.844859] pci 0000:0a:04.0: no hotplug settings from platform
[ 25.844880] pci 0000:14:00.0: no hotplug settings from platform
[ 25.844905] pci 0000:15:03.0: no hotplug settings from platform
[ 25.844933] pci 0000:16:00.0: no hotplug settings from platform
[ 25.844962] pci 0000:16:00.1: no hotplug settings from platform
[ 25.844984] pci 0000:15:04.0: no hotplug settings from platform
[ 25.845002] pci 0000:17:00.0: no hotplug settings from platform
[ 25.845022] pci 0000:18:00.0: no hotplug settings from platform
[ 25.845045] pci 0000:19:00.0: no hotplug settings from platform
[ 25.845064] pci 0000:18:01.0: no hotplug settings from platform
[ 25.845086] pci 0000:1a:00.0: no hotplug settings from platform
[ 25.845106] pci 0000:18:02.0: no hotplug settings from platform
[ 25.845128] pci 0000:1b:00.0: no hotplug settings from platform
[ 25.845148] pci 0000:18:03.0: no hotplug settings from platform
[ 25.845167] pci 0000:18:04.0: no hotplug settings from platform
[ 25.846116] pcieport 0000:08:00.0: irq 52 for MSI/MSI-X
[ 25.846820] pcieport 0000:0a:00.0: irq 53 for MSI/MSI-X
[ 25.847131] pcieport 0000:0a:03.0: irq 54 for MSI/MSI-X
[ 25.848599] pcieport 0000:0a:04.0: irq 55 for MSI/MSI-X
[ 25.850171] pcieport 0000:14:00.0: irq 56 for MSI/MSI-X
[ 25.850742] pcieport 0000:15:03.0: irq 57 for MSI/MSI-X
[ 25.851088] pcieport 0000:15:04.0: irq 58 for MSI/MSI-X
[ 25.852364] [drm] initializing kernel modesetting (TURKS 0x1002:0x6740 0x104D:0x9084).
[ 25.852375] radeon 0000:16:00.0: Fatal error during GPU init
[ 25.853140] radeon: probe of 0000:16:00.0 failed with error -12
[ 25.853359] hda-intel 0000:16:00.1: Handle VGA-switcheroo audio client
[ 25.853391] ------------[ cut here ]------------
[ 25.853398] WARNING: at drivers/pci/pci.c:130 pci_ioremap_bar+0x69/0x70()
[ 25.853400] Modules linked in: ata_generic pata_acpi pata_marvell radeon ttm zram(C) rfcomm bnep rtsx_pci_sdmmc rtsx_pci_ms mmc_core memstick iTCO_wdt iTCO_vendor_support coretemp kvm_intel kvm joydev uvcvideo pcspkr videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media arc4 qcserial usb_wwan iwldvm usbserial mac80211 btusb bluetooth r8169 iwlwifi mii cfg80211 rtsx_pci snd_hda_codec_hdmi snd_hda_codec_realtek sony_laptop rfkill i915 snd_hda_intel intel_agp snd_hda_codec intel_gtt snd_hwdep i2c_algo_bit snd_pcm drm_kms_helper snd_page_alloc snd_timer drm snd agpgart lpc_ich mfd_core i2c_i801 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 xhci_hcd ehci_pci ehci_hcd dm_mirror
[ 25.853475] dm_region_hash dm_log dm_mod [last unloaded: microcode]
[ 25.853482] CPU: 0 PID: 40 Comm: kworker/0:1 Tainted: G C 3.10.0-rc5-rafael #1
[ 25.853484] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 25.853489] Workqueue: kacpi_hotplug _handle_hotplug_event_func
[ 25.853492] ffffffff81a2a38c ffff880253d3f858 ffffffff8165acc8 ffff880253d3f898
[ 25.853497] ffffffff8103c8cb ffff880253d3f878 ffff88025282c000 ffff8802537a0000
[ 25.853502] 0000000000000000 ffff88025282b800 0000000000000001 ffff880253d3f8a8
[ 25.853507] Call Trace:
[ 25.853513] [<ffffffff8165acc8>] dump_stack+0x19/0x1b
[ 25.853518] [<ffffffff8103c8cb>] warn_slowpath_common+0x6b/0xa0
[ 25.853521] [<ffffffff8103c915>] warn_slowpath_null+0x15/0x20
[ 25.853525] [<ffffffff81383269>] pci_ioremap_bar+0x69/0x70
[ 25.853531] [<ffffffffa0251bd6>] azx_first_init+0x56/0x600 [snd_hda_intel]
[ 25.853535] [<ffffffff8138696f>] ? pci_get_domain_bus_and_slot+0x2f/0x70
[ 25.853540] [<ffffffffa0253d25>] azx_probe+0x555/0x940 [snd_hda_intel]
[ 25.853544] [<ffffffff810a1a5d>] ? trace_hardirqs_on+0xd/0x10
[ 25.853548] [<ffffffff81384fe6>] local_pci_probe+0x46/0x80
[ 25.853552] [<ffffffff81385859>] pci_device_probe+0xf9/0x120
[ 25.853558] [<ffffffff8143c3f6>] driver_probe_device+0x76/0x220
[ 25.853561] [<ffffffff8143c69b>] __device_attach+0x4b/0x60
[ 25.853564] [<ffffffff8143c650>] ? __driver_attach+0xb0/0xb0
[ 25.853568] [<ffffffff8143a74c>] bus_for_each_drv+0x5c/0x90
[ 25.853572] [<ffffffff8143c348>] device_attach+0x98/0xb0
[ 25.853576] [<ffffffff8137d954>] pci_bus_add_device+0x34/0x60
[ 25.853580] [<ffffffff8137d9b9>] pci_bus_add_devices+0x39/0xa0
[ 25.853583] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 25.853587] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 25.853591] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 25.853594] [<ffffffff8137da07>] pci_bus_add_devices+0x87/0xa0
[ 25.853598] [<ffffffff816448c0>] enable_device+0x370/0x450
[ 25.853601] [<ffffffff813a0fba>] acpiphp_enable_slot+0xca/0x140
[ 25.853603] [<ffffffff813a1446>] _handle_hotplug_event_func+0xa6/0x1e0
[ 25.853607] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 25.853610] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 25.853612] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 25.853616] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 25.853620] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 25.853624] [<ffffffff81660edb>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 25.853629] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 25.853634] [<ffffffff816682ac>] ret_from_fork+0x7c/0xb0
[ 25.853638] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 25.853640] ---[ end trace 8851d86037e0cfe0 ]---
[ 25.853643] hda-intel 0000:16:00.1: ioremap error
[ 25.854390] pcieport 0000:17:00.0: irq 59 for MSI/MSI-X
[ 25.854859] pcieport 0000:18:00.0: irq 60 for MSI/MSI-X
[ 25.855275] pcieport 0000:18:01.0: irq 61 for MSI/MSI-X
[ 25.855738] pcieport 0000:18:02.0: irq 62 for MSI/MSI-X
[ 25.856524] pcieport 0000:18:03.0: irq 63 for MSI/MSI-X
[ 25.856970] pcieport 0000:18:04.0: irq 64 for MSI/MSI-X
[ 25.857852] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 25.857944] r8169 0000:19:00.0 (unregistered net_device): region #2 not an MMIO resource, aborting
[ 25.858182] pata_marvell 0000:1a:00.0: no available native port
[ 25.858323] pata_acpi 0000:1a:00.0: no available native port
[ 25.858765] xhci_hcd 0000:1b:00.0: init 0000:1b:00.0 fail, -16
[ 25.858781] xhci_hcd: probe of 0000:1b:00.0 failed with error -16
[ 30.969243] ======================================================
[ 30.969283] [ INFO: possible circular locking dependency detected ]
[ 30.969309] 3.10.0-rc5-rafael #1 Tainted: G WC
[ 30.969331] -------------------------------------------------------
[ 30.969356] kworker/0:1/40 is trying to acquire lock:
[ 30.969378] (&slot->crit_sect){+.+.+.}, at: [<ffffffff813a1050>] acpiphp_disable_slot+0x20/0x140
[ 30.969429]
but task is already holding lock:
[ 30.969452] (&dock_station->hp_lock){+.+.+.}, at: [<ffffffff813c730c>] hotplug_dock_devices+0x2c/0xda
[ 30.969501]
which lock already depends on the new lock.
[ 30.969532]
the existing dependency chain (in reverse order) is:
[ 30.969574]
-> #1 (&dock_station->hp_lock){+.+.+.}:
[ 30.969618] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 30.969653] [<ffffffff8165da4e>] mutex_lock_nested+0x5e/0x3e0
[ 30.969691] [<ffffffff813c7707>] register_hotplug_dock_device+0x6a/0xbf
[ 30.969731] [<ffffffff813a06b7>] register_slot+0x467/0x5b0
[ 30.969766] [<ffffffff813de164>] acpi_ns_walk_namespace+0xbb/0x17b
[ 30.969806] [<ffffffff813de8e2>] acpi_walk_namespace+0x8e/0xc8
[ 30.971389] [<ffffffff813a0b8d>] acpiphp_enumerate_slots+0x1bd/0x320
[ 30.972995] [<ffffffff813a5aaf>] acpi_pci_add_bus+0x2f/0x40
[ 30.974602] [<ffffffff815333a9>] pcibios_add_bus+0x9/0x10
[ 30.976190] [<ffffffff81643338>] pci_add_new_bus+0x1c8/0x390
[ 30.977776] [<ffffffff813800f5>] pci_scan_bridge+0x5e5/0x620
[ 30.979378] [<ffffffff816446b9>] enable_device+0x169/0x450
[ 30.980964] [<ffffffff813a0fba>] acpiphp_enable_slot+0xca/0x140
[ 30.982561] [<ffffffff813a1446>] _handle_hotplug_event_func+0xa6/0x1e0
[ 30.984132] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 30.985691] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 30.987208] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 30.988708] [<ffffffff816682ac>] ret_from_fork+0x7c/0xb0
[ 30.990175]
-> #0 (&slot->crit_sect){+.+.+.}:
[ 30.993074] [<ffffffff810a06d3>] __lock_acquire+0x1d23/0x1ee0
[ 30.994572] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 30.996055] [<ffffffff8165da4e>] mutex_lock_nested+0x5e/0x3e0
[ 30.997578] [<ffffffff813a1050>] acpiphp_disable_slot+0x20/0x140
[ 30.999047] [<ffffffff813a1834>] handle_dock_event_func+0x24/0x40
[ 31.000516] [<ffffffff813c7337>] hotplug_dock_devices+0x57/0xda
[ 31.001946] [<ffffffff813c7a63>] handle_eject_request+0xaf/0xdf
[ 31.003384] [<ffffffff813c7c31>] acpi_dock_deferred_cb+0x163/0x1c8
[ 31.004780] [<ffffffff813bfc49>] acpi_os_execute_deferred+0x20/0x2d
[ 31.006187] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 31.007549] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 31.008888] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 31.010224] [<ffffffff816682ac>] ret_from_fork+0x7c/0xb0
[ 31.011547]
other info that might help us debug this:
[ 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]
*** DEADLOCK ***
[ 31.030353] 4 locks held by kworker/0:1/40:
[ 31.031637] #0: (kacpi_hotplug){.+.+.+}, at: [<ffffffff8105c1a7>] process_one_work+0x157/0x560
[ 31.032960] #1: ((&dpc->work)#3){+.+.+.}, at: [<ffffffff8105c1a7>] process_one_work+0x157/0x560
[ 31.034307] #2: (acpi_scan_lock){+.+.+.}, at: [<ffffffff813c3997>] acpi_scan_lock_acquire+0x12/0x14
[ 31.035630] #3: (&dock_station->hp_lock){+.+.+.}, at: [<ffffffff813c730c>] hotplug_dock_devices+0x2c/0xda
[ 31.036993]
stack backtrace:
[ 31.039585] CPU: 0 PID: 40 Comm: kworker/0:1 Tainted: G WC 3.10.0-rc5-rafael #1
[ 31.040899] Hardware name: Sony Corporation VPCZ23A4R/VAIO, BIOS R1013H5 05/21/2012
[ 31.042235] Workqueue: kacpi_hotplug acpi_os_execute_deferred
[ 31.043541] ffffffff820a4c00 ffff880253d3f998 ffffffff8165acc8 ffff880253d3f9e8
[ 31.044878] ffffffff81656a54 ffff880253d50798 ffff880253d3fa60 ffff880253d50000
[ 31.046202] ffff880253d50770 ffff880253d50000 ffffffff820a4c00 ffff880253d50798
[ 31.047502] Call Trace:
[ 31.048798] [<ffffffff8165acc8>] dump_stack+0x19/0x1b
[ 31.050086] [<ffffffff81656a54>] print_circular_bug+0x2b0/0x2c1
[ 31.051418] [<ffffffff810a06d3>] __lock_acquire+0x1d23/0x1ee0
[ 31.052720] [<ffffffff81660e95>] ? _raw_spin_unlock_irqrestore+0x65/0x80
[ 31.054022] [<ffffffff8106d68d>] ? __wake_up+0x2d/0x70
[ 31.055350] [<ffffffff813a1050>] ? acpiphp_disable_slot+0x20/0x140
[ 31.056651] [<ffffffff810a0eb7>] lock_acquire+0x87/0x150
[ 31.057978] [<ffffffff813a1050>] ? acpiphp_disable_slot+0x20/0x140
[ 31.059283] [<ffffffff8115666f>] ? kfree+0xaf/0x250
[ 31.060609] [<ffffffff813a1050>] ? acpiphp_disable_slot+0x20/0x140
[ 31.061908] [<ffffffff8165da4e>] mutex_lock_nested+0x5e/0x3e0
[ 31.063234] [<ffffffff813a1050>] ? acpiphp_disable_slot+0x20/0x140
[ 31.064542] [<ffffffff810a1985>] ? trace_hardirqs_on_caller+0x105/0x1d0
[ 31.065858] [<ffffffff813a1050>] acpiphp_disable_slot+0x20/0x140
[ 31.067202] [<ffffffff813a1834>] handle_dock_event_func+0x24/0x40
[ 31.068521] [<ffffffff813c7337>] hotplug_dock_devices+0x57/0xda
[ 31.069868] [<ffffffff813c7a63>] handle_eject_request+0xaf/0xdf
[ 31.071187] [<ffffffff813c7c31>] acpi_dock_deferred_cb+0x163/0x1c8
[ 31.072536] [<ffffffff813bfc49>] acpi_os_execute_deferred+0x20/0x2d
[ 31.073856] [<ffffffff8105c212>] process_one_work+0x1c2/0x560
[ 31.075201] [<ffffffff8105c1a7>] ? process_one_work+0x157/0x560
[ 31.076524] [<ffffffff8105d126>] worker_thread+0x116/0x370
[ 31.077838] [<ffffffff8105d010>] ? manage_workers.isra.20+0x2d0/0x2d0
[ 31.079191] [<ffffffff81063986>] kthread+0xd6/0xe0
[ 31.080508] [<ffffffff81660edb>] ? _raw_spin_unlock_irq+0x2b/0x60
[ 31.081865] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 31.083185] [<ffffffff816682ac>] ret_from_fork+0x7c/0xb0
[ 31.084532] [<ffffffff810638b0>] ? __init_kthread_worker+0x70/0x70
[ 31.089594] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=none,decodes=io+mem:owns=none
[ 31.096378] pci_bus 0000:0b: busn_res: [bus 0b] is released
[ 31.097528] pci_bus 0000:0c: busn_res: [bus 0c] is released
[ 31.098487] pci_bus 0000:16: busn_res: [bus 16] is released
[ 52.229446] fuse init (API version 7.22)
[ 52.440061] ata1.00: configured for UDMA/133
[ 52.440067] ata1: EH complete
[ 52.444040] ata2.00: configured for UDMA/133
[ 52.444046] ata2: EH complete
[ 52.473608] EXT4-fs (dm-1): re-mounted. Opts: commit=0
[ 52.477959] EXT4-fs (md126p1): re-mounted. Opts: commit=0
[ 52.481721] EXT4-fs (dm-2): re-mounted. Opts: commit=0
[ 52.492858] EXT4-fs (dm-3): re-mounted. Opts: commit=0
[ 57.398831] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 57.398844] Bluetooth: HIDP socket layer initialized
[ 57.400870] elecom 0005:056E:0061.0001: unknown main item tag 0x0
[ 57.400974] input: Laser BTmouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/bluetooth/hci0/hci0:36/input12
[ 57.401190] elecom 0005:056E:0061.0001: input,hidraw0: BLUETOOTH HID v0.1e Mouse [Laser BTmouse] on 88:53:2e:c0:50:98
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification
2013-06-14 15:30 ` Jiang Liu
@ 2013-06-14 23:12 ` Rafael J. Wysocki
0 siblings, 0 replies; 55+ messages in thread
From: Rafael J. Wysocki @ 2013-06-14 23:12 UTC (permalink / raw)
To: Jiang Liu
Cc: Jiang Liu, Bjorn Helgaas, Yinghai Lu, Alexander E . Patrakov,
Greg Kroah-Hartman, Yijing Wang, linux-pci, linux-kernel,
Rafael J. Wysocki, stable
On Friday, June 14, 2013 11:30:12 PM Jiang Liu wrote:
> On 06/14/2013 10:12 PM, Rafael J. Wysocki wrote:
> > On Friday, June 14, 2013 09:57:15 PM Jiang Liu wrote:
> >> On 06/14/2013 08:23 PM, Rafael J. Wysocki wrote:
> >>> On Thursday, June 13, 2013 09:59:44 PM Rafael J. Wysocki wrote:
> >>>> On Friday, June 14, 2013 12:32:25 AM Jiang Liu 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.
> >>>>
> >>>> So my question is, did we have this problem before commit 3b63aaa70e1?
> >>>>
> >>>> If we did, then when did it start? Or was it present forever?
> >>>>
> >>>>> 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.
> >>>>
> >>>> Would not the solution be to modify it so that it didn't spawn the other
> >>>> task (T2), but removed the affected physical devices synchronously?
> >>>>
> >>>>> 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
> >>>>> ---
> >>>>> Hi Bjorn and Rafael,
> >>>>> The recursive lock changes haven't been tested yet, need help
> >>>>> from Alexander for testing.
> >>>>
> >>>> Well, let's just say I'm not a fan of recursive locks. Is that unavoidable
> >>>> here?
> >>>
> >>> What about the appended patch (on top of [1/9], untested)?
> >>>
> >>> Rafael
> >> It should have similar effect as patch 2/9, and it will encounter the
> >> same deadlock scenario as 2/9 too.
> >
> > And why exactly?
> >
> > I'm looking at acpiphp_disable_slot() and I'm not seeing where the
> > problematic lock is taken. Similarly for power_off_slot().
> >
> > It should take the ACPI scan lock, but that's a different matter.
> >
> > Thanks,
> > Rafael
> The deadlock scenario is the same:
Well, you didn't answer my question.
> hotplug_dock_devices()
> mutex_lock(&ds->hp_lock)
> dd->ops->handler()
> destroy pci bus
And this wasn't particularly helpful.
What about mentioning acpi_pci_remove_bus()? I don't remember all changes
made recently, sorry.
> unregister_hotplug_dock_device()
> mutex_lock(&ds->hp_lock)
I see the problem.
ds->hp_lock is used to make both addition and removal of hotplug devices wait
for us to complete walking ds->hotplug_devices. However, if we are in the
process of removing hotplug devices, we don't need removals to block on
ds->hp_lock (in fact, we don't even want them to block on it). Conversely, if
we are in the process of adding hotplug devices, we don't want additions to
block on ds->hp_lock.
So, why don't we do the following:
(1) Introduce a 'hotplug_status' field into struct_dock station with possible
values representing "removal", "addition" and "no action" and a wait queue
associated with it. We can use ds->dd_lock to protect that field.
(2) hotplug_status will be modified by hotplug_dock_devices() depending on the
event. For example, on eject it will set hotplug_status to "removal".
Then, after completing the walk, it will reset hotplug_status to
"no action" and wake up its wait queue.
(3) dock_del_hotplug_device() will check if hotplug_status is "removal" or
"no_action" and if so, it will just do the removal under ds->dd_lock. If
it is "addition", though, it will go to sleep (in the hotplug_status' wait
queue) until hotplug_dock_devices() wakes it up.
(4) Analogously for dock_add_hotplug_device().
For this to work the "addition" and "deletion" of hotplug devices should better
be implemented as setting and clearing a 'hotplug' flag in
struct dock_dependent_device (instead of using ds->hotplug_devices).
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 55+ messages in thread
end of thread, other threads:[~2013-06-14 23:03 UTC | newest]
Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-13 16:32 [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Jiang Liu
2013-06-13 16:32 ` [BUGFIX 1/9] ACPI, DOCK: initialize dock subsystem before scanning PCI root buses Jiang Liu
2013-06-13 18:22 ` Rafael J. Wysocki
2013-06-13 18:24 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 2/9] ACPIPHP: fix device destroying order issue when handling dock notification Jiang Liu
2013-06-13 19:59 ` Rafael J. Wysocki
2013-06-14 12:23 ` Rafael J. Wysocki
2013-06-14 12:30 ` Alexander E. Patrakov
2013-06-14 12:53 ` Rafael J. Wysocki
2013-06-14 16:58 ` Alexander E. Patrakov
2013-06-14 13:57 ` Jiang Liu
2013-06-14 14:12 ` Rafael J. Wysocki
2013-06-14 15:30 ` Jiang Liu
2013-06-14 23:12 ` Rafael J. Wysocki
2013-06-14 13:53 ` Jiang Liu
2013-06-14 14:05 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 3/9] ACPI, DOCK: clean up unused module related code Jiang Liu
2013-06-13 18:26 ` Rafael J. Wysocki
2013-06-13 18:39 ` Rafael J. Wysocki
2013-06-14 14:04 ` Jiang Liu
2013-06-14 14:16 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 4/9] ACPI, DOCK: avoid initializing acpi_dock_notifier_list multiple times Jiang Liu
2013-06-13 18:27 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 5/9] ACPI, DOCK: kill redundant spin lock in dock device object Jiang Liu
2013-06-13 18:28 ` Rafael J. Wysocki
2013-06-14 14:05 ` Jiang Liu
2013-06-14 14:16 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 6/9] ACPI, DOCK: mark initialization functions with __init Jiang Liu
2013-06-13 18:29 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 7/9] ACPI, DOCK: simplify implementation of dock_create_acpi_device() Jiang Liu
2013-06-13 16:32 ` [BUGFIX 8/9] ACPI: introduce several helper functions Jiang Liu
2013-06-13 18:36 ` Rafael J. Wysocki
2013-06-13 16:32 ` [BUGFIX 9/9] ACPI: use new helper functions to simpilify code Jiang Liu
2013-06-13 17:34 ` Alexander E. Patrakov
2013-06-13 18:38 ` Rafael J. Wysocki
2013-06-13 17:43 ` [BUGFIX 0/9] Fix bug 59501 and code improvement for dock driver Alexander E. Patrakov
2013-06-13 18:26 ` Alexander E. Patrakov
2013-06-13 18:42 ` Yinghai Lu
2013-06-13 19:02 ` Rafael J. Wysocki
2013-06-13 19:08 ` Yinghai Lu
2013-06-14 2:06 ` Alexander E. Patrakov
2013-06-14 3:22 ` Yinghai Lu
2013-06-14 3:57 ` Alexander E. Patrakov
2013-06-14 2:09 ` Jiang Liu (Gerry)
2013-06-14 2:30 ` Yinghai Lu
2013-06-14 2:40 ` Alexander E. Patrakov
2013-06-14 2:51 ` Jiang Liu (Gerry)
2013-06-14 3:30 ` Yinghai Lu
2013-06-14 3:43 ` Yinghai Lu
2013-06-14 3:56 ` Jiang Liu (Gerry)
2013-06-14 3:53 ` Yinghai Lu
2013-06-14 4:07 ` Alexander E. Patrakov
2013-06-14 4:14 ` Jiang Liu (Gerry)
2013-06-14 4:43 ` Alexander E. Patrakov
2013-06-14 5:11 ` Jiang Liu (Gerry)
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).