diff options
-rw-r--r-- | drivers/gpu/nvgpu/clk/clk_prog.c | 14 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/perf/vfe_var.c | 13 |
2 files changed, 21 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk_prog.c b/drivers/gpu/nvgpu/clk/clk_prog.c index 6b81650e..22add3b0 100644 --- a/drivers/gpu/nvgpu/clk/clk_prog.c +++ b/drivers/gpu/nvgpu/clk/clk_prog.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms and conditions of the GNU General Public License, | 5 | * under the terms and conditions of the GNU General Public License, |
@@ -703,14 +703,22 @@ static u32 clk_prog_construct_1x_master_table(struct gk20a *g, | |||
703 | pclkprog->p_slave_entries = | 703 | pclkprog->p_slave_entries = |
704 | (struct ctrl_clk_clk_prog_1x_master_table_slave_entry *) | 704 | (struct ctrl_clk_clk_prog_1x_master_table_slave_entry *) |
705 | kzalloc(slavesize, GFP_KERNEL); | 705 | kzalloc(slavesize, GFP_KERNEL); |
706 | if (!pclkprog->p_slave_entries) | 706 | |
707 | return -ENOMEM; | 707 | if (!pclkprog->p_slave_entries) { |
708 | status = -ENOMEM; | ||
709 | goto exit; | ||
710 | } | ||
708 | 711 | ||
709 | memset(pclkprog->p_slave_entries, CTRL_CLK_CLK_DOMAIN_INDEX_INVALID, | 712 | memset(pclkprog->p_slave_entries, CTRL_CLK_CLK_DOMAIN_INDEX_INVALID, |
710 | slavesize); | 713 | slavesize); |
711 | 714 | ||
712 | memcpy(pclkprog->p_slave_entries, ptmpprog->p_slave_entries, slavesize); | 715 | memcpy(pclkprog->p_slave_entries, ptmpprog->p_slave_entries, slavesize); |
713 | 716 | ||
717 | exit: | ||
718 | if (status) { | ||
719 | if (*ppboardobj != NULL) | ||
720 | (*ppboardobj)->destruct(*ppboardobj); | ||
721 | } | ||
714 | return status; | 722 | return status; |
715 | } | 723 | } |
716 | 724 | ||
diff --git a/drivers/gpu/nvgpu/perf/vfe_var.c b/drivers/gpu/nvgpu/perf/vfe_var.c index f4c3f276..f43e68e2 100644 --- a/drivers/gpu/nvgpu/perf/vfe_var.c +++ b/drivers/gpu/nvgpu/perf/vfe_var.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms and conditions of the GNU General Public License, | 5 | * under the terms and conditions of the GNU General Public License, |
@@ -668,12 +668,19 @@ static u32 vfe_var_construct_single_sensed_fuse(struct gk20a *g, | |||
668 | if (pvfevar->vfield_info.fuse.segment_count == 0) { | 668 | if (pvfevar->vfield_info.fuse.segment_count == 0) { |
669 | gk20a_err(dev_from_gk20a(g), "unable to get fuse reg info %x", | 669 | gk20a_err(dev_from_gk20a(g), "unable to get fuse reg info %x", |
670 | pvfevar->vfield_info.v_field_id); | 670 | pvfevar->vfield_info.v_field_id); |
671 | return -EINVAL; | 671 | status = -EINVAL; |
672 | goto exit; | ||
672 | } | 673 | } |
673 | if (pvfevar->vfield_ver_info.fuse.segment_count == 0) { | 674 | if (pvfevar->vfield_ver_info.fuse.segment_count == 0) { |
674 | gk20a_err(dev_from_gk20a(g), "unable to get fuse reg info %x", | 675 | gk20a_err(dev_from_gk20a(g), "unable to get fuse reg info %x", |
675 | pvfevar->vfield_ver_info.v_field_id_ver); | 676 | pvfevar->vfield_ver_info.v_field_id_ver); |
676 | return -EINVAL; | 677 | status = -EINVAL; |
678 | goto exit; | ||
679 | } | ||
680 | exit: | ||
681 | if (status) { | ||
682 | if (*ppboardobj != NULL) | ||
683 | (*ppboardobj)->destruct(*ppboardobj); | ||
677 | } | 684 | } |
678 | return status; | 685 | return status; |
679 | } | 686 | } |