code: /* * This is a new device mapper target */ #include "dm.h" #include #include #include static int newtarget_ctr(struct dm_target *target, unsigned int argc, char **argv) { printk(KERN_ALERT "New target constructor function\n"); /*Successful execution - return 0*/ return 0; } static struct target_type new_target = { .name = "newtarget", .version = {1, 0, 0}, .module = THIS_MODULE, .ctr = newtarget_ctr, }; static int __init newtarget_init(void) { int r; printk(KERN_ALERT "New target module is being loaded...\n"); /*Register the target*/ r=dm_register_target(&new_target); if(r < 0) { DMERR("New target registration failed - Error code :%d\n",r); } return r; } static void __exit newtarget_exit(void) { int r; printk(KERN_ALERT "New target module is being unloaded...\n"); /*unregister the target*/ r=dm_unregister_target(&new_target); if(r < 0) { DMERR("New target unsregistration failed - Error code : %d\n",r); } } module_init(newtarget_init); module_exit(newtarget_exit); var/log/messages: May 7 13:30:42 blr-vm1 kernel: New target module is being loaded... May 7 13:34:14 blr-vm1 kernel: New target constructor function<1>Unable to handle kernel NULL pointer dereference at virtual address 00000000 May 7 13:34:14 blr-vm1 kernel: printing eip: May 7 13:34:14 blr-vm1 kernel: 00000000 May 7 13:34:14 blr-vm1 kernel: *pde = 00000000 May 7 13:34:14 blr-vm1 kernel: Oops: 0000 [#1] May 7 13:34:14 blr-vm1 kernel: last sysfs file: /block/sda/sda1/stat May 7 13:34:14 blr-vm1 kernel: Modules linked in: dm_newtarget dm_snapshot xt_pkttype ipt_LOG xt_limit af_packet button battery ac ip6t_REJECT xt_tcpudp ipt_REJECT xt_state iptable_mangle iptable_nat ip_nat iptable_filter ip6table_mangle ip_conntrack nfnetlink ip_tables ip6table_filter ip6_tables x_tables ipv6 apparmor aamatch_pcre loop dm_mod intel_agp agpgart pcnet32 mii i2c_piix4 i2c_core shpchp pci_hotplug ide_cd cdrom parport_pc lp parport reiserfs edd fan thermal processor sg ide_generic mptspi mptscsih mptbase scsi_transport_spi piix sd_mod scsi_mod ide_disk ide_core May 7 13:34:14 blr-vm1 kernel: CPU: 0 May 7 13:34:14 blr-vm1 kernel: EIP: 0060:[<00000000>] Tainted: P U VLI May 7 13:34:14 blr-vm1 kernel: EFLAGS: 00010202 (2.6.16.21-0.8-default #1) May 7 13:34:14 blr-vm1 kernel: EIP is at _stext+0x3feffdc0/0x29 May 7 13:34:14 blr-vm1 kernel: eax: f8806080 ebx: ec5b5ec0 ecx: d4cf73b0 edx: f5abe8c0 May 7 13:34:14 blr-vm1 kernel: esi: d4cf73a8 edi: f5abe8c0 ebp: f8806080 esp: d4629c04 May 7 13:34:14 blr-vm1 kernel: ds: 007b es: 007b ss: 0068 May 7 13:34:14 blr-vm1 kernel: Process vol_id (pid: 27301, threadinfo=d4628000 task=ef14e030) May 7 13:34:14 blr-vm1 kernel: Stack: <0>f8fe2245 000000c4 f38adbc0 d4cf73b8 d4cf73a8 f8fe24fe 00000000 00000001 May 7 13:34:14 blr-vm1 kernel: 00000004 f5abee40 f38adbc0 c014c670 f7fc0b98 000000c4 00000000 f73fbc00 May 7 13:34:14 blr-vm1 kernel: dfea9824 d4629d98 f8806080 f7fc0b98 00000000 00000002 00000b98 00000004 May 7 13:34:14 blr-vm1 kernel: Call Trace: May 7 13:34:14 blr-vm1 kernel: [] __map_bio+0x36/0x71 [dm_mod] May 7 13:34:14 blr-vm1 kernel: [] __split_bio+0x16b/0x3fa [dm_mod] May 7 13:34:15 blr-vm1 kernel: [] __find_get_block+0x123/0x139 May 7 13:34:15 blr-vm1 kernel: [] dm_request+0xed/0x101 [dm_mod] May 7 13:34:15 blr-vm1 kernel: [] generic_make_request+0x167/0x177 May 7 13:34:15 blr-vm1 kernel: [] mempool_alloc+0x28/0x9e May 7 13:34:15 blr-vm1 kernel: [] submit_bio+0xa6/0xad May 7 13:34:15 blr-vm1 kernel: [] bio_alloc_bioset+0x9b/0xf3 May 7 13:34:15 blr-vm1 kernel: [] submit_bh+0xde/0xfc May 7 13:34:15 blr-vm1 kernel: [] block_read_full_page+0x24c/0x25d May 7 13:34:15 blr-vm1 kernel: [] blkdev_get_block+0x0/0x42 May 7 13:34:15 blr-vm1 kernel: [] add_to_page_cache+0x28/0x58 May 7 13:34:15 blr-vm1 kernel: [] __do_page_cache_readahead+0x12f/0x18b May 7 13:34:15 blr-vm1 kernel: [] copy_to_user+0x36/0x4a May 7 13:34:15 blr-vm1 kernel: [] memcpy_toiovec+0x28/0x4b May 7 13:34:15 blr-vm1 kernel: [] blockable_page_cache_readahead+0x46/0x9a May 7 13:34:15 blr-vm1 kernel: [] page_cache_readahead+0xf3/0x146 May 7 13:34:15 blr-vm1 kernel: [] do_generic_mapping_read+0x124/0x3eb May 7 13:34:15 blr-vm1 kernel: [] __generic_file_aio_read+0x148/0x18f May 7 13:34:15 blr-vm1 kernel: [] file_read_actor+0x0/0xd1 May 7 13:34:15 blr-vm1 kernel: [] generic_file_read+0x0/0xac May 7 13:34:15 blr-vm1 kernel: [] generic_file_read+0x98/0xac May 7 13:34:15 blr-vm1 kernel: [] autoremove_wake_function+0x0/0x2d May 7 13:34:15 blr-vm1 kernel: [] sk_free+0xab/0xd3 May 7 13:34:15 blr-vm1 kernel: [] mutex_lock+0xb/0x18 May 7 13:34:15 blr-vm1 kernel: [] block_llseek+0x88/0x98 May 7 13:34:15 blr-vm1 kernel: [] vfs_read+0xa8/0x14d May 7 13:34:15 blr-vm1 kernel: [] sys_read+0x3c/0x63 May 7 13:34:15 blr-vm1 kernel: [] sysenter_past_esp+0x54/0x79 May 7 13:34:15 blr-vm1 kernel: Code: Bad EIP value.