> +static inline void load_TLS(struct thread_struct *t, unsigned int cpu) > +{ > +#define C(i) HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_TLS_MIN + i]), *(u64 *)&t->tls_array[i]) > + C(0); C(1); C(2); > +#undef C > +} Please just expand this or make it a real function call (static inline), not a temporary macro ..