> struct skb_shared_info { > + unsigned short _unused; > unsigned char nr_frags;
This makes _all_ fields to be accessed with offset, but if you move padding down, at least ->nr_frags will enjoy clean and simple [R64] addressing. On allyesconfig-ish kernel: before: +542 = 720-178 after: -158 = 53-211 (negative, because 16-bit field became 32-bit) You may want to add configurable redzone there instead of padding if that what you want. 2 bytes is nothing.