* [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 9:37 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 9:37 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: amd-gfx, dri-devel, linux-kernel, Vojtech Pavlik From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..5b21e22ad4b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); -- 2.12.3 -- Jiri Kosina SUSE Labs ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 9:37 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 9:37 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..5b21e22ad4b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); -- 2.12.3 -- Jiri Kosina SUSE Labs _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 9:37 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 9:37 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..5b21e22ad4b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); -- 2.12.3 -- Jiri Kosina SUSE Labs ^ permalink raw reply related [flat|nested] 16+ messages in thread
[parent not found: <YNRnDTD1fdpZOXB8@suse.com>]
* [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error [not found] ` <YNRnDTD1fdpZOXB8@suse.com> 2021-06-24 11:11 ` Jiri Kosina @ 2021-06-24 11:11 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 11:11 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: amd-gfx, dri-devel, linux-kernel, Vojtech Pavlik From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- v1 -> v2: remove now-unused label drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..b0ee77ee80b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) } else { err = amdgpu_ucode_validate(adev->psp.ta_fw); if (err) - goto out2; + goto out; ta_hdr = (const struct ta_firmware_header_v1_0 *) adev->psp.ta_fw->data; @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) return 0; -out2: +out: release_firmware(adev->psp.ta_fw); adev->psp.ta_fw = NULL; -out: if (err) { dev_err(adev->dev, "psp v12.0: Failed to load firmware \"%s\"\n", -- 2.12.3 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 11:11 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 11:11 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- v1 -> v2: remove now-unused label drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..b0ee77ee80b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) } else { err = amdgpu_ucode_validate(adev->psp.ta_fw); if (err) - goto out2; + goto out; ta_hdr = (const struct ta_firmware_header_v1_0 *) adev->psp.ta_fw->data; @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) return 0; -out2: +out: release_firmware(adev->psp.ta_fw); adev->psp.ta_fw = NULL; -out: if (err) { dev_err(adev->dev, "psp v12.0: Failed to load firmware \"%s\"\n", -- 2.12.3 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 11:11 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-06-24 11:11 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel From: Jiri Kosina <jkosina@suse.cz> In case when psp_init_asd_microcode() fails to load ASD microcode file, psp_v12_0_init_microcode() tries to print the firmware filename that failed to load before bailing out. This is wrong because: - the firmware filename it would want it print is an incorrect one as psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading different filenames - it tries to print fw_name, but that's not yet been initialized by that time, so it prints random stack contents, e.g. amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" Fix that by bailing out immediately, instead of priting the bogus error message. Reported-by: Vojtech Pavlik <vojtech@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> --- v1 -> v2: remove now-unused label drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c index c4828bd3264b..b0ee77ee80b9 100644 --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) err = psp_init_asd_microcode(psp, chip_name); if (err) - goto out; + return err; snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) } else { err = amdgpu_ucode_validate(adev->psp.ta_fw); if (err) - goto out2; + goto out; ta_hdr = (const struct ta_firmware_header_v1_0 *) adev->psp.ta_fw->data; @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) return 0; -out2: +out: release_firmware(adev->psp.ta_fw); adev->psp.ta_fw = NULL; -out: if (err) { dev_err(adev->dev, "psp v12.0: Failed to load firmware \"%s\"\n", -- 2.12.3 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error 2021-06-24 11:11 ` Jiri Kosina (?) @ 2021-07-01 8:33 ` Jiri Kosina -1 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-07-01 8:33 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: amd-gfx, dri-devel, linux-kernel, Vojtech Pavlik On Thu, 24 Jun 2021, Jiri Kosina wrote: > From: Jiri Kosina <jkosina@suse.cz> > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > psp_v12_0_init_microcode() tries to print the firmware filename that > failed to load before bailing out. > > This is wrong because: > > - the firmware filename it would want it print is an incorrect one as > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > different filenames > - it tries to print fw_name, but that's not yet been initialized by that > time, so it prints random stack contents, e.g. > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > Fix that by bailing out immediately, instead of priting the bogus error > message. Friendly ping on this one too; priting a few bytes of stack is not a *huge* info leak, but I believe it should be fixed nevertheless. Thanks. > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > --- > > v1 -> v2: remove now-unused label > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > index c4828bd3264b..b0ee77ee80b9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > err = psp_init_asd_microcode(psp, chip_name); > if (err) > - goto out; > + return err; > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > } else { > err = amdgpu_ucode_validate(adev->psp.ta_fw); > if (err) > - goto out2; > + goto out; > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > adev->psp.ta_fw->data; > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > return 0; > > -out2: > +out: > release_firmware(adev->psp.ta_fw); > adev->psp.ta_fw = NULL; > -out: > if (err) { > dev_err(adev->dev, > "psp v12.0: Failed to load firmware \"%s\"\n", > -- > 2.12.3 > -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-07-01 8:33 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-07-01 8:33 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel On Thu, 24 Jun 2021, Jiri Kosina wrote: > From: Jiri Kosina <jkosina@suse.cz> > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > psp_v12_0_init_microcode() tries to print the firmware filename that > failed to load before bailing out. > > This is wrong because: > > - the firmware filename it would want it print is an incorrect one as > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > different filenames > - it tries to print fw_name, but that's not yet been initialized by that > time, so it prints random stack contents, e.g. > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > Fix that by bailing out immediately, instead of priting the bogus error > message. Friendly ping on this one too; priting a few bytes of stack is not a *huge* info leak, but I believe it should be fixed nevertheless. Thanks. > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > --- > > v1 -> v2: remove now-unused label > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > index c4828bd3264b..b0ee77ee80b9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > err = psp_init_asd_microcode(psp, chip_name); > if (err) > - goto out; > + return err; > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > } else { > err = amdgpu_ucode_validate(adev->psp.ta_fw); > if (err) > - goto out2; > + goto out; > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > adev->psp.ta_fw->data; > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > return 0; > > -out2: > +out: > release_firmware(adev->psp.ta_fw); > adev->psp.ta_fw = NULL; > -out: > if (err) { > dev_err(adev->dev, > "psp v12.0: Failed to load firmware \"%s\"\n", > -- > 2.12.3 > -- Jiri Kosina SUSE Labs _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-07-01 8:33 ` Jiri Kosina 0 siblings, 0 replies; 16+ messages in thread From: Jiri Kosina @ 2021-07-01 8:33 UTC (permalink / raw) To: Alex Deucher, Christian König, David Airlie Cc: Vojtech Pavlik, dri-devel, amd-gfx, linux-kernel On Thu, 24 Jun 2021, Jiri Kosina wrote: > From: Jiri Kosina <jkosina@suse.cz> > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > psp_v12_0_init_microcode() tries to print the firmware filename that > failed to load before bailing out. > > This is wrong because: > > - the firmware filename it would want it print is an incorrect one as > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > different filenames > - it tries to print fw_name, but that's not yet been initialized by that > time, so it prints random stack contents, e.g. > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > Fix that by bailing out immediately, instead of priting the bogus error > message. Friendly ping on this one too; priting a few bytes of stack is not a *huge* info leak, but I believe it should be fixed nevertheless. Thanks. > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > --- > > v1 -> v2: remove now-unused label > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > index c4828bd3264b..b0ee77ee80b9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > err = psp_init_asd_microcode(psp, chip_name); > if (err) > - goto out; > + return err; > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > } else { > err = amdgpu_ucode_validate(adev->psp.ta_fw); > if (err) > - goto out2; > + goto out; > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > adev->psp.ta_fw->data; > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > return 0; > > -out2: > +out: > release_firmware(adev->psp.ta_fw); > adev->psp.ta_fw = NULL; > -out: > if (err) { > dev_err(adev->dev, > "psp v12.0: Failed to load firmware \"%s\"\n", > -- > 2.12.3 > -- Jiri Kosina SUSE Labs ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error 2021-07-01 8:33 ` Jiri Kosina (?) @ 2021-07-01 14:10 ` Alex Deucher -1 siblings, 0 replies; 16+ messages in thread From: Alex Deucher @ 2021-07-01 14:10 UTC (permalink / raw) To: Jiri Kosina Cc: Alex Deucher, Christian König, David Airlie, Vojtech Pavlik, Maling list - DRI developers, amd-gfx list, LKML Applied. Thanks! Alex On Thu, Jul 1, 2021 at 4:33 AM Jiri Kosina <jikos@kernel.org> wrote: > > On Thu, 24 Jun 2021, Jiri Kosina wrote: > > > From: Jiri Kosina <jkosina@suse.cz> > > > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > > psp_v12_0_init_microcode() tries to print the firmware filename that > > failed to load before bailing out. > > > > This is wrong because: > > > > - the firmware filename it would want it print is an incorrect one as > > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > > different filenames > > - it tries to print fw_name, but that's not yet been initialized by that > > time, so it prints random stack contents, e.g. > > > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > > > Fix that by bailing out immediately, instead of priting the bogus error > > message. > > Friendly ping on this one too; priting a few bytes of stack is not a > *huge* info leak, but I believe it should be fixed nevertheless. > > Thanks. > > > > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > > > > --- > > > > v1 -> v2: remove now-unused label > > > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > > 1 file changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > index c4828bd3264b..b0ee77ee80b9 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > err = psp_init_asd_microcode(psp, chip_name); > > if (err) > > - goto out; > > + return err; > > > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > } else { > > err = amdgpu_ucode_validate(adev->psp.ta_fw); > > if (err) > > - goto out2; > > + goto out; > > > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > > adev->psp.ta_fw->data; > > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > return 0; > > > > -out2: > > +out: > > release_firmware(adev->psp.ta_fw); > > adev->psp.ta_fw = NULL; > > -out: > > if (err) { > > dev_err(adev->dev, > > "psp v12.0: Failed to load firmware \"%s\"\n", > > -- > > 2.12.3 > > > > -- > Jiri Kosina > SUSE Labs > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-07-01 14:10 ` Alex Deucher 0 siblings, 0 replies; 16+ messages in thread From: Alex Deucher @ 2021-07-01 14:10 UTC (permalink / raw) To: Jiri Kosina Cc: David Airlie, Vojtech Pavlik, LKML, amd-gfx list, Maling list - DRI developers, Alex Deucher, Christian König Applied. Thanks! Alex On Thu, Jul 1, 2021 at 4:33 AM Jiri Kosina <jikos@kernel.org> wrote: > > On Thu, 24 Jun 2021, Jiri Kosina wrote: > > > From: Jiri Kosina <jkosina@suse.cz> > > > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > > psp_v12_0_init_microcode() tries to print the firmware filename that > > failed to load before bailing out. > > > > This is wrong because: > > > > - the firmware filename it would want it print is an incorrect one as > > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > > different filenames > > - it tries to print fw_name, but that's not yet been initialized by that > > time, so it prints random stack contents, e.g. > > > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > > > Fix that by bailing out immediately, instead of priting the bogus error > > message. > > Friendly ping on this one too; priting a few bytes of stack is not a > *huge* info leak, but I believe it should be fixed nevertheless. > > Thanks. > > > > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > > > > --- > > > > v1 -> v2: remove now-unused label > > > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > > 1 file changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > index c4828bd3264b..b0ee77ee80b9 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > err = psp_init_asd_microcode(psp, chip_name); > > if (err) > > - goto out; > > + return err; > > > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > } else { > > err = amdgpu_ucode_validate(adev->psp.ta_fw); > > if (err) > > - goto out2; > > + goto out; > > > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > > adev->psp.ta_fw->data; > > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > return 0; > > > > -out2: > > +out: > > release_firmware(adev->psp.ta_fw); > > adev->psp.ta_fw = NULL; > > -out: > > if (err) { > > dev_err(adev->dev, > > "psp v12.0: Failed to load firmware \"%s\"\n", > > -- > > 2.12.3 > > > > -- > Jiri Kosina > SUSE Labs > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-07-01 14:10 ` Alex Deucher 0 siblings, 0 replies; 16+ messages in thread From: Alex Deucher @ 2021-07-01 14:10 UTC (permalink / raw) To: Jiri Kosina Cc: David Airlie, Vojtech Pavlik, LKML, amd-gfx list, Maling list - DRI developers, Alex Deucher, Christian König Applied. Thanks! Alex On Thu, Jul 1, 2021 at 4:33 AM Jiri Kosina <jikos@kernel.org> wrote: > > On Thu, 24 Jun 2021, Jiri Kosina wrote: > > > From: Jiri Kosina <jkosina@suse.cz> > > > > In case when psp_init_asd_microcode() fails to load ASD microcode file, > > psp_v12_0_init_microcode() tries to print the firmware filename that > > failed to load before bailing out. > > > > This is wrong because: > > > > - the firmware filename it would want it print is an incorrect one as > > psp_init_asd_microcode() and psp_v12_0_init_microcode() are loading > > different filenames > > - it tries to print fw_name, but that's not yet been initialized by that > > time, so it prints random stack contents, e.g. > > > > amdgpu 0000:04:00.0: Direct firmware load for amdgpu/renoir_asd.bin failed with error -2 > > amdgpu 0000:04:00.0: amdgpu: fail to initialize asd microcode > > amdgpu 0000:04:00.0: amdgpu: psp v12.0: Failed to load firmware "\xfeTO\x8e\xff\xff" > > > > Fix that by bailing out immediately, instead of priting the bogus error > > message. > > Friendly ping on this one too; priting a few bytes of stack is not a > *huge* info leak, but I believe it should be fixed nevertheless. > > Thanks. > > > > > Reported-by: Vojtech Pavlik <vojtech@ucw.cz> > > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > > > > --- > > > > v1 -> v2: remove now-unused label > > > > drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 7 +++---- > > 1 file changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > index c4828bd3264b..b0ee77ee80b9 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c > > @@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > err = psp_init_asd_microcode(psp, chip_name); > > if (err) > > - goto out; > > + return err; > > > > snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); > > err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); > > @@ -80,7 +80,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > } else { > > err = amdgpu_ucode_validate(adev->psp.ta_fw); > > if (err) > > - goto out2; > > + goto out; > > > > ta_hdr = (const struct ta_firmware_header_v1_0 *) > > adev->psp.ta_fw->data; > > @@ -105,10 +105,9 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) > > > > return 0; > > > > -out2: > > +out: > > release_firmware(adev->psp.ta_fw); > > adev->psp.ta_fw = NULL; > > -out: > > if (err) { > > dev_err(adev->dev, > > "psp v12.0: Failed to load firmware \"%s\"\n", > > -- > > 2.12.3 > > > > -- > Jiri Kosina > SUSE Labs > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error 2021-06-24 9:37 ` Jiri Kosina (?) (?) @ 2021-06-24 13:33 ` kernel test robot -1 siblings, 0 replies; 16+ messages in thread From: kernel test robot @ 2021-06-24 13:33 UTC (permalink / raw) To: Jiri Kosina, Alex Deucher, Christian König, David Airlie Cc: kbuild-all, clang-built-linux, amd-gfx, dri-devel, linux-kernel, Vojtech Pavlik [-- Attachment #1: Type: text/plain, Size: 7186 bytes --] Hi Jiri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.13-rc7 next-20210624] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7426cedc7dad67bf3c71ea6cc29ab7822e1a453f config: arm64-randconfig-r006-20210622 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/f9d4f2041c2724ff3c9126761199d37acede1187 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 git checkout f9d4f2041c2724ff3c9126761199d37acede1187 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/psp_v12_0.c:111:1: warning: unused label 'out' [-Wunused-label] out: ^~~~ 1 warning generated. vim +/out +111 drivers/gpu/drm/amd/amdgpu/psp_v12_0.c 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 47 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 48 static int psp_v12_0_init_microcode(struct psp_context *psp) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 49 { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 50 struct amdgpu_device *adev = psp->adev; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 51 const char *chip_name; 6627d1c1a82ba7 Changfeng 2020-09-01 52 char fw_name[30]; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 53 int err = 0; 6627d1c1a82ba7 Changfeng 2020-09-01 54 const struct ta_firmware_header_v1_0 *ta_hdr; 6627d1c1a82ba7 Changfeng 2020-09-01 55 DRM_DEBUG("\n"); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 56 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 57 switch (adev->asic_type) { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 58 case CHIP_RENOIR: 68697982204b21 Aaron Liu 2020-10-01 59 if (adev->apu_flags & AMD_APU_IS_RENOIR) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 60 chip_name = "renoir"; 68697982204b21 Aaron Liu 2020-10-01 61 else 68697982204b21 Aaron Liu 2020-10-01 62 chip_name = "green_sardine"; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 63 break; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 64 default: 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 65 BUG(); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 66 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 67 f4503f9eb3a16c Hawking Zhang 2020-04-20 68 err = psp_init_asd_microcode(psp, chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 69 if (err) f9d4f2041c2724 Jiri Kosina 2021-06-24 70 return err; 6627d1c1a82ba7 Changfeng 2020-09-01 71 6627d1c1a82ba7 Changfeng 2020-09-01 72 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 73 err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); 6627d1c1a82ba7 Changfeng 2020-09-01 74 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 75 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 76 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 77 dev_info(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 78 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 79 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 80 } else { 6627d1c1a82ba7 Changfeng 2020-09-01 81 err = amdgpu_ucode_validate(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 82 if (err) 6627d1c1a82ba7 Changfeng 2020-09-01 83 goto out2; 6627d1c1a82ba7 Changfeng 2020-09-01 84 6627d1c1a82ba7 Changfeng 2020-09-01 85 ta_hdr = (const struct ta_firmware_header_v1_0 *) 6627d1c1a82ba7 Changfeng 2020-09-01 86 adev->psp.ta_fw->data; 6627d1c1a82ba7 Changfeng 2020-09-01 87 adev->psp.ta_hdcp_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 88 le32_to_cpu(ta_hdr->ta_hdcp_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 89 adev->psp.ta_hdcp_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 90 le32_to_cpu(ta_hdr->ta_hdcp_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 91 adev->psp.ta_hdcp_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 92 (uint8_t *)ta_hdr + 6627d1c1a82ba7 Changfeng 2020-09-01 93 le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 94 6627d1c1a82ba7 Changfeng 2020-09-01 95 adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 96 6627d1c1a82ba7 Changfeng 2020-09-01 97 adev->psp.ta_dtm_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 98 le32_to_cpu(ta_hdr->ta_dtm_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 99 adev->psp.ta_dtm_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 100 le32_to_cpu(ta_hdr->ta_dtm_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 101 adev->psp.ta_dtm_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 102 (uint8_t *)adev->psp.ta_hdcp_start_addr + 6627d1c1a82ba7 Changfeng 2020-09-01 103 le32_to_cpu(ta_hdr->ta_dtm_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 104 } 6627d1c1a82ba7 Changfeng 2020-09-01 105 6627d1c1a82ba7 Changfeng 2020-09-01 106 return 0; 6627d1c1a82ba7 Changfeng 2020-09-01 107 6627d1c1a82ba7 Changfeng 2020-09-01 108 out2: 6627d1c1a82ba7 Changfeng 2020-09-01 109 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 110 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 @111 out: 6627d1c1a82ba7 Changfeng 2020-09-01 112 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 113 dev_err(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 114 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 115 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 116 } 6627d1c1a82ba7 Changfeng 2020-09-01 117 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 118 return err; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 119 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 120 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 36903 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 13:33 ` kernel test robot 0 siblings, 0 replies; 16+ messages in thread From: kernel test robot @ 2021-06-24 13:33 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 7305 bytes --] Hi Jiri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.13-rc7 next-20210624] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7426cedc7dad67bf3c71ea6cc29ab7822e1a453f config: arm64-randconfig-r006-20210622 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/f9d4f2041c2724ff3c9126761199d37acede1187 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 git checkout f9d4f2041c2724ff3c9126761199d37acede1187 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/psp_v12_0.c:111:1: warning: unused label 'out' [-Wunused-label] out: ^~~~ 1 warning generated. vim +/out +111 drivers/gpu/drm/amd/amdgpu/psp_v12_0.c 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 47 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 48 static int psp_v12_0_init_microcode(struct psp_context *psp) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 49 { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 50 struct amdgpu_device *adev = psp->adev; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 51 const char *chip_name; 6627d1c1a82ba7 Changfeng 2020-09-01 52 char fw_name[30]; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 53 int err = 0; 6627d1c1a82ba7 Changfeng 2020-09-01 54 const struct ta_firmware_header_v1_0 *ta_hdr; 6627d1c1a82ba7 Changfeng 2020-09-01 55 DRM_DEBUG("\n"); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 56 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 57 switch (adev->asic_type) { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 58 case CHIP_RENOIR: 68697982204b21 Aaron Liu 2020-10-01 59 if (adev->apu_flags & AMD_APU_IS_RENOIR) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 60 chip_name = "renoir"; 68697982204b21 Aaron Liu 2020-10-01 61 else 68697982204b21 Aaron Liu 2020-10-01 62 chip_name = "green_sardine"; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 63 break; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 64 default: 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 65 BUG(); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 66 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 67 f4503f9eb3a16c Hawking Zhang 2020-04-20 68 err = psp_init_asd_microcode(psp, chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 69 if (err) f9d4f2041c2724 Jiri Kosina 2021-06-24 70 return err; 6627d1c1a82ba7 Changfeng 2020-09-01 71 6627d1c1a82ba7 Changfeng 2020-09-01 72 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 73 err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); 6627d1c1a82ba7 Changfeng 2020-09-01 74 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 75 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 76 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 77 dev_info(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 78 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 79 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 80 } else { 6627d1c1a82ba7 Changfeng 2020-09-01 81 err = amdgpu_ucode_validate(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 82 if (err) 6627d1c1a82ba7 Changfeng 2020-09-01 83 goto out2; 6627d1c1a82ba7 Changfeng 2020-09-01 84 6627d1c1a82ba7 Changfeng 2020-09-01 85 ta_hdr = (const struct ta_firmware_header_v1_0 *) 6627d1c1a82ba7 Changfeng 2020-09-01 86 adev->psp.ta_fw->data; 6627d1c1a82ba7 Changfeng 2020-09-01 87 adev->psp.ta_hdcp_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 88 le32_to_cpu(ta_hdr->ta_hdcp_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 89 adev->psp.ta_hdcp_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 90 le32_to_cpu(ta_hdr->ta_hdcp_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 91 adev->psp.ta_hdcp_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 92 (uint8_t *)ta_hdr + 6627d1c1a82ba7 Changfeng 2020-09-01 93 le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 94 6627d1c1a82ba7 Changfeng 2020-09-01 95 adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 96 6627d1c1a82ba7 Changfeng 2020-09-01 97 adev->psp.ta_dtm_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 98 le32_to_cpu(ta_hdr->ta_dtm_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 99 adev->psp.ta_dtm_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 100 le32_to_cpu(ta_hdr->ta_dtm_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 101 adev->psp.ta_dtm_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 102 (uint8_t *)adev->psp.ta_hdcp_start_addr + 6627d1c1a82ba7 Changfeng 2020-09-01 103 le32_to_cpu(ta_hdr->ta_dtm_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 104 } 6627d1c1a82ba7 Changfeng 2020-09-01 105 6627d1c1a82ba7 Changfeng 2020-09-01 106 return 0; 6627d1c1a82ba7 Changfeng 2020-09-01 107 6627d1c1a82ba7 Changfeng 2020-09-01 108 out2: 6627d1c1a82ba7 Changfeng 2020-09-01 109 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 110 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 @111 out: 6627d1c1a82ba7 Changfeng 2020-09-01 112 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 113 dev_err(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 114 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 115 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 116 } 6627d1c1a82ba7 Changfeng 2020-09-01 117 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 118 return err; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 119 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 120 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 36903 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 13:33 ` kernel test robot 0 siblings, 0 replies; 16+ messages in thread From: kernel test robot @ 2021-06-24 13:33 UTC (permalink / raw) To: Jiri Kosina, Alex Deucher, Christian König, David Airlie Cc: kbuild-all, Vojtech Pavlik, linux-kernel, dri-devel, clang-built-linux, amd-gfx [-- Attachment #1: Type: text/plain, Size: 7186 bytes --] Hi Jiri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.13-rc7 next-20210624] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7426cedc7dad67bf3c71ea6cc29ab7822e1a453f config: arm64-randconfig-r006-20210622 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/f9d4f2041c2724ff3c9126761199d37acede1187 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 git checkout f9d4f2041c2724ff3c9126761199d37acede1187 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/psp_v12_0.c:111:1: warning: unused label 'out' [-Wunused-label] out: ^~~~ 1 warning generated. vim +/out +111 drivers/gpu/drm/amd/amdgpu/psp_v12_0.c 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 47 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 48 static int psp_v12_0_init_microcode(struct psp_context *psp) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 49 { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 50 struct amdgpu_device *adev = psp->adev; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 51 const char *chip_name; 6627d1c1a82ba7 Changfeng 2020-09-01 52 char fw_name[30]; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 53 int err = 0; 6627d1c1a82ba7 Changfeng 2020-09-01 54 const struct ta_firmware_header_v1_0 *ta_hdr; 6627d1c1a82ba7 Changfeng 2020-09-01 55 DRM_DEBUG("\n"); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 56 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 57 switch (adev->asic_type) { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 58 case CHIP_RENOIR: 68697982204b21 Aaron Liu 2020-10-01 59 if (adev->apu_flags & AMD_APU_IS_RENOIR) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 60 chip_name = "renoir"; 68697982204b21 Aaron Liu 2020-10-01 61 else 68697982204b21 Aaron Liu 2020-10-01 62 chip_name = "green_sardine"; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 63 break; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 64 default: 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 65 BUG(); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 66 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 67 f4503f9eb3a16c Hawking Zhang 2020-04-20 68 err = psp_init_asd_microcode(psp, chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 69 if (err) f9d4f2041c2724 Jiri Kosina 2021-06-24 70 return err; 6627d1c1a82ba7 Changfeng 2020-09-01 71 6627d1c1a82ba7 Changfeng 2020-09-01 72 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 73 err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); 6627d1c1a82ba7 Changfeng 2020-09-01 74 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 75 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 76 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 77 dev_info(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 78 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 79 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 80 } else { 6627d1c1a82ba7 Changfeng 2020-09-01 81 err = amdgpu_ucode_validate(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 82 if (err) 6627d1c1a82ba7 Changfeng 2020-09-01 83 goto out2; 6627d1c1a82ba7 Changfeng 2020-09-01 84 6627d1c1a82ba7 Changfeng 2020-09-01 85 ta_hdr = (const struct ta_firmware_header_v1_0 *) 6627d1c1a82ba7 Changfeng 2020-09-01 86 adev->psp.ta_fw->data; 6627d1c1a82ba7 Changfeng 2020-09-01 87 adev->psp.ta_hdcp_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 88 le32_to_cpu(ta_hdr->ta_hdcp_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 89 adev->psp.ta_hdcp_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 90 le32_to_cpu(ta_hdr->ta_hdcp_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 91 adev->psp.ta_hdcp_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 92 (uint8_t *)ta_hdr + 6627d1c1a82ba7 Changfeng 2020-09-01 93 le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 94 6627d1c1a82ba7 Changfeng 2020-09-01 95 adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 96 6627d1c1a82ba7 Changfeng 2020-09-01 97 adev->psp.ta_dtm_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 98 le32_to_cpu(ta_hdr->ta_dtm_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 99 adev->psp.ta_dtm_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 100 le32_to_cpu(ta_hdr->ta_dtm_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 101 adev->psp.ta_dtm_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 102 (uint8_t *)adev->psp.ta_hdcp_start_addr + 6627d1c1a82ba7 Changfeng 2020-09-01 103 le32_to_cpu(ta_hdr->ta_dtm_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 104 } 6627d1c1a82ba7 Changfeng 2020-09-01 105 6627d1c1a82ba7 Changfeng 2020-09-01 106 return 0; 6627d1c1a82ba7 Changfeng 2020-09-01 107 6627d1c1a82ba7 Changfeng 2020-09-01 108 out2: 6627d1c1a82ba7 Changfeng 2020-09-01 109 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 110 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 @111 out: 6627d1c1a82ba7 Changfeng 2020-09-01 112 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 113 dev_err(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 114 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 115 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 116 } 6627d1c1a82ba7 Changfeng 2020-09-01 117 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 118 return err; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 119 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 120 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 36903 bytes --] [-- Attachment #3: Type: text/plain, Size: 154 bytes --] _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error @ 2021-06-24 13:33 ` kernel test robot 0 siblings, 0 replies; 16+ messages in thread From: kernel test robot @ 2021-06-24 13:33 UTC (permalink / raw) To: Jiri Kosina, Alex Deucher, Christian König, David Airlie Cc: kbuild-all, Vojtech Pavlik, linux-kernel, dri-devel, clang-built-linux, amd-gfx [-- Attachment #1: Type: text/plain, Size: 7186 bytes --] Hi Jiri, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.13-rc7 next-20210624] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7426cedc7dad67bf3c71ea6cc29ab7822e1a453f config: arm64-randconfig-r006-20210622 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/0day-ci/linux/commit/f9d4f2041c2724ff3c9126761199d37acede1187 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jiri-Kosina/drm-amdgpu-Avoid-printing-of-stack-contents-on-firmware-load-error/20210624-173740 git checkout f9d4f2041c2724ff3c9126761199d37acede1187 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/psp_v12_0.c:111:1: warning: unused label 'out' [-Wunused-label] out: ^~~~ 1 warning generated. vim +/out +111 drivers/gpu/drm/amd/amdgpu/psp_v12_0.c 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 47 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 48 static int psp_v12_0_init_microcode(struct psp_context *psp) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 49 { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 50 struct amdgpu_device *adev = psp->adev; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 51 const char *chip_name; 6627d1c1a82ba7 Changfeng 2020-09-01 52 char fw_name[30]; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 53 int err = 0; 6627d1c1a82ba7 Changfeng 2020-09-01 54 const struct ta_firmware_header_v1_0 *ta_hdr; 6627d1c1a82ba7 Changfeng 2020-09-01 55 DRM_DEBUG("\n"); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 56 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 57 switch (adev->asic_type) { 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 58 case CHIP_RENOIR: 68697982204b21 Aaron Liu 2020-10-01 59 if (adev->apu_flags & AMD_APU_IS_RENOIR) 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 60 chip_name = "renoir"; 68697982204b21 Aaron Liu 2020-10-01 61 else 68697982204b21 Aaron Liu 2020-10-01 62 chip_name = "green_sardine"; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 63 break; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 64 default: 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 65 BUG(); 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 66 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 67 f4503f9eb3a16c Hawking Zhang 2020-04-20 68 err = psp_init_asd_microcode(psp, chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 69 if (err) f9d4f2041c2724 Jiri Kosina 2021-06-24 70 return err; 6627d1c1a82ba7 Changfeng 2020-09-01 71 6627d1c1a82ba7 Changfeng 2020-09-01 72 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name); 6627d1c1a82ba7 Changfeng 2020-09-01 73 err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev); 6627d1c1a82ba7 Changfeng 2020-09-01 74 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 75 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 76 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 77 dev_info(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 78 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 79 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 80 } else { 6627d1c1a82ba7 Changfeng 2020-09-01 81 err = amdgpu_ucode_validate(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 82 if (err) 6627d1c1a82ba7 Changfeng 2020-09-01 83 goto out2; 6627d1c1a82ba7 Changfeng 2020-09-01 84 6627d1c1a82ba7 Changfeng 2020-09-01 85 ta_hdr = (const struct ta_firmware_header_v1_0 *) 6627d1c1a82ba7 Changfeng 2020-09-01 86 adev->psp.ta_fw->data; 6627d1c1a82ba7 Changfeng 2020-09-01 87 adev->psp.ta_hdcp_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 88 le32_to_cpu(ta_hdr->ta_hdcp_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 89 adev->psp.ta_hdcp_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 90 le32_to_cpu(ta_hdr->ta_hdcp_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 91 adev->psp.ta_hdcp_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 92 (uint8_t *)ta_hdr + 6627d1c1a82ba7 Changfeng 2020-09-01 93 le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 94 6627d1c1a82ba7 Changfeng 2020-09-01 95 adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 96 6627d1c1a82ba7 Changfeng 2020-09-01 97 adev->psp.ta_dtm_ucode_version = 6627d1c1a82ba7 Changfeng 2020-09-01 98 le32_to_cpu(ta_hdr->ta_dtm_ucode_version); 6627d1c1a82ba7 Changfeng 2020-09-01 99 adev->psp.ta_dtm_ucode_size = 6627d1c1a82ba7 Changfeng 2020-09-01 100 le32_to_cpu(ta_hdr->ta_dtm_size_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 101 adev->psp.ta_dtm_start_addr = 6627d1c1a82ba7 Changfeng 2020-09-01 102 (uint8_t *)adev->psp.ta_hdcp_start_addr + 6627d1c1a82ba7 Changfeng 2020-09-01 103 le32_to_cpu(ta_hdr->ta_dtm_offset_bytes); 6627d1c1a82ba7 Changfeng 2020-09-01 104 } 6627d1c1a82ba7 Changfeng 2020-09-01 105 6627d1c1a82ba7 Changfeng 2020-09-01 106 return 0; 6627d1c1a82ba7 Changfeng 2020-09-01 107 6627d1c1a82ba7 Changfeng 2020-09-01 108 out2: 6627d1c1a82ba7 Changfeng 2020-09-01 109 release_firmware(adev->psp.ta_fw); 6627d1c1a82ba7 Changfeng 2020-09-01 110 adev->psp.ta_fw = NULL; 6627d1c1a82ba7 Changfeng 2020-09-01 @111 out: 6627d1c1a82ba7 Changfeng 2020-09-01 112 if (err) { 6627d1c1a82ba7 Changfeng 2020-09-01 113 dev_err(adev->dev, 6627d1c1a82ba7 Changfeng 2020-09-01 114 "psp v12.0: Failed to load firmware \"%s\"\n", 6627d1c1a82ba7 Changfeng 2020-09-01 115 fw_name); 6627d1c1a82ba7 Changfeng 2020-09-01 116 } 6627d1c1a82ba7 Changfeng 2020-09-01 117 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 118 return err; 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 119 } 6a7a0bdbfa0c24 Aaron Liu 2019-08-09 120 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 36903 bytes --] ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2021-07-01 14:11 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-06-24 9:37 [PATCH] drm/amdgpu: Avoid printing of stack contents on firmware load error Jiri Kosina 2021-06-24 9:37 ` Jiri Kosina 2021-06-24 9:37 ` Jiri Kosina [not found] ` <YNRnDTD1fdpZOXB8@suse.com> 2021-06-24 11:11 ` [PATCH v2] " Jiri Kosina 2021-06-24 11:11 ` Jiri Kosina 2021-06-24 11:11 ` Jiri Kosina 2021-07-01 8:33 ` Jiri Kosina 2021-07-01 8:33 ` Jiri Kosina 2021-07-01 8:33 ` Jiri Kosina 2021-07-01 14:10 ` Alex Deucher 2021-07-01 14:10 ` Alex Deucher 2021-07-01 14:10 ` Alex Deucher 2021-06-24 13:33 ` [PATCH] " kernel test robot 2021-06-24 13:33 ` kernel test robot 2021-06-24 13:33 ` kernel test robot 2021-06-24 13:33 ` kernel test robot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.