[Intel-gfx] [PATCH 2/6] drm/i915/uc: mark structure passed to checker functions as const

Daniele Ceraolo Spurio daniele.ceraolospurio at intel.com
Sat Feb 29 00:20:53 UTC 2020



On 2/28/20 1:18 AM, Jani Nikula wrote:
> On Thu, 27 Feb 2020, Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com> wrote:
>> Follow-up patches will pass const objects from debugfs to some those
>> functions, so we need to be ready.
>>
>> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
>> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
>> Cc: John Harrison <John.C.Harrison at Intel.com>
>> Cc: Matthew Brost <matthew.brost at intel.com>
>> ---
>>   drivers/gpu/drm/i915/gt/intel_gt.h             |  6 +++---
>>   drivers/gpu/drm/i915/gt/uc/intel_guc.h         | 10 +++++-----
>>   drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h      |  2 +-
>>   .../gpu/drm/i915/gt/uc/intel_guc_submission.h  |  6 +++---
>>   drivers/gpu/drm/i915/gt/uc/intel_huc.h         |  8 ++++----
>>   drivers/gpu/drm/i915/gt/uc/intel_uc.h          |  2 +-
>>   drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h       | 18 +++++++++---------
>>   7 files changed, 26 insertions(+), 26 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.h b/drivers/gpu/drm/i915/gt/intel_gt.h
>> index 4fac043750aa..f9fbe645478d 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt.h
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt.h
>> @@ -18,17 +18,17 @@ struct drm_i915_private;
>>   		  ##__VA_ARGS__);					\
>>   } while (0)
>>   
>> -static inline struct intel_gt *uc_to_gt(struct intel_uc *uc)
>> +static inline struct intel_gt *uc_to_gt(const struct intel_uc *uc)
>>   {
>>   	return container_of(uc, struct intel_gt, uc);
>>   }
>>   
>> -static inline struct intel_gt *guc_to_gt(struct intel_guc *guc)
>> +static inline struct intel_gt *guc_to_gt(const struct intel_guc *guc)
>>   {
>>   	return container_of(guc, struct intel_gt, uc.guc);
>>   }
>>   
>> -static inline struct intel_gt *huc_to_gt(struct intel_huc *huc)
>> +static inline struct intel_gt *huc_to_gt(const struct intel_huc *huc)
>>   {
>>   	return container_of(huc, struct intel_gt, uc.huc);
>>   }
> 
> Not fond of the fact that these cast the const away. If you can return
> const also, fine, but const in, non-const out is not fine.
> 

fair point. We usually use those functions for non-const->non-const 
conversions, but in debugfs the objects are marked as const hence why 
the need to add it here (the output in that case can also be marked as 
const).

What's the favorite alternative, add a guc_to_gt_const() variant, do a 
straight container_of in the debugfs function or simply avoid marking 
the objects as const to begin with, even if they're treated as such?

Thanks,
Daniele

> BR,
> Jani.
> 
> 


More information about the Intel-gfx mailing list