1. 11 5月, 2011 1 次提交
    • S
      xen: do not clear and mask evtchns in __xen_evtchn_do_upcall · 7e186bdd
      Stefano Stabellini 提交于
      Change the irq handler of evtchns and pirqs that don't need EOI (pirqs
      that correspond to physical edge interrupts) to handle_edge_irq.
      
      Use handle_fasteoi_irq for pirqs that need eoi (they generally
      correspond to level triggered irqs), no risk in loosing interrupts
      because we have to EOI the irq anyway.
      
      This change has the following benefits:
      
      - it uses the very same handlers that Linux would use on native for the
      same irqs (handle_edge_irq for edge irqs and msis, and
      handle_fasteoi_irq for everything else);
      
      - it uses these handlers in the same way native code would use them: it
      let Linux mask\unmask and ack the irq when Linux want to mask\unmask
      and ack the irq;
      
      - it fixes a problem occurring when a driver calls disable_irq() in its
      handler: the old code was unconditionally unmasking the evtchn even if
      the irq is disabled when irq_eoi was called.
      
      See Documentation/DocBook/genericirq.tmpl for more informations.
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      [v1: Fixed space/tab issues]
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      7e186bdd
  2. 10 5月, 2011 25 次提交
  3. 09 5月, 2011 10 次提交
  4. 08 5月, 2011 1 次提交
  5. 07 5月, 2011 3 次提交