Hi Kevin, During the implementation of batch task buffer mapping, we observed an inconsistency between API return values and actual memory addresses, which leads to an immediate system Panic (Kernel Data Abort). Inside the implementation of UserMapBundledParallelTaskCommandAndResponseBuffers, we performed the following operations on the Response Buffer: We invoked CreateMapping(0, 0, 0, 0, 0, &ivars->fResponseMap) on the provided parallelResponseIOMemoryDescriptor. CreateMapping returns kIOReturnSuccess, and the resulting ivars->fResponseMap object pointer is non-null. However, a subsequent call to ivars->fResponseMap->GetAddress() returns NULL (0x0). After the DEXT returns from UserMapBundledParallelTaskCommandAndResponseBuffers with this NULL address, the system immediately triggers a Panic when the kernel attempts to process subsequent discovery commands (e.g., Inquiry). Panic Type: Kernel data abort Fault Address (FAR): 0x0000000000000000 Exception Class (ESR): 0x96000006 (Translation Faul
Topic:
App & System Services
SubTopic:
Drivers
Tags: