hi,
I have written a small kernel module to profile an event
in xen. When i invoke "rdmsr", I get general protection error. As far as i
understand, any kernel module is in CPL0, then rdmsr should work in kernel
module. Any help ? Below is log from syslog
-John
general
protection fault: 0000 [#1]
SMP
Modules linked in: hello_printk autofs4
hidp l2cap bluetooth sunrpc ipv6 binfmt_misc dm_mirror dm_multipath dm_mod
video thermal processor fan container button battery ac lp nvram tsdev evdev
i2c_i801 i2c_core piix tg3 r8169 parport_pc parport serio_raw serial_core
usbhid rtc ahci libata shpchp pci_hotplug ext3 jbd ehci_hcd ohci_hcd uhci_hcd
usbcore
CPU: 0
EIP:
0061:[<ee07e023>] Not tainted VLI
EFLAGS:
00010296 (2.6.16.33-xen #337)
EIP is at hello_init+0x23/0x8d
[hello_printk]
eax: 00000000 ebx: 00000119 ecx:
00000119 edx: ff1bbfb4
esi: d9de86b0 edi:
d9de8400 ebp: d9de86d8 esp: d9eafe1c
ds:
007b es: 007b ss: 0069
Process insmod (pid: 11521,
threadinfo=d9eae000 task=c0713030)
Stack: <0>ee1df034 ca680746
0000b06e c0135f05 c013d301 ee1df400 d9de86b0 d9de8400
c0137381 ee1df448 c03916c1 ee1df40c
00000000 00000008 00000003 00000000
ee1df40c ee1df448 ee1df400 00000000 00000000 00000000 00000000 00000000
Call Trace:
[<c0135f05>]
__link_module+0x0/0x1f
[<c013d301>]
stop_machine_run+0x2e/0x34
[<c0137381>]
sys_init_module+0x13e/0x1afb
[<c011e45a>]
printk+0x0/0x1f
[<c0162dc1>]
do_sync_read+0xc3/0xff
[<c0130e9e>]
autoremove_wake_function+0x0/0x37
[<c01540e7>]
do_brk+0x21b/0x220
[<c01c4ca4>]
_atomic_dec_and_lock+0x40/0x5c
[<c0179452>]
dput+0xc3/0x12a
[<c0163fe5>]
__fput+0x137/0x18c
[<c017d1e0>]
mntput_no_expire+0x13/0x6c
[<c0105289>]
syscall_call+0x7/0xb
Code: Bad EIP
value.