On Mon, Oct 19 2020 at 13:26, Ira Weiny wrote: > On Mon, Oct 19, 2020 at 11:32:50AM +0200, Thomas Gleixner wrote: > Sorry, let me clarify. After this patch we have. > > typedef union irqentry_state { > bool exit_rcu; > bool lockdep; > } irqentry_state_t; > > Which reflects the mutual exclusion of the 2 variables. Huch? From the patch I gave you: #ifndef irqentry_state typedef struct irqentry_state { bool exit_rcu; + bool lockdep; } irqentry_state_t; #endif How is that a union? > But then when the pkrs stuff is added the union changes back to a structure and > looks like this. So you want: 1) Move stuff to struct irqentry_state (my patch) 2) Change it to a union and pass it as pointer at the same time 3) Change it back to struct to add PKRS > Is that clear? What's clear is that the above is nonsense. We can just do #ifndef irqentry_state typedef struct irqentry_state { union { bool exit_rcu; bool lockdep; }; } irqentry_state_t; #endif right in the patch which I gave you. Because that actually makes sense. Thanks, tglx