https://github.com/torvalds/linux
Revision 96044694b8511bc2b04df0776b4ba295cfe005c0 authored by Mathias Nyman on 11 September 2014, 10:55:50 UTC, committed by Greg Kroah-Hartman on 11 September 2014, 21:23:52 UTC
Resuming from hibernate (S4) will restart and re-initialize xHC.
The device contexts are freed and will be re-allocated later during device reset.

Usb core will disable link pm in device resume before device reset, which will
try to change the max exit latency, accessing the device contexts before they are re-allocated.

There is no need to zero (disable) the max exit latency when disabling hw lpm
for a freshly re-initialized xHC. So check that device context exists before
doing anything. The max exit latency will be set again after device reset when usb core
enables the link pm.

Reported-by: Imre Deak <imre.deak@intel.com>
Tested-by: Imre Deak <imre.deak@intel.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 0eda06c
History
Tip revision: 96044694b8511bc2b04df0776b4ba295cfe005c0 authored by Mathias Nyman on 11 September 2014, 10:55:50 UTC
xhci: fix oops when xhci resumes from hibernate with hw lpm capable devices
Tip revision: 9604469
File Mode Size
bpf
debug
events
gcov
irq
locking
power
printk
rcu
sched
time
trace
.gitignore -rw-r--r-- 91 bytes
Kconfig.freezer -rw-r--r-- 52 bytes
Kconfig.hz -rw-r--r-- 1.6 KB
Kconfig.locks -rw-r--r-- 4.5 KB
Kconfig.preempt -rw-r--r-- 2.1 KB
Makefile -rw-r--r-- 7.3 KB
acct.c -rw-r--r-- 15.4 KB
async.c -rw-r--r-- 9.9 KB
audit.c -rw-r--r-- 52.9 KB
audit.h -rw-r--r-- 10.3 KB
audit_tree.c -rw-r--r-- 22.0 KB
audit_watch.c -rw-r--r-- 13.6 KB
auditfilter.c -rw-r--r-- 33.6 KB
auditsc.c -rw-r--r-- 66.1 KB
backtracetest.c -rw-r--r-- 2.1 KB
bounds.c -rw-r--r-- 703 bytes
capability.c -rw-r--r-- 12.0 KB
cgroup.c -rw-r--r-- 150.1 KB
cgroup_freezer.c -rw-r--r-- 12.5 KB
compat.c -rw-r--r-- 28.7 KB
configs.c -rw-r--r-- 2.8 KB
context_tracking.c -rw-r--r-- 6.9 KB
cpu.c -rw-r--r-- 18.6 KB
cpu_pm.c -rw-r--r-- 6.5 KB
cpuset.c -rw-r--r-- 77.8 KB
crash_dump.c -rw-r--r-- 1.2 KB
cred.c -rw-r--r-- 21.2 KB
delayacct.c -rw-r--r-- 4.5 KB
dma.c -rw-r--r-- 3.6 KB
elfcore.c -rw-r--r-- 396 bytes
exec_domain.c -rw-r--r-- 4.3 KB
exit.c -rw-r--r-- 41.6 KB
extable.c -rw-r--r-- 3.9 KB
fork.c -rw-r--r-- 47.5 KB
freezer.c -rw-r--r-- 4.6 KB
futex.c -rw-r--r-- 81.4 KB
futex_compat.c -rw-r--r-- 4.5 KB
groups.c -rw-r--r-- 5.8 KB
hung_task.c -rw-r--r-- 5.7 KB
irq_work.c -rw-r--r-- 4.2 KB
jump_label.c -rw-r--r-- 11.0 KB
kallsyms.c -rw-r--r-- 15.0 KB
kcmp.c -rw-r--r-- 4.3 KB
kexec.c -rw-r--r-- 68.2 KB
kmod.c -rw-r--r-- 19.3 KB
kprobes.c -rw-r--r-- 60.4 KB
ksysfs.c -rw-r--r-- 5.6 KB
kthread.c -rw-r--r-- 18.6 KB
latencytop.c -rw-r--r-- 7.6 KB
module-internal.h -rw-r--r-- 458 bytes
module.c -rw-r--r-- 96.5 KB
module_signing.c -rw-r--r-- 5.9 KB
notifier.c -rw-r--r-- 16.2 KB
nsproxy.c -rw-r--r-- 6.1 KB
padata.c -rw-r--r-- 26.9 KB
panic.c -rw-r--r-- 12.0 KB
params.c -rw-r--r-- 22.0 KB
pid.c -rw-r--r-- 14.9 KB
pid_namespace.c -rw-r--r-- 9.0 KB
profile.c -rw-r--r-- 16.1 KB
ptrace.c -rw-r--r-- 29.8 KB
range.c -rw-r--r-- 3.0 KB
reboot.c -rw-r--r-- 9.6 KB
relay.c -rw-r--r-- 32.6 KB
res_counter.c -rw-r--r-- 4.4 KB
resource.c -rw-r--r-- 33.6 KB
seccomp.c -rw-r--r-- 21.4 KB
signal.c -rw-r--r-- 94.8 KB
smp.c -rw-r--r-- 18.9 KB
smpboot.c -rw-r--r-- 6.9 KB
smpboot.h -rw-r--r-- 564 bytes
softirq.c -rw-r--r-- 18.8 KB
stacktrace.c -rw-r--r-- 1.1 KB
stop_machine.c -rw-r--r-- 17.2 KB
sys.c -rw-r--r-- 50.6 KB
sys_ni.c -rw-r--r-- 6.2 KB
sysctl.c -rw-r--r-- 62.7 KB
sysctl_binary.c -rw-r--r-- 51.0 KB
system_certificates.S -rw-r--r-- 470 bytes
system_keyring.c -rw-r--r-- 2.8 KB
task_work.c -rw-r--r-- 3.4 KB
taskstats.c -rw-r--r-- 16.2 KB
test_kprobes.c -rw-r--r-- 7.4 KB
torture.c -rw-r--r-- 19.6 KB
tracepoint.c -rw-r--r-- 13.3 KB
tsacct.c -rw-r--r-- 4.9 KB
uid16.c -rw-r--r-- 5.0 KB
up.c -rw-r--r-- 1.7 KB
user-return-notifier.c -rw-r--r-- 1.3 KB
user.c -rw-r--r-- 5.3 KB
user_namespace.c -rw-r--r-- 23.0 KB
utsname.c -rw-r--r-- 2.9 KB
utsname_sysctl.c -rw-r--r-- 3.0 KB
watchdog.c -rw-r--r-- 17.0 KB
workqueue.c -rw-r--r-- 135.5 KB
workqueue_internal.h -rw-r--r-- 2.2 KB

back to top