Commit Graph

648004 Commits

Author SHA1 Message Date
Corey Minyard
d11ec041b2 ipmi:bt: Set the timeout before doing a capabilities check
commit fe50a7d039 upstream.

There was one place where the timeout value for an operation was
not being set, if a capabilities request was done from idle.  Move
the timeout value setting to before where that change might be
requested.

IMHO the cause here is the invisible returns in the macros.  Maybe
that's a job for later, though.

Reported-by: Nordmark Claes <Claes.Nordmark@tieto.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:07 +02:00
Mikulas Patocka
3e4fab744b branch-check: fix long->int truncation when profiling branches
commit 2026d35741 upstream.

The function __builtin_expect returns long type (see the gcc
documentation), and so do macros likely and unlikely. Unfortunatelly, when
CONFIG_PROFILE_ANNOTATED_BRANCHES is selected, the macros likely and
unlikely expand to __branch_check__ and __branch_check__ truncates the
long type to int. This unintended truncation may cause bugs in various
kernel code (we found a bug in dm-writecache because of it), so it's
better to fix __branch_check__ to return long.

Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1805300818140.24812@file01.intranet.prod.int.rdu2.redhat.com

Cc: Ingo Molnar <mingo@redhat.com>
Cc: stable@vger.kernel.org
Fixes: 1f0d69a9fc ("tracing: profile likely and unlikely annotations")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:07 +02:00
Matthias Schiffer
95f8713422 mips: ftrace: fix static function graph tracing
commit 6fb8656646 upstream.

ftrace_graph_caller was never run after calling ftrace_trace_function,
breaking the function graph tracer. Fix this, bringing it in line with the
x86 implementation.

While we're at it, also streamline the control flow of _mcount a bit to
reduce the number of branches.

This issue was reported before:
https://www.linux-mips.org/archives/linux-mips/2014-11/msg00295.html

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Tested-by: Matt Redfearn <matt.redfearn@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/18929/
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: stable@vger.kernel.org # v3.17+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:07 +02:00
Geert Uytterhoeven
ec7bea37c8 lib/vsprintf: Remove atomic-unsafe support for %pCr
commit 666902e42f upstream.

"%pCr" formats the current rate of a clock, and calls clk_get_rate().
The latter obtains a mutex, hence it must not be called from atomic
context.

Remove support for this rarely-used format, as vsprintf() (and e.g.
printk()) must be callable from any context.

Any remaining out-of-tree users will start seeing the clock's name
printed instead of its rate.

Reported-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Fixes: 900cca2944 ("lib/vsprintf: add %pC{,n,r} format specifiers for clocks")
Link: http://lkml.kernel.org/r/1527845302-12159-5-git-send-email-geert+renesas@glider.be
To: Jia-Ju Bai <baijiaju1990@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
To: Zhang Rui <rui.zhang@intel.com>
To: Eduardo Valentin <edubezval@gmail.com>
To: Eric Anholt <eric@anholt.net>
To: Stefan Wahren <stefan.wahren@i2se.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-doc@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: stable@vger.kernel.org # 4.1+
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Geert Uytterhoeven
676b002f26 clk: renesas: cpg-mssr: Stop using printk format %pCr
commit ef4b0be626 upstream.

Printk format "%pCr" will be removed soon, as clk_get_rate() must not be
called in atomic context.

Replace it by open-coding the operation.  This is safe here, as the code
runs in task context.

Link: http://lkml.kernel.org/r/1527845302-12159-2-git-send-email-geert+renesas@glider.be
To: Jia-Ju Bai <baijiaju1990@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
To: Zhang Rui <rui.zhang@intel.com>
To: Eduardo Valentin <edubezval@gmail.com>
To: Eric Anholt <eric@anholt.net>
To: Stefan Wahren <stefan.wahren@i2se.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-doc@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: stable@vger.kernel.org # 4.5+
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Alexander Sverdlin
a879f6c232 ASoC: cirrus: i2s: Fix {TX|RX}LinCtrlData setup
commit 5d302ed3cc upstream.

According to "EP93xx User’s Guide", I2STXLinCtrlData and I2SRXLinCtrlData
registers actually have different format. The only currently used bit
(Left_Right_Justify) has different position. Fix this and simplify the
whole setup taking into account the fact that both registers have zero
default value.

