summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gm206/bios_gm206.c10
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
935free_firmware:
936 release_firmware(bios_fw);
937 return err;
932} 938}
933 939
934void gm206_init_bios(struct gpu_ops *gops) 940void gm206_init_bios(struct gpu_ops *gops)