Applied. Thanks! Alex
On Tue, Jun 6, 2023 at 6:27 AM Quan, Evan <[email protected]> wrote: > > [AMD Official Use Only - General] > > Thanks for catching this. > Reviewed-by: Evan Quan <[email protected]> > > > -----Original Message----- > > From: Dan Carpenter <[email protected]> > > Sent: Tuesday, June 6, 2023 4:34 PM > > To: Quan, Evan <[email protected]> > > Cc: Deucher, Alexander <[email protected]>; Koenig, Christian > > <[email protected]>; Pan, Xinhui <[email protected]>; David > > Airlie <[email protected]>; Daniel Vetter <[email protected]>; Lazar, Lijo > > <[email protected]>; Zhang, Hawking <[email protected]>; Feng, > > Kenneth <[email protected]>; Li, Candice <[email protected]>; > > Chai, Thomas <[email protected]>; Wang, Yang(Kevin) > > <[email protected]>; Zhang, Horatio <[email protected]>; > > [email protected]; [email protected] > > Subject: [PATCH] drm/amd/pm: Fix memory some memory corruption > > > > The "od_table" is a pointer to a large struct, but this code is doing > > pointer > > math as if it were pointing to bytes. It results in writing far outside > > the struct. > > > > Fixes: f0a0c659fb96 ("drm/amd/pm: fulfill the OD support for SMU13.0.0") > > Fixes: e3afa4f988b3 ("drm/amd/pm: fulfill the OD support for SMU13.0.7") > > Signed-off-by: Dan Carpenter <[email protected]> > > --- > > drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 4 ++-- > > drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 4 ++-- > > 2 files changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c > > b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c > > index 5ac5ea770c1c..413e592f0ed6 100644 > > --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c > > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c > > @@ -1535,7 +1535,7 @@ static int smu_v13_0_0_od_edit_dpm_table(struct > > smu_context *smu, > > * settings. Thus we do not cache it. > > */ > > offset_of_featurectrlmask = offsetof(OverDriveTable_t, > > FeatureCtrlMask); > > - if (memcmp(od_table + offset_of_featurectrlmask, > > + if (memcmp((u8 *)od_table + offset_of_featurectrlmask, > > table_context->user_overdrive_table + > > offset_of_featurectrlmask, > > sizeof(OverDriveTableExternal_t) - > > offset_of_featurectrlmask)) { > > smu_v13_0_0_dump_od_table(smu, od_table); @@ - > > 1548,7 +1548,7 @@ static int smu_v13_0_0_od_edit_dpm_table(struct > > smu_context *smu, > > > > od_table->OverDriveTable.FeatureCtrlMask = 0; > > memcpy(table_context->user_overdrive_table + > > offset_of_featurectrlmask, > > - od_table + offset_of_featurectrlmask, > > + (u8 *)od_table + offset_of_featurectrlmask, > > sizeof(OverDriveTableExternal_t) - > > offset_of_featurectrlmask); > > > > if (!memcmp(table_context->user_overdrive_table, > > diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c > > b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c > > index 0bd086360efa..cda4e818aab7 100644 > > --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c > > +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c > > @@ -1524,7 +1524,7 @@ static int smu_v13_0_7_od_edit_dpm_table(struct > > smu_context *smu, > > * settings. Thus we do not cache it. > > */ > > offset_of_featurectrlmask = offsetof(OverDriveTable_t, > > FeatureCtrlMask); > > - if (memcmp(od_table + offset_of_featurectrlmask, > > + if (memcmp((u8 *)od_table + offset_of_featurectrlmask, > > table_context->user_overdrive_table + > > offset_of_featurectrlmask, > > sizeof(OverDriveTableExternal_t) - > > offset_of_featurectrlmask)) { > > smu_v13_0_7_dump_od_table(smu, od_table); @@ - > > 1537,7 +1537,7 @@ static int smu_v13_0_7_od_edit_dpm_table(struct > > smu_context *smu, > > > > od_table->OverDriveTable.FeatureCtrlMask = 0; > > memcpy(table_context->user_overdrive_table + > > offset_of_featurectrlmask, > > - od_table + offset_of_featurectrlmask, > > + (u8 *)od_table + offset_of_featurectrlmask, > > sizeof(OverDriveTableExternal_t) - > > offset_of_featurectrlmask); > > > > if (!memcmp(table_context->user_overdrive_table, > > -- > > 2.39.2 >
