[alsa-devel] [PATCH v4] ALSA: fireworks: accessing to user space outside spinlock

Takashi Sakamoto o-takashi at sakamocchi.jp
Wed Aug 31 15:58:41 CEST 2016


Hi,

This patch is a revised version of a part of my previous patchset:

[alsa-devel] [PATCH v3 0/2] ALSA: fireworks/firewire-tascam: accessing to user space outside spinlock
http://mailman.alsa-project.org/pipermail/alsa-devel/2016-August/112366.html


In ALSA fireworks driver, current implementation for hwdep interface have
issues for page fault handling. For example, when using single core processor,
after executing lock_page() in page fault handler and call task scheduler,
then the context never regain CPU again, because any interrupts are disabled
by these drivers and the context can't catch waiting event. This patchset
fixes the issues.

The issues were reported by Vaishali Thakkar, with a help of coccinelle.
Thanks a lot for her care to these minor drivers.
http://mailman.alsa-project.org/pipermail/alsa-devel/2016-August/111887.html

Changes in v4:
 * Give up counting the number of queued response messages to simplify
   ring-buffer management. Instead, comparing pull/push pointers is used
   consistently in any parts.
 * Assign current state to automatic variables in critical section of blocking
   processing part, then utilize it for later processing.

Changes in v3:
 * Add a workaround against a case that several tasks are going to read from
   one response buffer.

Changes in v2:
 * improve designated initialization for automatic variable of union type

Takashi Sakamoto (1):
  ALSA: fireworks: accessing to user space outside spinlock

 sound/firewire/fireworks/fireworks.h             |  1 -
 sound/firewire/fireworks/fireworks_hwdep.c       | 71 +++++++++++++++++-------
 sound/firewire/fireworks/fireworks_proc.c        |  4 +-
 sound/firewire/fireworks/fireworks_transaction.c |  5 +-
 4 files changed, 56 insertions(+), 25 deletions(-)

-- 
2.7.4



More information about the Alsa-devel mailing list