Hello Peter, Just wanted to thank you very much for your document on creating linux kernel modules. ( http://www.tldp.org/LDP/lkmpg/2.6/html/x323.html ) You have no idea how helpful that doc was to me! Thanks!!!! -- ff@xxxxxxxxxx PS. Minor errata. When I tested the code for hello-5.c I see that there is a mistake on how module_param_array is being used: module_param_array(myintArray, int, &arr_argc, 0000); It seems to me that we should not pass in the address of arr_argc but the arr_argc itself. The macro is already de-referencing it: module_param_array(myintArray, int, arr_argc, 0000); Unrolled Macro produces: static struct kparam_array __param_arr_myintArray = { (sizeof(myintArray) / sizeof((myintArray)[0])), &arr_argc, <======================== '&' put in by the macro! param_set_int, param_get_int, sizeof(myintArray[0]), myintArray };