Bug 12899
Summary: | Crash in i915.ko: i915_driver_irq_handler | ||
---|---|---|---|
Product: | Drivers | Reporter: | Helge Bahmann (helge.bahmann) |
Component: | Video(DRI - Intel) | Assignee: | drivers_video-dri-intel (drivers_video-dri-intel) |
Status: | RESOLVED CODE_FIX | ||
Severity: | high | CC: | akpm, eric, gordon.jin, jbarnes, rjw |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.29-rc8 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 12398 |
Description
Helge Bahmann
2009-03-20 07:13:06 UTC
Looks sane to me. Could you send the patch to lkml or dri-devel@lists.sf.net with a commit message and Signed-off-by:? Are you sure this is sane? I mean, i915_gem_cleanup_hws sets dev_priv->hw_status_page=NULL without any locks held (that I am aware of, at least), and the irq handler is accessing the value without any locks either. The check for dev_priv->hw_status_page!=0 added into the irq handler IMHO just "shortens" the race window to the few instructions between performing the test and the subsequent READ_BREADCRUMB and thus "hides" the problem better. Is there any guard between i915_gem_cleanup_hws and the irq handler racing which I am missing so far? afacit this hasn't been fixed, and we presumably have a regression in 2.6.29? To my knowledge, the code is unchanged, but maybe I can invest some time into investigating further tomorrow to produce a patch I am more confident of Notify-Also : DRI <dri-devel@lists.sourceforge.net> Another possibility would be to move the gem_cleanup_hws call to occur after the interrupt handler is removed. That should ensure we don't get any interrupts before clearing the hardware status page pointer. Does this issue still exist in 2.6.31? This one is fixed. closing then |