diff --git a/ahcid/src/ahci/disk_ata.rs b/ahcid/src/ahci/disk_ata.rs index b401a9457e..adb0fa4045 100644 --- a/ahcid/src/ahci/disk_ata.rs +++ b/ahcid/src/ahci/disk_ata.rs @@ -1,6 +1,5 @@ use std::convert::TryInto; use std::ptr; -use std::thread; use syscall::io::Dma; use syscall::error::Result; @@ -66,8 +65,6 @@ impl DiskATA { BufferKind::Write(ref buffer) => (true, buffer.as_ptr() as usize, buffer.len()/512), }; - //TODO: Go back to interrupt magic - let use_interrupts = false; loop { let mut request = match self.request_opt.take() { Some(request) => if address == request.address && total_sectors == request.total_sectors { @@ -95,12 +92,7 @@ impl DiskATA { // Continue waiting for request request.running_opt = Some(running); self.request_opt = Some(request); - if use_interrupts { - return Ok(None); - } else { - thread::yield_now(); - continue; - } + return Ok(None); } self.port.ata_stop(running.0)?; @@ -130,12 +122,7 @@ impl DiskATA { self.request_opt = Some(request); - if use_interrupts { - return Ok(None); - } else { - thread::yield_now(); - continue; - } + return Ok(None); } else { // Done return Ok(Some(request.sector * 512)); diff --git a/ahcid/src/ahci/hba.rs b/ahcid/src/ahci/hba.rs index f2839f8f25..2bb122ff39 100644 --- a/ahcid/src/ahci/hba.rs +++ b/ahcid/src/ahci/hba.rs @@ -117,7 +117,7 @@ impl HbaPort { self.fb[1].write(((fb.physical() as u64) >> 32) as u32); let is = self.is.read(); self.is.write(is); - self.ie.write(0 /*TODO: Enable interrupts: 0b10111*/); + self.ie.write(0b10111); let serr = self.serr.read(); self.serr.write(serr);