virtio-blk: fix memory leak on vring page allocation failure
Bug: If pmm_alloc_page() failed in the middle of the vring page
allocation loop, previously allocated physical pages and the VA range
were not freed, causing a memory leak.
Fix: Add rollback loop on allocation failure to:
1. Unmap and free previously allocated physical pages
2. Free the VA range via kva_free_pages()
This is a pre-existing bug that was exposed during H6 regression
analysis, not a regression introduced by H6.
Test: make test-battery PASS (157/157), make analyzer PASS