Subject: [PATCH v2 00/41] CAPI: Major rework, tons of bug fixes

From: Jan Kiszka <[email-masked]>
Date: Mon, 8 Feb 2010 21:12:04 +0100

Here is the second take of my CAPI rework. I tried to address all
feedback on v1, so this one comes with the following changes:

 o rebased over net-next
 o reworked locking of the NCCI TTY using latest and greatest tty_port
   features and kref, hopefully in the right way
 o more fine-grained patch steps for the tricky TTY rework
 o dynamic major for NCCI TTYs, ie. CAPI no longer claims 191
 o dynamic TTY minor registrations, completely obsoleting capifs
 o schedule capifs for removal
 o some small additional cleanups

I kept my capifs fixes though this thing should die in the future. The
work is done, and people may still use it due to their distro
configuration (and the hard-wired loading by capiinit - needs fixing).

You can pull this series from

	git://git.kiszka.org/linux-2.6.git capi

Jan

Jan Kiszka (41):
  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: Switch capiminor list to array
  CAPI: Clean up capinc_tty_init/exit
  CAPI: Dynamically register minor devices
  CAPI: Use dynamic major for NCCI TTYs by default
  CAPI: Use kref on capiminor
  CAPI: Establish install/cleanup handlers for capiminor TTYs
  CAPI: Use tty_port to keep track of capiminor's tty
  CAPI: Drop remaining NULL checks on tty->driver_data
  CAPI: Issue synchronous hangup on capincci_free_minor
  CAPI: Drop obsolete nccip from capiminor struct
  CAPI: Clean up capiminors_lock
  CAPI: Drop atomic ttyopencount
  CAPI: Drop handle_minor_recv from capinc_tty_write
  CAPI: Rework capiminor RX handler
  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 and drop
    workaround_lock
  CAPI: Clean up capiminor_*_ack
  CAPI: Drop return value of handle_minor_send
  CAPI: Drop special controller lookup from capi20_put_message
  CAPI: Schedule capifs for removal
  CAPI: Remove experimental tag from middleware feature

 Documentation/feature-removal-schedule.txt |   10 +
 drivers/isdn/capi/Kconfig                  |   16 +-
 drivers/isdn/capi/capi.c                   | 1108 ++++++++++++++--------------
 drivers/isdn/capi/capidrv.c                |   48 +-
 drivers/isdn/capi/capifs.c                 |  126 ++--
 drivers/isdn/capi/capifs.h                 |   21 +-
 drivers/isdn/capi/kcapi.c                  |  805 +++++++++++---------
 drivers/isdn/capi/kcapi.h                  |   13 +-
 drivers/isdn/capi/kcapi_proc.c             |   41 +-
 include/linux/isdn/capilli.h               |    5 +-
 include/linux/kernelcapi.h                 |   17 +-
 11 files changed, 1151 insertions(+), 1059 deletions(-)