Hello Shubham, On Thu, Sep 13, 2012 at 12:15 PM, shubham sharma <shubham20...@gmail.com>wrote:
> Hi, > > As far as i know, the size of stack allocated in the kernel space is > 8Kb for each process. But in case i use more than 8Kb of memory from > the stack then what will happen? I think that in that case the system > would crash because i am accessing an illegal memory area. I wrote > kernel module in which i defined an integer array whose size was 8000. > But still it did not crash my system. Why? > > The module i wrote was as follows: > > #include <linux/kernel.h> > #include <linux/module.h> > > int __init init_my_module(void) > { > int arr[8000]; > printk("%s:%d\tmodule initilized\n", __func__, __LINE__); > arr[1] = 1; > arr[4000] = 1; > arr[7999] = 1; > Instead do a memset. memset(arr, 0, 8192); If you do this the current calling process thread_info will be set to zero. This should cause a crash. Thanks, Arun > printk("%s:%d\tarr[1]:%d, arr[4000]:%d, arr[7999]:%d\n", __func__, > __LINE__, arr[1], arr[4000], arr[7999]); > return 0; > } > > void __exit cleanup_my_module(void) > { > printk("exiting\n"); > return; > } > > module_init(init_my_module); > module_exit(cleanup_my_module); > > MODULE_LICENSE("GPL"); > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies