[issue1240] sata dvdrom leads to interrupt livelock

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Sun Jan 25 11:35:09 PST 2009


Matthew Dillon wrote:
    Those BMSTAT bits aren't part of the standard at all (that I know of),
    but they are the only way to be able to tell if an ATA device is
    actually the source of an interrupt when multiple devices share the
    same interrupt.
Yes, that's the busmaster interrupt status.  The problem is that the drive 
doesn't set the busmaster error, but instead only the ata status error.

    On the face of it it does seem as though we should be able to return
    1 if ATA_BMSTAT_INTERRUPT is set and either ATA_BMSTAT_ERROR is
    set or ATA_BMSTAT_ACTIVE is clear.  It is unclear to me whether
    we can safely clear the ACTIVE bit, though, which is what that
    next ATA_IDX_OUTB() will do if we allow the ERROR + INTERRUPT case
    through.  Then again, maybe we have to.  I just don't know.
You can't clear ACTIVE, it is readonly.  We'd have to abort the busmaster 
transaction, and that's where I don't know what to do.  I'll have to try 
and see.

cheers
  simon
--
  <3 the future  +++  RENT this banner advert  +++   ASCII Ribbon   /"\
  rock the past  +++  space for low €€€ NOW!1  +++     Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \





More information about the Bugs mailing list