The practical effect of the above is repaired SND_SOC_DAIFMT_RIGHT_J
support (currently unused).

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Alexander Sverdlin
d6aa7326e8 ASoC: cirrus: i2s: Fix LRCLK configuration
commit 2d534113be upstream.

The bit responsible for LRCLK polarity is i2s_tlrs (0), not i2s_trel (2)
(refer to "EP93xx User's Guide").

Previously card drivers which specified SND_SOC_DAIFMT_NB_IF actually got
SND_SOC_DAIFMT_NB_NF, an adaptation is necessary to retain the old
behavior.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Srinivas Kandagatla
1a1b2790f0 ASoC: dapm: delete dapm_kcontrol_data paths list before freeing it
commit ff2faf1289 upstream.

dapm_kcontrol_data is freed as part of dapm_kcontrol_free(), leaving the
paths pointer dangling in the list.

This leads to system crash when we try to unload and reload sound card.
I hit this bug during ADSP crash/reboot test case on Dragon board DB410c.

Without this patch, on SLAB Poisoning enabled build, kernel crashes with
"BUG kmalloc-128 (Tainted: G        W        ): Poison overwritten"

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Ingo Flaschberger
cf05568cb8 1wire: family module autoload fails because of upper/lower case mismatch.
commit 065c09563c upstream.

1wire family module autoload fails because of upper/lower
  case mismatch.

Signed-off-by: Ingo Flaschberger <ingo.flaschberger@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Maxim Moseychuk
55365ad775 usb: do not reset if a low-speed or full-speed device timed out
commit 6e01827ed9 upstream.

Some low-speed and full-speed devices (for example, bluetooth)
do not have time to initialize. For them, ETIMEDOUT is a valid error.
We need to give them another try. Otherwise, they will
never be initialized correctly and in dmesg will be messages
"Bluetooth: hci0 command 0x1002 tx timeout" or similars.

Fixes: 264904ccc3 ("usb: retry reset if a device times out")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Eric W. Biederman
c82ccd7122 signal/xtensa: Consistenly use SIGBUS in do_unaligned_user
commit 7de712ccc0 upstream.

While working on changing this code to use force_sig_fault I
discovered that do_unaliged_user is sets si_signo to SIGBUS and passes
SIGSEGV to force_sig_info.  Which is just b0rked.

The code is reporting a SIGBUS error so replace the SIGSEGV with SIGBUS.

Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: linux-xtensa@linux-xtensa.org
Cc: stable@vger.kernel.org
Acked-by: Max Filippov <jcmvbkbc@gmail.com>
Fixes: 5a0015d626 ("[PATCH] xtensa: Architecture support for Tensilica Xtensa Part 3")
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Daniel Wagner
d9c202b269 serial: sh-sci: Use spin_{try}lock_irqsave instead of open coding version
commit 8afb1d2c12 upstream.

