Files
citron/src/core
Zephyron 5eed2b221b fix(nvdrv): prevent infinite loop and improve error handling when SMMU address space is exhausted
Fix crash in PinHandle when SMMU allocation fails and unmap queue is empty.
Previously, the code would log an error and continue looping indefinitely,
causing log spam and eventual crash.

- Free multiple handles from unmap queue (up to 100) before giving up
- Add maximum attempt counter to prevent infinite loops
- Return 0 gracefully when no more handles can be freed
- Add error handling in callers (Remap, MapBufferEx, MapBuffer) to check for
  PinHandle failure and return NvResult::InsufficientMemory instead of using
  invalid addresses

Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-12-16 16:44:13 +10:00
..
2025-10-01 16:53:13 +00:00
2023-12-23 15:36:44 -05:00
2024-02-19 16:00:46 +01:00
2024-01-08 13:31:48 -06:00
2023-11-25 00:47:36 -05:00
2025-10-05 02:25:14 +00:00
2022-07-27 12:53:49 +02:00
2025-10-05 02:25:57 +00:00
2023-03-01 10:39:49 -05:00