| Age | Commit message (Collapse) | Author |
|
Since timespec is not year 2038 safe on 32bit system, and we need to
convert all timespec variables to timespec64 type for sound subsystem.
This patch is used to do preparation for following patches, that will
convert all structures defined in uapi/sound/asound.h to use 64-bit
time_t.
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
When a new timer instance is created and assigned to the active link
in snd_timer_open(), the caller still doesn't (can't) set its callback
and callback data. In both the user-timer and the sequencer-timer
code, they do manually set up the callbacks after calling
snd_timer_open(). This has a potential risk of race when the timer
instance is added to the already running timer target, as the callback
might get triggered during setting up the callback itself.
This patch tries to address it by changing the API usage slightly:
- An empty timer instance is created at first via the new function
snd_timer_instance_new(). This object isn't linked to the timer
list yet.
- The caller sets up the callbacks and others stuff for the new timer
instance.
- The caller invokes snd_timer_open() with this instance, so that it's
linked to the target timer.
For closing, do similarly:
- Call snd_timer_close(). This unlinks the timer instance from the
timer list.
- Free the timer instance via snd_timer_instance_free() after that.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20191107192008.32331-4-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
The function doesn't return any useful value, so let's make it void to
be clearer.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20191107192008.32331-3-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Based on 1 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license as published by
the free software foundation either version 2 of the license or at
your option any later version this program is distributed in the
hope that it will be useful but without any warranty without even
the implied warranty of merchantability or fitness for a particular
purpose see the gnu general public license for more details you
should have received a copy of the gnu general public license along
with this program if not write to the free software foundation inc
59 temple place suite 330 boston ma 02111 1307 usa
extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-or-later
has been chosen to replace the boilerplate/reference in 1334 file(s).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Richard Fontana <rfontana@redhat.com>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Currently we allow unlimited number of timer instances, and it may
bring the system hogging way too much CPU when too many timer
instances are opened and processed concurrently. This may end up with
a soft-lockup report as triggered by syzkaller, especially when
hrtimer backend is deployed.
Since such insane number of instances aren't demanded by the normal
use case of ALSA sequencer and it merely opens a risk only for abuse,
this patch introduces the upper limit for the number of instances per
timer backend. As default, it's set to 1000, but for the fine-grained
timer like hrtimer, it's set to 100.
Reported-by: syzbot
Tested-by: Jérôme Glisse <jglisse@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Instead of the previous ugly hack, introduce a new op, disconnect, to
snd_timer_instance object for handling the wake up of pending tasks
more cleanly.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109431
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Orignally proposed by Sam Revitch <sam.revitch@gmail.com>.
Unregister device files at disconnection to avoid the futher accesses.
Also, the dev_unregister callback is removed and replaced with the
combination of disconnect + free.
A new function snd_card_free_when_closed() is introduced, which is
used in USB disconnect callback.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
|
|
Modules: RTC timer driver,Timer Midlevel
Remove xxx_t typedefs from the core timer.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Modules: RTC timer driver,Timer Midlevel
Add a module pointer to the timer structure and use it for refcounting
instead of the card's module pointer to prevent the global timer
modules (rtctimer and hpetimer) from being removed while in use.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
|
PCM Midlevel,ALSA Core,Timer Midlevel,ALSA sequencer,Virtual Midi
This patch contains the following possible cleanups:
- make needlessly global code static
- #if 0 the following unused global functions
- remove the following unneeded EXPORT_SYMBOL's
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
Removal and replacement of magic memory allocators and casts (core part)
This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
with kmalloc(), kcalloc() and kfree(), respectively.
The cast via snd_magic_cast() is replaced with the standard cast, too.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Timer Midlevel,ALSA Core
Added early event flag and code to the timer interface.
|
|
- created snd-page-alloc module
- moved all page allocation code there
- preserves preallocated DMA buffers for devices
- USB audio driver updated
- AC'97 - better modem initialization code
- timer API - enhanced (added pause and more event notifications)
- splitted ice1724 code from ice1712 to own module
- general
- timerstamp cleanups (timeval -> timespec)
- C99-like cleanups
- trident driver
- more workaround for wrong IRQ acks
- OSS sequencer emulation
- fixed OOPS (wrong free order)
- more compatible with level 1 of sequencer (/dev/sequencer)
- CS46xx driver updated
- intel8x0 driver updated
- emu10k1 driver updated
|
|
- moved inclusion of <linux/interrupt.h> from <sound/asound.h> to <sound/timer.h>
- pmac driver - removed beep stuff for 2.5 kernels
- USB driver - fixed compilation
|
|
- cmipci driver cleanups (ac3 & surround)
- replaced snd_dma_residue() with snd_dma_pointer()
- GCC 3.3 warnings removal
- timer interface
- recoded using tasklet
- improved slave timer locking (should be much faster)
- added async support
- improved ioctl32 wrapper functions
- fixed Makefile problems (synth modules were build for not selected driver)
- AC97 codec
- improved SPSA control
- moved reset function outside the main init code
- improved ALC650 initialization
- USB driver
- added quirk for Roland XV-2020
|
|
this ALSA update contains
- fixed dependencies for OSS Sequencer emulation code
- fixed wrong verbose printk output
- fixed possible oops in OSS PCM emulation code (silence)
- added snd_timer_del() function
- added integer64 support to control interface
- AC'97 - cleanups for Cirrus Logic codecs (S/PDIF)
- added PCM device for SB AWE synthesizer
- added RME Hammerfall DSP Audio driver by Paul Davis
- renamed rme9652_mem.o module to hammerfall_mem.o
- device naming cleanups in snd-intel8x0
- RME32 driver updates
- VIA8233 driver updates for VIA8233A
- CS4281 code updated to support dual codecs
- Korg1212 driver update (debugging)
- YMFPCI - changed support for rear channel
- improved PPC drivers - AWACS, KEYWEST, TUMBLER
|
|
Integrate ALSA into v2.5.4
Jaroslav
|