Re: [PATCH v15 16/28] x86/txt: Intel Trusted eXecution Technology (TXT) definitions

ross.philipson
2025-12-17T18:44:43Z

On 12/16/25 2:14 PM, Dave Hansen wrote:
> On 12/15/25 15:33, Ross Philipson wrote:
>> +static inline struct txt_heap_event_log_pointer2_1_element*
>> +txt_find_log2_1_element(struct txt_os_sinit_data *os_sinit_data)
>> +{
>> + struct txt_heap_ext_data_element *ext_elem;
>> +
>> + /* The extended element array is at the end of this table */
>> + ext_elem = (struct txt_heap_ext_data_element *)
>> + ((u8 *)os_sinit_data + sizeof(struct txt_os_sinit_data));
>
> I'd really honestly see a helper for this kind of thing:
>
> #define ptr_after(foo) ((void *)foo + sizeof(foo))
>
> resulting in:
>
> ext_elem = ptr_after(os_sinit_data);
>

We can do that.
> would be a billion times easier to read than what's there. I honestly
> don't even see why this bothers with the u8 and cast to 'struct
> txt_heap_ext_data_element *' versus just using void* and being done with it.
>
> There's no type safety here in the first place so why bother?

Earlier, this was done to a number of other functions for the same
reason. We will change it here too.

Ross

>
>> + while (ext_elem->type != TXT_HEAP_EXTDATA_TYPE_END) {
>> + if (ext_elem->type == TXT_HEAP_EXTDATA_TYPE_EVENT_LOG_POINTER2_1) {
>> + return (struct txt_heap_event_log_pointer2_1_element *)
>> + ((u8 *)ext_elem + sizeof(struct txt_heap_ext_data_element));
>> + }
>> + ext_elem = (struct txt_heap_ext_data_element *)
>> + ((u8 *)ext_elem + ext_elem->size);
>> + }