RE: [PATCH] Revert "drm/radeon/si_dpm: Replace one-element array with flexible-array in struct SISLANDS_SMC_SWSTATE"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Public Use]

> -----Original Message-----
> From: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> Sent: Tuesday, May 4, 2021 6:43 PM
> To: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; amd-
> gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Gustavo A . R . Silva <gustavoars@xxxxxxxxxx>
> Subject: Re: [PATCH] Revert "drm/radeon/si_dpm: Replace one-element
> array with flexible-array in struct SISLANDS_SMC_SWSTATE"
> 
> Hi,
> 
> I thought it was this[1] the one causing problems[2].

They are both causing problems.

Alex

> 
> --
> Gustavo
> 
> [1]
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.k
> ernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git%
> 2Fcommit%2F%3Fid%3D434fb1e7444a2efc3a4ebd950c7f771ebfcffa31&amp;d
> ata=04%7C01%7Calexander.deucher%40amd.com%7C2e5ec39776404b9f1ad
> a08d90f4def14%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6375
> 57649665013301%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ItE
> aD0%2FcD8SZYTdHFEzLqhAkz4u40VJ3b8jXmnKubYc%3D&amp;reserved=0
> [2]
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.
> kernel.org%2Fdri-devel%2F3eedbe78-1fbd-4763-a7f3-
> ac5665e76a4a%40xenosoft.de%2F&amp;data=04%7C01%7Calexander.deuch
> er%40amd.com%7C2e5ec39776404b9f1ada08d90f4def14%7C3dd8961fe4884
> e608e11a82d994e183d%7C0%7C0%7C637557649665013301%7CUnknown%7C
> TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL
> CJXVCI6Mn0%3D%7C1000&amp;sdata=oNDZm9xHuOWbelrUrXYXPoyXLlk2dI
> kRH75O43AFNcI%3D&amp;reserved=0
> 
> On 5/4/21 13:42, Alex Deucher wrote:
> > This reverts commit 96e27e8d919e52f30ea6b717e3cb70faa0b102cd.
> >
> > This causes the SMU to fail to load the power state.
> >
> > Bug:
> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitl
> > ab.freedesktop.org%2Fdrm%2Famd%2F-
> %2Fissues%2F1583&amp;data=04%7C01%7C
> >
> alexander.deucher%40amd.com%7C2e5ec39776404b9f1ada08d90f4def14%7
> C3dd89
> >
> 61fe4884e608e11a82d994e183d%7C0%7C0%7C637557649665013301%7CUnkn
> own%7CT
> >
> WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC
> JXVCI
> >
> 6Mn0%3D%7C1000&amp;sdata=zo7mfnO2t%2BtQgPxIquuDYIsROlkqECjdX0r
> JOPyklyc
> > %3D&amp;reserved=0
> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> > Cc: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx>
> > ---
> >  drivers/gpu/drm/radeon/si_dpm.c       |  5 +++--
> >  drivers/gpu/drm/radeon/sislands_smc.h | 10 +++++-----
> >  2 files changed, 8 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/si_dpm.c
> > b/drivers/gpu/drm/radeon/si_dpm.c index 918609551804..91bfc4762767
> > 100644
> > --- a/drivers/gpu/drm/radeon/si_dpm.c
> > +++ b/drivers/gpu/drm/radeon/si_dpm.c
> > @@ -5250,9 +5250,10 @@ static int si_upload_sw_state(struct
> radeon_device *rdev,
> >  	int ret;
> >  	u32 address = si_pi->state_table_start +
> >  		offsetof(SISLANDS_SMC_STATETABLE, driverState);
> > +	u32 state_size = sizeof(SISLANDS_SMC_SWSTATE) +
> > +		((new_state->performance_level_count - 1) *
> > +		 sizeof(SISLANDS_SMC_HW_PERFORMANCE_LEVEL));
> >  	SISLANDS_SMC_SWSTATE *smc_state = &si_pi-
> >smc_statetable.driverState;
> > -	size_t state_size = struct_size(smc_state, levels,
> > -					new_state-
> >performance_level_count);
> >
> >  	memset(smc_state, 0, state_size);
> >
> > diff --git a/drivers/gpu/drm/radeon/sislands_smc.h
> > b/drivers/gpu/drm/radeon/sislands_smc.h
> > index fbd6589bdab9..966e3a556011 100644
> > --- a/drivers/gpu/drm/radeon/sislands_smc.h
> > +++ b/drivers/gpu/drm/radeon/sislands_smc.h
> > @@ -182,11 +182,11 @@ typedef struct
> SISLANDS_SMC_HW_PERFORMANCE_LEVEL
> > SISLANDS_SMC_HW_PERFORMANCE_LEV
> >
> >  struct SISLANDS_SMC_SWSTATE
> >  {
> > -	uint8_t                             flags;
> > -	uint8_t                             levelCount;
> > -	uint8_t                             padding2;
> > -	uint8_t                             padding3;
> > -	SISLANDS_SMC_HW_PERFORMANCE_LEVEL   levels[];
> > +    uint8_t                             flags;
> > +    uint8_t                             levelCount;
> > +    uint8_t                             padding2;
> > +    uint8_t                             padding3;
> > +    SISLANDS_SMC_HW_PERFORMANCE_LEVEL   levels[1];
> >  };
> >
> >  typedef struct SISLANDS_SMC_SWSTATE SISLANDS_SMC_SWSTATE;
> >
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux