25 Mar, 2020

4 commits

  • commit 5461e0530c222129dfc941058be114b5cbc00837 upstream.

    The return value checks in snd_pcm_plug_alloc() are covered with
    snd_BUG_ON() macro that may trigger a kernel WARNING depending on the
    kconfig. But since the error condition can be triggered by a weird
    user space parameter passed to OSS layer, we shouldn't give the kernel
    stack trace just for that. As it's a normal error condition, let's
    remove snd_BUG_ON() macro usage there.

    Reported-by: syzbot+2a59ee7a9831b264f45e@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/20200312155730.7520-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f2ecf903ef06eb1bbbfa969db9889643d487e73a upstream.

    Each OSS PCM plugins allocate its internal buffer per pre-calculation
    of the max buffer size through the chain of plugins (calling
    src_frames and dst_frames callbacks). This works for most plugins,
    but the rate plugin might behave incorrectly. The calculation in the
    rate plugin involves with the fractional position, i.e. it may vary
    depending on the input position. Since the buffer size
    pre-calculation is always done with the offset zero, it may return a
    shorter size than it might be; this may result in the out-of-bound
    access as spotted by fuzzer.

    This patch addresses those possible buffer overflow accesses by simply
    setting the upper limit per the given buffer size for each plugin
    before src_frames() and after dst_frames() calls.

    Reported-by: syzbot+e1fe9f44fb8ecf4fb5dd@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/000000000000b25ea005a02bcf21@google.com
    Link: https://lore.kernel.org/r/20200309082148.19855-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 6c3171ef76a0bad892050f6959a7eac02fb16df7 upstream.

    This is a similar bug like the previous case for virmidi: the invalid
    running status is kept after receiving a sysex message.

    Again the fix is to clear the running status after handling the sysex.

    Cc:
    Link: https://lore.kernel.org/r/3b4a4e0f232b7afbaf0a843f63d0e538e3029bfd.camel@domdv.de
    Link: https://lore.kernel.org/r/20200316090506.23966-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 4384f167ce5fa7241b61bb0984d651bc528ddebe upstream.

    The virmidi driver handles sysex event exceptionally in a short-cut
    snd_seq_dump_var_event() call, but this missed the reset of the
    running status. As a result, it may lead to an incomplete command
    right after the sysex when an event with the same running status was
    queued.

    Fix it by clearing the running status properly via alling
    snd_midi_event_reset_decode() for that code path.

    Reported-by: Andreas Steinmetz
    Cc:
    Link: https://lore.kernel.org/r/3b4a4e0f232b7afbaf0a843f63d0e538e3029bfd.camel@domdv.de
    Link: https://lore.kernel.org/r/20200316090506.23966-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

29 Feb, 2020

2 commits

  • commit dc7497795e014d84699c3b8809ed6df35352dd74 upstream.

    snd_seq_check_queue() passes the current tick and time of the given
    queue as a pointer to snd_seq_prioq_cell_out(), but those might be
    updated concurrently by the seq timer update.

    Fix it by retrieving the current tick and time via the proper helper
    functions at first, and pass those values to snd_seq_prioq_cell_out()
    later in the loops.

    snd_seq_timer_get_cur_time() takes a new argument and adjusts with the
    current system time only when it's requested so; this update isn't
    needed for snd_seq_check_queue(), as it's called either from the
    interrupt handler or right after queuing.

    Also, snd_seq_timer_get_cur_tick() is changed to read the value in the
    spinlock for the concurrency, too.

    Reported-by: syzbot+fd5e0eaa1a32999173b2@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20200214111316.26939-3-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit bb51e669fa49feb5904f452b2991b240ef31bc97 upstream.

    The queue flags are represented in bit fields and the concurrent
    access may result in unexpected results. Although the current code
    should be mostly OK as it's only reading a field while writing other
    fields as KCSAN reported, it's safer to cover both with a proper
    spinlock protection.

    This patch fixes the possible concurrent read by protecting with
    q->owner_lock. Also the queue owner field is protected as well since
    it's the field to be protected by the lock itself.

    Reported-by: syzbot+65c6c92d04304d0a8efc@syzkaller.appspotmail.com
    Reported-by: syzbot+e60ddfa48717579799dd@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20200214111316.26939-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

24 Feb, 2020

1 commit

  • [ Upstream commit d61fe22c2ae42d9fd76c34ef4224064cca4b04b0 ]

    A design of ALSA control core allows applications to execute three
    operations for TLV feature; read, write and command. Furthermore, it
    allows driver developers to process the operations by two ways; allocated
    array or callback function. In the former, read operation is just allowed,
    thus developers uses the latter when device driver supports variety of
    models or the target model is expected to dynamically change information
    stored in TLV container.

    The core also allows applications to lock any element so that the other
    applications can't perform write operation to the element for element
    value and TLV information. When the element is locked, write and command
    operation for TLV information are prohibited as well as element value.
    Any read operation should be allowed in the case.

    At present, when an element has callback function for TLV information,
    TLV read operation returns EPERM if the element is locked. On the
    other hand, the read operation is success when an element has allocated
    array for TLV information. In both cases, read operation is success for
    element value expectedly.

    This commit fixes the bug. This change can be backported to v4.14
    kernel or later.

    Signed-off-by: Takashi Sakamoto
    Reviewed-by: Jaroslav Kysela
    Link: https://lore.kernel.org/r/20191223093347.15279-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Sakamoto
     

23 Jan, 2020

1 commit

  • commit 60adcfde92fa40fcb2dbf7cc52f9b096e0cd109a upstream.

    snd_seq_info_timer_read() reads the information of the timer assigned
    for each queue, but it's done in a racy way which may lead to UAF as
    spotted by syzkaller.

    This patch applies the missing q->timer_mutex lock while accessing the
    timer object as well as a slight code change to adapt the standard
    coding style.

    Reported-by: syzbot+2b2ef983f973e5c40943@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/20200115203733.26530-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

09 Jan, 2020

1 commit

  • commit 2406ff9b86aa1b77fe1a6d15f37195ac1fdb2a14 upstream.

    For non-x86 architectures, SNDRV_DMA_TYPE_DEV_UC should be treated
    equivalent with SNDRV_DMA_TYPE_DEV, where the default mmap handler
    still checks only about SNDRV_DMA_TYPE_DEV. Make the check more
    proper.

    Note that all existing users of *_UC buffer types are x86-only, so
    this doesn't fix any bug, but just for consistency.

    Fixes: 42e748a0b325 ("ALSA: memalloc: Add non-cached buffer type")
    Link: https://lore.kernel.org/r/20191108165626.5947-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

31 Dec, 2019

3 commits

  • [ Upstream commit fdea53fe5de532969a332d6e5e727f2ad8bf084d ]

    The fuzzer tries to open the timer instances as much as possible, and
    this may cause a system hiccup easily. We've already introduced the
    cap for the max number of available instances for the h/w timers, and
    we should put such a limit also to the slave timers, too.

    This patch introduces the limit to the multiple opened slave timers.
    The upper limit is hard-coded to 1000 for now, which should suffice
    for any practical usages up to now.

    Link: https://lore.kernel.org/r/20191106154257.5853-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • [ Upstream commit 6111fd2370eecae9f11bfdc08ba097e0b51fcfd3 ]

    The check for the mmap support via hw_support_mmap() function misses
    the case where the device is with SNDRV_DMA_TYPE_DEV_UC, which should
    have been treated equally as SNDRV_DMA_TYPE_DEV. Let's fix it.

    Note that this bug doesn't hit any practical problem, because
    SNDRV_DMA_TYPE_DEV_UC is used only for x86-specific drivers
    (snd-hda-intel and snd-intel8x0) for the specific platforms that need
    the non-cached buffers. And, on such platforms, hw_support_mmap()
    already returns true in anyway. That's the reason I didn't put
    Cc-to-stable mark here. This is only for any theoretical future
    extension.

    Fixes: 425da159707b ("ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*")
    Fixes: 42e748a0b325 ("ALSA: memalloc: Add non-cached buffer type")
    Link: https://lore.kernel.org/r/20191104101115.27311-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Sasha Levin

    Takashi Iwai
     
  • commit add9d56d7b3781532208afbff5509d7382fb6efe upstream.

    The current PCM code doesn't initialize explicitly the buffers
    allocated for PCM streams, hence it might leak some uninitialized
    kernel data or previous stream contents by mmapping or reading the
    buffer before actually starting the stream.

    Since this is a common problem, this patch simply adds the clearance
    of the buffer data at hw_params callback. Although this does only
    zero-clear no matter which format is used, which doesn't mean the
    silence for some formats, but it should be OK because the intention is
    just to clear the previous data on the buffer.

    Reported-by: Lionel Koenig
    Cc:
    Link: https://lore.kernel.org/r/20191211155742.3213-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

13 Dec, 2019

1 commit

  • commit 4cc8d6505ab82db3357613d36e6c58a297f57f7c upstream.

    syzkaller reported an invalid access in PCM OSS read, and this seems
    to be an overflow of the internal buffer allocated for a plugin.
    Since the rate plugin adjusts its transfer size dynamically, the
    calculation for the chained plugin might be bigger than the given
    buffer size in some extreme cases, which lead to such an buffer
    overflow as caught by KASAN.

    Fix it by limiting the max transfer size properly by checking against
    the destination size in each plugin transfer callback.

    Reported-by: syzbot+f153bde47a62e0b05f83@syzkaller.appspotmail.com
    Cc:
    Link: https://lore.kernel.org/r/20191204144824.17801-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

13 Nov, 2019

1 commit

  • If the nullity check for `substream->runtime` is outside of the lock
    region, it is possible to have a null runtime in the critical section
    if snd_pcm_detach_substream is called right before the lock.

    Signed-off-by: paulhsia
    Link: https://lore.kernel.org/r/20191112171715.128727-2-paulhsia@chromium.org
    Signed-off-by: Takashi Iwai

    paulhsia
     

07 Nov, 2019

2 commits

  • …/broonie/sound into for-linus

    ASoC: Fixes for v5.4

    These are a collection of fixes since v5.4-rc4 that have accumilated,
    they're all driver specific and there's nothing major in here so it's
    probably not essential to actually send them but I'll leave that call to
    you.

    Takashi Iwai
     
  • The clean up commit 41672c0c24a6 ("ALSA: timer: Simplify error path in
    snd_timer_open()") unified the error handling code paths with the
    standard goto, but it introduced a subtle bug: the timer instance is
    stored in snd_timer_open() incorrectly even if it returns an error.
    This may eventually lead to UAF, as spotted by fuzzer.

    The culprit is the snd_timer_open() code checks the
    SNDRV_TIMER_IFLG_EXCLUSIVE flag with the common variable timeri.
    This variable is supposed to be the newly created instance, but we
    (ab-)used it for a temporary check before the actual creation of a
    timer instance. After that point, there is another check for the max
    number of instances, and it bails out if over the threshold. Before
    the refactoring above, it worked fine because the code returned
    directly from that point. After the refactoring, however, it jumps to
    the unified error path that stores the timeri variable in return --
    even if it returns an error. Unfortunately this stored value is kept
    in the caller side (snd_timer_user_tselect()) in tu->timeri. This
    causes inconsistency later, as if the timer was successfully
    assigned.

    In this patch, we fix it by not re-using timeri variable but a
    temporary variable for testing the exclusive connection, so timeri
    remains NULL at that point.

    Fixes: 41672c0c24a6 ("ALSA: timer: Simplify error path in snd_timer_open()")
    Reported-and-tested-by: Tristan Madani
    Cc:
    Link: https://lore.kernel.org/r/20191106165547.23518-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

31 Oct, 2019

1 commit

  • When a card is disconnected while in use, the system waits until all
    opened files are closed then releases the card. This is done via
    put_device() of the card device in each device release code.

    The recently reported mutex deadlock bug happens in this code path;
    snd_timer_close() for the timer device deals with the global
    register_mutex and it calls put_device() there. When this timer
    device is the last one, the card gets freed and it eventually calls
    snd_timer_free(), which has again the protection with the global
    register_mutex -- boom.

    Basically put_device() call itself is race-free, so a relative simple
    workaround is to move this put_device() call out of the mutex. For
    achieving that, in this patch, snd_timer_close_locked() got a new
    argument to store the card device pointer in return, and each caller
    invokes put_device() with the returned object after the mutex unlock.

    Reported-and-tested-by: Kirill A. Shutemov
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

21 Oct, 2019

1 commit


20 Sep, 2019

1 commit

  • Pull dma-mapping updates from Christoph Hellwig:

    - add dma-mapping and block layer helpers to take care of IOMMU merging
    for mmc plus subsequent fixups (Yoshihiro Shimoda)

    - rework handling of the pgprot bits for remapping (me)

    - take care of the dma direct infrastructure for swiotlb-xen (me)

    - improve the dma noncoherent remapping infrastructure (me)

    - better defaults for ->mmap, ->get_sgtable and ->get_required_mask
    (me)

    - cleanup mmaping of coherent DMA allocations (me)

    - various misc cleanups (Andy Shevchenko, me)

    * tag 'dma-mapping-5.4' of git://git.infradead.org/users/hch/dma-mapping: (41 commits)
    mmc: renesas_sdhi_internal_dmac: Add MMC_CAP2_MERGE_CAPABLE
    mmc: queue: Fix bigger segments usage
    arm64: use asm-generic/dma-mapping.h
    swiotlb-xen: merge xen_unmap_single into xen_swiotlb_unmap_page
    swiotlb-xen: simplify cache maintainance
    swiotlb-xen: use the same foreign page check everywhere
    swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable
    xen: remove the exports for xen_{create,destroy}_contiguous_region
    xen/arm: remove xen_dma_ops
    xen/arm: simplify dma_cache_maint
    xen/arm: use dev_is_dma_coherent
    xen/arm: consolidate page-coherent.h
    xen/arm: use dma-noncoherent.h calls for xen-swiotlb cache maintainance
    arm: remove wrappers for the generic dma remap helpers
    dma-mapping: introduce a dma_common_find_pages helper
    dma-mapping: always use VM_DMA_COHERENT for generic DMA remap
    vmalloc: lift the arm flag for coherent mappings to common code
    dma-mapping: provide a better default ->get_required_mask
    dma-mapping: remove the dma_declare_coherent_memory export
    remoteproc: don't allow modular build
    ...

    Linus Torvalds
     

09 Sep, 2019

1 commit


04 Sep, 2019

1 commit


28 Aug, 2019

1 commit

  • Most of the modern codecs supports 352.8KHz and 384KHz sample rates.
    Currenlty HW params fails to set 352.8Kz and 384KHz sample rate
    as these are not in known rates list.
    Add these new rates to known list to allow them.

    This patch also adds defines in pcm.h so that drivers can use it.

    Signed-off-by: Vidyakumar Athota
    Signed-off-by: Banajit Goswami
    Signed-off-by: Srinivas Kandagatla
    Link: https://lore.kernel.org/r/20190822095653.7200-2-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown

    Vidyakumar Athota
     

25 Aug, 2019

1 commit

  • The input pool of a client might be deleted via the resize ioctl, the
    the access to it should be covered by the proper locks. Currently the
    only missing place is the call in snd_seq_ioctl_get_client_pool(), and
    this patch papers over it.

    Reported-by: syzbot+4a75454b9ca2777f35c7@syzkaller.appspotmail.com
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

30 Jul, 2019

1 commit

  • lost wakeup can occur after enabling irq, therefore put task
    into interruptible before enabling interrupts,

    without this change, task can be put to sleep and snd_pcm_drain
    will delay

    Fixes: f2b3614cefb6 ("ALSA: PCM - Don't check DMA time-out too shortly")
    Signed-off-by: Yuki Tsunashima
    Signed-off-by: Suresh Udipi
    [ported from 4.9]
    Signed-off-by: Adam Miartus
    Signed-off-by: Takashi Iwai

    Yuki Tsunashima
     

23 Jul, 2019

4 commits

  • Draining makes little sense in the situation of hardware overrun, as the
    hardware will have consumed all its available samples. Additionally,
    draining whilst the stream is paused would presumably get stuck as no
    data is being consumed on the DSP side.

    Signed-off-by: Charles Keepax
    Acked-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Charles Keepax
     
  • Partial drain and next track are intended for gapless playback and
    don't really have an obvious interpretation for a capture stream, so
    makes sense to not allow those operations on capture streams.

    Signed-off-by: Charles Keepax
    Acked-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Charles Keepax
     
  • Currently, whilst in SNDRV_PCM_STATE_OPEN it is possible to call
    snd_compr_stop, snd_compr_drain and snd_compr_partial_drain, which
    allow a transition to SNDRV_PCM_STATE_SETUP. The stream should
    only be able to move to the setup state once it has received a
    SNDRV_COMPRESS_SET_PARAMS ioctl. Fix this issue by not allowing
    those ioctls whilst in the open state.

    Signed-off-by: Charles Keepax
    Acked-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Charles Keepax
     
  • A previous fix to the stop handling on compressed capture streams causes
    some knock on issues. The previous fix updated snd_compr_drain_notify to
    set the state back to PREPARED for capture streams. This causes some
    issues however as the handling for snd_compr_poll differs between the
    two states and some user-space applications were relying on the poll
    failing after the stream had been stopped.

    To correct this regression whilst still fixing the original problem the
    patch was addressing, update the capture handling to skip the PREPARED
    state rather than skipping the SETUP state as it has done until now.

    Fixes: 4f2ab5e1d13d ("ALSA: compress: Fix stop handling on compressed capture streams")
    Signed-off-by: Charles Keepax
    Acked-by: Vinod Koul
    Signed-off-by: Takashi Iwai

    Charles Keepax
     

19 Jul, 2019

1 commit

  • The recent rewrite of PCM link lock management introduced the refcount
    in snd_pcm_group object, managed by the kernel refcount_t API. This
    caused unexpected kernel warnings when the kernel is built with
    CONFIG_REFCOUNT_FULL=y. As the warning line indicates, the problem is
    obviously that we start with refcount=0 and do refcount_inc() for
    adding each PCM link, while refcount_t API doesn't like refcount_inc()
    performed on zero.

    For adapting the proper refcount_t usage, this patch changes the logic
    slightly:
    - The initial refcount is 1, assuming the single list entry
    - The refcount is incremented / decremented at each PCM link addition
    and deletion
    - ... which allows us concentrating only on the refcount as a release
    condition

    Fixes: f57f3df03a8e ("ALSA: pcm: More fine-grained PCM link locking")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204221
    Reported-and-tested-by: Duncan Overbruck
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Jul, 2019

1 commit

  • The fix for the racy writes and ioctls to sequencer widened the
    application of client->ioctl_mutex to the whole write loop. Although
    it does unlock/relock for the lengthy operation like the event dup,
    the loop keeps the ioctl_mutex for the whole time in other
    situations. This may take quite long time if the user-space would
    give a huge buffer, and this is a likely cause of some weird behavior
    spotted by syzcaller fuzzer.

    This patch puts a simple workaround, just adding a mutex break in the
    loop when a large number of events have been processed. This
    shouldn't hit any performance drop because the threshold is set high
    enough for usual operations.

    Fixes: 7bd800915677 ("ALSA: seq: More protection for concurrent write and ioctl races")
    Reported-by: syzbot+97aae04ce27e39cbfca9@syzkaller.appspotmail.com
    Reported-by: syzbot+4c595632b98bb8ffcc66@syzkaller.appspotmail.com
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

08 Jul, 2019

1 commit

  • …/sound into for-linus

    ASoC: Updates for v5.3

    This is a very big update, mainly thanks to Morimoto-san's refactoring
    work and some fairly large new drivers.

    - Lots more work on moving towards a component based framework from
    Morimoto-san.
    - Support for force disconnecting muxes from Jerome Brunet.
    - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
    CX2072X, Realtek RT1011 and RT1308.

    Signed-off-by: Takashi Iwai <tiwai@suse.de>

    Takashi Iwai
     

01 Jul, 2019

1 commit


28 Jun, 2019

1 commit


19 Jun, 2019

1 commit

  • Based on 2 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 version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

05 Jun, 2019

2 commits

  • 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 version 2

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 135 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190531081036.435762997@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Based on 1 normalized pattern(s):

    licensed under the terms of the gnu general public license version 2

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 88 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Alexios Zavras
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190530000437.521539229@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

31 May, 2019

4 commits

  • For code simplification and safety, use struct_size() macro for
    calculating the snd_kcontrol object size with the variable array.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • 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 version 2 of the license 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-only

    has been chosen to replace the boilerplate/reference in 83 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.021731668@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • 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
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • 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

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner