diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gm206/bios_gm206.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c index 304de68e..c278cb08 100644 --- a/drivers/gpu/nvgpu/gm206/bios_gm206.c +++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c | |||
@@ -852,8 +852,10 @@ static int gm206_bios_init(struct gk20a *g) | |||
852 | gk20a_dbg_info("using VBIOS overlay"); | 852 | gk20a_dbg_info("using VBIOS overlay"); |
853 | g->bios.size = bios_fw->size - ROM_FILE_PAYLOAD_OFFSET; | 853 | g->bios.size = bios_fw->size - ROM_FILE_PAYLOAD_OFFSET; |
854 | g->bios.data = vmalloc(g->bios.size); | 854 | g->bios.data = vmalloc(g->bios.size); |
855 | if (!g->bios.data) | 855 | if (!g->bios.data) { |
856 | return -ENOMEM; | 856 | err = -ENOMEM; |
857 | goto free_firmware; | ||
858 | } | ||
857 | 859 | ||
858 | memcpy(g->bios.data, &bios_fw->data[ROM_FILE_PAYLOAD_OFFSET], | 860 | memcpy(g->bios.data, &bios_fw->data[ROM_FILE_PAYLOAD_OFFSET], |
859 | g->bios.size); | 861 | g->bios.size); |
@@ -929,6 +931,10 @@ static int gm206_bios_init(struct gk20a *g) | |||
929 | } | 931 | } |
930 | 932 | ||
931 | return 0; | 933 | return 0; |
934 | |||
935 | free_firmware: | ||
936 | release_firmware(bios_fw); | ||
937 | return err; | ||
932 | } | 938 | } |
933 | 939 | ||
934 | void gm206_init_bios(struct gpu_ops *gops) | 940 | void gm206_init_bios(struct gpu_ops *gops) |