<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/usb/gadget/function/u_audio.c, branch linux-5.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-06-16T11:28:42Z</updated>
<entry>
<title>usb: gadget: u_audio: Clear uac pointer when freed.</title>
<updated>2024-06-16T11:28:42Z</updated>
<author>
<name>Chris Wulff</name>
</author>
<published>2024-04-25T15:20:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4591a1764ac7e1aaeddded3fa99041594ac8e266'/>
<id>urn:sha1:4591a1764ac7e1aaeddded3fa99041594ac8e266</id>
<content type='text'>
[ Upstream commit a2cf936ebef291ef7395172b9e2f624779fb6dc0 ]

This prevents use of a stale pointer if functions are called after
g_cleanup that shouldn't be. This doesn't fix any races, but converts
a possibly silent kernel memory corruption into an obvious NULL pointer
dereference report.

Fixes: eb9fecb9e69b ("usb: gadget: f_uac2: split out audio core")
Signed-off-by: Chris Wulff &lt;chris.wulff@biamp.com&gt;
Link: https://lore.kernel.org/stable/CO1PR17MB54194226DA08BFC9EBD8C163E1172%40CO1PR17MB5419.namprd17.prod.outlook.com
Link: https://lore.kernel.org/r/CO1PR17MB54194226DA08BFC9EBD8C163E1172@CO1PR17MB5419.namprd17.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: don't let userspace block driver unbind</title>
<updated>2023-04-05T09:16:40Z</updated>
<author>
<name>Alvin Šipraga</name>
</author>
<published>2023-03-02T16:36:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0eda2004f38d95ef5715d62be884cd344260535b'/>
<id>urn:sha1:0eda2004f38d95ef5715d62be884cd344260535b</id>
<content type='text'>
commit 6c67ed9ad9b83e453e808f9b31a931a20a25629b upstream.

In the unbind callback for f_uac1 and f_uac2, a call to snd_card_free()
via g_audio_cleanup() will disconnect the card and then wait for all
resources to be released, which happens when the refcount falls to zero.
Since userspace can keep the refcount incremented by not closing the
relevant file descriptor, the call to unbind may block indefinitely.
This can cause a deadlock during reboot, as evidenced by the following
blocked task observed on my machine:

  task:reboot  state:D stack:0   pid:2827  ppid:569    flags:0x0000000c
  Call trace:
   __switch_to+0xc8/0x140
   __schedule+0x2f0/0x7c0
   schedule+0x60/0xd0
   schedule_timeout+0x180/0x1d4
   wait_for_completion+0x78/0x180
   snd_card_free+0x90/0xa0
   g_audio_cleanup+0x2c/0x64
   afunc_unbind+0x28/0x60
   ...
   kernel_restart+0x4c/0xac
   __do_sys_reboot+0xcc/0x1ec
   __arm64_sys_reboot+0x28/0x30
   invoke_syscall+0x4c/0x110
   ...

The issue can also be observed by opening the card with arecord and
then stopping the process through the shell before unbinding:

  # arecord -D hw:UAC2Gadget -f S32_LE -c 2 -r 48000 /dev/null
  Recording WAVE '/dev/null' : Signed 32 bit Little Endian, Rate 48000 Hz, Stereo
  ^Z[1]+  Stopped                    arecord -D hw:UAC2Gadget -f S32_LE -c 2 -r 48000 /dev/null
  # echo gadget.0 &gt; /sys/bus/gadget/drivers/configfs-gadget/unbind
  (observe that the unbind command never finishes)

Fix the problem by using snd_card_free_when_closed() instead, which will
still disconnect the card as desired, but defer the task of freeing the
resources to the core once userspace closes its file descriptor.

Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Alvin Šipraga &lt;alsi@bang-olufsen.dk&gt;
Reviewed-by: Ruslan Bilovol &lt;ruslan.bilovol@gmail.com&gt;
Reviewed-by: John Keeping &lt;john@metanate.com&gt;
Link: https://lore.kernel.org/r/20230302163648.3349669-1-alvin@pqrs.dk
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: fix race condition on endpoint stop</title>
<updated>2021-09-03T08:08:14Z</updated>
<author>
<name>Jerome Brunet</name>
</author>
<published>2021-08-27T09:29:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ad96094ab90bb702ad33da7f552f2d0710b87cc'/>
<id>urn:sha1:0ad96094ab90bb702ad33da7f552f2d0710b87cc</id>
<content type='text'>
[ Upstream commit 068fdad20454f815e61e6f6eb9f051a8b3120e88 ]

