mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
gpu: nvgpu: nvgpu_memcpy changes to pmgr code
MISRA Rule 21.15 prohibits use of memcpy() with incompatible ptrs to qualified/unqualified types. To circumvent this issue we've introduced a new MISRA-compliant nvgpu_memcpy() function. This change switches non-offending memcpy usage in pmgr/* code over to to use nvgpu_memcpy() with appropriate casts applied to maintain consistency within nvgpu. JIRA NVGPU-849 Change-Id: If4c9b1042e1974ae025ca6d4874a16b7e12e74c9 Signed-off-by: Scott Long <scottl@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1946266 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
f1747cbcd1
commit
c1cdb9d363
@@ -26,6 +26,7 @@
|
|||||||
#include <nvgpu/gk20a.h>
|
#include <nvgpu/gk20a.h>
|
||||||
#include <nvgpu/boardobjgrp.h>
|
#include <nvgpu/boardobjgrp.h>
|
||||||
#include <nvgpu/boardobjgrp_e32.h>
|
#include <nvgpu/boardobjgrp_e32.h>
|
||||||
|
#include <nvgpu/string.h>
|
||||||
|
|
||||||
#include "gp106/bios_gp106.h"
|
#include "gp106/bios_gp106.h"
|
||||||
|
|
||||||
@@ -329,12 +330,12 @@ static int pmgr_send_pwr_policy_to_pmu(struct gk20a *g)
|
|||||||
ppwrpack->policies.hdr.data.low_sampling_mult =
|
ppwrpack->policies.hdr.data.low_sampling_mult =
|
||||||
g->pmgr_pmu.pmgr_policyobjs.low_sampling_mult;
|
g->pmgr_pmu.pmgr_policyobjs.low_sampling_mult;
|
||||||
|
|
||||||
(void) memcpy(&ppwrpack->policies.hdr.data.global_ceiling,
|
nvgpu_memcpy((u8 *)&ppwrpack->policies.hdr.data.global_ceiling,
|
||||||
&g->pmgr_pmu.pmgr_policyobjs.global_ceiling,
|
(u8 *)&g->pmgr_pmu.pmgr_policyobjs.global_ceiling,
|
||||||
sizeof(struct nv_pmu_perf_domain_group_limits));
|
sizeof(struct nv_pmu_perf_domain_group_limits));
|
||||||
|
|
||||||
(void) memcpy(&ppwrpack->policies.hdr.data.semantic_policy_tbl,
|
nvgpu_memcpy((u8 *)&ppwrpack->policies.hdr.data.semantic_policy_tbl,
|
||||||
&g->pmgr_pmu.pmgr_policyobjs.policy_idxs,
|
(u8 *)&g->pmgr_pmu.pmgr_policyobjs.policy_idxs,
|
||||||
sizeof(g->pmgr_pmu.pmgr_policyobjs.policy_idxs));
|
sizeof(g->pmgr_pmu.pmgr_policyobjs.policy_idxs));
|
||||||
|
|
||||||
BOARDOBJGRP_FOR_EACH_INDEX_IN_MASK(32, indx,
|
BOARDOBJGRP_FOR_EACH_INDEX_IN_MASK(32, indx,
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include <nvgpu/gk20a.h>
|
#include <nvgpu/gk20a.h>
|
||||||
#include <nvgpu/boardobjgrp.h>
|
#include <nvgpu/boardobjgrp.h>
|
||||||
#include <nvgpu/boardobjgrp_e32.h>
|
#include <nvgpu/boardobjgrp_e32.h>
|
||||||
|
#include <nvgpu/string.h>
|
||||||
|
|
||||||
#include "pwrpolicy.h"
|
#include "pwrpolicy.h"
|
||||||
#include "gp106/bios_gp106.h"
|
#include "gp106/bios_gp106.h"
|
||||||
@@ -225,7 +226,8 @@ static int _pwr_domains_pmudatainit_hw_threshold(struct gk20a *g,
|
|||||||
PWR_POLICY_LIMIT_ID_CURR),
|
PWR_POLICY_LIMIT_ID_CURR),
|
||||||
p_pwr_policy->limit_delta);
|
p_pwr_policy->limit_delta);
|
||||||
|
|
||||||
(void) memcpy(&pmu_pwr_policy->integral, &p_pwr_policy->integral,
|
nvgpu_memcpy((u8 *)&pmu_pwr_policy->integral,
|
||||||
|
(u8 *)&p_pwr_policy->integral,
|
||||||
sizeof(struct ctrl_pmgr_pwr_policy_info_integral));
|
sizeof(struct ctrl_pmgr_pwr_policy_info_integral));
|
||||||
|
|
||||||
pmu_pwr_policy->sample_mult = p_pwr_policy->sample_mult;
|
pmu_pwr_policy->sample_mult = p_pwr_policy->sample_mult;
|
||||||
@@ -342,7 +344,8 @@ static struct boardobj *construct_pwr_policy(struct gk20a *g,
|
|||||||
pwrpolicyparams->limit_batt:
|
pwrpolicyparams->limit_batt:
|
||||||
CTRL_PMGR_PWR_POLICY_LIMIT_MAX));
|
CTRL_PMGR_PWR_POLICY_LIMIT_MAX));
|
||||||
|
|
||||||
(void) memcpy(&pwrpolicy->integral, &pwrpolicyparams->integral,
|
nvgpu_memcpy((u8 *)&pwrpolicy->integral,
|
||||||
|
(u8 *)&pwrpolicyparams->integral,
|
||||||
sizeof(struct ctrl_pmgr_pwr_policy_info_integral));
|
sizeof(struct ctrl_pmgr_pwr_policy_info_integral));
|
||||||
|
|
||||||
pwrpolicyhwthreshold->threshold_idx = hwthreshold->threshold_idx;
|
pwrpolicyhwthreshold->threshold_idx = hwthreshold->threshold_idx;
|
||||||
|
|||||||
Reference in New Issue
Block a user