summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin/stackcollapse-record
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2008-06-19 09:41:22 -0700
committerIngo Molnar <mingo@elte.hu>2008-06-20 13:26:18 +0200
commit54481cf88bc59923ea30f2ca345a73c60155e901 (patch)
tree1965fad9a3a207a619b5506722208f93788210b8 /tools/perf/scripts/python/bin/stackcollapse-record
parentffe6e1da86d21d7855495b5a772c93f050258f6e (diff)
downloadkernel-54481cf88bc59923ea30f2ca345a73c60155e901.tar.gz
x86: fix NULL pointer deref in __switch_to
I am able to reproduce the oops reported by Simon in __switch_to() with lguest. My debug showed that there is at least one lguest specific issue (which should be present in 2.6.25 and before aswell) and it got exposed with a kernel oops with the recent fpu dynamic allocation patches. In addition to the previous possible scenario (with fpu_counter), in the presence of lguest, it is possible that the cpu's TS bit it still set and the lguest launcher task's thread_info has TS_USEDFPU still set. This is because of the way the lguest launcher handling the guest's TS bit. (look at lguest_set_ts() in lguest_arch_run_guest()). This can result in a DNA fault while doing unlazy_fpu() in __switch_to(). This will end up causing a DNA fault in the context of new process thats getting context switched in (as opossed to handling DNA fault in the context of lguest launcher/helper process). This is wrong in both pre and post 2.6.25 kernels. In the recent 2.6.26-rc series, this is showing up as NULL pointer dereferences or sleeping function called from atomic context(__switch_to()), as we free and dynamically allocate the FPU context for the newly created threads. Older kernels might show some FPU corruption for processes running inside of lguest. With the appended patch, my test system is running for more than 50 mins now. So atleast some of your oops (hopefully all!) should get fixed. Please give it a try. I will spend more time with this fix tomorrow. Reported-by: Simon Holm Thøgersen <odie@cs.aau.dk> Reported-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
>2019-02-16Input: st1232 - switch to gpiod APIMartin Kepplinger 2019-01-28Input: st1232 - add Martin as module authorMartin Kepplinger 2019-01-28Input: st1232 - add support for st1633Martin Kepplinger 2018-11-12Input: st1232 - convert to SPDX identifiersKuninori Morimoto 2018-10-05Input: st1232 - set INPUT_PROP_DIRECT propertyMartin Kepplinger 2017-11-07Input: st1232 - remove obsolete platform device supportGeert Uytterhoeven 2017-01-21Input: touchscreen - drop unnecessary calls to device_init_wakeupGuenter Roeck 2015-07-17Input: drop owner assignment from i2c_driverKrzysztof Kozlowski 2014-11-02Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resumeJingoo Han 2014-02-11PM / QoS: Add type to dev_pm_qos_add_ancestor_request() argumentsRafael J. Wysocki 2013-12-06Input: use dev_get_platdata()Jingoo Han 2013-10-06Input: st1232 - include linux/of.h headerSachin Kamat 2013-04-15Input: st1232 - add reset pin handlingBastian Hecht 2013-04-15Input: st1232 - convert to devm_* infrastructureLaurent Pinchart 2012-11-24Input: remove use of __devexitBill Pemberton 2012-11-24Input: remove use of __devinitBill Pemberton 2012-11-24Input: remove use of __devinitconstBill Pemberton 2012-11-24Input: remove use of __devexit_pBill Pemberton 2012-04-04Input: st1232 - switch to using SIMPLE_DEV_PM_OPSDmitry Torokhov 2012-04-04Input: st1232 - add device tree supportMagnus Damm