On Tue, 05 Apr 2022, Christian König <christian.koenig@xxxxxxx> wrote:
Am 05.04.22 um 19:36 schrieb Grigory Vasilyev:Not that I'd know anything that's going on here... but it sure seems
Using memset on local arrays before exiting the function is pointless.Well actually memset is preferred when working with structures which are
Compilator will remove this code. Also for local arrays is preferable to
use {0} instead of memset. Mistakes are often made when working with
memset.
given to the hardware parser because {0} won't initialize paddings.
strange to me to be passing unpacked structures where the padding might
matter to a "hardware parser".
*shrug*
BR,
Jani.
So please don't use {0} in any of the atom bios code.
Regards,
Christian.
Signed-off-by: Grigory Vasilyev <h0tc0d3@xxxxxxxxx>
---
drivers/gpu/drm/amd/amdgpu/atom.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c
index be9d61bcb8ae..537e48fbbe6b 100644
--- a/drivers/gpu/drm/amd/amdgpu/atom.c
+++ b/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -1538,11 +1538,9 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
int amdgpu_atom_asic_init(struct atom_context *ctx)
{
int hwi = CU16(ctx->data_table + ATOM_DATA_FWI_PTR);
- uint32_t ps[16];
+ uint32_t ps[16] = {0};
int ret;
- memset(ps, 0, 64);
-
ps[0] = cpu_to_le32(CU32(hwi + ATOM_FWI_DEFSCLK_PTR));
ps[1] = cpu_to_le32(CU32(hwi + ATOM_FWI_DEFMCLK_PTR));
if (!ps[0] || !ps[1])
@@ -1551,10 +1549,6 @@ int amdgpu_atom_asic_init(struct atom_context *ctx)
if (!CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_INIT))
return 1;
ret = amdgpu_atom_execute_table(ctx, ATOM_CMD_INIT, ps);
- if (ret)
- return ret;
-
- memset(ps, 0, 64);
return ret;
}