Correctly index the dev ctx arr for slot states.

This commit is contained in:
4lDO2
2020-02-01 22:02:20 +01:00
parent 295aa02e5d
commit c4a393e296
2 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -337,7 +337,7 @@ impl Xhci {
println!(" - Enable slot");
self.run.ints[0].erdp.write(self.cmd.erdp()); // TODO: ?
self.run.ints[0].erdp.write(self.cmd.erdp());
let slot = Self::enable_port_slot(&mut self.cmd, &mut self.dbs);
+2 -1
View File
@@ -792,7 +792,8 @@ impl SchemeMut for Xhci {
Ok(buf.len())
}
EndpointHandleTy::Status(ref mut offset) => {
let status = self.dev_ctx.contexts.get(port_num).ok_or(Error::new(EBADF))?.endpoints.get(endp_num as usize).ok_or(Error::new(EBADF))?.a.read() & ENDPOINT_CONTEXT_STATUS_MASK;
let ps = self.port_states.get(&port_num).ok_or(Error::new(EBADF))?;
let status = self.dev_ctx.contexts.get(ps.slot as usize).ok_or(Error::new(EBADF))?.endpoints.get(endp_num as usize).ok_or(Error::new(EBADF))?.a.read() & ENDPOINT_CONTEXT_STATUS_MASK;
let string = match status {
// TODO: Give this its own enum.