[lkml]   [2010]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH 00/31] CAPI: Major rework, tons of bug fixes
    First of all sorry if I'm breaking the correct flow of ISDN patches, but
    I'm under the impression that things currently get merged directly via
    Dave, right?

    This series can also be pulled from

    git:// capi

    As one of the (presumably) few remaining users of an AVM FRITZ!Card DSL
    v2.0, I originally just wanted to finally get that broken proprietary
    driver into a more reliable state. But I actually ended up fixing also
    wide parts of the in-kernel CAPI stack - a job that turned out to be
    almost as "interesting" as hacking on that driver.

    The major issue of the CAPI stack were incomplete or broken locking
    schemes. That caused sporadic crashes, specifically during
    setup/shutdown phases of connections, devices, or whatever dynamic
    objects. But it also affected some code that was executed during normal
    operation. I think I fixed most of those issue, at least all I found via
    code inspection, lockdep runs, and testing. This series in production
    use on my home gateway for two weeks now (under CONFIG_PREEMPT - the
    original stack and driver code only worked acceptably under
    CONFIG_PREEMPT_NONE). I also applied some cleanups, and polished the old
    capifs a bit.

    So the series concludes with removing the experimental tag from the CAPI
    middleware, primarily the kernel's CAPI-speaking gate to user space
    (eg. for use with Asterisk). There also patch to officially claim the
    char major number 191 that CAPI (and likely only CAPI) used in the past

    Note that, although I touched some small parts of it, I did _not_ fix
    any locking issue of the capidrv, the interface to the legacy ISDN
    stack. It is _surely_ broken in similar ways. But while it may also be
    fixable, I rather decided that I'm going to invest a bit time in a
    replacement of the last local user, isdnlog.

    Looking forward to feedback,

    PS: If anyone is interested in the fcdsl2 FRITZ!Card driver rework, you
    can find the current version at


    Jan Kiszka (31):
    CAPI: Fix leaks in capifs_new_ncci
    CAPI: Sanitize capifs API
    CAPI: Eliminate capifs_root variable
    CAPI: Pin capifs instead of mounting it
    CAPI: Reduce chattiness during module loading/removal
    CAPI: Call a controller 'controller', not 'card'
    CAPI: Convert capi drivers rwlock into mutex
    CAPI: Rework capi_ctr_ready/down
    CAPI: Rework controller state notifier
    CAPI: Rework locking of controller data structures
    CAPI: Rework application locking
    CAPI: Reduce #ifdef mess around CONFIG_ISDN_CAPI_MIDDLEWARE
    CAPI: Convert capidev_list_lock into a mutex
    CAPI: Clean up capi_open/release
    CAPI: Rework locking of capidev members
    CAPI: Use non-atomic allocation during NCCI setup
    CAPI: Fix racy capi_read
    CAPI: Switch NCCI list to standard doubly linked list
    CAPI: Fix locking around glueing capiminor and capidev
    CAPI: Drop atomic ttyopencount
    CAPI: Remove useless checks for tty->driver_data or hung up state
    CAPI: Rework tty locking in RX and TX path of capiminor
    CAPI: Rename datahandle_queue -> ackqueue_entry
    CAPI: Use atomics for capiminor's datahandle and msgid
    CAPI: Drop capiminor's unused inbytes counter
    CAPI: Fix locking around capiminor's output queue
    CAPI: Clean up capiminor_*_ack
    CAPI: Drop handle_minor_send return value
    CAPI: Drop special controller lookup from capi20_put_message
    CAPI: Remove experimental tag from middleware feature
    CAPI: Officially claim char major 191

    Documentation/devices.txt | 7 +-
    drivers/isdn/capi/Kconfig | 3 +-
    drivers/isdn/capi/capi.c | 937 ++++++++++++++++++----------------------
    drivers/isdn/capi/capidrv.c | 48 +--
    drivers/isdn/capi/capifs.c | 126 +++---
    drivers/isdn/capi/capifs.h | 21 +-
    drivers/isdn/capi/kcapi.c | 797 ++++++++++++++++++----------------
    drivers/isdn/capi/kcapi.h | 12 +-
    drivers/isdn/capi/kcapi_proc.c | 41 +-
    include/linux/isdn/capilli.h | 2 +-
    include/linux/kernelcapi.h | 17 +-
    11 files changed, 1005 insertions(+), 1006 deletions(-)

     \ /
      Last update: 2010-01-23 00:15    [W:0.027 / U:239.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site