[PATCH 1/2] drm/xe/guc: Prevent use of uninitialized mutex
Michal Wajdeczko
michal.wajdeczko at intel.com
Tue Jul 2 16:54:05 UTC 2024
On 02.07.2024 18:12, Rodrigo Vivi wrote:
> On Mon, Jul 01, 2024 at 04:15:28PM -0700, Vinay Belgaumkar wrote:
>> When skip_guc_pc is set and/or this is for a VF.
>>
>> Fixes: 3b1592fb7835 ("drm/xe/lnl: Apply Wa_22019338487")
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_guc_pc.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
>> index d88f5e960fbd..f7b468930697 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_pc.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_pc.c
>> @@ -26,6 +26,7 @@
>> #include "xe_mmio.h"
>> #include "xe_pcode.h"
>> #include "xe_pm.h"
>> +#include "xe_sriov.h"
>> #include "xe_wa.h"
>>
>> #define MCHBAR_MIRROR_BASE_SNB 0x140000
>> @@ -825,6 +826,9 @@ int xe_guc_pc_restore_stashed_freq(struct xe_guc_pc *pc)
>> {
>> int ret = 0;
>>
>> + if (IS_SRIOV_VF(pc_to_xe(pc))
>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
>
> are all the other accesses protected?
> likely because the freq sysfs is not available in VF mode?
in the VF mode we explicitly set info.skip_guc_pc = true and this flag
is also used by xe_gt_freq_init() which setup sysfs
[1]
https://gitlab.freedesktop.org/drm/xe/kernel/-/commit/65336c3fa2cf7f272067be9193303d1ab7c42190
>
> || pc_to_xe(pc)->info.skip_guc_pc)
>> + return 0;
>> +
>
> I don't like this skip_guc_pc... we might revisit later
> to find a cleaner way...
+1
also IMO it is little confusing that xe_guc_pc is still doing some stuff
if the skip_guc_pc flag is set
maybe we should have xe_power component that will relay stuff to
xe_guc_pc only if GuC PC is enabled and xe_guc_pc itself will be just
implementing the GuC protocol details ?
>
> anyway, let's move with this patch. the rest is follow up.
>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>
>> mutex_lock(&pc->freq_lock);
>> ret = pc_set_max_freq(pc, pc->stashed_max_freq);
>> if (!ret)
>> --
>> 2.38.1
>>
More information about the Intel-xe
mailing list