1. 10 Apr, 2007 2 commits
    • Stuart Hayes's avatar
      ide: ugly messages trying to open CD drive with no media present · 76ca1af1
      Stuart Hayes authored
      I get the following error messages when trying to open a CD device
      (specifically, the Teac CD-ROM CD-224E) that has no media present:
      
      hda: packet command error: status=3D0x51 { DriveReady SeekComplete Error }
      hda: packet command error: error=3D0x54 { AbortedCommand LastFailedSense=0x05 }
      ide: failed opcode was: unknown
      
      This happens when a "start stop unit" command (0x1b 0 0 0 3 0 0 0 0 0)
      is sent to the drive to try to close the CD-ROM tray, but this drive
      doesn't have that capability (it's a slim portable-type CD-ROM), so it
      reports sense key 5 (illegal request) with asc/ascq 24/0.  This is
      exactly how SFF8090i says it should respond.
      
      But ide-cd.c (in cdrom_decode_status() ) just sees sense key 5 and spews
      out an error.  It then goes on to request sense data, and
      cdrom_log_sense() understands this error and doesn't log it.
      
      The patch, for kernel 2.6.20.4, suppresses this error message.
      Signed-off-by: default avatarStuart Hayes <stuart_hayes@dell.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      76ca1af1
    • Suleiman Souhlal's avatar
      ide: correctly prevent IDE timer expiry function to run if request was already handled · 23450319
      Suleiman Souhlal authored
      It is possible for the timer expiry function to run even though the
      request has already been handled: ide_timer_expiry() only checks that
      the handler is not NULL, but it is possible that we have handled a
      request (thus clearing the handler) and then started a new request
      (thus starting the timer again, and setting a handler). 
      
      A simple way to exhibit this is to set the DMA timeout to 1 jiffy and
      run dd: The kernel will panic after a few minutes because
      ide_timer_expiry() tries to add a timer when it's already active.
      
      To fix this, we simply add a request generation count that gets
      incremented at every interrupt, and check in ide_timer_expiry() that
      we have not already handled a new interrupt before running the expiry
      function.
      Signed-off-by: default avatarSuleiman Souhlal <suleiman@google.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      23450319
  2. 09 Apr, 2007 7 commits
  3. 07 Apr, 2007 6 commits
  4. 06 Apr, 2007 2 commits
  5. 05 Apr, 2007 16 commits
  6. 04 Apr, 2007 7 commits