If the endpoint completion callback is call right after the ep_enabled flag
is cleared and before usb_ep_dequeue() is call, we could do a double free
on the request and the associated buffer.

Fix this by clearing ep_enabled after all the endpoint requests have been
dequeued.

Fixes: 7de8681be2cd ("usb: gadget: u_audio: Free requests only after callback")
Cc: stable &lt;stable@vger.kernel.org&gt;
Reported-by: Thinh Nguyen &lt;Thinh.Nguyen@synopsys.com&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Link: https://lore.kernel.org/r/20210827092927.366482-1-jbrunet@baylibre.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: Free requests only after callback</title>
<updated>2021-03-04T09:26:14Z</updated>
<author>
<name>Jack Pham</name>
</author>
<published>2021-01-18T08:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a5542b45c729a58b94b4ae875a2379443639616c'/>
<id>urn:sha1:a5542b45c729a58b94b4ae875a2379443639616c</id>
<content type='text'>
[ Upstream commit 7de8681be2cde9f6953d3be1fa6ce05f9fe6e637 ]

As per the kernel doc for usb_ep_dequeue(), it states that "this
routine is asynchronous, that is, it may return before the completion
routine runs". And indeed since v5.0 the dwc3 gadget driver updated
its behavior to place dequeued requests on to a cancelled list to be
given back later after the endpoint is stopped.

The free_ep() was incorrectly assuming that a request was ready to
be freed after calling dequeue which results in a use-after-free
in dwc3 when it traverses its cancelled list. Fix this by moving
the usb_ep_free_request() call to the callback itself in case the
ep is disabled.

Fixes: eb9fecb9e69b0 ("usb: gadget: f_uac2: split out audio core")
Reported-and-tested-by: Ferry Toth &lt;fntoth@gmail.com&gt;
Reviewed-and-tested-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Acked-by: Felipe Balbi &lt;balbi@kernel.org&gt;
Signed-off-by: Jack Pham &lt;jackp@codeaurora.org&gt;
Signed-off-by: Jerome Brunet &lt;jbrunet@baylibre.com&gt;
Link: https://lore.kernel.org/r/20210118084642.322510-2-jbrunet@baylibre.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: Fixed variable declaration coding style issue</title>
<updated>2019-06-18T08:58:28Z</updated>
<author>
<name>Jonas Stenvall</name>
</author>
<published>2019-06-13T09:34:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4408a98c4e6f90af032bc473f987acd89fd81d9'/>
<id>urn:sha1:f4408a98c4e6f90af032bc473f987acd89fd81d9</id>
<content type='text'>
Fixed a coding style issue, replacing unsigned with unsigned int.

