sparc64: Close cdboot ihandle
authorEric Snowberg <eric.snowberg@oracle.com>
Fri, 12 May 2017 01:42:23 +0000 (18:42 -0700)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 18 May 2017 19:58:15 +0000 (21:58 +0200)
The ihandle is left open with a cd-core image.  This will cause a delay
booting grub from a virtual cdrom in a LDOM.  It will also cause problems
as Linux boots, since it expects the ihandle to be closed during init.

Orabug: 25911275

Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/boot/sparc64/ieee1275/boot.S

index 586efb4..9ea9b4e 100644 (file)
@@ -69,6 +69,10 @@ prom_seek_name:              .asciz "seek"
 prom_read_name:                .asciz "read"
 prom_exit_name:                .asciz "exit"
 grub_name:             .asciz "GRUB "
+#ifdef CDBOOT
+prom_close_name:       .asciz "close"
+#endif
+
 #define GRUB_NAME_LEN  5
 
        .align  4
@@ -213,6 +217,12 @@ bootpath_known:
        call    prom_call_3_1_o1
 #ifdef CDBOOT
         LDUW_ABS(kernel_size, 0x00, %o3)
+
+       GET_ABS(prom_close_name, %o0)
+       mov     1, %g1
+       mov     0, %o5
+       call    prom_call
+        mov    BOOTDEV_REG, %o1
 #else
         mov    512, %o3
 #endif