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