]> git.sur5r.net Git - u-boot/blobdiff - lib/efi_loader/efi_gop.c
efi_loader: initialise partition_signature memory
[u-boot] / lib / efi_loader / efi_gop.c
index e063e0c79b7e2f9f767eb47e44e8d5d867447c79..7370eeee37649b3f40b0fb1b7bc00f796619ed14 100644 (file)
@@ -32,7 +32,7 @@ struct efi_gop_obj {
 };
 
 static efi_status_t EFIAPI gop_query_mode(struct efi_gop *this, u32 mode_number,
-                                         unsigned long *size_of_info,
+                                         efi_uintn_t *size_of_info,
                                          struct efi_gop_mode_info **info)
 {
        struct efi_gop_obj *gopobj;
@@ -56,17 +56,17 @@ static efi_status_t EFIAPI gop_set_mode(struct efi_gop *this, u32 mode_number)
        return EFI_EXIT(EFI_SUCCESS);
 }
 
-static efi_status_t EFIAPI gop_blt(struct efi_gop *this, void *buffer,
-                                  unsigned long operation, unsigned long sx,
-                                  unsigned long sy, unsigned long dx,
-                                  unsigned long dy, unsigned long width,
-                                  unsigned long height, unsigned long delta)
+efi_status_t EFIAPI gop_blt(struct efi_gop *this, void *buffer,
+                           u32 operation, efi_uintn_t sx,
+                           efi_uintn_t sy, efi_uintn_t dx,
+                           efi_uintn_t dy, efi_uintn_t width,
+                           efi_uintn_t height, efi_uintn_t delta)
 {
        struct efi_gop_obj *gopobj = container_of(this, struct efi_gop_obj, ops);
        int i, j, line_len16, line_len32;
        void *fb;
 
-       EFI_ENTRY("%p, %p, %lx, %lx, %lx, %lx, %lx, %lx, %lx, %lx", this,
+       EFI_ENTRY("%p, %p, %u, %zu, %zu, %zu, %zu, %zu, %zu, %zu", this,
                  buffer, operation, sx, sy, dx, dy, width, height, delta);
 
        if (operation != EFI_BLT_BUFFER_TO_VIDEO)
@@ -137,7 +137,7 @@ int efi_gop_register(void)
        struct udevice *vdev;
 
        /* We only support a single video output device for now */
-       if (uclass_first_device(UCLASS_VIDEO, &vdev))
+       if (uclass_first_device(UCLASS_VIDEO, &vdev) || !vdev)
                return -1;
 
        struct video_priv *priv = dev_get_uclass_priv(vdev);
@@ -173,6 +173,10 @@ int efi_gop_register(void)
        }
 
        gopobj = calloc(1, sizeof(*gopobj));
+       if (!gopobj) {
+               printf("ERROR: Out of memory\n");
+               return 1;
+       }
 
        /* Fill in object data */
        gopobj->parent.protocols[0].guid = &efi_gop_guid;