The concept I think I can still get my head around. It's all the stuff that surrounds it that eludes me. I have done some work in C but that C is unlike any of the C I wrote in college (duh, it's the kernel code)
I don't see what you mean. It's a long line, so it breaks across 3 lines, but otherwise, it's just:
if (a >= b && (int)(c - MACRO(d)) <= 0) goto out;
Or the stuff further down? Just confusing because tpacket_req and friends are defined as structs elsewhere, so you don't have that context. And it's not really C, it's syzkaller (fuzzing tool) descriptions, kind of a pseudo code syntax.