Dear all: If I remember correctly, the copy_from_user will translate the user mode address by tlb. But why my usb kernel driver will get user mode address as 0x00000070? below is the kernel dump happen on my machine. ehci ehci.0: irq status c028 Async Periodic IAA FLR ehci ehci.0: itd_submit 1 urb 87f20c00 ep1in len 98304, 32 pkts 1 uframes [87b48280] ehci ehci.0: schedule devp 1 ep1in-iso period 1 start 46.0 ehci ehci.0: itd_submit 1 urb 87f20800 ep1in len 98304, 32 pkts 1 uframes [87b48280] ehci ehci.0: irq status c009 Async Periodic FLR INT CPU 0 Unable to handle kernel paging request at virtual address 00000070, epc == c045e8ac, ra == c045e610 Oops[#1]: Cpu 0 $ 0 : 00000000 00000001 00000000 00000007 $ 4 : a7b430bc 00000000 00000000 00000000 $ 8 : 00000008 00000002 8c005400 0000000f $12 : ffffffff 00000008 70000000 ffffffee $16 : 00000000 00000001 a7b45100 40000000 $20 : 20000000 00000000 87387ec0 87387e00 $24 : ffffffb1 ffffffc1 $28 : 87268000 872697a0 87b460bc c045e610 Hi : 00000178 Lo : 00000000 epc : c045e8ac ehci_work+0x640/0xcb4 [ehci_hcd] Not tainted ra : c045e610 ehci_work+0x3a4/0xcb4 [ehci_hcd] Status: 11000002 KERNEL EXL Cause : 40801408 BadVA : 00000070 PrId : 00019655 (MIPS 24Kc) Modules linked in: uvcvideo ehci_hcd usbcore Process a.out (pid: 823, threadinfo=87268000, task=8726a530, tls=00000000) Stack : 87387ec0 00000050 35303830 61376234 00000000 00000000 00000178 0000003a 000000bc 87387efc 000001d6 0000002f 00000800 a7b430bc 00000000 00000004 87387ed0 0000c009 87387ec0 87387e00 00000000 00000002 ffffffff 00000001 00010039 c0465474 81102200 c0466e7c 87893300 87269818 20717269 74617473 63207375 20393030 6e797341 65502063 646f6972 46206369 4920524c 0000544e ... Call Trace: [<c045e8ac>] ehci_work+0x640/0xcb4 [ehci_hcd] [<c0465474>] ehci_irq+0x108/0x524 [ehci_hcd] [<c020ee2c>] usb_hcd_irq+0x50/0xfc [usbcore] [<801687cc>] handle_IRQ_event+0x90/0x188 [<8016a7a0>] handle_percpu_irq+0x54/0xbc [<80109f90>] irq_dispatch+0x40/0x6c [<8010040c>] ret_from_irq+0x0/0x4 [<8013b88c>] __do_softirq+0x7c/0x164 [<8013b9f0>] do_softirq+0x7c/0x84 [<80109f98>] irq_dispatch+0x48/0x6c [<8010040c>] ret_from_irq+0x0/0x4 [<80135d38>] vprintk+0x31c/0x458 [<8010555c>] printk+0x24/0x30 [<c0462e24>] ehci_urb_enqueue+0x5dc/0x13d8 [ehci_hcd] [<c02107b4>] usb_hcd_submit_urb+0x110/0xc5c [usbcore] [<c054b514>] uvc_init_video+0x258/0x494 [uvcvideo] [<c054a2d0>] uvc_v4l2_do_ioctl+0x8f0/0x12c0 [uvcvideo] [<802e5908>] video_usercopy+0x240/0x424 [<801b2d9c>] vfs_ioctl+0xbc/0xcc [<801b2e40>] do_vfs_ioctl+0x94/0x7a0 [<801b3594>] sys_ioctl+0x48/0xc0 [<80102150>] stack_done+0x20/0x3c Code: 00061100 00e21021 24c30007 <8c440070> 00031900 00e31821 7ca24c00 00822023 ac640004 Disabling lock debugging due to kernel taint Kernel panic - not syncing: Fatal exception in interrupt appreciate your help, miloody