From: Jan Kiszka <jan.kiszka@web.de>
To: David Miller <davem@davemloft.net>, Karsten Keil <isdn@linux-pingi.de>
Cc: linux-kernel@vger.kernel.org,
i4ldeveloper@listserv.isdn4linux.de,
isdn4linux@listserv.isdn4linux.de, netdev@vger.kernel.org
Subject: [PATCH 00/31] CAPI: Major rework, tons of bug fixes
Date: Sat, 23 Jan 2010 00:03:26 +0100 [thread overview]
Message-ID: <cover.1264201406.git.jan.kiszka@web.de> (raw)
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://git.kiszka.org/linux-2.6.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
decade.
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,
Jan
PS: If anyone is interested in the fcdsl2 FRITZ!Card driver rework, you
can find the current version at
git://git.kiszka.org/fcdsl2.git
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(-)
next reply other threads:[~2010-01-22 23:03 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-22 23:03 Jan Kiszka [this message]
2010-01-06 10:43 ` [PATCH 01/31] CAPI: Fix leaks in capifs_new_ncci Jan Kiszka
2010-01-06 10:47 ` [PATCH 05/31] CAPI: Reduce chattiness during module loading/removal Jan Kiszka
2010-01-06 13:38 ` [PATCH 02/31] CAPI: Sanitize capifs API Jan Kiszka
2010-01-06 13:49 ` [PATCH 03/31] CAPI: Eliminate capifs_root variable Jan Kiszka
2010-01-06 14:03 ` [PATCH 04/31] CAPI: Pin capifs instead of mounting it Jan Kiszka
2010-01-06 18:02 ` [PATCH 07/31] CAPI: Convert capi drivers rwlock into mutex Jan Kiszka
2010-01-06 18:55 ` [PATCH 06/31] CAPI: Call a controller 'controller', not 'card' Jan Kiszka
2010-01-07 10:53 ` [PATCH 08/31] CAPI: Rework capi_ctr_ready/down Jan Kiszka
2010-01-07 11:04 ` [PATCH 10/31] CAPI: Rework locking of controller data structures Jan Kiszka
2010-01-07 12:36 ` [PATCH 11/31] CAPI: Rework application locking Jan Kiszka
2010-01-07 17:42 ` [PATCH 12/31] CAPI: Reduce #ifdef mess around CONFIG_ISDN_CAPI_MIDDLEWARE Jan Kiszka
2010-01-07 18:16 ` [PATCH 13/31] CAPI: Convert capidev_list_lock into a mutex Jan Kiszka
2010-01-07 18:24 ` [PATCH 14/31] CAPI: Clean up capi_open/release Jan Kiszka
2010-01-07 19:12 ` [PATCH 15/31] CAPI: Rework locking of capidev members Jan Kiszka
2010-01-07 19:21 ` [PATCH 16/31] CAPI: Use non-atomic allocation during NCCI setup Jan Kiszka
2010-01-07 19:38 ` [PATCH 17/31] CAPI: Fix racy capi_read Jan Kiszka
2010-01-07 20:52 ` [PATCH 18/31] CAPI: Switch NCCI list to standard doubly linked list Jan Kiszka
2010-01-08 9:45 ` [PATCH 19/31] CAPI: Fix locking around glueing capiminor and capidev Jan Kiszka
2010-01-08 10:38 ` [PATCH 20/31] CAPI: Drop atomic ttyopencount Jan Kiszka
2010-01-08 11:00 ` [PATCH 21/31] CAPI: Remove useless checks for tty->driver_data or hung up state Jan Kiszka
2010-01-08 11:39 ` [PATCH 23/31] CAPI: Rename datahandle_queue -> ackqueue_entry Jan Kiszka
2010-01-08 11:46 ` [PATCH 24/31] CAPI: Use atomics for capiminor's datahandle and msgid Jan Kiszka
2010-01-08 11:57 ` [PATCH 25/31] CAPI: Drop capiminor's unused inbytes counter Jan Kiszka
2010-01-08 12:43 ` [PATCH 26/31] CAPI: Fix locking around capiminor's output queue Jan Kiszka
2010-01-08 12:49 ` [PATCH 27/31] CAPI: Clean up capiminor_*_ack Jan Kiszka
2010-01-08 13:38 ` [PATCH 22/31] CAPI: Rework tty locking in RX and TX path of capiminor Jan Kiszka
2010-01-08 14:11 ` [PATCH 28/31] CAPI: Drop handle_minor_send return value Jan Kiszka
2010-01-10 10:24 ` [PATCH 09/31] CAPI: Rework controller state notifier Jan Kiszka
2010-01-10 13:07 ` [PATCH 29/31] CAPI: Drop special controller lookup from capi20_put_message Jan Kiszka
2010-01-10 13:12 ` [PATCH 30/31] CAPI: Remove experimental tag from middleware feature Jan Kiszka
2010-01-23 12:23 ` Alan Cox
2010-01-23 13:13 ` Jan Kiszka
2010-01-23 13:56 ` Alan Cox
2010-01-10 13:21 ` [PATCH 31/31] CAPI: Officially claim char major 191 Jan Kiszka
2010-01-23 12:24 ` Alan Cox
2010-01-23 12:48 ` Marcel Holtmann
2010-01-23 13:13 ` Jan Kiszka
2010-01-23 14:25 ` Marcel Holtmann
2010-01-23 13:32 ` Karsten Keil
2010-01-23 14:28 ` Marcel Holtmann
2010-01-23 14:49 ` Jan Kiszka
2010-01-23 9:18 ` [PATCH 00/31] CAPI: Major rework, tons of bug fixes David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1264201406.git.jan.kiszka@web.de \
--to=jan.kiszka@web.de \
--cc=davem@davemloft.net \
--cc=i4ldeveloper@listserv.isdn4linux.de \
--cc=isdn4linux@listserv.isdn4linux.de \
--cc=isdn@linux-pingi.de \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).