Reviewed-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Signed-off-by: Jonas Stenvall &lt;jonas.stenvall.umea@gmail.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: protect stream runtime fields with stream spinlock</title>
<updated>2018-07-17T07:12:51Z</updated>
<author>
<name>Vladimir Zapolskiy</name>
</author>
<published>2018-06-21T15:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=56bc61587daadef67712068f251c4ef2e3932d94'/>
<id>urn:sha1:56bc61587daadef67712068f251c4ef2e3932d94</id>
<content type='text'>
The change protects almost the whole body of u_audio_iso_complete()
function by PCM stream lock, this is mainly sufficient to avoid a race
between USB request completion and stream termination, the change
prevents a possibility of invalid memory access in interrupt context
by memcpy():

    Unable to handle kernel paging request at virtual address 00004e80
    pgd = c0004000
    [00004e80] *pgd=00000000
    Internal error: Oops: 817 [#1] PREEMPT SMP ARM
    CPU: 0 PID: 3 Comm: ksoftirqd/0 Tainted: G         C   3.14.54+ #117
    task: da180b80 ti: da192000 task.ti: da192000
    PC is at memcpy+0x50/0x330
    LR is at 0xcdd92b0e
    pc : [&lt;c029ef30&gt;]    lr : [&lt;cdd92b0e&gt;]    psr: 20000193
    sp : da193ce4  ip : dd86ae26  fp : 0000b180
    r10: daf81680  r9 : 00000000  r8 : d58a01ea
    r7 : 2c0b43e4  r6 : acdfb08b  r5 : 01a271cf  r4 : 87389377
    r3 : 69469782  r2 : 00000020  r1 : daf82fe0  r0 : 00004e80
    Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: 10c5387d  Table: 2b70804a  DAC: 00000015
    Process ksoftirqd/0 (pid: 3, stack limit = 0xda192238)

Also added a check for potential !runtime condition, commonly it is
done by PCM_RUNTIME_CHECK(substream) in the beginning, however this
does not completely prevent from oopses in u_audio_iso_complete(),
because the proper protection scheme must be implemented in PCM
library functions.

An example of *not fixed* oops due to substream-&gt;runtime-&gt;*
dereference by snd_pcm_running(substream) from
snd_pcm_period_elapsed(), where substream-&gt;runtime is gone while
waiting the substream lock:

    Unable to handle kernel paging request at virtual address 6b6b6b6b
    pgd = db7e4000
    [6b6b6b6b] *pgd=00000000
    CPU: 0 PID: 193 Comm: klogd Tainted: G         C   3.14.54+ #118
    task: db5ac500 ti: db60c000 task.ti: db60c000
    PC is at snd_pcm_period_elapsed+0x48/0xd8 [snd_pcm]
    LR is at snd_pcm_period_elapsed+0x40/0xd8 [snd_pcm]
    pc : [&lt;&gt;]    lr : [&lt;&gt;]    psr: 60000193
    Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 2b7e404a  DAC: 00000015
    Process klogd (pid: 193, stack limit = 0xdb60c238)
    [&lt;&gt;] (snd_pcm_period_elapsed [snd_pcm]) from [&lt;&gt;] (udc_irq+0x500/0xbbc)
    [&lt;&gt;] (udc_irq) from [&lt;&gt;] (ci_irq+0x280/0x304)
    [&lt;&gt;] (ci_irq) from [&lt;&gt;] (handle_irq_event_percpu+0xa4/0x40c)
    [&lt;&gt;] (handle_irq_event_percpu) from [&lt;&gt;] (handle_irq_event+0x3c/0x5c)
    [&lt;&gt;] (handle_irq_event) from [&lt;&gt;] (handle_fasteoi_irq+0xc4/0x110)
    [&lt;&gt;] (handle_fasteoi_irq) from [&lt;&gt;] (generic_handle_irq+0x20/0x30)
    [&lt;&gt;] (generic_handle_irq) from [&lt;&gt;] (handle_IRQ+0x80/0xc0)
    [&lt;&gt;] (handle_IRQ) from [&lt;&gt;] (gic_handle_irq+0x3c/0x60)
    [&lt;&gt;] (gic_handle_irq) from [&lt;&gt;] (__irq_svc+0x44/0x78)

Signed-off-by: Vladimir Zapolskiy &lt;vladimir_zapolskiy@mentor.com&gt;
[erosca: W/o this patch, with minimal instrumentation [1], I can
         consistently reproduce BUG: KASAN: use-after-free [2]]

[1] Instrumentation to reproduce issue [2]:
 diff --git a/drivers/usb/gadget/function/u_audio.c b/drivers/usb/gadget/function/u_audio.c
 index a72295c953bb..bd0b308024fe 100644
 --- a/drivers/usb/gadget/function/u_audio.c
 +++ b/drivers/usb/gadget/function/u_audio.c
 @@ -16,6 +16,7 @@
  #include &lt;sound/core.h&gt;
  #include &lt;sound/pcm.h&gt;
  #include &lt;sound/pcm_params.h&gt;
 +#include &lt;linux/delay.h&gt;

  #include "u_audio.h"

 @@ -147,6 +148,8 @@ static void u_audio_iso_complete(struct usb_ep *ep, struct usb_request *req)

 	spin_unlock_irqrestore(&amp;prm-&gt;lock, flags);

 +	udelay(500); //delay here to increase probability of parallel activities
 +
 	/* Pack USB load in ALSA ring buffer */
 	pending = prm-&gt;dma_bytes - hw_ptr;

[2] After applying [1], below BUG occurs on Rcar-H3-Salvator-X board:
==================================================================
BUG: KASAN: use-after-free in u_audio_iso_complete+0x24c/0x520 [u_audio]
Read of size 8 at addr ffff8006cafcc248 by task swapper/0/0

CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        WC      4.14.47+ #160
Hardware name: Renesas Salvator-X board based on r8a7795 ES2.0+ (DT)
Call trace:
[&lt;ffff2000080925ac&gt;] dump_backtrace+0x0/0x364
[&lt;ffff200008092924&gt;] show_stack+0x14/0x1c
[&lt;ffff200008f8dbcc&gt;] dump_stack+0x108/0x174
[&lt;ffff2000083c71b8&gt;] print_address_description+0x7c/0x32c
[&lt;ffff2000083c78e8&gt;] kasan_report+0x324/0x354
[&lt;ffff2000083c6114&gt;] __asan_load8+0x24/0x94
[&lt;ffff2000021d1b34&gt;] u_audio_iso_complete+0x24c/0x520 [u_audio]
[&lt;ffff20000152fe50&gt;] usb_gadget_giveback_request+0x480/0x4d0 [udc_core]
[&lt;ffff200001860ab8&gt;] usbhsg_queue_done+0x100/0x130 [renesas_usbhs]
[&lt;ffff20000185f814&gt;] usbhsf_pkt_handler+0x1a4/0x298 [renesas_usbhs]
[&lt;ffff20000185fb38&gt;] usbhsf_irq_ready+0x128/0x178 [renesas_usbhs]
[&lt;ffff200001859cc8&gt;] usbhs_interrupt+0x440/0x490 [renesas_usbhs]
[&lt;ffff2000081a0288&gt;] __handle_irq_event_percpu+0x594/0xa58
[&lt;ffff2000081a07d0&gt;] handle_irq_event_percpu+0x84/0x12c
[&lt;ffff2000081a0928&gt;] handle_irq_event+0xb0/0x10c
[&lt;ffff2000081a8384&gt;] handle_fasteoi_irq+0x1e0/0x2ec
[&lt;ffff20000819e5f8&gt;] generic_handle_irq+0x2c/0x44
[&lt;ffff20000819f0d0&gt;] __handle_domain_irq+0x190/0x194
[&lt;ffff20000808177c&gt;] gic_handle_irq+0x80/0xac
Exception stack(0xffff200009e97c80 to 0xffff200009e97dc0)
7c80: 0000000000000000 0000000000000000 0000000000000003 ffff200008179298
7ca0: ffff20000ae1c180 dfff200000000000 0000000000000000 ffff2000081f9a88
7cc0: ffff200009eb5960 ffff200009e97cf0 0000000000001600 ffff0400041b064b
7ce0: 0000000000000000 0000000000000002 0000000200000001 0000000000000001
7d00: ffff20000842197c 0000ffff958c4970 0000000000000000 ffff8006da0d5b80
7d20: ffff8006d4678498 0000000000000000 000000126bde0a8b ffff8006d4678480
7d40: 0000000000000000 000000126bdbea64 ffff200008fd0000 ffff8006fffff980
7d60: 00000000495f0018 ffff200009e97dc0 ffff200008b6c4ec ffff200009e97dc0
7d80: ffff200008b6c4f0 0000000020000145 ffff8006da0d5b80 ffff8006d4678498
7da0: ffffffffffffffff ffff8006d4678498 ffff200009e97dc0 ffff200008b6c4f0
[&lt;ffff200008084034&gt;] el1_irq+0xb4/0x12c
[&lt;ffff200008b6c4f0&gt;] cpuidle_enter_state+0x818/0x844
[&lt;ffff200008b6c59c&gt;] cpuidle_enter+0x18/0x20
[&lt;ffff20000815f2e4&gt;] call_cpuidle+0x98/0x9c
[&lt;ffff20000815f674&gt;] do_idle+0x214/0x264
[&lt;ffff20000815facc&gt;] cpu_startup_entry+0x20/0x24
[&lt;ffff200008fb09d8&gt;] rest_init+0x30c/0x320
[&lt;ffff2000095f1338&gt;] start_kernel+0x570/0x5b0
---&lt;-snip-&gt;---

Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;

Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: remove cached period bytes value</title>
<updated>2018-07-17T07:12:51Z</updated>
<author>
<name>Vladimir Zapolskiy</name>
</author>
<published>2018-06-21T15:22:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=773e53d50e227b0c03d0bb434c1636f6c49c75b2'/>
<id>urn:sha1:773e53d50e227b0c03d0bb434c1636f6c49c75b2</id>
<content type='text'>
Substream period size potentially can be changed in runtime, however
this is not accounted in the data copying routine, the change replaces
the cached value with an actual value from substream runtime.

As a side effect the change also removes a potential division by zero
in u_audio_iso_complete() function, if there is a race with
uac_pcm_hw_free(), which sets prm-&gt;period_size to 0.

Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
Signed-off-by: Vladimir Zapolskiy &lt;vladimir_zapolskiy@mentor.com&gt;
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: remove caching of stream buffer parameters</title>
<updated>2018-07-17T07:12:51Z</updated>
<author>
<name>Vladimir Zapolskiy</name>
</author>
<published>2018-06-21T15:22:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=96afb54ece0ee903d23a7ac04ddc461413b972c4'/>
<id>urn:sha1:96afb54ece0ee903d23a7ac04ddc461413b972c4</id>
<content type='text'>
There is no necessity to copy PCM stream ring buffer area and size
properties to UAC private data structure, these values can be got
from substream itself.

The change gives more control on substream and avoid stale caching.

Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
Signed-off-by: Vladimir Zapolskiy &lt;vladimir_zapolskiy@mentor.com&gt;
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: update hw_ptr in iso_complete after data copied</title>
<updated>2018-07-17T07:12:51Z</updated>
<author>
<name>Joshua Frkuska</name>
</author>
<published>2018-06-21T15:22:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6b37bd78d30c890e575a1bda22978d1d2a233362'/>
<id>urn:sha1:6b37bd78d30c890e575a1bda22978d1d2a233362</id>
<content type='text'>
In u_audio_iso_complete, the runtime hw_ptr is updated before the
data is actually copied over to/from the buffer/dma area. When
ALSA uses this hw_ptr, the data may not actually be available to
be used. This causes trash/stale audio to play/record. This
patch updates the hw_ptr after the data has been copied to avoid
this.

Fixes: 132fcb460839 ("usb: gadget: Add Audio Class 2.0 Driver")
Signed-off-by: Joshua Frkuska &lt;joshua_frkuska@mentor.com&gt;
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: u_audio: fix pcm/card naming in g_audio_setup()</title>
<updated>2018-07-17T07:12:51Z</updated>
<author>
<name>Eugeniu Rosca</name>
</author>
<published>2018-06-21T15:22:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dfa042fa310caa475667b8c38d852f14439e0b01'/>
<id>urn:sha1:dfa042fa310caa475667b8c38d852f14439e0b01</id>
<content type='text'>
Fix below smatch (v0.5.0-4443-g69e9094e11c1) warnings:
drivers/usb/gadget/function/u_audio.c:607 g_audio_setup() warn: strcpy() 'pcm_name' of unknown size might be too large for 'pcm-&gt;name'
drivers/usb/gadget/function/u_audio.c:614 g_audio_setup() warn: strcpy() 'card_name' of unknown size might be too large for 'card-&gt;driver'
drivers/usb/gadget/function/u_audio.c:615 g_audio_setup() warn: strcpy() 'card_name' of unknown size might be too large for 'card-&gt;shortname'

Below commits performed a similar 's/strcpy/strlcpy/' rework:
* v2.6.31 commit 8372d4980fbc ("ALSA: ctxfi - Fix PCM device naming")
* v4.14 commit 003d3e70dbeb ("ALSA: ad1848: fix format string overflow warning")
* v4.14 commit 6d8b04de87e1 ("ALSA: cs423x: fix format string overflow warning")

Fixes: eb9fecb9e69b ("usb: gadget: f_uac2: split out audio core")
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
</content>
</entry>
</feed>
