On Fri, Jun 05, 2020 at 05:02:08PM +0200, Frederic Weisbecker wrote: > On Fri, Jun 05, 2020 at 11:37:04AM +0200, Peter Zijlstra wrote: > > struct irq_work { > > - struct llist_node llnode; > > - atomic_t flags; > > + union { > > + struct __call_single_node node; > > + struct { > > + struct llist_node llnode; > > + atomic_t flags; > > + }; > > + }; > > So why not just embed struct __call_single_node in > struct irq_work and struct __call_single_data ? > > Is the point of that anonymous second union layer to > shorten the lines while accessing members?
To cut down on all the churn. irq_work is small and could easily be fixed up, but csd is used in quite a few places.