O cabeçalho linux/kernel.h que é usado para construções de módulo é o cabeçalho que é parte da fonte do kernel . Quando os módulos são criados na árvore de origem do kernel, essa é a versão usada.
Para construções de módulos externos, o processo de construção procura o cabeçalho em /lib/modules/$(uname -r)/build/include/linux/sched.h . Esse arquivo é fornecido pelos pacotes de cabeçalho do kernel, por exemplo. nos derivados do Debian, o pacote linux-headers-$(uname -r) .
O /usr/include/linux/kernel.h é destinado aos processos do usuário, não aos módulos do kernel.
As macros printk priority agora vivem em linux/printk.h e linux/kern_levels.h . Suponho que você esteja lendo o guia original , que é baseado na série 2.6 do kernel; Para kernels modernos, você deve ler o guia atualizado (atualmente para 4.15.2 ).