On Wed, Feb 16, 2022 at 09:41:47AM -0800, Lucas De Marchi wrote: > Now we have the access to content of GuC ADS either using iosys_map > API or using a temporary buffer. Remove guc->ads_blob as there shouldn't > be updates using the bare pointer anymore. > > Cc: Matt Roper <matthew.d.roper@xxxxxxxxx> > Cc: Thomas Hellström <thomas.hellstrom@xxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: John Harrison <John.C.Harrison@xxxxxxxxx> > Cc: Matthew Brost <matthew.brost@xxxxxxxxx> > Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc.h | 3 +-- > drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 8 ++++---- > 2 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.h b/drivers/gpu/drm/i915/gt/uc/intel_guc.h > index f857e9190750..bf7079480d47 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.h > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.h > @@ -147,8 +147,7 @@ struct intel_guc { > > /** @ads_vma: object allocated to hold the GuC ADS */ > struct i915_vma *ads_vma; > - /** @ads_blob: contents of the GuC ADS */ > - struct __guc_ads_blob *ads_blob; > + /** @ads_map: contents of the GuC ADS */ > struct iosys_map ads_map; > /** @ads_regset_size: size of the save/restore regsets in the ADS */ > u32 ads_regset_size; > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > index d0593063c0dc..847e00390b00 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c > @@ -667,6 +667,7 @@ static void __guc_ads_init(struct intel_guc *guc) > */ > int intel_guc_ads_create(struct intel_guc *guc) > { > + void *ads_blob; > u32 size; > int ret; > > @@ -691,14 +692,14 @@ int intel_guc_ads_create(struct intel_guc *guc) > size = guc_ads_blob_size(guc); > > ret = intel_guc_allocate_and_map_vma(guc, size, &guc->ads_vma, > - (void **)&guc->ads_blob); > + &ads_blob); > if (ret) > return ret; > > if (i915_gem_object_is_lmem(guc->ads_vma->obj)) > - iosys_map_set_vaddr_iomem(&guc->ads_map, (void __iomem *)guc->ads_blob); > + iosys_map_set_vaddr_iomem(&guc->ads_map, (void __iomem *)ads_blob); > else > - iosys_map_set_vaddr(&guc->ads_map, guc->ads_blob); > + iosys_map_set_vaddr(&guc->ads_map, ads_blob); > > __guc_ads_init(guc); > > @@ -720,7 +721,6 @@ void intel_guc_ads_init_late(struct intel_guc *guc) > void intel_guc_ads_destroy(struct intel_guc *guc) > { > i915_vma_unpin_and_release(&guc->ads_vma, I915_VMA_RELEASE_MAP); > - guc->ads_blob = NULL; > iosys_map_clear(&guc->ads_map); > kfree(guc->ads_regset); > } > -- > 2.35.1 >