今天弄驱动时,出现这个问题,检查了好久,才发现问题所在地方

Unable to handle kernel NULL pointer dereference at virtual address 00000000

原因:

因为我用到了中断,在中断函数中断我调用了一全局指针P,这个指针在定义时为NULL。

由于系统子注册玩中断后会马上检验中断函数,即使当前函数还没执行完。

这就带来了一个问题,在中断注册代码后面  才对P进行赋值,结果还没执行到赋值语句就被中断函数给引用了,这也就造成了上面的情况。