Takashi Iwai [Fri, 9 Dec 2016 10:21:35 +0000 (11:21 +0100)]
Merge branch 'for-linus' into for-next
Con Kolivas [Fri, 9 Dec 2016 04:15:57 +0000 (15:15 +1100)]
ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks
The Logitech QuickCam Communicate Deluxe/S7500 microphone fails with the
following warning.
[ 6.778995] usb 2-1.2.2.2: Warning! Unlikely big volume range (=3072),
cval->res is probably wrong.
[ 6.778996] usb 2-1.2.2.2: [5] FU [Mic Capture Volume] ch = 1, val =
4608/7680/1
Adding it to the list of devices in volume_control_quirks makes it work
properly, fixing related typo.
Signed-off-by: Con Kolivas <kernel@kolivas.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Alberto Aguirre [Thu, 8 Dec 2016 06:36:48 +0000 (00:36 -0600)]
ALSA: usb-audio: add implicit fb quirk for Axe-Fx II
The Axe-Fx II implicit feedback end point and the data sync endpoint
are in different interface descriptors. Add quirk to ensure a sync
endpoint is properly configured.
Signed-off-by: Alberto Aguirre <albaguirre@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Dan Carpenter [Wed, 7 Dec 2016 11:22:50 +0000 (14:22 +0300)]
ALSA: cs46xx: add a new line
We accidentally deleted a newline so now the "nreallocated++;" statement
is hanging out way off to the right of the screen.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Andreas Pape [Tue, 6 Dec 2016 05:46:14 +0000 (14:46 +0900)]
ALSA: usb-audio: more tolerant packetsize
since commit
57e6dae1087b ("ALSA: usb-audio: do not trust too-big
wMaxPacketSize values"), the expected packetsize is always limited
to nominal + 25%. It was discovered, that some devices (Android audio
accessory) have a much higher jitter in used packetsizes than 25%
which would result in BABBLE condition and dropping of packets.
A better solution is so assume the jitter to be the nominal packetsize:
-one nearly empty packet followed by a almost 150% sized one.
V2: changed to assume max frequency is +50 of nominal packetsize.
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Daniel Girnus [Tue, 6 Dec 2016 05:46:15 +0000 (14:46 +0900)]
ALSA: usb-audio: avoid setting of sample rate multiple times on bus
Some of userland applications call 'snd_pcm_hw_params()' and
'snd_pcm_hw_prepare()' sequentially, which means 'snd_pcm_hw_prepare()'
is called twice and the second 'snd_pcm_hw_prepare()' is called in
'SNDRV_PCM_STATE_PREPARED' state.
Some devices are not able to manage this and they will stop playback
if the sample rate will be configured several times over USB protocol.
V2: updated Changelog
Signed-off-by: Daniel Girnus <dgirnus@de.adit-jv.com>
Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 6 Dec 2016 10:55:17 +0000 (11:55 +0100)]
ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO
HP Z1 Gen3 AiO with Conexant codec doesn't give an unsolicited event
to the headset mic pin upon the jack plugging, it reports only to the
headphone pin. It results in the missing mic switching. Let's fix up
by simply gating the jack event.
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Kai-Heng Feng [Tue, 6 Dec 2016 08:56:27 +0000 (16:56 +0800)]
ALSA: hda: when comparing pin configurations, ignore assoc in addition to seq
Commit [
64047d7f4912 ALSA: hda - ignore the assoc and seq when comparing
pin configurations] intented to ignore both seq and assoc at pin
comparing, but it only ignored seq. So that commit may still fail to
match pins on some machines.
Change the bitmask to also ignore assoc.
v2: Use macro to do bit masking.
Thanks to Hui Wang for the analysis.
Fixes:
64047d7f4912 ("ALSA: hda - ignore the assoc and seq when comparing...")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 5 Dec 2016 10:19:38 +0000 (11:19 +0100)]
ALSA: usb-audio: Fix race at stopping the stream
We've got a kernel crash report showing like:
Unable to handle kernel NULL pointer dereference at virtual address
00000008 pgd =
a1d7c000
[
00000008] *pgd=
31c93831, *pte=
00000000, *ppte=
00000000
Internal error: Oops: 17 [#1] PREEMPT SMP ARM
CPU: 0 PID: 250 Comm: dbus-daemon Not tainted
3.14.51-03479-gf50bdf4 #1
task:
a3ae61c0 ti:
a08c8000 task.ti:
a08c8000
PC is at retire_capture_urb+0x10/0x1f4 [snd_usb_audio]
LR is at snd_complete_urb+0x140/0x1f0 [snd_usb_audio]
pc : [<
7f0eb22c>] lr : [<
7f0e57fc>] psr:
200e0193
sp :
a08c9c98 ip :
a08c9ce8 fp :
a08c9ce4
r10:
0000000a r9 :
00000102 r8 :
94cb3000
r7 :
94cb3000 r6 :
94d0f000 r5 :
94d0e8e8 r4 :
94d0e000
r3 :
7f0eb21c r2 :
00000000 r1 :
94cb3000 r0 :
00000000
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
Control:
10c5387d Table:
31d7c04a DAC:
00000015
Process dbus-daemon (pid: 250, stack limit = 0xa08c8238)
Stack: (0xa08c9c98 to 0xa08ca000)
...
Backtrace:
[<
7f0eb21c>] (retire_capture_urb [snd_usb_audio]) from [<
7f0e57fc>] (snd_complete_urb+0x140/0x1f0 [snd_usb_audio])
[<
7f0e56bc>] (snd_complete_urb [snd_usb_audio]) from [<
80371118>] (__usb_hcd_giveback_urb+0x78/0xf4)
[<
803710a0>] (__usb_hcd_giveback_urb) from [<
80371514>] (usb_giveback_urb_bh+0x8c/0xc0)
[<
80371488>] (usb_giveback_urb_bh) from [<
80028e3c>] (tasklet_hi_action+0xc4/0x148)
[<
80028d78>] (tasklet_hi_action) from [<
80028358>] (__do_softirq+0x190/0x380)
[<
800281c8>] (__do_softirq) from [<
80028858>] (irq_exit+0x8c/0xfc)
[<
800287cc>] (irq_exit) from [<
8000ea88>] (handle_IRQ+0x8c/0xc8)
[<
8000e9fc>] (handle_IRQ) from [<
800085e8>] (gic_handle_irq+0xbc/0xf8)
[<
8000852c>] (gic_handle_irq) from [<
80509044>] (__irq_svc+0x44/0x78)
[<
80508820>] (_raw_spin_unlock_irq) from [<
8004b880>] (finish_task_switch+0x5c/0x100)
[<
8004b824>] (finish_task_switch) from [<
805052f0>] (__schedule+0x48c/0x6d8)
[<
80504e64>] (__schedule) from [<
805055d4>] (schedule+0x98/0x9c)
[<
8050553c>] (schedule) from [<
800116c8>] (do_work_pending+0x30/0xd0)
[<
80011698>] (do_work_pending) from [<
8000e160>] (work_pending+0xc/0x20)
Code:
e1a0c00d e92ddff0 e24cb004 e24dd024 (
e5902008)
Kernel panic - not syncing: Fatal exception in interrupt
There is a race between retire_capture_urb() and stop_endpoints().
The latter is called at stopping the stream and it sets some endpoint
fields to NULL. But its call is asynchronous, thus the pending
complete callback might get called after these NULL clears, and it
leads the NULL dereference like the above.
The fix is to move the NULL clearance after the synchronization,
i.e. wait_clear_urbs(). This is called at prepare and hw_free
callbacks, so it's assured to be called before the restart of the
stream or the release of the stream.
Also, while we're at it, put the EP_FLAG_RUNNING flag check at the
beginning of snd_complete_urb() to skip the pending complete after the
stream is stopped.
Fixes:
b2eb950de2f0 ("ALSA: usb-audio: stop both data and sync...")
Reported-by: Jiada Wang <jiada_wang@mentor.com>
Reported-by: Mark Craske <Mark_Craske@mentor.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 29 Nov 2016 21:28:40 +0000 (22:28 +0100)]
ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream()
The function returns -EINVAL even if it builds the stream properly.
The bogus error code sneaked in during the code refactoring, but it
wasn't noticed until now since the returned error code itself is
ignored in anyway. Kill it here, but there is no behavior change by
this patch, obviously.
Fixes:
e5779998bf8b ('ALSA: usb-audio: refactor code')
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Andrej Krutak [Tue, 29 Nov 2016 21:12:51 +0000 (22:12 +0100)]
ALSA: line6: Claim pod x3 usb data interface
Userspace apps have to claim USB interfaces before using endpoints in
them (drivers/usb/core/devio.c:checkintf()). It's a lock mechanism so
that two "drivers" don't steal data from each other. Kernel drivers don't
have to claim interfaces to work - but they should, to lock out userspace.
While there, fix line6_properties struct to match checkpatch.pl.
Signed-off-by: Andrej Krutak <dev@andree.sk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Pan Bian [Mon, 28 Nov 2016 23:33:07 +0000 (07:33 +0800)]
ALSA: echoaudio: Fix improper return value in function load_asic
When the second call to load_asic_generic() fails in function
load_asic(), "false" is returned. The real value of "false" is 0, which
indicates success in the context. As a result, the execution status and
the return value may be inconsistent. This patch fixes the bug.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188761
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Kailang Yang [Fri, 25 Nov 2016 08:15:17 +0000 (16:15 +0800)]
ALSA: hda/realtek - Add support for headset MIC for ALC622
Add headset MIC support for ALC622 of USI platform.
It only support headset of iphone type.
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Tue, 29 Nov 2016 07:20:13 +0000 (08:20 +0100)]
Merge branch 'for-linus' into for-next
Sven Hahne [Fri, 25 Nov 2016 13:16:43 +0000 (14:16 +0100)]
ALSA: hda/ca0132 - Add quirk for Alienware 15 R2 2016
I'm using an Alienware 15 R2 and had to use the alienware quirks to
get my headphone output working.
I fixed it by adding, SND_PCI_QUIRK(0x1028, 0x0708, "Alienware 15 R2
2016", QUIRK_ALIENWARE) to the patch.
Signed-off-by: Sven Hahne <hahne@zeitkunst.eu>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hui Wang [Wed, 23 Nov 2016 08:05:38 +0000 (16:05 +0800)]
ALSA: hda - fix headset-mic problem on a Dell laptop
This group of new pins is not in the pin quirk table yet, adding
them to the pin quirk table to fix the headset-mic problem.
Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hui Wang [Wed, 23 Nov 2016 08:05:37 +0000 (16:05 +0800)]
ALSA: hda - ignore the assoc and seq when comparing pin configurations
More and more pin configurations have been adding to the pin quirk
table, lots of them are only different from assoc and seq, but they
all apply to the same QUIRK_FIXUP, if we don't compare assoc and seq
when matching pin configurations, it will greatly reduce the pin
quirk table size.
We have tested this change on a couple of Dell laptops, it worked
well.
Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Sakamoto [Thu, 17 Nov 2016 21:11:24 +0000 (06:11 +0900)]
ALSA: bebob: compare whole string for model name so that readers are not confused
A modalias of 'ieee1394:ven00000D6Cmo00010060sp' hits units for M-Audio
FireWire Audiophile only. However the unit has two states relevant to
loaded firmware. Initial firmware returns 'FW Audiophile Bootloader',
while functional firmware returns 'FW Audiophile'.
ALSA bebob driver compares the units' model name to strings of 24 characters
by the first 15 characters. This is shorter way to differentiate these two
states but confusing to readers.
This commit improves the code for this point. Kernel stack is consumed more in
call of check_audiophile_booted() by a bit.
With initial firmware:
$ ./linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
ROM header and bus information block
-----------------------------------------------------------------
400
04276da6 bus_info_length 4, crc_length 39, crc 28070
404
31333934 bus_name "1394"
408
006481f2 irmc 0, cmc 0, isc 0, bmc 0, pmc 0, cyc_clk_acc 100,
max_rec 8 (512), max_rom 1, gen 15, spd 2 (S400)
40c
000d6c03 company_id 000d6c |
410
102b7e2e device_id
03102b7e2e | EUI-64
000d6c03102b7e2e
root directory
-----------------------------------------------------------------
414
00067414 directory_length 6, crc 29716
418
0c0083c0 node capabilities per IEEE 1394
41c
03000d6c vendor
420
81000009 --> descriptor leaf at 444
424
17010060 model
428
8100000c --> descriptor leaf at 458
42c
d1000001 --> unit directory at 430
unit directory at 430
-----------------------------------------------------------------
430
00049da1 directory_length 4, crc 40353 (should be 48611)
434
1200a02d specifier id: 1394 TA
438
13014001 version: Vender Unique and AV/C
43c
17010060 model
440
8100000f --> descriptor leaf at 47c
descriptor leaf at 444
-----------------------------------------------------------------
444
0004073e leaf_length 4, crc 1854
448
00000000 textual descriptor
44c
00000000 minimal ASCII
450
4d2d4155 "M-AU"
454
44494f00 "DIO"
descriptor leaf at 458
-----------------------------------------------------------------
458
00086f21 leaf_length 8, crc 28449
45c
00000000 textual descriptor
460
00000000 minimal ASCII
464
46572041 "FW A"
468
7564696f "udio"
46c
7068696c "phil"
470
6520426f "e Bo"
474
6f746c6f "otlo"
478
61646572 "ader"
descriptor leaf at 47c
-----------------------------------------------------------------
47c
00086f21 leaf_length 8, crc 28449
480
00000000 textual descriptor
484
00000000 minimal ASCII
488
46572041 "FW A"
48c
7564696f "udio"
490
7068696c "phil"
494
6520426f "e Bo"
498
6f746c6f "otlo"
49c
61646572 "ader"
With functional firmware:
$ ./linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
ROM header and bus information block
-----------------------------------------------------------------
400
042de16f bus_info_length 4, crc_length 45, crc 57711
404
31333934 bus_name "1394"
408
f0648122 irmc 1, cmc 1, isc 1, bmc 1, pmc 0, cyc_clk_acc 100,
max_rec 8 (512), max_rom 1, gen 2, spd 2 (S400)
40c
000d6c03 company_id 000d6c |
410
002b7e2e device_id
03002b7e2e | EUI-64
000d6c03002b7e2e
root directory
-----------------------------------------------------------------
414
0009dac4 directory_length 9, crc 56004
418
0400000d hardware version
41c
0c0083c0 node capabilities per IEEE 1394
420
03000d6c vendor
424
81000012 --> descriptor leaf at 46c
428
17010060 model
42c
81000015 --> descriptor leaf at 480
430
13ffffff version
434
d1000002 --> unit directory at 43c
438
d4000006 --> dependent info directory at 450
unit directory at 43c
-----------------------------------------------------------------
43c
00041eb9 directory_length 4, crc 7865
440
1200a02d specifier id: 1394 TA
444
13014001 version: Vender Unique and AV/C
448
17010060 model
44c
81000014 --> descriptor leaf at 49c
dependent info directory at 450
-----------------------------------------------------------------
450
000637c7 directory_length 6, crc 14279
454
120007f5 specifier id
458
13000001 version
45c
3affffc7 (immediate value)
460
3b100000 (immediate value)
464
3cffffc7 (immediate value)
468
3d600000 (immediate value)
descriptor leaf at 46c
-----------------------------------------------------------------
46c
0004b8e4 leaf_length 4, crc 47332
470
00000000 textual descriptor
474
00000000 minimal ASCII
478
4d2d4175 "M-Au"
47c
64696f00 "dio"
descriptor leaf at 480
-----------------------------------------------------------------
480
0006194b leaf_length 6, crc 6475
484
00000000 textual descriptor
488
00000000 minimal ASCII
48c
46572041 "FW A"
490
7564696f "udio"
494
7068696c "phil"
498
65000000 "e"
descriptor leaf at 49c
-----------------------------------------------------------------
49c
0006194b leaf_length 6, crc 6475
4a0
00000000 textual descriptor
4a4
00000000 minimal ASCII
4a8
46572041 "FW A"
4ac
7564696f "udio"
4b0
7068696c "phil"
4b4
65000000 "e"
Reported-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 2 Nov 2016 17:38:39 +0000 (18:38 +0100)]
ALSA: emu10k1: Use workqueue instead of kthread for emu1010 fw polling
This patch is a cleanup of EMU1010 dock probing code in emu10k1 driver
to use work instead of kthread in a loop. The work is lighter and
easier to control than kthread, in general.
Instead of a loop with the explicit sleep, we do simply
delayed-schedule the work. At suspend/resume callbacks, the work is
canceled and restarted, respectively.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 2 Nov 2016 17:13:06 +0000 (18:13 +0100)]
ALSA: emu10k1: Simplify firmware loader code
The EMU1010 support in emu10k1 driver has two request_firmware()
calls, one for the main board and one for the dock. Both call
patterns are fairly similar, and we can simplify it by introducing a
helper function and a table instead of the open switch/case.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 2 Nov 2016 15:38:21 +0000 (16:38 +0100)]
ALSA: emu10k1: Fix emu1010 dock attach check
The emu1010_firmware_thread() checks the previous dock status, but a
wrong register is recorded as the last status when the dock is plugged
in. Usually this isn't a big issue since this value gets overwritten
by the next loop after one second. But when a dock is unplugged
immediately after plugging, it means essentially missing undock
handling.
This patch addresses it by remembering the correct register value.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 14 Nov 2016 21:25:33 +0000 (22:25 +0100)]
ALSA: core: Fix kernel-doc warnings
Several lines in sound/core.h get the kernel-doc warnings like
./include/sound/core.h:323: warning: No description found for parameter '...'
where we use define like foo(x, args...) and "args" isn't mentioned in
the comments. As an easy workaround, use simple __VA_ARGS__ for VLA
in macros.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 14 Nov 2016 21:22:27 +0000 (22:22 +0100)]
ALSA: compress: Fix kernel-doc warnings
Some fields in struct snd_compr have no corresponding comments, and
the kernel-doc complains like:
./include/sound/compress_driver.h:162: warning: No description found for parameter 'id[64]'
./include/sound/compress_driver.h:162: warning: No description found for parameter 'proc_root'
./include/sound/compress_driver.h:162: warning: No description found for parameter 'proc_info_entry'
Actually all these are internal elements, just put "private:" comment
so that they will be ignored.
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 14 Nov 2016 21:19:41 +0000 (22:19 +0100)]
ALSA: ac97: Fix kernel-doc error with sphinx formatter
Sphinx takes a word like (*foo)->bar in the kernel-doc comments as a
part of the emphasized marker, and complains like
./sound/pci/ac97/ac97_codec.c:1908: WARNING: Inline emphasis start-string without end-string.
For avoiding this, wrap it with the quotes (``) in the comment.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Mon, 14 Nov 2016 20:46:47 +0000 (21:46 +0100)]
ALSA: usb-audio: Fix use-after-free of usb_device at disconnect
The usb-audio driver implements the deferred device disconnection for
the device in use. In this mode, the disconnection callback returns
immediately while the actual ALSA card object removal happens later
when all files get closed. As Shuah reported, this code flow,
however, leads to a use-after-free, detected by KASAN:
BUG: KASAN: use-after-free in snd_usb_audio_free+0x134/0x160 [snd_usb_audio] at addr
ffff8801c863ce10
Write of size 8 by task pulseaudio/2244
Call Trace:
[<
ffffffff81b31473>] dump_stack+0x67/0x94
[<
ffffffff81564ef1>] kasan_object_err+0x21/0x70
[<
ffffffff8156518a>] kasan_report_error+0x1fa/0x4e0
[<
ffffffff81564ad7>] ? kasan_slab_free+0x87/0xb0
[<
ffffffff81565733>] __asan_report_store8_noabort+0x43/0x50
[<
ffffffffa0fc0f54>] ? snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
[<
ffffffffa0fc0f54>] snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
[<
ffffffffa0fc0fb1>] snd_usb_audio_dev_free+0x31/0x40 [snd_usb_audio]
[<
ffffffff8243c78a>] __snd_device_free+0x12a/0x210
[<
ffffffff8243d1f5>] snd_device_free_all+0x85/0xd0
[<
ffffffff8242cae4>] release_card_device+0x34/0x130
[<
ffffffff81ef1846>] device_release+0x76/0x1e0
[<
ffffffff81b37ad7>] kobject_release+0x107/0x370
.....
Object at
ffff8801c863cc80, in cache kmalloc-2048 size: 2048
Allocated:
[<
ffffffff810804eb>] save_stack_trace+0x2b/0x50
[<
ffffffff81564296>] save_stack+0x46/0xd0
[<
ffffffff8156450d>] kasan_kmalloc+0xad/0xe0
[<
ffffffff81560d1a>] kmem_cache_alloc_trace+0xfa/0x240
[<
ffffffff8214ea47>] usb_alloc_dev+0x57/0xc90
[<
ffffffff8216349d>] hub_event+0xf1d/0x35f0
....
Freed:
[<
ffffffff810804eb>] save_stack_trace+0x2b/0x50
[<
ffffffff81564296>] save_stack+0x46/0xd0
[<
ffffffff81564ac1>] kasan_slab_free+0x71/0xb0
[<
ffffffff81560929>] kfree+0xd9/0x280
[<
ffffffff8214de6e>] usb_release_dev+0xde/0x110
[<
ffffffff81ef1846>] device_release+0x76/0x1e0
....
It's the code trying to clear drvdata of the assigned usb_device where
the usb_device itself was already released in usb_release_dev() after
the disconnect callback.
This patch fixes it by checking whether the code path is via the
disconnect callback, i.e. chip->shutdown flag is set.
Fixes:
79289e24194a ('ALSA: usb-audio: Refer to chip->usb_id for quirks...')
Reported-and-tested-by: Shuah Khan <shuahkh@osg.samsung.com>
Cc: <stable@vger.kernel.org> # v4.6+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fabian Frederick [Sat, 12 Nov 2016 22:26:41 +0000 (23:26 +0100)]
ALSA: pci: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fabian Frederick [Sat, 12 Nov 2016 08:36:01 +0000 (09:36 +0100)]
ALSA: oss: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fabian Frederick [Sat, 12 Nov 2016 08:34:49 +0000 (09:34 +0100)]
ALSA: rawmidi: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fabian Frederick [Sat, 12 Nov 2016 08:28:33 +0000 (09:28 +0100)]
ALSA: opl3: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 11 Nov 2016 16:37:35 +0000 (17:37 +0100)]
Merge branch 'topic/restize-docs' into for-next
Takashi Iwai [Fri, 11 Nov 2016 15:55:29 +0000 (16:55 +0100)]
ASoC: doc: ReSTize codec_to_codec.txt
Yet another simple conversion from a plain text file.
Renamed to codec-to-codec.rst to align with others.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 11 Nov 2016 16:34:57 +0000 (17:34 +0100)]
Merge branch 'topic/doc' of git://git./linux/kernel/git/broonie/sound into topic/restize-docs
Takashi Iwai [Thu, 10 Nov 2016 21:29:49 +0000 (22:29 +0100)]
ASoC: doc: ReSTize DPCM.txt
A simple conversion from a plain text file.
The file name was renamed to lower letters to align with others.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:26:58 +0000 (22:26 +0100)]
ASoC: doc: ReSTize jack.txt
A simple conversion from a plain text file.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:25:28 +0000 (22:25 +0100)]
ASoC: doc: ReSTize clocking.txt
A simple conversion from a plain text file.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:23:58 +0000 (22:23 +0100)]
ASoC: doc: ReSTize pops_clicks.txt
A simple conversion from a plain text file.
The file name was changed from "pops_clicks" to "pops-clicks" to align
with others.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:23:02 +0000 (22:23 +0100)]
ASoC: doc: ReSTize machine.txt
A simple conversion from a plain text file.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:21:56 +0000 (22:21 +0100)]
ASoC: doc: ReSTize platform.txt
A simple conversion from a plain text file.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:19:33 +0000 (22:19 +0100)]
ASoC: doc: ReSTize dapm.txt
A simple conversion from a plain text file.
The section numbers and the item numbers are dropped to align with the
ReST format. Some lists are converted to description lists to be
clearer.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:17:40 +0000 (22:17 +0100)]
ASoC: doc: ReSTize DAI.txt
A simple conversion from a plain text file with slight reformatting /
corrections.
The file name was changed to lower letters to align with others.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:16:04 +0000 (22:16 +0100)]
ASoC: doc: ReSTize codec.txt
A simple conversion from a plain text file.
The section numbers are dropped to align with other documents.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 21:11:21 +0000 (22:11 +0100)]
ASoC: doc: ReSTize overview.txt
A simple conversion from a plain text file.
Created a new subdirectory, Documentation/sound/soc, for this and
other ASoC documents.
Since the index page contains the TOC, so "Documentation" section got
removed from overview.
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Fri, 11 Nov 2016 15:15:22 +0000 (16:15 +0100)]
Merge branch 'topic/restize-docs' into for-next
Takashi Iwai [Fri, 11 Nov 2016 11:33:20 +0000 (12:33 +0100)]
ALSA: hda - Fix mic regression by ASRock mobo fixup
The commit [
1a3f099101b8: ALSA: hda - Fix surround output pins for
ASRock B150M mobo] introduced a fixup of pin configs for ASRock
mobos to fix the surround outputs. However, this overrides the pin
configs of the mic pins as if they are outputs-only, effectively
disabling the mic inputs. Of course, it's a regression wrt mic
functionality.
Actually the pins 0x18 and 0x1a don't need to be changed; we just need
to disable the bogus pins 0x14 and 0x15. Then the auto-parser will
pick up mic pins as switchable and assign the surround outputs there.
This patch removes the incorrect pin overrides of NID 0x18 and 0x1a
from the ASRock fixup.
Fixes:
1a3f099101b8 ('ALSA: hda - Fix surround output pins for ASRock...')
Reported-and-tested-by: Vitor Antunes <vitor.hda@gmail.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=187431
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:36:09 +0000 (17:36 +0100)]
ALSA: doc: ReSTize img,spdif-in.txt
Yet another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:33:12 +0000 (17:33 +0100)]
ALSA: doc: ReSTize serial-u16550.txt
Yet another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:20:32 +0000 (17:20 +0100)]
ALSA: doc: ReSTize hdspm.txt
A simple conversion from a plain text file. Quite a few reformatting
in the end due to the style of the original document.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:07:49 +0000 (17:07 +0100)]
ALSA: doc: ReSTize README.maya44
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:59:08 +0000 (16:59 +0100)]
ALSA: doc: ReSTize Bt87x.txt
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:56:09 +0000 (16:56 +0100)]
ALSA: doc: ReSTize MIXART.txt
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:52:57 +0000 (16:52 +0100)]
ALSA: doc: ReSTize Audiophile-USB.txt
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:32:49 +0000 (16:32 +0100)]
ALSA: doc: ReSTize VIA82xx-mixer.txt
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:31:07 +0000 (16:31 +0100)]
ALSA: doc: ReSTize emu10k1-jack.txt
Another simple conversion from a plain text file.
Put to cards directory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:25:42 +0000 (16:25 +0100)]
ALSA: doc: ReSTize Audigy-mixer.txt
Another simple conversion from a plain text file.
Put to cards subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 15:17:56 +0000 (16:17 +0100)]
ALSA: doc: ReSTize SB-Live-mixer document
Another simple conversion from a plain text file.
Put to cards subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 16:12:34 +0000 (17:12 +0100)]
ALSA: doc: ReSTize CMIPCI document
A simple conversion from a plain text file.
Put to cards subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 16:04:22 +0000 (17:04 +0100)]
ALSA: doc: ReSTize Joystick document
A conversion from a simple text file.
A new subdirectory, cards, was created to contain the card-specific
information like this one.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 10:10:35 +0000 (11:10 +0100)]
ALSA: doc: ReSTize Jack-Controls.txt
A simple conversion from a plain text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 10:06:55 +0000 (11:06 +0100)]
ALSA: doc: ReSTize timestamping document
A simple conversion from a plain text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 09:58:05 +0000 (10:58 +0100)]
ALSA: doc: ReSTize compress-offload document
A simple conversion from a plain text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 16:55:28 +0000 (17:55 +0100)]
ALSA: doc: ReSTize ControlNames.txt
A simple conversion from a plain text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 15:46:02 +0000 (16:46 +0100)]
ALSA: doc: ReSTize seq_oss document
Converted from an ancient plain HTML document. It's much readable now!
Put to designs subdirectory with a slight rename.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 15:18:14 +0000 (16:18 +0100)]
ALSA: doc: ReSTize OSS-Emulation document
A simple conversion from a text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 15:05:18 +0000 (16:05 +0100)]
ALSA: doc: ReSTize Channel-Mapping-API document
A simple conversion from a text file.
Put to designs subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 14:54:47 +0000 (15:54 +0100)]
ALSA: doc: ReSTize powersave document
A simple conversion from a text file.
Put into designs subdirectory, although it's mostly relevant with
HD-audio.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 14:52:06 +0000 (15:52 +0100)]
ALSA: doc: ReSTize Procfile document
A simple conversion from a text file.
A new subidrectory, Documentation/sound/designs, was created to put
this document. The other API design and implementation docuemnts
will be put to that directory in later commits.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 14:40:00 +0000 (15:40 +0100)]
ALSA: doc: ReSTize ALSA-Configuration document
A simple conversion from the text file.
Since this is the only document specific to the configurations, it's
put to the root sound subdirectory.
A section describing the obsoleted configure stuff of old alsa-driver
tarball got removed.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:41:45 +0000 (17:41 +0100)]
ALSA: doc: ReSTize HD-Audio-DP-MST-audio.txt
A simple conversion from a plain text file.
Put to hd-audio subdirectory.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 15:56:01 +0000 (16:56 +0100)]
ALSA: doc: ReSTize HD-Audio-Controls document
A conversion from a simple text file.
Put to hd-audio subdirectory with a rename.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 13:43:16 +0000 (14:43 +0100)]
ALSA: doc: ReSTize HD-Audio-Models document
A simple reformat with the description list of ReST, and the content
was kept as is, but renamed as Documentation/sound/hd-audio/models.rst.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 9 Nov 2016 12:01:05 +0000 (13:01 +0100)]
ALSA: doc: ReSTize HD-Audio document
The original HD-Audio.txt was already in asciidoc format, so it's a
simple conversion in the end.
A new subdirectory, Documentation/sound/hd-audio, is created and the
document is moved there with another file name to match better with
the recent Documentation tree structure.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 29 Sep 2016 16:21:46 +0000 (18:21 +0200)]
ALSA: doc: ReSTize writing-an-alsa-driver document
Another simple conversion from DocBook to ReST.
This required a few manual fixups and reformats, but the most of
contents are kept as is.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Wed, 2 Nov 2016 20:30:39 +0000 (21:30 +0100)]
ALSA: doc: ReSTize alsa-driver-api document
A simple conversion of alsa-driver-api document from DocBook to ReST.
It's moved to the new Documentation/sound/kernel-api subdirectory that
will contain other ALSA kernel API documents.
The GPL legal note was removed, as it's superfluous (and doesn't fit
with ReST kernel docs pretty well).
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Thu, 10 Nov 2016 16:37:15 +0000 (17:37 +0100)]
ALSA: doc: Remove alsa-parameters.txt
This is a really obsoleted information, effectively just listing the
module names. Let's get rid of it for avoiding confusions.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Hui Wang [Thu, 10 Nov 2016 05:20:05 +0000 (13:20 +0800)]
ALSA: hda - add a new condition to check if it is thinkpad
Latest Thinkpad laptops use the HKEY_HID LEN0268 instead of the
LEN0068, as a result neither audio mute led nor mic mute led can work
any more.
After adding the new HKEY_HID into the is_thinkpad(), both of them
works well as before.
Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Lars-Peter Clausen [Tue, 8 Nov 2016 14:48:06 +0000 (15:48 +0100)]
ALSA: hda - Fix typo
EPAD -> EAPD
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Sun, 30 Oct 2016 21:13:19 +0000 (22:13 +0100)]
ALSA: info: Return error for invalid read/write
Currently the ALSA proc handler allows read or write even if the proc
file were write-only or read-only. It's mostly harmless, does thing
but allocating memory and ignores the input/output. But it doesn't
tell user about the invalid use, and it's confusing and inconsistent
in comparison with other proc files.
This patch adds some sanity checks and let the proc handler returning
an -EIO error when the invalid read/write is performed.
Cc: <stable@vger.kernel.org> # v4.2+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai [Sun, 30 Oct 2016 21:18:45 +0000 (22:18 +0100)]
ALSA: info: Limit the proc text input size
The ALSA proc handler allows currently the write in the unlimited size
until kmalloc() fails. But basically the write is supposed to be only
for small inputs, mostly for one line inputs, and we don't have to
handle too large sizes at all. Since the kmalloc error results in the
kernel warning, it's better to limit the size beforehand.
This patch adds the limit of 16kB, which must be large enough for the
currently existing code.
Cc: stable@vger.kernel.org # v4.2+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Linus Torvalds [Sat, 5 Nov 2016 23:23:36 +0000 (16:23 -0700)]
Linux 4.9-rc4
Linus Torvalds [Sat, 5 Nov 2016 22:30:12 +0000 (15:30 -0700)]
Merge branch 'i2c/for-current' of git://git./linux/kernel/git/wsa/linux
Pull i2c fix from Wolfram Sang:
"A bugfix for the I2C core fixing a (rare) race condition"
* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: core: fix NULL pointer dereference under race condition
Linus Torvalds [Sat, 5 Nov 2016 18:46:02 +0000 (11:46 -0700)]
Merge branches 'sched-urgent-for-linus' and 'core-urgent-for-linus' of git://git./linux/kernel/git/tip/tip
Pull stack vmap fixups from Thomas Gleixner:
"Two small patches related to sched_show_task():
- make sure to hold a reference on the task stack while accessing it
- remove the thread_saved_pc printout
.. and add a sanity check into release_task_stack() to catch problems
with task stack references"
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/core: Remove pointless printout in sched_show_task()
sched/core: Fix oops in sched_show_task()
* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
fork: Add task stack refcounting sanity check and prevent premature task stack freeing
Linus Torvalds [Sat, 5 Nov 2016 18:34:07 +0000 (11:34 -0700)]
Merge tag 'md/4.9-rc3' of git://git./linux/kernel/git/shli/md
Pull MD fixes from Shaohua Li:
"There are several bug fixes queued:
- fix raid5-cache recovery bugs
- fix discard IO error handling for raid1/10
- fix array sync writes bogus position to superblock
- fix IO error handling for raid array with external metadata"
* tag 'md/4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
md: be careful not lot leak internal curr_resync value into metadata. -- (all)
raid1: handle read error also in readonly mode
raid5-cache: correct condition for empty metadata write
md: report 'write_pending' state when array in sync
md/raid5: write an empty meta-block when creating log super-block
md/raid5: initialize next_checkpoint field before use
RAID10: ignore discard error
RAID1: ignore discard error
Linus Torvalds [Sat, 5 Nov 2016 18:28:21 +0000 (11:28 -0700)]
Merge tag 'scsi-fixes' of git://git./linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"Two more important data integrity fixes related to RAID device drivers
which wrongly throw away the SYNCHRONIZE CACHE command in the non-RAID
path and a memory leak in the scsi_debug driver"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware
scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded
scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices
Linus Torvalds [Sat, 5 Nov 2016 18:26:11 +0000 (11:26 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: psmouse - cleanup Focaltech code
Input: i8042 - add XMG C504 to keyboard reset table
Linus Torvalds [Sat, 5 Nov 2016 18:17:34 +0000 (11:17 -0700)]
Merge tag 'firewire-fixes' of git://git./linux/kernel/git/ieee1394/linux1394
Pull FireWire (IEEE 1394) fixes from Stefan Richter:
- add missing input validation to the firewire-net driver. Invalid
IP-over-1394 encapsulation headers could trigger buffer overflows
(CVE 2016-8633).
- IP-over-1394 link fragmentation headers were read and written
incorrectly, breaking fragmented RX/TX with other OS's stacks.
* tag 'firewire-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
firewire: net: fix fragmented datagram_size off-by-one
firewire: net: guard against rx buffer overflows
Linus Torvalds [Sat, 5 Nov 2016 18:15:09 +0000 (11:15 -0700)]
Merge tag 'media/v4.9-3' of git://git./linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab:
"A series of fixup patches meant to fix the usage of DMA on stack, plus
one warning fixup"
* tag 'media/v4.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (32 commits)
[media] radio-bcm2048: don't ignore errors
[media] pctv452e: fix semicolon.cocci warnings
[media] flexcop-usb: don't use stack for DMA
[media] stk-webcam: don't use stack for DMA
[media] s2255drv: don't use stack for DMA
[media] cpia2_usb: don't use stack for DMA
[media] digitv: handle error code on RC query
[media] dw2102: return error if su3000_power_ctrl() fails
[media] nova-t-usb2: handle error code on RC query
[media] technisat-usb2: use DMA buffers for I2C transfers
[media] pctv452e: don't call BUG_ON() on non-fatal error
[media] pctv452e: don't do DMA on stack
[media] nova-t-usb2: don't do DMA on stack
[media] gp8psk: don't go past the buffer size
[media] gp8psk: don't do DMA on stack
[media] dtv5100: don't do DMA on stack
[media] dtt200u: handle USB control message errors
[media] dtt200u: don't do DMA on stack
[media] dtt200u-fe: handle errors on USB control messages
[media] dtt200u-fe: don't do DMA on stack
...
Linus Torvalds [Sat, 5 Nov 2016 18:11:31 +0000 (11:11 -0700)]
Merge tag 'pci-v4.9-fixes-2' of git://git./linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas:
- fix for a Qualcomm driver issue that causes a use-before-set crash
- fix for DesignWare iATU unroll support that causes external aborts
when enabling the host bridge
* tag 'pci-v4.9-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: designware: Check for iATU unroll support after initializing host
PCI: qcom: Fix pp->dev usage before assignment
Linus Torvalds [Sat, 5 Nov 2016 17:52:29 +0000 (10:52 -0700)]
Merge tag 'for-linus-
20161104' of git://git.infradead.org/linux-mtd
Pull MTD fixes from Brian Norris:
- MAINTAINERS updates to reflect some new maintainers/submaintainers.
We have some great volunteers who've been developing and reviewing
already. We're going to try a group maintainership model, so
eventually you'll probably see pull requests from people besides me.
- NAND fixes from Boris:
"Three simple fixes:
- fix a non-critical bug in the gpmi driver
- fix a bug in the 'automatic NAND timings selection' feature
introduced in 4.9-rc1
- fix a false positive uninitialized-var warning"
* tag 'for-linus-
20161104' of git://git.infradead.org/linux-mtd:
mtd: mtk: avoid warning in mtk_ecc_encode
mtd: nand: Fix data interface configuration logic
mtd: nand: gpmi: disable the clocks on errors
MAINTAINERS: add more people to the MTD maintainer team
MAINTAINERS: add a maintainer for the SPI NOR subsystem
Linus Torvalds [Sat, 5 Nov 2016 17:49:28 +0000 (10:49 -0700)]
Merge tag 'mmc-v4.9-rc2' of git://git./linux/kernel/git/ulfh/mmc
Pull MMC fixes from Ulf Hansson:
"MMC host:
- sdhci-msm: Fix error path in probe
- dw_mmc-pltfm: Avoid NULL pointer dereference"
* tag 'mmc-v4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
mmc: sdhci-msm: Fix error return code in sdhci_msm_probe()
mmc: dw_mmc-pltfm: fix the potential NULL pointer dereference
Linus Torvalds [Sat, 5 Nov 2016 17:42:20 +0000 (10:42 -0700)]
Merge tag 'gpio-v4.9-3' of git://git./linux/kernel/git/linusw/linux-gpio
Pull GPIO fixes from Linus Walleij:
"Some GPIO fixes for the v4.9 series:
- Fix a nasty file descriptor leak when getting line handles.
- A fix for a cleanup that seemed innocent but created a problem for
drivers instantiating several gpiochips for one single OF node.
- Fix a unpredictable problem using irq_domain_simple() in the mvebu
driver by converting it to a lineas irqdomain"
* tag 'gpio-v4.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio/mvebu: Use irq_domain_add_linear
gpio: of: fix GPIO drivers with multiple gpio_chip for a single node
gpio: GPIO_GET_LINE{HANDLE,EVENT}_IOCTL: Fix file descriptor leak
Linus Torvalds [Sat, 5 Nov 2016 03:12:10 +0000 (20:12 -0700)]
Merge tag 'nfsd-4.9-1' of git://linux-nfs.org/~bfields/linux
Pull nfsd bugfixes from Bruce Fields:
"Fixes for some recent regressions including fallout from the vmalloc'd
stack change (after which we can no longer encrypt stuff on the
stack)"
* tag 'nfsd-4.9-1' of git://linux-nfs.org/~bfields/linux:
nfsd: Fix general protection fault in release_lock_stateid()
svcrdma: backchannel cannot share a page for send and rcv buffers
sunrpc: fix some missing rq_rbuffer assignments
sunrpc: don't pass on-stack memory to sg_set_buf
nfsd: move blocked lock handling under a dedicated spinlock
Linus Torvalds [Sat, 5 Nov 2016 03:08:16 +0000 (20:08 -0700)]
Merge branch 'for-4.9-rc3' of git://git./linux/kernel/git/kdave/linux
Pull btrfs fixes from Chris Mason:
"Some fixes that Dave Sterba collected. We held off on these last week
because I was focused on the memory corruption testing"
* 'for-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
btrfs: fix WARNING in btrfs_select_ref_head()
Btrfs: remove some no-op casts
btrfs: pass correct args to btrfs_async_run_delayed_refs()
btrfs: make file clone aware of fatal signals
btrfs: qgroup: Prevent qgroup->reserved from going subzero
Btrfs: kill BUG_ON in do_relocation
Linus Torvalds [Sat, 5 Nov 2016 03:03:14 +0000 (20:03 -0700)]
Merge branch 'overlayfs-linus' of git://git./linux/kernel/git/mszeredi/vfs
Pull overlayfs fixes from Miklos Szeredi:
"Fix two more POSIX ACL bugs introduced in 4.8 and add a missing fsync
during copy up to prevent possible data loss"
* 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
ovl: fsync after copy-up
ovl: fix get_acl() on tmpfs
ovl: update S_ISGID when setting posix ACLs
Linus Torvalds [Fri, 4 Nov 2016 20:30:13 +0000 (13:30 -0700)]
Merge tag 'drm-fixes-for-v4.9-rc4' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"Fixes for amdgpu, radeon, intel, imx and virtio-gpu.
This is a bit larger than I'd like, but I had some stuff I meant to
send for -rc3 but was waiting for the PAT regression fix to land. So
this is really fixes for rc3 and rc4 in one go.
There are a set of fixes for an oops we've been seeing around MST
display unplug, along with more suspend/resume and shutdown fixes for
amdgpu, one power management follow on fix for nouveau, and set of imx
fixes, and a single virtio-gpu regression fix"
* tag 'drm-fixes-for-v4.9-rc4' of git://people.freedesktop.org/~airlied/linux: (54 commits)
virtio-gpu: fix vblank events
drm/nouveau/acpi: fix check for power resources support
drm/i915: Fix SKL+ 90/270 degree rotated plane coordinate computation
drm/i915: Remove two invalid warns
drm/i915: Rotated view does not need a fence
drm/i915/fbc: fix CFB size calculation for gen8+
drm: i915: Wait for fences on new fb, not old
drm/i915: Clean up DDI DDC/AUX CH sanitation
drm/i915: Respect alternate_aux_channel for all DDI ports
drm/i915/gen9: fix watermarks when using the pipe scaler
drm/i915: Fix mismatched INIT power domain disabling during suspend
drm/i915: fix a read size argument
drm/i915: Use fence_write() from rpm resume
drm/i915/gen9: fix DDB partitioning for multi-screen cases
drm/i915: workaround sparse warning on variable length arrays
drm/i915: keep declarations in i915_drv.h
drm/amd/powerplay: fix bug get wrong evv voltage of Polaris.
drm/amdgpu/si_dpm: workaround for SI kickers
drm/radeon/si_dpm: workaround for SI kickers
drm/amdgpu: fix s3 resume back, uvd dpm randomly can't disable.
...
Niklas Cassel [Fri, 14 Oct 2016 21:54:55 +0000 (23:54 +0200)]
PCI: designware: Check for iATU unroll support after initializing host
dw_pcie_iatu_unroll_enabled() reads a dbi_base register. Reading any
dbi_base register before pp->ops->host_init has been called causes
"imprecise external abort" on platforms like ARTPEC-6, where the PCIe
module is disabled at boot and first enabled in pp->ops->host_init. Move
dw_pcie_iatu_unroll_enabled() to dw_pcie_setup_rc(), since it is after
pp->ops->host_init, but before pp->iatu_unroll_enabled is actually used.
Fixes:
a0601a470537 ("PCI: designware: Add iATU Unroll feature")
Tested-by: James Le Cuirot <chewi@gentoo.org>
Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Joao Pinto <jpinto@synopsys.com>
Acked-by: Olof Johansson <olof@lixom.net>
Linus Torvalds [Fri, 4 Nov 2016 20:08:05 +0000 (13:08 -0700)]
Merge tag 'for-linus' of git://git./virt/kvm/kvm
Pull KVM updates from Paolo Bonzini:
"One NULL pointer dereference, and two fixes for regressions introduced
during the merge window.
The rest are fixes for MIPS, s390 and nested VMX"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
kvm: x86: Check memopp before dereference (CVE-2016-8630)
kvm: nVMX: VMCLEAR an active shadow VMCS after last use
KVM: x86: drop TSC offsetting kvm_x86_ops to fix KVM_GET/SET_CLOCK
KVM: x86: fix wbinvd_dirty_mask use-after-free
kvm/x86: Show WRMSR data is in hex
kvm: nVMX: Fix kernel panics induced by illegal INVEPT/INVVPID types
KVM: document lock orders
KVM: fix OOPS on flush_work
KVM: s390: Fix STHYI buffer alignment for diag224
KVM: MIPS: Precalculate MMIO load resume PC
KVM: MIPS: Make ERET handle ERL before EXL
KVM: MIPS: Fix lazy user ASID regenerate for SMP
Takashi Iwai [Fri, 4 Nov 2016 20:04:44 +0000 (21:04 +0100)]
Merge tag 'asoc-fix-v4.9-rc3' of git://git./linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v4.9
The most important fix in here is a change which removes the #error
making the topology API unusable as-is since we have recently discovered
some production uses on Chromebooks so need to acknowledge that what
we've got there now is an ABI.
There's also a very big batch of driver specific fixes here which have
kept on being delayed due to more arriving so the update is another of
these bigger than I would like ones. There is one especially big one in
there, for the Qualcomm code which fixes simultaneous playback and
capture which was broken during the merge window. The diff for that is
large because it moves blocks of code to different functions but it's
functionally fairly simple and if it breaks it should have been very
obvious in testing.
Linus Torvalds [Fri, 4 Nov 2016 20:03:57 +0000 (13:03 -0700)]
Merge branch 'upstream' of git://git.linux-mips.org/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle:
"A set of MIPS fixes for 4.9:
- lots of fixes for printk continuations
- six fixes for FP related code.
- fix max_low_pfn with disabled highmem
- fix KASLR handling of NULL FDT and KASLR for generic kernels
- fix build of compressed image
- provide default mips_cpc_default_phys_base to ignore CPC
- fix reboot on Malta"
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: Fix max_low_pfn with disabled highmem
MIPS: Correct MIPS I FP sigcontext layout
MIPS: Fix ISA I/II FP signal context offsets
MIPS: Remove FIR from ISA I FP signal context
MIPS: Fix ISA I FP sigcontext access violation handling
MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue
MIPS: ptrace: Also initialize the FP context on individual FCSR writes
MIPS: dump_tlb: Fix printk continuations
MIPS: Fix __show_regs() output
MIPS: traps: Fix output of show_code
MIPS: traps: Fix output of show_stacktrace
MIPS: traps: Fix output of show_backtrace
MIPS: Fix build of compressed image
MIPS: generic: Fix KASLR for generic kernel.
MIPS: KASLR: Fix handling of NULL FDT
MIPS: Malta: Fixup reboot
MIPS: CPC: Provide default mips_cpc_default_phys_base to ignore CPC
Linus Torvalds [Fri, 4 Nov 2016 20:01:13 +0000 (13:01 -0700)]
Merge branch 'parisc-4.9-3' of git://git./linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller:
"The first three patches are trivial and add some required KERN_CONT,
ignore the new pkey syscalls on parisc and use the LINUX_GATEWAY_ADDR
define instead of hardcoded values.
The two patches from Dave Anglin are important.
The first one avoids trashing the sr2 and sr3 space registers in the
Light-weight syscall path. Especially the usage of sr3 is critical
since it may get trashed by the interrupt handler.
The second patch is even more important and tagged for stable series.
It protects one critical section in the syscall entry path by
disabling local interrupts. Without disabling interrupts, the sr7
space register may not be in sync with the current stack setup and
thus an incoming hardware interrupt may destroy memory in random
userspace areas"
* 'parisc-4.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Ignore the pkey system calls for now
parisc: Use LINUX_GATEWAY_ADDR define instead of hardcoded value
parisc: Ensure consistent state when switching to kernel stack at syscall entry
parisc: Avoid trashing sr2 and sr3 in LWS code
parisc: use KERN_CONT when printing device inventory
Vladimir Zapolskiy [Mon, 31 Oct 2016 19:46:24 +0000 (21:46 +0200)]
i2c: core: fix NULL pointer dereference under race condition
Race condition between registering an I2C device driver and
deregistering an I2C adapter device which is assumed to manage that
I2C device may lead to a NULL pointer dereference due to the
uninitialized list head of driver clients.
The root cause of the issue is that the I2C bus may know about the
registered device driver and thus it is matched by bus_for_each_drv(),
but the list of clients is not initialized and commonly it is NULL,
because I2C device drivers define struct i2c_driver as static and
clients field is expected to be initialized by I2C core:
i2c_register_driver() i2c_del_adapter()
driver_register() ...
bus_add_driver() ...
... bus_for_each_drv(..., __process_removed_adapter)
... i2c_do_del_adapter()
... list_for_each_entry_safe(..., &driver->clients, ...)
INIT_LIST_HEAD(&driver->clients);
To solve the problem it is sufficient to do clients list head
initialization before calling driver_register().
The problem was found while using an I2C device driver with a sluggish
registration routine on a bus provided by a physically detachable I2C
master controller, but practically the oops may be reproduced under
the race between arbitraty I2C device driver registration and managing
I2C bus device removal e.g. by unbinding the latter over sysfs:
% echo
21a4000.i2c > /sys/bus/platform/drivers/imx-i2c/unbind
Unable to handle kernel NULL pointer dereference at virtual address
00000000
Internal error: Oops: 17 [#1] SMP ARM
CPU: 2 PID: 533 Comm: sh Not tainted 4.9.0-rc3+ #61
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
task:
e5ada400 task.stack:
e4936000
PC is at i2c_do_del_adapter+0x20/0xcc
LR is at __process_removed_adapter+0x14/0x1c
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control:
10c5387d Table:
35bd004a DAC:
00000051
Process sh (pid: 533, stack limit = 0xe4936210)
Stack: (0xe4937d28 to 0xe4938000)
Backtrace:
[<
c0667be0>] (i2c_do_del_adapter) from [<
c0667cc0>] (__process_removed_adapter+0x14/0x1c)
[<
c0667cac>] (__process_removed_adapter) from [<
c0516998>] (bus_for_each_drv+0x6c/0xa0)
[<
c051692c>] (bus_for_each_drv) from [<
c06685ec>] (i2c_del_adapter+0xbc/0x284)
[<
c0668530>] (i2c_del_adapter) from [<
bf0110ec>] (i2c_imx_remove+0x44/0x164 [i2c_imx])
[<
bf0110a8>] (i2c_imx_remove [i2c_imx]) from [<
c051a838>] (platform_drv_remove+0x2c/0x44)
[<
c051a80c>] (platform_drv_remove) from [<
c05183d8>] (__device_release_driver+0x90/0x12c)
[<
c0518348>] (__device_release_driver) from [<
c051849c>] (device_release_driver+0x28/0x34)
[<
c0518474>] (device_release_driver) from [<
c0517150>] (unbind_store+0x80/0x104)
[<
c05170d0>] (unbind_store) from [<
c0516520>] (drv_attr_store+0x28/0x34)
[<
c05164f8>] (drv_attr_store) from [<
c0298acc>] (sysfs_kf_write+0x50/0x54)
[<
c0298a7c>] (sysfs_kf_write) from [<
c029801c>] (kernfs_fop_write+0x100/0x214)
[<
c0297f1c>] (kernfs_fop_write) from [<
c0220130>] (__vfs_write+0x34/0x120)
[<
c02200fc>] (__vfs_write) from [<
c0221088>] (vfs_write+0xa8/0x170)
[<
c0220fe0>] (vfs_write) from [<
c0221e74>] (SyS_write+0x4c/0xa8)
[<
c0221e28>] (SyS_write) from [<
c0108a20>] (ret_fast_syscall+0x0/0x1c)
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org