Staging: quatech_usb2: close, read, and some ioctl support
This patch implements close(), read(), write() and some ioctls, and fixes some implementation issues in open(). Compared to the previous patch it doesn't suffer an oops in the module code, however if you try to open any of the serial devices a second time then an oops occurs in tty_open(), presumably because my code isn't playing nicely on the previous close(): Aug 13 11:44:01 [kernel] WARNING: at drivers/char/tty_io.c:1268 tty_open+0x3e5/0x46d() Aug 13 11:44:01 [kernel] Hardware name: HP Compaq dc5100 MT(PW097ET) Aug 13 11:44:01 [kernel] Modules linked in: quatech_usb2(C) usbserial snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss nls_iso8859_1 cifs xt_limit xt_NFLOG nfnetlink_log nfnetlink xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables x_tables i915 fb drm i2c_algo_bit cfbcopyarea i2c_core video backlight output cfbimgblt cfbfillrect snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus uhci_hcd snd_pcm snd_timer usbcore snd ohci1394 psmouse ide_cd_mod cdrom tg3 soundcore snd_page_alloc ieee1394 libphy intel_agp agpgart floppy evdev [last unloaded: usbserial] Aug 13 11:44:01 [kernel] Pid: 26765, comm: stty Tainted: G C 2.6.31-rc5-git3-gkh #7 Aug 13 11:44:01 [kernel] Call Trace: Aug 13 11:44:01 [kernel] [<c11dbef8>] ? tty_open+0x3e5/0x46d Aug 13 11:44:01 [kernel] [<c10264e2>] warn_slowpath_common+0x88/0xb0 Aug 13 11:44:01 [kernel] [<c11dbef8>] ? tty_open+0x3e5/0x46d Aug 13 11:44:01 [kernel] [<c102652b>] warn_slowpath_null+0x21/0x3b Aug 13 11:44:01 [kernel] [<c11dbef8>] tty_open+0x3e5/0x46d Aug 13 11:44:01 [kernel] [<c10883d1>] chrdev_open+0x77/0x113 Aug 13 11:44:01 [kernel] [<c1083a5d>] __dentry_open+0xb8/0x230 Aug 13 11:44:01 [kernel] [<c108835a>] ? chrdev_open+0x0/0x113 Aug 13 11:44:01 [kernel] [<c1084993>] nameidata_to_filp+0x61/0x6a Aug 13 11:44:01 [kernel] [<c1091144>] do_filp_open+0x248/0x7cd Aug 13 11:44:01 [kernel] [<c106f14f>] ? __do_fault+0x2ba/0x3b2 Aug 13 11:44:01 [kernel] [<c109a337>] ? alloc_fd+0x6a/0xf1 Aug 13 11:44:01 [kernel] [<c1083804>] do_sys_open+0x5f/0x12b Aug 13 11:44:01 [kernel] [<c1083947>] sys_open+0x2e/0x47 Aug 13 11:44:01 [kernel] [<c1002e4f>] sysenter_do_call+0x12/0x26 Aug 13 11:44:01 [kernel] ---[ end trace 1d6b9e2cd7636394 ]--- Aug 13 11:44:01 [kernel] BUG: unable to handle kernel NULL pointer dereference at 00000004 Aug 13 11:44:01 [kernel] IP: [<c1086538>] file_move+0x26/0x47 Aug 13 11:44:01 [kernel] *pde = 00000000 Aug 13 11:44:01 [kernel] Modules linked in: quatech_usb2(C) usbserial snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss nls_iso8859_1 cifs xt_limit xt_NFLOG nfnetlink_log nfnetlink xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables x_tables i915 fb drm i2c_algo_bit cfbcopyarea i2c_core video backlight output cfbimgblt cfbfillrect snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus uhci_hcd snd_pcm snd_timer usbcore snd ohci1394 psmouse ide_cd_mod cdrom tg3 soundcore snd_page_alloc ieee1394 libphy intel_agp agpgart floppy evdev [last unloaded: usbserial] Aug 13 11:44:01 [kernel] Pid: 26765, comm: stty Tainted: G WC (2.6.31-rc5-git3-gkh #7) HP Compaq dc5100 MT(PW097ET) Aug 13 11:44:01 [kernel] EIP: 0060:[<c1086538>] EFLAGS: 00010282 CPU: 0 Aug 13 11:44:01 [kernel] EIP is at file_move+0x26/0x47 Aug 13 11:44:01 [kernel] EAX: 00000000 EBX: e593b508 ECX: ea7e9900 EDX: f734a888 Aug 13 11:44:01 [kernel] ESI: 00000000 EDI: 0bc00004 EBP: d8923e10 ESP: d8923e08 Aug 13 11:44:01 [kernel] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 Aug 13 11:44:01 [kernel] 2ba6efc8 c8c93180 d8923e48 c11dbca7 ea7e9900 eed37e6c 00000000 00008800 Aug 13 11:44:01 [kernel] <0> 00000000 e593b400 e593b400 00000004 2ba6efc8 c8c93188 00000000 eed37e6c Aug 13 11:44:01 [kernel] <0> d8923e68 c10883d1 ea7e9900 2ba6efc8 2ba6efc8 ea7e9900 eed37e6c ffffffe9 Aug 13 11:44:01 [kernel] [<c11dbca7>] ? tty_open+0x194/0x46d Aug 13 11:44:01 [kernel] [<c10883d1>] ? chrdev_open+0x77/0x113 Aug 13 11:44:01 [kernel] [<c1083a5d>] ? __dentry_open+0xb8/0x230 Aug 13 11:44:01 [kernel] [<c108835a>] ? chrdev_open+0x0/0x113 Aug 13 11:44:01 [kernel] [<c1084993>] ? nameidata_to_filp+0x61/0x6a Aug 13 11:44:01 [kernel] [<c1091144>] ? do_filp_open+0x248/0x7cd Aug 13 11:44:01 [kernel] [<c106f14f>] ? __do_fault+0x2ba/0x3b2 Aug 13 11:44:01 [kernel] [<c109a337>] ? alloc_fd+0x6a/0xf1 Aug 13 11:44:01 [kernel] [<c1083804>] ? do_sys_open+0x5f/0x12b Aug 13 11:44:01 [kernel] [<c1083947>] ? sys_open+0x2e/0x47 Aug 13 11:44:01 [kernel] [<c1002e4f>] ? sysenter_do_call+0x12/0x26 Aug 13 11:44:01 [kernel] ---[ end trace 1d6b9e2cd7636395 ]--- Read and Write also do not work at the moment, and I'm fairly sure that the URB completion callbacks are not running. Why this is I don't know, and haven't tried to investigate. Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing
Please register or sign in to comment