static int __init init(void) { int h=0; ssize_t r=0; char buf[100]="xxxxxxxxx"; struct file* f=0; mm_segment_t fs; f=filp_open("/proc/loadavg",O_RDONLY,0); if(IS_ERR(f)){ L("file open failed."); return 1; } L("handle is %p\n",f); fs=get_fs(); set_fs(KERNEL_DS); f->f_op->read(f,buf,sizeof(buf)-1,0); set_fs(fs); filp_close(f,0); return 1; }
L - это printk чз define
при попытке загрузки: Nov 7 16:14:27 elf kernel: handle is c70ad104 Nov 7 16:14:27 elf kernel: Nov 7 16:14:27 elf kernel: Unable to handle kernel NULL pointer dereference at virtual address 0 и ид... и модуль остаётся (initializing)
в чём ошибка? ядро 2.4.20-pre11