drivers/net/tun.c has a missing dependency on enabling the crc32 libraries in kernel config. With tun enabled and crc32 disabled "make bzImage" (the linking step) fails. For example: drivers/built-in.o(.text+0x656f1): In function `add_multi': linux-2.5cifs/drivers/net/tun.c:112: undefined reference to `crc32_le' drivers/built-in.o(.text+0x656f9):linux-2.5cifs/drivers/net/tun.c:112: undefined reference to `bitreverse' Line 112: int bit_nr = ether_crc(ETH_ALEN, addr) >> 26; is a call to the ether_crc macro which maps to the bitreverse function which is only exported if you enable: library functions -> CRC32 functions in kernel config. The following would fix it.