驱动代码,变量加不加static的问题

根据视频自己写的驱动程序(包括led,key,中断),发现不给变量加static,编译后的.ko文件可以加载到内核,也可以卸载内核,但是到一定次数(固定的次数)后,再加载,ko就会导致内核出错报segment fault错误,看log应该是指针方面的问题,但是我加了static之后,内核驱动ko文件,不停的加载,卸载,都不会出错,按我的理解static的作用仅仅是限制域的作用,仅在我当前的.C文件起作用(在函数之外的static),我加不加static只是对函数和变量起一个不被其他.C调用的保护作用。但是实际测试出来就是会有我上述的问题,有大佬讲解一下吗