... > and it will spit out > > Longest line is drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c:1136 (2346kB) > ' ((((((pkt_size) + __builtin_choose_expr((sizeof(int) == > sizeof(*(8 ? ((void *)((long)((__builtin_...' > > to tell me that we have that insane 2.2 *megabyte* line due to the > MVPP2_SKB_HEADROOM thing, and I should apply this patch: > > -#define MVPP2_SKB_HEADROOM min(max(XDP_PACKET_HEADROOM, NET_SKB_PAD), 224) > +#define MVPP2_SKB_HEADROOM > MIN_T(int,MAX_T(int,XDP_PACKET_HEADROOM, NET_SKB_PAD), 224) > > to fix it. Or (if I've got is right): #define MVPP2_SKB_HEADROOM clamp(XDP_PACKET_HEADROOM, NET_SKB_PAD, 224) Hmmm... I've found: #define XDP_PACKET_HEADROOM 256 #define NET_SKB_PAD max(32, L1_CACHE_BYTES) I'd bet that some architecture even has a non-constant L1_CACHE_BYTES. But the 256 means the headroom is always 224 (whatever that limit is related to). It is definitely worth freeing up MIN() and MAX() for: #define MIN(x, y) ( \ BUILD_BUG_ON_ZERO(__is_constexpr((x) + (y)) + ((x) < (y) ? (x) : (y))) which is then usable for static initialisers. Just assuming that no one is silly enough to get a negative constant compared to an unsigned value. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)