From: Andy Walls <awalls@md.metrocast.net>
To: linux-media@vger.kernel.org
Subject: [PATCH 0/13] lirc_zilog: Ref-counting and locking cleanup
Date: Thu, 17 Feb 2011 20:11:42 -0500 [thread overview]
Message-ID: <1297991502.9399.16.camel@localhost> (raw)
The following 13 patches are a substantial rework of lirc_zilog
reference counting, object allocation and deallocation, and object
locking.
With these changes, devices can now disappear out from under lircd +
lirc_dev + lirc_zilog with no adverse effects. I tested this with irw +
lircd + lirc_dev + lirc_zilog + cx18 + HVR-1600. I could unload the
cx18 driver without any oops or application crashes. When I reloaded
the cx18 driver, irw started receiving RX button presses again, and
irsend worked without a problem (and I didn't even need to restart
lircd!).
The ref counting fixes aren't finished as lirc_zilog itself can still be
unloaded by the user when it shouldn't be, but a hot unplug of an
HD-PVR, PVR-USB2, or HVR-1950 isn't going to trigger that.
These changes are base off of Jarod Wilson's git repo
http://git.linuxtv.org/jarod/linux-2.6-ir.git for-2.6.38 (IIRC)
Regards,
Andy
The following changes since commit c369acfb63914f9f502baef032bacfd5a53a871f:
mceusb: really fix remaining keybounce issues (2011-01-26 10:56:29 -0500)
are available in the git repository at:
ssh://linuxtv.org/git/awalls/media_tree.git z8-wilson-38
Andy Walls (13):
lirc_zilog: Restore checks for existence of the IR_tx object
lirc_zilog: Remove broken, ineffective reference counting
lirc_zilog: Convert ir_device instance array to a linked list
lirc_zilog: Convert the instance open count to an atomic_t
lirc_zilog: Use kernel standard methods for marking device non-seekable
lirc_zilog: Don't acquire the rx->buf_lock in the poll() function
lirc_zilog: Remove unneeded rx->buf_lock
lirc_zilog: Always allocate a Rx lirc_buffer object
lirc_zilog: Move constants from ir_probe() into the lirc_driver template
lirc_zilog: Add ref counting of struct IR, IR_tx, and IR_rx
lirc_zilog: Add locking of the i2c_clients when in use
lirc_zilog: Fix somewhat confusing information messages in ir_probe()
lirc_zilog: Update TODO list based on work completed and revised plans
drivers/staging/lirc/TODO.lirc_zilog | 51 +--
drivers/staging/lirc/lirc_zilog.c | 802 +++++++++++++++++++++-------------
2 files changed, 523 insertions(+), 330 deletions(-)
next reply other threads:[~2011-02-18 1:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-18 1:11 Andy Walls [this message]
2011-02-18 1:12 ` [PATCH 01/13] lirc_zilog: Restore checks for existence of the IR_tx object Andy Walls
2011-02-18 1:13 ` [PATCH 02/13] lirc_zilog: Remove broken, ineffective reference counting Andy Walls
2011-02-18 1:14 ` [PATCH 03/13] lirc_zilog: Convert ir_device instance array to a linked list Andy Walls
2011-02-18 1:15 ` [PATCH 04/13] lirc_zilog: Convert the instance open count to an atomic_t Andy Walls
2011-02-18 1:15 ` [PATCH 05/13] lirc_zilog: Use kernel standard methods for marking device non-seekable Andy Walls
2011-02-18 1:16 ` [PATCH 06/13] lirc_zilog: Don't acquire the rx->buf_lock in the poll() function Andy Walls
2011-02-18 1:17 ` [PATCH 07/13] lirc_zilog: Remove unneeded rx->buf_lock Andy Walls
2011-02-18 1:18 ` [PATCH 08/13] lirc_zilog: Always allocate a Rx lirc_buffer object Andy Walls
2011-02-18 1:19 ` [PATCH 09/13] lirc_zilog: Move constants from ir_probe() into the lirc_driver template Andy Walls
2011-02-18 1:20 ` [PATCH 10/13] lirc_zilog: Add ref counting of struct IR, IR_tx, and IR_rx Andy Walls
2011-02-18 1:20 ` [PATCH 11/13] lirc_zilog: Add locking of the i2c_clients when in use Andy Walls
2011-02-18 1:21 ` [PATCH 12/13] lirc_zilog: Fix somewhat confusing information messages in ir_probe() Andy Walls
2011-02-18 1:22 ` [PATCH 13/13] lirc_zilog: Update TODO list based on work completed and revised plans Andy Walls
2011-03-06 4:00 ` [PATCH 0/13] lirc_zilog: Ref-counting and locking cleanup Jarod Wilson
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=1297991502.9399.16.camel@localhost \
--to=awalls@md.metrocast.net \
--cc=linux-media@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