OpenSolaris

Printable Version Enter a New Search
Bug ID 6643083
Synopsis missing interrupts in i915_driver_irq_handler()
State 10-Fix Delivered (Fix available in build)
Category:Subcategory graphics:drm
Keywords rtiq_regression
Responsible Engineer Minskey Guo
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_82
Fixed In snv_82
Release Fixed solaris_nevada(snv_82)
Related Bugs 6457073
Submit Date 18-December-2007
Last Update Date 13-July-2009
Description
For Solaris,  hardware interrupt handlers can be re-entered, and it is the device drivers that should protect its context, such as hardware registers, etc. i915_driver_irq_handler() doesn't follow that, some registers can be overwritten, as a result, i915 driver is losting interrupts. 

There are two ways to solve this issue:
  1. Add a mutex in i915 driver to protect registers resource;
  2. Add a mutex in drm module, and calling i915_driver_irq_handler() in a wrapper, like :
       drm_intr_handler()
       {
           mutex_enter();
           calling i915_driver_irq_handler();
           mutex_exit();
       }

We need some time to evalute which is good.
Work Around
N/A
Comments
N/A