Hi everyone,<br><br>there are some functions can alloc memory in kernel, but it seems that I cannot use it directly. Here is my code:<br><br>static int mytest_vm(){<br><br> struct vm_struct *v_start;<br><br> v_start=alloc_vm_area(PAGE_SIZE,NULL); //the kernel api has changed, I don't understand why there is a second parameter<br>
if(v_start==NULL){<br> printk("cannot alloc page\n");<br> return -1;<br> }<br><br> sprintf((char *)v_start->addr,"this is a test.\n");<br> printk("after sprintk:%s",(char *)v_start->addr);<br>
<br> free_vm_area(v_start);<br><br> return 0;<br>}<br>module_init(mytest_vm);<br><br>but it just got a kernel Oops. Can anyone explain this to me? Thanks very much!<br><br>