1. 30 6月, 2006 2 次提交
  2. 28 6月, 2006 4 次提交
  3. 27 6月, 2006 6 次提交
    • K
      [PATCH] fix processing of the last byte in isdn_readbchan_tty() · 916d1544
      Karsten Keil 提交于
      The changes in the tty handling contain a bug while accessing
      the last byte in the skb. Since special sequence for control of
      DTMF and FAX via ttyI* devices handled via this path, these services
      do not work anymore.
      Signed-off-by: NKarsten Keil <kkeil@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      916d1544
    • T
      [PATCH] isdn4linux: Gigaset driver cleanup · 698e3ed9
      Tilman Schmidt 提交于
      The following patch to the common part of the Siemens Gigaset driver
      prevents it from trying to send the +++ break sequence if the device has
      been disconnected, and removes a couple of assignments which didn't have
      any effect.
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Acked-by: NHansjoerg Lipp <hjlipp@web.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      698e3ed9
    • T
      [PATCH] isdn4linux: Gigaset base driver: improve error recovery · 06163f86
      Tilman Schmidt 提交于
      The following patch to the Siemens Gigaset base driver adds graceful
      recovery for some frequently encountered error conditions, by retrying
      failed control requests (eg.  stalled control pipe), and by closing and
      reopening the AT command channel when it appears to be stuck.
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Acked-by: NHansjoerg Lipp <hjlipp@web.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      06163f86
    • E
      [PATCH] Fix typo in drivers/isdn/hisax/q931.c · 9f13fae2
      Eric Sesterhenn 提交于
      This fixes coverity bug #517.
      
      Since IESIZE is greater than IESIZE_NI1 we might run past the end of
      ielist_ni1.  This fixes it by using the proper IESIZE_NI1 define.
      Signed-off-by: NEric Sesterhenn <snakebyte@gmx.de>
      Acked-by: NKarsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9f13fae2
    • M
      [PATCH] CAPI crash / race condition · 6aa65472
      Michael Buesch 提交于
      I am getting more or less reproducible crashes from the CAPI subsystem
      using the fcdsl driver:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000010
       printing eip:
      c39bbca4
      *pde = 00000000
      Oops: 0000 [#1]
      Modules linked in: netconsole capi capifs 3c59x mii fcdsl kernelcapi uhci_hcd usbcore ide_cd cdrom
      CPU:    0
      EIP:    0060:[<c39bbca4>]    Tainted: P      VLI
      EFLAGS: 00010202   (2.6.16.11 #3)
      EIP is at handle_minor_send+0x17a/0x241 [capi]
      eax: c24abbc0   ebx: c0b4c980   ecx: 00000010   edx: 00000010
      esi: c1679140   edi: c2783016   ebp: 0000c28d   esp: c0327e24
      ds: 007b   es: 007b   ss: 0068
      Process swapper (pid: 0, threadinfo=c0326000 task=c02e1300)
      Stack: <0>000005b4 c1679180 00000000 c28d0000 c1ce04e0 c2f69654 c221604e c1679140
             c39bc19a 00000038 c20c0400 c075c560 c1f2f800 00000000 c01dc9b5 c1e96a40
             c075c560 c2ed64c0 c1e96a40 c01dcd3b c2fb94e8 c075c560 c0327f00 c1e96a40
      Call Trace:
       [<c39bc19a>] capinc_tty_write+0xda/0xf3 [capi]
       [<c01dc9b5>] ppp_sync_push+0x52/0xfe
       [<c01dcd3b>] ppp_sync_send+0x1f5/0x204
       [<c01d9bc1>] ppp_push+0x3e/0x9c
       [<c01dacd4>] ppp_xmit_process+0x422/0x4cc
       [<c01daf3f>] ppp_start_xmit+0x1c1/0x1f6
       [<c0213ea5>] qdisc_restart+0xa7/0x135
       [<c020b112>] dev_queue_xmit+0xba/0x19e
       [<c0223f69>] ip_output+0x1eb/0x236
       [<c0220907>] ip_forward+0x1c1/0x21a
       [<c021fa6c>] ip_rcv+0x38e/0x3ea
       [<c020b4c2>] netif_receive_skb+0x166/0x195
       [<c020b55e>] process_backlog+0x6d/0xd2
       [<c020a30f>] net_rx_action+0x6a/0xff
       [<c0112909>] __do_softirq+0x35/0x7d
       [<c0112973>] do_softirq+0x22/0x26
       [<c0103a9d>] do_IRQ+0x1e/0x25
       [<c010255a>] common_interrupt+0x1a/0x20
       [<c01013c5>] default_idle+0x2b/0x53
       [<c0101426>] cpu_idle+0x39/0x4e
       [<c0328386>] start_kernel+0x20b/0x20d
      Code: c0 e8 b3 b6 77 fc 85 c0 75 10 68 d8 c8 9b c3 e8 82 3d 75 fc 8b 43 60 5a eb 50 8d 56 50 c7 00 00 00 00 00 66 89 68 04 eb 02 89
      ca <8b> 0a 85 c9 75 f8 89 02 89 da ff 46 54 8b 46 10 e8 30 79 fd ff
       <0>Kernel panic - not syncing: Fatal exception in interrupt
      
      That oops took me to the "ackqueue" implementation in capi.c.  The crash
      occured in capincci_add_ack() (auto-inlined by the compiler).
      
      I read the code a bit and finally decided to replace the custom linked list
      implementation (struct capiminor->ackqueue) by a struct list_head.  That
      did not solve the crash, but produced the following interresting oops:
      
      Unable to handle kernel paging request at virtual address 00200200
       printing eip:
      c39bb1f5
      *pde = 00000000
      Oops: 0002 [#1]
      Modules linked in: netconsole capi capifs 3c59x mii fcdsl kernelcapi uhci_hcd usbcore ide_cd cdrom
      CPU:    0
      EIP:    0060:[<c39bb1f5>]    Tainted: P      VLI
      EFLAGS: 00010246   (2.6.16.11 #3)
      EIP is at capiminor_del_ack+0x18/0x49 [capi]
      eax: 00200200   ebx: c18d41a0   ecx: c1385620   edx: 00100100
      esi: 0000d147   edi: 00001103   ebp: 0000d147   esp: c1093f3c
      ds: 007b   es: 007b   ss: 0068
      Process events/0 (pid: 3, threadinfo=c1092000 task=c1089030)
      Stack: <0>c2a17580 c18d41a0 c39bbd16 00000038 c18d41e0 00000000 d147c640 c29e0b68
             c29e0b90 00000212 c29e0b68 c39932b2 c29e0bb0 c10736a0 c0119ef0 c399326c
             c10736a8 c10736a0 c10736b0 c0119f93 c011a06e 00000001 00000000 00000000
      Call Trace:
       [<c39bbd16>] handle_minor_send+0x1af/0x241 [capi]
       [<c39932b2>] recv_handler+0x46/0x5f [kernelcapi]
       [<c0119ef0>] run_workqueue+0x5e/0x8d
       [<c399326c>] recv_handler+0x0/0x5f [kernelcapi]
       [<c0119f93>] worker_thread+0x0/0x10b
       [<c011a06e>] worker_thread+0xdb/0x10b
       [<c010c998>] default_wake_function+0x0/0xc
       [<c011c399>] kthread+0x90/0xbc
       [<c011c309>] kthread+0x0/0xbc
       [<c0100a65>] kernel_thread_helper+0x5/0xb
      Code: 7e 02 89 ee 89 f0 5a f7 d0 c1 f8 1f 5b 21 f0 5e 5f 5d c3 56 53 8b 48 50 89 d6 89 c3 8b 11 eb 2f 66 39 71 08 75 25 8b 41 04 8b 11 <89> 10 89 42 04 c7 01 00 01 10 00 89 c8 c7 41 04 00 02 20 00 e8
      
      The interresting part of it is the "virtual address 00200200", which is
      LIST_POISON2.  I thought about some race condition, but as this is an UP
      system, it leads to questions on how it can happen.  If we look at EFLAGS:
      00010202, we see that interrupts are enabled at the time of the crash
      (eflags & 0x200).
      
      Finally, I don't understand all the capi code, but I think that
      handle_minor_send() is racing somehow against capi_recv_message(), which
      call both capiminor_del_ack().  So if an IRQ occurs in the middle of
      capiminor_del_ack() and another instance of it is invoked, it leads to
      linked list corruption.
      
      I came up with the following patch.  With this, I could not reproduce the
      crash anymore.  Clearly, this is not the correct fix for the issue.  As this
      seems to be some locking issue, there might be more locking issues in that
      code.  For example, doesn't the whole struct capiminor have to be locked
      somehow?
      
      Cc: Carsten Paeth <calle@calle.de>
      Cc: Kai Germaschewski <kai.germaschewski@gmx.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6aa65472
    • A
      spelling fixes · d6e05edc
      Andreas Mohr 提交于
      acquired (aquired)
      contiguous (contigious)
      successful (succesful, succesfull)
      surprise (suprise)
      whether (weather)
      some other misspellings
      Signed-off-by: NAndreas Mohr <andi@lisas.de>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      d6e05edc
  4. 23 6月, 2006 3 次提交
    • J
      [PATCH] ISDN: correctly handle isdn_writebuf_stub() errors · d20d04bc
      Jesper Juhl 提交于
      isdn_writebuf_stub() forgets to detect memory allocation and uaccess errors.
      And when that's fixed, if a error happens the caller will just keep on
      looping.
      
      So change the caller to detect the error, and to return it.
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d20d04bc
    • J
      [PATCH] i4l: memory leak fix for sc_ioctl(). · 94a6735c
      Jesper Juhl 提交于
      Fix leak of `rcvmsg' in sc_ioctl().
      
      There are two returns in the switch in sc_ioctl (the SCIOCSTART case) that
      may leak `rcvmsg'.  This patch fixes that by adding a kfree() call at the
      beginning of that case.
      
      Bug found by the coverity checker as #1098
      
      Eric Sesterhenn send me a patch to fix the leak(s) by adding 2 kfree()
      calls before the returns, I changed that into just a single call at the
      beginning.
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      94a6735c
    • D
      [PATCH] VFS: Permit filesystem to override root dentry on mount · 454e2398
      David Howells 提交于
      Extend the get_sb() filesystem operation to take an extra argument that
      permits the VFS to pass in the target vfsmount that defines the mountpoint.
      
      The filesystem is then required to manually set the superblock and root dentry
      pointers.  For most filesystems, this should be done with simple_set_mnt()
      which will set the superblock pointer and then set the root dentry to the
      superblock's s_root (as per the old default behaviour).
      
      The get_sb() op now returns an integer as there's now no need to return the
      superblock pointer.
      
      This patch permits a superblock to be implicitly shared amongst several mount
      points, such as can be done with NFS to avoid potential inode aliasing.  In
      such a case, simple_set_mnt() would not be called, and instead the mnt_root
      and mnt_sb would be set directly.
      
      The patch also makes the following changes:
      
       (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount
           pointer argument and return an integer, so most filesystems have to change
           very little.
      
       (*) If one of the convenience function is not used, then get_sb() should
           normally call simple_set_mnt() to instantiate the vfsmount. This will
           always return 0, and so can be tail-called from get_sb().
      
       (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the
           dcache upon superblock destruction rather than shrink_dcache_anon().
      
           This is required because the superblock may now have multiple trees that
           aren't actually bound to s_root, but that still need to be cleaned up. The
           currently called functions assume that the whole tree is rooted at s_root,
           and that anonymous dentries are not the roots of trees which results in
           dentries being left unculled.
      
           However, with the way NFS superblock sharing are currently set to be
           implemented, these assumptions are violated: the root of the filesystem is
           simply a dummy dentry and inode (the real inode for '/' may well be
           inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries
           with child trees.
      
           [*] Anonymous until discovered from another tree.
      
       (*) The documentation has been adjusted, including the additional bit of
           changing ext2_* into foo_* in the documentation.
      
      [akpm@osdl.org: convert ipath_fs, do other stuff]
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
      Cc: Nathan Scott <nathans@sgi.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      454e2398
  5. 22 6月, 2006 1 次提交
  6. 22 5月, 2006 1 次提交
  7. 16 5月, 2006 2 次提交
  8. 23 4月, 2006 1 次提交
    • T
      [PATCH] isdn4linux: Siemens Gigaset base driver: fix disconnect handling · 73a88814
      Tilman Schmidt 提交于
      Fix a possible Oops in the Siemens Gigaset base driver when the device is
      unplugged while an ISDN connection is still active, and makes sure that the
      isdn4linux link level (LL) is properly informed if a connection is broken
      by the USB cable being unplugged.
      
      - Avoid unsafe checks of URB status fields outside the URB completion
        handlers, keep track of in-use URBs myself instead.
      
      - If an isochronous transfer URB completes with status==0, also check the
        status of the frame descriptors.
      
      - Verify length of interrupt messages received from the device.
      
      - Align the length limit on transmitted AT commands with the device
        documentation.
      
      - In case of AT response receive overrun, keep newly arrived instead of old
        unread data.
      
      - Remove redundant check of device ID in the USB probe function.
      
      - Correct and improve some comments and formatting.
      Signed-off-by: NTilman Schmidt <tilman@imap.cc>
      Acked-by: NHansjoerg Lipp <hjlipp@web.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      73a88814
  9. 12 4月, 2006 1 次提交
  10. 11 4月, 2006 15 次提交
  11. 01 4月, 2006 1 次提交
  12. 31 3月, 2006 3 次提交