Commit b29c22b8 authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdgpu: Fix vbios build number parsing logic



It's not necessary that the build string and atom header section has a
difference of 32 bytes. Use the remaining bytes in the section as copy
limit.

Fixes: d6fa8026 ("drm/amdgpu: Add vbios build number interface")
Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 342f141b
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1502,7 +1502,7 @@ static void atom_get_vbios_build(struct atom_context *ctx)
{
	unsigned char *atom_rom_hdr;
	unsigned char *str;
	uint16_t base;
	uint16_t base, len;

	base = CU16(ATOM_ROM_TABLE_PTR);
	atom_rom_hdr = CSTR(base);
@@ -1515,8 +1515,9 @@ static void atom_get_vbios_build(struct atom_context *ctx)
	while (str < atom_rom_hdr && *str++)
		;

	if ((str + STRLEN_NORMAL) < atom_rom_hdr)
		strscpy(ctx->build_num, str, STRLEN_NORMAL);
	len = min(atom_rom_hdr - str, STRLEN_NORMAL);
	if (len)
		strscpy(ctx->build_num, str, len);
}

struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)