| Previous | Next |
| kIOReturnDMAError | kIOReturnTimeout |
kIOReturnBusy
Busy is a concurrency signal
kIOReturnBusy reports that a device or resource is currently occupied. It can reflect an in-flight transfer, a state-changing operation, a mounted or claimed service, controller serialization, or another client using a resource that cannot safely be shared for this call. It does not necessarily mean that exclusive access was granted to another process; that more specific condition is represented by kIOReturnExclusiveAccess.
A fast retry loop turns a contention condition into extra load and can interfere with the operation that must finish first. Treat the value as a request to identify the owner or state transition, then wait for completion, release local work, or queue the operation according to the family’s concurrency model.
Recommended checks
- Record the active operation, open clients, queue depth, and whether the device is changing configuration or power state.
- Serialize operations that cannot overlap, especially resets, format/eject operations, and control requests that change interfaces.
- Use completion callbacks or notifications rather than speculative retries whenever the API provides them.
- Investigate a busy state that persists beyond the normal operation window as a deadlock or stalled driver symptom.
References
Looking for a different code? Search another status or error code.
