On 18.11.20 12:53, Sebastian Andrzej Siewior wrote: > The size of struct th_header is 8 byte and the size of struct th_sweep > is 16 byte. The memory for is allocated, initialized, used and > deallocated a few lines later. > > It is more efficient to avoid the allocation/free dance and keeping the > variable on stack. Especially since the compiler is smart enough to not > allocate the memory on stack but assign the values directly. > > Declare struct th_sweep/th_header on stack and initialize it to zero. > Use the local variable instead of the pointer. > Frankly, I'd much rather see us use the pointers that are returned from skb_push() and skb_put(). No need for the on-stack & memcpy indirection.