Index: /trunk/src/VBox/Runtime/r0drv/solaris/memobj-r0drv-solaris.c
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/solaris/memobj-r0drv-solaris.c	(revision 40976)
+++ /trunk/src/VBox/Runtime/r0drv/solaris/memobj-r0drv-solaris.c	(revision 40977)
@@ -97,17 +97,15 @@
 
 /**
- * Returns the physical address of a page from an array of pages.
- *
- * @param ppPages       The array of pages.
- * @param iPage         Index of the page in the array to get the physical
- *                      address.
- *
- * @returns Physical address of specific page within the list of pages specified
- *         in @a ppPages.
- */
-static inline uint64_t rtR0MemObjSolPageToPhys(page_t **ppPages, size_t iPage)
-{
-    pfn_t PageFrameNum = page_pptonum(ppPages[iPage]);
-    AssertReleaseMsg(PageFrameNum != PFN_INVALID, ("rtR0MemObjSolPageToPhys failed. ppPages=%p iPage=%u\n", ppPages, iPage));
+ * Returns the physical address for a page.
+ *
+ * @param    pPage      Pointer to the page.
+ *
+ * @returns The physical address for a page.
+ */
+static inline uint64_t rtR0MemObjSolPagePhys(page_t *pPage)
+{
+    AssertPtr(pPage);
+    pfn_t PageFrameNum = page_pptonum(pPage);
+    AssertReleaseMsg(PageFrameNum != PFN_INVALID, ("rtR0MemObjSolPagePhys failed pPage=%p\n"));
     return (uint64_t)PageFrameNum << PAGESHIFT;
 }
@@ -215,16 +213,18 @@
                     page_t *pPage = rtR0MemObjSolPageFromFreelist(virtAddr, PAGESIZE);
                     if (!pPage)
+                    {
                         pPage = rtR0MemObjSolPageFromCachelist(virtAddr, PAGESIZE);
-                    if (RT_UNLIKELY(!pPage))
-                    {
-                        /*
-                         * No more pages found, release was grabbed so far.
-                         */
-                        page_create_putback(cPages - i);
-                        while (--i >= 0)
-                            page_free(ppPages[i], 0 /* don't need page, move to tail of pagelist */);
-                        kmem_free(ppPages, cbPages);
-                        page_unresv(cPages);
-                        return NULL;
+                        if (RT_UNLIKELY(!pPage))
+                        {
+                            /*
+                             * No more pages found, release was grabbed so far.
+                             */
+                            page_create_putback(cPages - i);
+                            while (--i >= 0)
+                                page_free(ppPages[i], 0 /* don't need page, move to tail of pagelist */);
+                            kmem_free(ppPages, cbPages);
+                            page_unresv(cPages);
+                            return NULL;
+                        }
                     }
 
@@ -239,5 +239,5 @@
                  */
                 if (puPhys)
-                    *puPhys = (uint64_t)page_pptonum(ppPages[0]) << PAGESHIFT;
+                    *puPhys = rtR0MemObjSolPagePhys(ppPages[0]);
                 return ppPages;
             }
@@ -278,5 +278,5 @@
             page_downgrade(ppPages[iPage]);
 
-        auPhys[iPage] = rtR0MemObjSolPageToPhys(ppPages, iPage);
+        auPhys[iPage] = rtR0MemObjSolPagePhys(ppPages[iPage]);
     }
 
@@ -372,5 +372,5 @@
                 }
 
-                uint64_t uPhys = (uint64_t)page_pptonum(pRootPage) << PAGESHIFT;
+                uint64_t uPhys = rtR0MemObjSolPagePhys(pRootPage);
                 AssertMsg(!(uPhys & (cb - 1)), ("%llx %zx\n", uPhys, cb));
                 if (puPhys)
@@ -1024,5 +1024,6 @@
                 return rtR0MemObjSolVirtToPhys(pb);
             }
-            return rtR0MemObjSolPageToPhys(pMemSolaris->pvHandle, iPage);
+            page_t **ppPages = pMemSolaris->pvHandle;
+            return rtR0MemObjSolPagePhys(ppPages[iPage]);
 
         case RTR0MEMOBJTYPE_PAGE:
