mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 18:16:01 +03:00
gpu: nvgpu: fix corruption in pstate parsing
After first iteration parse_pstate_table_5x was reusing previously parsed pstate as a temporary object, leading to corruption. Use local _pstate variable instead. JIRA EVLR-1959 Bug 200352099 Change-Id: Ia32382d5f7dace045064a39ea3db10119f86e9eb Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1586505 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Richard Zhao <rizhao@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
b18fa6c4a7
commit
a681c505c9
@@ -307,7 +307,7 @@ static int parse_pstate_entry_5x(struct gk20a *g,
|
||||
static int parse_pstate_table_5x(struct gk20a *g,
|
||||
struct vbios_pstate_header_5x *hdr)
|
||||
{
|
||||
struct pstate _pstate, *pstate = &_pstate;
|
||||
struct pstate _pstate, *pstate;
|
||||
struct vbios_pstate_entry_5x *entry;
|
||||
u32 entry_size;
|
||||
u8 i;
|
||||
@@ -333,11 +333,11 @@ static int parse_pstate_table_5x(struct gk20a *g,
|
||||
if (entry->pstate_level == VBIOS_PERFLEVEL_SKIP_ENTRY)
|
||||
continue;
|
||||
|
||||
err = parse_pstate_entry_5x(g, hdr, entry, pstate);
|
||||
err = parse_pstate_entry_5x(g, hdr, entry, &_pstate);
|
||||
if (err)
|
||||
goto done;
|
||||
|
||||
pstate = pstate_construct(g, pstate);
|
||||
pstate = pstate_construct(g, &_pstate);
|
||||
if (!pstate)
|
||||
goto done;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user