Linux kernel 函数的隐式声明';阅读cr0和x27;在拉斯宾

Linux kernel 函数的隐式声明';阅读cr0和x27;在拉斯宾,linux-kernel,raspberry-pi,kernel,kernel-module,Linux Kernel,Raspberry Pi,Kernel,Kernel Module,我最近为mint 18编译了一个内核模块(内核版本:4.4.0-36-generic),并使用以下函数: static inline unsigned long rk_disable_wp(void) { unsigned long cr0; preempt_disable(); barrier(); cr0 = read_cr0(); write_cr0(cr0 & ~X86_CR0_WP); barrier(); retu

我最近为mint 18编译了一个内核模块(内核版本:4.4.0-36-generic),并使用以下函数:

static inline unsigned long rk_disable_wp(void)
{
    unsigned long cr0;

    preempt_disable();

    barrier();
    cr0 = read_cr0();
    write_cr0(cr0 & ~X86_CR0_WP);
    barrier();

    return cr0;
}
当我将此源代码移到raspbian 9.1(内核版本:4.9.59-v7+)时,我无法编译,此错误引发:

error: implicit declaration of function 'read_cr0' [-Werror=implicit-function-declaration]
error: implicit declaration of function 'write_cr0' [-Werror=implicit-function-declaration]
error: 'X86_CR0_WP' undeclared (first use in this function)

覆盆子pi是否没有
CR0
注册表?还是内核版本是问题的原因?还是别的什么?

cr0
是x86寄存器。
X86\u CR0\u WP
应该是一个赠品,因为这是X86特定的代码

清除该位将导致禁用写保护:内核可能会写入只读映射页。有一个(未回答的)问题。我也不知道答案