Commit 40f70c03e3 ("serial: sh-sci: add locking to console write
function to avoid SMP lockup") copied the strategy to avoid locking
problems in conjuncture with the console from the UART8250
driver. Instead using directly spin_{try}lock_irqsave(),
local_irq_save() followed by spin_{try}lock() was used. While this is
correct on mainline, for -rt it is a problem. spin_{try}lock() will
check if it is running in a valid context. Since the local_irq_save()
has already been executed, the context has changed and
spin_{try}lock() will complain. The reason why spin_{try}lock()
complains is that on -rt the spin locks are turned into mutexes and
therefore can sleep. Sleeping with interrupts disabled is not valid.

BUG: sleeping function called from invalid context at /home/wagi/work/rt/v4.4-cip-rt/kernel/locking/rtmutex.c:995
in_atomic(): 0, irqs_disabled(): 128, pid: 778, name: irq/76-eth0
CPU: 0 PID: 778 Comm: irq/76-eth0 Not tainted 4.4.126-test-cip22-rt14-00403-gcd03665c8318 #12
Hardware name: Generic RZ/G1 (Flattened Device Tree)
Backtrace:
[<c00140a0>] (dump_backtrace) from [<c001424c>] (show_stack+0x18/0x1c)
 r7:c06b01f0 r6:60010193 r5:00000000 r4:c06b01f0
[<c0014234>] (show_stack) from [<c01d3c94>] (dump_stack+0x78/0x94)
[<c01d3c1c>] (dump_stack) from [<c004c134>] (___might_sleep+0x134/0x194)
 r7:60010113 r6:c06d3559 r5:00000000 r4:ffffe000
[<c004c000>] (___might_sleep) from [<c04ded60>] (rt_spin_lock+0x20/0x74)
 r5:c06f4d60 r4:c06f4d60
[<c04ded40>] (rt_spin_lock) from [<c02577e4>] (serial_console_write+0x100/0x118)
 r5:c06f4d60 r4:c06f4d60
[<c02576e4>] (serial_console_write) from [<c0061060>] (call_console_drivers.constprop.15+0x10c/0x124)
 r10:c06d2894 r9:c04e18b0 r8:00000028 r7:00000000 r6:c06d3559 r5:c06d2798
 r4:c06b9914 r3:c02576e4
[<c0060f54>] (call_console_drivers.constprop.15) from [<c0062984>] (console_unlock+0x32c/0x430)
 r10:c06d30d8 r9:00000028 r8:c06dd518 r7:00000005 r6:00000000 r5:c06d2798
 r4:c06d2798 r3:00000028
[<c0062658>] (console_unlock) from [<c0062e1c>] (vprintk_emit+0x394/0x4f0)
 r10:c06d2798 r9:c06d30ee r8:00000006 r7:00000005 r6:c06a78fc r5:00000027
 r4:00000003
[<c0062a88>] (vprintk_emit) from [<c0062fa0>] (vprintk+0x28/0x30)
 r10:c060bd46 r9:00001000 r8:c06b9a90 r7:c06b9a90 r6:c06b994c r5:c06b9a3c
 r4:c0062fa8
[<c0062f78>] (vprintk) from [<c0062fb8>] (vprintk_default+0x10/0x14)
[<c0062fa8>] (vprintk_default) from [<c009cd30>] (printk+0x78/0x84)
[<c009ccbc>] (printk) from [<c025afdc>] (credit_entropy_bits+0x17c/0x2cc)
 r3:00000001 r2:decade60 r1:c061a5ee r0:c061a523
 r4:00000006
[<c025ae60>] (credit_entropy_bits) from [<c025bf74>] (add_interrupt_randomness+0x160/0x178)
 r10:466e7196 r9:1f536000 r8:fffeef74 r7:00000000 r6:c06b9a60 r5:c06b9a3c
 r4:dfbcf680
[<c025be14>] (add_interrupt_randomness) from [<c006536c>] (irq_thread+0x1e8/0x248)
 r10:c006537c r9:c06cdf21 r8:c0064fcc r7:df791c24 r6:df791c00 r5:ffffe000
 r4:df525180
[<c0065184>] (irq_thread) from [<c003fba4>] (kthread+0x108/0x11c)
 r10:00000000 r9:00000000 r8:c0065184 r7:df791c00 r6:00000000 r5:df791d00
 r4:decac000
[<c003fa9c>] (kthread) from [<c00101b8>] (ret_from_fork+0x14/0x3c)
 r8:00000000 r7:00000000 r6:00000000 r5:c003fa9c r4:df791d00

Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Daniel Wagner <daniel.wagner@siemens.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:06 +02:00
Michael Schmitz
5692dcf90e m68k/mm: Adjust VM area to be unmapped by gap size for __iounmap()
commit 3f90f9ef2d upstream.

If 020/030 support is enabled, get_io_area() leaves an IO_SIZE gap
between mappings which is added to the vm_struct representing the
mapping.  __ioremap() uses the actual requested size (after alignment),
while __iounmap() is passed the size from the vm_struct.

On 020/030, early termination descriptors are used to set up mappings of
extent 'size', which are validated on unmapping. The unmapped gap of
size IO_SIZE defeats the sanity check of the pmd tables, causing
__iounmap() to loop forever on 030.

On 040/060, unmapping of page table entries does not check for a valid
mapping, so the umapping loop always completes there.

Adjust size to be unmapped by the gap that had been added in the
vm_struct prior.

This fixes the hang in atari_platform_init() reported a long time ago,
and a similar one reported by Finn recently (addressed by removing
ioremap() use from the SWIM driver.

Tested on my Falcon in 030 mode - untested but should work the same on
040/060 (the extra page tables cleared there would never have been set
up anyway).

Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
[geert: Minor commit description improvements]
[geert: This was fixed in 2.4.23, but not in 2.5.x]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Siarhei Liakh
7a68dcdc9d x86: Call fixup_exception() before notify_die() in math_error()
commit 3ae6295ccb upstream.

fpu__drop() has an explicit fwait which under some conditions can trigger a
fixable FPU exception while in kernel. Thus, we should attempt to fixup the
exception first, and only call notify_die() if the fixup failed just like
in do_general_protection(). The original call sequence incorrectly triggers
KDB entry on debug kernels under particular FPU-intensive workloads.

Andy noted, that this makes the whole conditional irq enable thing even
more inconsistent, but fixing that it outside the scope of this.

Signed-off-by: Siarhei Liakh <siarhei.liakh@concurrent-rt.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Borislav  Petkov" <bpetkov@suse.de>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/DM5PR11MB201156F1CAB2592B07C79A03B17D0@DM5PR11MB2011.namprd11.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Borislav Petkov
5a48f6084d x86/mce: Do not overwrite MCi_STATUS in mce_no_way_out()
commit 1f74c8a647 upstream.

mce_no_way_out() does a quick check during #MC to see whether some of
the MCEs logged would require the kernel to panic immediately. And it
passes a struct mce where MCi_STATUS gets written.

However, after having saved a valid status value, the next iteration
of the loop which goes over the MCA banks on the CPU, overwrites the
valid status value because we're using struct mce as storage instead of
a temporary variable.

Which leads to MCE records with an empty status value:

  mce: [Hardware Error]: CPU 0: Machine Check Exception: 6 Bank 0: 0000000000000000
  mce: [Hardware Error]: RIP 10:<ffffffffbd42fbd7> {trigger_mce+0x7/0x10}

In order to prevent the loss of the status register value, return
immediately when severity is a panic one so that we can panic
immediately with the first fatal MCE logged. This is also the intention
of this function and not to noodle over the banks while a fatal MCE is
already logged.

Tony: read the rest of the MCA bank to populate the struct mce fully.

Suggested-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/20180622095428.626-8-bp@alien8.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Tony Luck
c267eaaceb x86/mce: Fix incorrect "Machine check from unknown source" message
commit 40c36e2741 upstream.

Some injection testing resulted in the following console log:

  mce: [Hardware Error]: CPU 22: Machine Check Exception: f Bank 1: bd80000000100134
  mce: [Hardware Error]: RIP 10:<ffffffffc05292dd> {pmem_do_bvec+0x11d/0x330 [nd_pmem]}
  mce: [Hardware Error]: TSC c51a63035d52 ADDR 3234bc4000 MISC 88
  mce: [Hardware Error]: PROCESSOR 0:50654 TIME 1526502199 SOCKET 0 APIC 38 microcode 2000043
  mce: [Hardware Error]: Run the above through 'mcelog --ascii'
  Kernel panic - not syncing: Machine check from unknown source

This confused everybody because the first line quite clearly shows
that we found a logged error in "Bank 1", while the last line says
"unknown source".

The problem is that the Linux code doesn't do the right thing
for a local machine check that results in a fatal error.

It turns out that we know very early in the handler whether the
machine check is fatal. The call to mce_no_way_out() has checked
all the banks for the CPU that took the local machine check. If
it says we must crash, we can do so right away with the right
messages.

We do scan all the banks again. This means that we might initially
not see a problem, but during the second scan find something fatal.
If this happens we print a slightly different message (so I can
see if it actually every happens).

[ bp: Remove unneeded severity assignment. ]

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ashok Raj <ashok.raj@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: stable@vger.kernel.org # 4.2
Link: http://lkml.kernel.org/r/52e049a497e86fd0b71c529651def8871c804df0.1527283897.git.tony.luck@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Tony Luck
e7905a78ad x86/mce: Check for alternate indication of machine check recovery on Skylake
commit 4c5717da1d upstream.

Currently we just check the "CAPID0" register to see whether the CPU
can recover from machine checks.

But there are also some special SKUs which do not have all advanced
RAS features, but do enable machine check recovery for use with NVDIMMs.

Add a check for any of bits {8:5} in the "CAPID5" register (each
reports some NVDIMM mode available, if any of them are set, then
the system supports memory machine check recovery).

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>
Cc: stable@vger.kernel.org # 4.9
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/03cbed6e99ddafb51c2eadf9a3b7c8d7a0cc204e.1527283897.git.tony.luck@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Tony Luck
b4eb80a751 x86/mce: Improve error message when kernel cannot recover
commit c7d606f560 upstream.

Since we added support to add recovery from some errors inside the kernel in:

commit b2f9d678e2 ("x86/mce: Check for faults tagged in EXTABLE_CLASS_FAULT exception table entries")

we have done a less than stellar job at reporting the cause of recoverable
machine checks that occur in other parts of the kernel. The user just gets
the unhelpful message:

	mce: [Hardware Error]: Machine check: Action required: unknown MCACOD

doubly unhelpful when they check the manual for the reported IA32_MSR_STATUS.MCACOD
and see that it is listed as one of the standard recoverable values.

Add an extra rule to the MCE severity table to catch this case and report it
as:

	mce: [Hardware Error]: Machine check: Data load in unrecoverable area of kernel

Fixes: b2f9d678e2 ("x86/mce: Check for faults tagged in EXTABLE_CLASS_FAULT exception table entries")
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Cc: Ashok Raj <ashok.raj@intel.com>
Cc: stable@vger.kernel.org # 4.6+
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/4cc7c465150a9a48b8b9f45d0b840278e77eb9b5.1527283897.git.tony.luck@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Dan Williams
995cddcc33 x86/spectre_v1: Disable compiler optimizations over array_index_mask_nospec()
commit eab6870fee upstream.

Mark Rutland noticed that GCC optimization passes have the potential to elide
necessary invocations of the array_index_mask_nospec() instruction sequence,
so mark the asm() volatile.

Mark explains:

"The volatile will inhibit *some* cases where the compiler could lift the
 array_index_nospec() call out of a branch, e.g. where there are multiple
 invocations of array_index_nospec() with the same arguments:

        if (idx < foo) {
                idx1 = array_idx_nospec(idx, foo)
                do_something(idx1);
        }

        < some other code >

        if (idx < foo) {
                idx2 = array_idx_nospec(idx, foo);
                do_something_else(idx2);
        }

 ... since the compiler can determine that the two invocations yield the same
 result, and reuse the first result (likely the same register as idx was in
 originally) for the second branch, effectively re-writing the above as:

        if (idx < foo) {
                idx = array_idx_nospec(idx, foo);
                do_something(idx);
        }

        < some other code >

        if (idx < foo) {
                do_something_else(idx);
        }

 ... if we don't take the first branch, then speculatively take the second, we
 lose the nospec protection.

 There's more info on volatile asm in the GCC docs:

   https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Volatile
 "

Reported-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <stable@vger.kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Fixes: babdde2698 ("x86: Implement array_index_mask_nospec")
Link: https://lkml.kernel.org/lkml/152838798950.14521.4893346294059739135.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-03 11:23:05 +02:00
Evoke Zhang
42fa6d89ce lcd: fix code coverity
PD#168738: lcd: fix code coverity

Change-Id: I24eac191b7168a949c17fcb0478b4caee1453e4b
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2018-07-02 23:05:10 -07:00
Jian Hu
0851405bbd clk: txlx: add lock protection on meson_clk_measure()
PD#168934: clk: txlx: add lock protection on meson_clk_measure()

Fix encl_clk_msr equal zero when switch to hdmirx

Change-Id: I95bf5c3e4c0b45b2884a87a4112893b64766cda3
Signed-off-by: Jian Hu <jian.hu@amlogic.com>
2018-07-02 23:03:39 -07:00
Tong Li
628e972f0b s905d2_skt: reduce the Bootcomplete time for s905d2_skt.[2/2]
PD#169063: update dts for s905d2_skt.

Change-Id: I5825c1678da72b08aa5bf59e34e542811611a1f5
Signed-off-by: Tong Li <tong.li@amlogic.com>
2018-07-02 23:01:48 -07:00
hongmin hua
4d962126da cec: modfiy port info define for playback & audiosystem
PD#165588: cec: modfiy port info define for playback & audiosystem

Change-Id: I2305763107d2b99a767f688238fc51d4084d3b26
Signed-off-by: hongmin hua <hongmin.hua@amlogic.com>
2018-07-02 22:59:58 -07:00
Nan Li
45503c456f sdio: optimize tuning retry.
PD#168926: add cmd_dly to tuning retry.

Change-Id: If78f557cd5302ee340dfc82bd269f51a7cce2abd
Signed-off-by: Nan Li <nan.li@amlogic.com>
2018-07-02 21:27:45 -07:00
Zongdong Jiao
6017f83390 hdmitx: reactive I2C after resume [1/1]
PD#168111: hdmitx: reactive I2C after resume
Sometimes, TX devices suspend and close HDMI 5V power, then this
may cause I2C clock/data falls and hungup I2C waiting states.

Change-Id: Ifd83c19f91a7023a43cebb5654157e207013556c
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
2018-07-03 10:03:02 +08:00
Evoke Zhang
1702754d80 lcd: mipi-dsi: add operation_mode and read debug command support
PD#169193: lcd: mipi-dsi: add operation_mode and read debug command support

Change-Id: I5b1b781bc7700d0ced109c4e3ec171c91196604b
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2018-07-02 06:59:35 -07:00
Wencai You
4dcd32fac2 dts: gxm: add bt-dev for q201
PD#169292: add bt-dev for q201

Change-Id: I7039ce8934dab1f02477d64246e3639b6aa96fd0
Signed-off-by: Wencai You <wencai.you@amlogic.com>
2018-07-02 06:57:08 -07:00
Mingyen Hung
fa3d404e75 cec: modify dts pintrl selection to default
PD#158936: cec: modify dts pintrl selection to default

Fix kernel panic in aml_cec_probe() due to null pointer
reference on q200. (buildroot)

Change-Id: I926b22048cbdfe1524a2eda2410deac53aa4990e
Signed-off-by: Mingyen Hung <mingyen.hung@amlogic.com>
2018-07-02 06:11:50 -07:00
Bencheng Jing
8c00b82ad5 amvecm: rm satu_shift_by_con add hist_gamma_reset
PD#167359: amvecm: rm satu_shift_by_con  add hist_gamma_reset

Change-Id: I8b4a0eeaedbcd2b2569e7f0db2c7f5da37de7473
Signed-off-by: Bencheng Jing <bencheng.jing@amlogic.com>
2018-07-02 06:11:00 -07:00
MingLiang Dong
4527ef851e amvecm: use rdma load vpp reg
PD#166562: amvecm: use rdma load vpp reg

Change-Id: Id0b61be776d91e1b6270699aeb9b24fd43d1a67d
Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>
2018-07-02 06:09:14 -07:00
Evoke Zhang
ac9b99c0c6 vout_serve: add vinfo fr_adj_type support for vlock
PD#168809: vout_serve: add vinfo fr_adj_type support for vlock

Change-Id: Ib5b7b06110008a98a6cf9b16e2f14775aa3f1053
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2018-07-02 06:08:23 -07:00
yicheng shen
087815fee2 hdmirx: mute the audio when get avmute signal
PD#169041: hdmirx: mute the audio when get avmute signal

Change-Id: I5941d48a793974f7292d6648a70d7e7842944170
Signed-off-by: yicheng shen <yicheng.shen@amlogic.com>
2018-07-02 06:06:29 -07:00
Xing Wang
de960b11ed dts: audio: fix spdif_a share buffer with i2s
PD#160888: dts: audio: fix spdif_a share buffer with i2s

Change-Id: Id064feeaf20f3717e64f771ec1ae81b170000102
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2018-07-02 02:36:48 -07:00
Xing Wang
2ca7e4e50d audio: auge: only spdifin_event extcon for spdif_a in g12a
PD#165680: audio: auge: only spdifin_event extcon for spdif_a in g12a

Change-Id: Ie8486dc460a9452dc8a0f26a2a5acce83ee7bf26
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2018-07-02 02:35:43 -07:00
Bencheng Jing
ed3fb05f92 amvecm: clean coverity errors
PD#168792: amvecm: clean coverity errors

Change-Id: I1956c5e6b8bf3dff36e2820be4149f58dfa98f20
Signed-off-by: Bencheng Jing <bencheng.jing@amlogic.com>
2018-07-02 02:20:44 -07:00
Dezhi Kong
9a6929c193 vpp: adjust vpp skip line limit for bandwidth
PD#167737: VPP: adjust vpp skip line limit for bandwidth

Change-Id: I18c4325750a3c266936db849e52d938adf00adda
Signed-off-by: Dezhi Kong <dezhi.kong@amlogic.com>
2018-07-02 02:15:55 -07:00
pengcheng chen
167a2142b6 osd: fix not afbc ddr bandwidth too high issue
PD#164816: osd: fix not afbc ddr bandwidth too high issue

Change-Id: I0108ccf8fd2564da2974e95d065811f9682d3bdc
Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
2018-07-02 01:45:55 -07:00
Evoke Zhang
d76dd736eb vout_serve: code coverity fix
PD#168799: vout_serve: code coverity fix

Change-Id: Id5358f4adc791980b14e2c22eff3443e9601a90e
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2018-07-02 01:36:43 -07:00
sky zhou
fa6fba6130 DRM: move irq request after crtc created.
PD#168985: fix vblank irq panic when crtc not created.

Change-Id: I369a8a0159549001ae0ef216391be730664a4690
Signed-off-by: sky zhou <sky.zhou@amlogic.com>
2018-07-02 01:32:52 -07:00
Rongjun Chen
caafd46cc9 WIFI: fix wifi disable issue when suspend [2/2]
PD#168416: increase the mem size

Change-Id: Ib5fac2941b870c6d3dcca320adef17893bb1ec78
Signed-off-by: Rongjun Chen <rongjun.chen@amlogic.com>
2018-07-02 01:29:32 -07:00
Jianxin Qin
89d1d31ad7 usb: phy2: recovery analog status in PHY initial function
PD#164286: usb: phy2: recovery analog status during initial phase

If a USB device is enumerated done by Host, then the host system
reboot without power off, the AML USB PHY statue need to recovery,
or the USB device will be enumerated unsuccessfully.

Change-Id: If122e53b6a818be11be0ed6581ac485450244db0
Signed-off-by: Jianxin Qin <jianxin.qin@amlogic.com>
2018-07-02 01:27:37 -07:00
pengcheng chen
cf32797c87 osd: risk coverity bugs in osd module
PD#168947: osd: risk coverity bugs in osd module

Change-Id: Ia593f55c1debbd5dca271461336edb29123fae00
Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
2018-07-02 01:26:33 -07:00
nengwen.chen
7d524a96a5 atv_demod: Add ATV NICAM. [1/5]
PD#165624: Add ATV NICAM.

Change-Id: I2bcc018cd5ff7a611baa2f5473cfa1dbce28118d
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
2018-07-02 01:20:14 -07:00
MingLiang Dong
eff1812ead vdin: fix hdmi input hlg video, vpp cannot get hlg flag
PD#167991: vdin: fix hdmi input hlg video, vpp cannot get hlg flag

Change-Id: I9071d6fd956ea70bcfde7cb781ec687fb0a81021
Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>
2018-07-02 01:19:23 -07:00
Xing Wang
03d2d02b8c audio: support raw data even in touch sound[1/2]
PD#164738: audio: auge: check frddr src for each frddr

when output for raw data, disable the same frddrr src from other frddr

Change-Id: I930c84b0520ff404c6a323be79b26102699c817b
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2018-07-02 01:18:39 -07:00
Sunny Luo
90ef0a0549 spicc: fix clk polarity error of amlogic driver
PD#169301: spicc: fix clk polarity error of amlogic driver

Change-Id: Icb257e3394da94bd44cd78b63218161cfae63c69
Signed-off-by: Sunny Luo <sunny.luo@amlogic.com>
2018-07-02 15:18:15 +08:00
Yong Qin
b5c4c9777a cec: fix coverity code warning
PD#166957: cec: fix code coverity warning

Change-Id: Ic0671b76c0b9f1a1bb25d67c6e5255cba2a0835c
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
2018-07-01 23:52:51 -07:00
Kaifu Hu
50df8c4c7d hdmitx: parsing the env of frac_rate_policy [2/2]
PD#165862: hdmitx: parsing the env of frac_rate_policy

Uboot add the env frac_rate_policy,and kernel pasring that.

Change-Id: I4db60059738cd15fd32d2def5a4330f14b9fb118
Signed-off-by: Kaifu Hu <kaifu.hu@amlogic.com>
2018-07-01 23:51:36 -07:00
Nian Jing
1f5488e2c6 tvafe: atv default not support ntsc 50
PD#167487: atv default not support ntsc 50

Change-Id: I723f2cf1b26056a4adef39eb76a22596ac878e69
Signed-off-by: Nian Jing <nian.jing@amlogic.com>
2018-07-01 23:28:03 -07:00
Nian Jing
c476e728b2 tvafe: add hardware snow for txhd
PD#167605: add hardware snow for txhd

Change-Id: Ibd16773ddb304c813ed62ee14e828b30806f158a
Signed-off-by: Nian Jing <nian.jing@amlogic.com>
2018-07-01 23:26:46 -07:00