Commit Graph

643361 Commits

Author SHA1 Message Date
Paolo Bonzini
18276e9bcd kvm: x86: fix RSM when PCID is non-zero
commit fae1a3e775 upstream.

rsm_load_state_64() and rsm_enter_protected_mode() load CR3, then
CR4 & ~PCIDE, then CR0, then CR4.

However, setting CR4.PCIDE fails if CR3[11:0] != 0.  It's probably easier
in the long run to replace rsm_enter_protected_mode() with an emulator
callback that sets all the special registers (like KVM_SET_SREGS would
do).  For now, set the PCID field of CR3 only after CR4.PCIDE is 1.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Fixes: 660a5d517a
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:43:00 +01:00
Wanpeng Li
e5c73b3b60 KVM: X86: Fix load RFLAGS w/o the fixed bit
commit d73235d17b upstream.

 *** Guest State ***
 CR0: actual=0x0000000000000030, shadow=0x0000000060000010, gh_mask=fffffffffffffff7
 CR4: actual=0x0000000000002050, shadow=0x0000000000000000, gh_mask=ffffffffffffe871
 CR3 = 0x00000000fffbc000
 RSP = 0x0000000000000000  RIP = 0x0000000000000000
 RFLAGS=0x00000000         DR7 = 0x0000000000000400
        ^^^^^^^^^^

The failed vmentry is triggered by the following testcase when ept=Y:

    #include <unistd.h>
    #include <sys/syscall.h>
    #include <string.h>
    #include <stdint.h>
    #include <linux/kvm.h>
    #include <fcntl.h>
    #include <sys/ioctl.h>

    long r[5];
    int main()
    {
    	r[2] = open("/dev/kvm", O_RDONLY);
    	r[3] = ioctl(r[2], KVM_CREATE_VM, 0);
    	r[4] = ioctl(r[3], KVM_CREATE_VCPU, 7);
    	struct kvm_regs regs = {
    		.rflags = 0,
    	};
    	ioctl(r[4], KVM_SET_REGS, &regs);
    	ioctl(r[4], KVM_RUN, 0);
    }

X86 RFLAGS bit 1 is fixed set, userspace can simply clearing bit 1
of RFLAGS with KVM_SET_REGS ioctl which results in vmentry fails.
This patch fixes it by oring X86_EFLAGS_FIXED during ioctl.

Suggested-by: Jim Mattson <jmattson@google.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Quan Xu <quan.xu0@gmail.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Jim Mattson <jmattson@google.com>
Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Mika Westerberg
418dfce4fa pinctrl: cherryview: Mask all interrupts on Intel_Strago based systems
commit d2b3c35359 upstream.

Guenter Roeck reported an interrupt storm on a prototype system which is
based on Cyan Chromebook. The root cause turned out to be a incorrectly
configured pin that triggers spurious interrupts. This will be fixed in
coreboot but currently we need to prevent the interrupt storm from
happening by masking all interrupts (but not GPEs) on those systems.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=197953
Fixes: bcb48cca23 ("pinctrl: cherryview: Do not mask all interrupts in probe")
Reported-and-tested-by: Guenter Roeck <linux@roeck-us.net>
Reported-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Ricardo Ribalda Delgado
cb8b2fd190 spi: xilinx: Detect stall with Unknown commands
commit 5a1314fa69 upstream.

When the core is configured in C_SPI_MODE > 0, it integrates a
lookup table that automatically configures the core in dual or quad mode
based on the command (first byte on the tx fifo).

Unfortunately, that list mode_?_memoy_*.mif does not contain all the
supported commands by the flash.

Since 4.14 spi-nor automatically tries to probe the flash using SFDP
(command 0x5a), and that command is not part of the list_mode table.

Whit the right combination of C_SPI_MODE and C_SPI_MEMORY this leads
into a stall that can only be recovered with a soft rest.

This patch detects this kind of stall and returns -EIO to the caller on
those commands. spi-nor can handle this error properly:

m25p80 spi0.0: Detected stall. Check C_SPI_MODE and C_SPI_MEMORY. 0x21 0x2404
m25p80 spi0.0: SPI transfer failed: -5
spi_master spi0: failed to transfer one message from queue
m25p80 spi0.0: s25sl064p (8192 Kbytes)

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Helge Deller
373386ec3f parisc: Hide Diva-built-in serial aux and graphics card
commit bcf3f1752a upstream.

Diva GSP card has built-in serial AUX port and ATI graphic card which simply
don't work and which both don't have external connectors.  User Guides even
mention that those devices shouldn't be used.
So, prevent that Linux drivers try to enable those devices.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Rafael J. Wysocki
10b4a621f3 PCI / PM: Force devices to D0 in pci_pm_thaw_noirq()
commit 5839ee7389 upstream.

It is incorrect to call pci_restore_state() for devices in low-power
states (D1-D3), as that involves the restoration of MSI setup which
requires MMIO to be operational and that is only the case in D0.

However, pci_pm_thaw_noirq() may do that if the driver's "freeze"
callbacks put the device into a low-power state, so fix it by making
it force devices into D0 via pci_set_power_state() instead of trying
to "update" their power state which is pointless.

Fixes: e60514bd44 (PCI/PM: Restore the status of PCI devices across hibernation)
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Reported-by: Maarten Lankhorst <dev@mblankhorst.nl>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Maarten Lankhorst <dev@mblankhorst.nl>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Takashi Iwai
3176065495 ALSA: usb-audio: Fix the missing ctl name suffix at parsing SU
commit 5a15f289ee upstream.

The commit 89b89d121f ("ALSA: usb-audio: Add check return value for
usb_string()") added the check of the return value from
snd_usb_copy_string_desc(), which is correct per se, but it introduced
a regression.  In the original code, either the "Clock Source",
"Playback Source" or "Capture Source" suffix is added after the
terminal string, while the commit changed it to add the suffix only
when get_term_name() is failing.  It ended up with an incorrect ctl
name like "PCM" instead of "PCM Capture Source".

Also, even the original code has a similar bug: when the ctl name is
generated from snd_usb_copy_string_desc() for the given iSelector, it
also doesn't put the suffix.

This patch addresses these issues: the suffix is added always when no
static mapping is found.  Also the patch tries to put more comments
and cleans up the if/else block for better readability in order to
avoid the same pitfall again.

Fixes: 89b89d121f ("ALSA: usb-audio: Add check return value for usb_string()")
Reported-and-tested-by: Mauro Santos <registo.mailling@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Jussi Laako
beab14a3ee ALSA: usb-audio: Add native DSD support for Esoteric D-05X
commit 866f7ed7d6 upstream.

Adds VID:PID of Esoteric D-05X to the TEAC device id's.
Renames the is_teac_50X_dac() function to is_teac_dsd_dac() to cover
broader device family from the same corporation sharing the same USB
audio implementation.

Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Takashi Iwai
cec92448c5 ALSA: rawmidi: Avoid racy info ioctl via ctl device
commit c1cfd9025c upstream.

The rawmidi also allows to obtaining the information via ioctl of ctl
API.  It means that user can issue an ioctl to the rawmidi device even
when it's being removed as long as the control device is present.
Although the code has some protection via the global register_mutex,
its range is limited to the search of the corresponding rawmidi
object, and the mutex is already unlocked at accessing the rawmidi
object.  This may lead to a use-after-free.

For avoiding it, this patch widens the application of register_mutex
to the whole snd_rawmidi_info_select() function.  We have another
mutex per rawmidi object, but this operation isn't very hot path, so
it shouldn't matter from the performance POV.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:59 +01:00
Johan Hovold
becf7d87cd mfd: twl6040: Fix child-node lookup
commit 85e9b13cbb upstream.

Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

To make things worse, the parent node was prematurely freed, while the
child node was leaked.

Note that the CONFIG_OF compile guard can be removed as
of_get_child_by_name() provides a !CONFIG_OF implementation which always
fails.

Fixes: 37e13cecaa ("mfd: Add support for Device Tree to twl6040")
Fixes: ca2cad6ae3 ("mfd: Fix twl6040 build failure")
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:58 +01:00
Johan Hovold
f4c0796fdc mfd: twl4030-audio: Fix sibling-node lookup
commit 0a423772de upstream.

A helper purported to look up a child node based on its name was using
the wrong of-helper and ended up prematurely freeing the parent of-node
while leaking any matching node.

To make things worse, any matching node would not even necessarily be a
child node as the whole device tree was searched depth-first starting at
the parent.

Fixes: 019a7e6b7b ("mfd: twl4030-audio: Add DT support")
Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:58 +01:00
Jon Hunter
2db85cb211 mfd: cros ec: spi: Don't send first message too soon
commit 15d8374874 upstream.

On the Tegra124 Nyan-Big chromebook the very first SPI message sent to
the EC is failing.

The Tegra SPI driver configures the SPI chip-selects to be active-high
by default (and always has for many years). The EC SPI requires an
active-low chip-select and so the Tegra chip-select is reconfigured to
be active-low when the EC SPI driver calls spi_setup(). The problem is
that if the first SPI message to the EC is sent too soon after
reconfiguring the SPI chip-select, it fails.

The EC SPI driver prevents back-to-back SPI messages being sent too
soon by keeping track of the time the last transfer was sent via the
variable 'last_transfer_ns'. To prevent the very first transfer being
sent too soon, initialise the 'last_transfer_ns' variable after calling
spi_setup() and before sending the first SPI message.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:58 +01:00
Sebastian Andrzej Siewior
e81cff1ced crypto: mcryptd - protect the per-CPU queue with a lock
commit 9abffc6f2e upstream.

mcryptd_enqueue_request() grabs the per-CPU queue struct and protects
access to it with disabled preemption. Then it schedules a worker on the
same CPU. The worker in mcryptd_queue_worker() guards access to the same
per-CPU variable with disabled preemption.

If we take CPU-hotplug into account then it is possible that between
queue_work_on() and the actual invocation of the worker the CPU goes
down and the worker will be scheduled on _another_ CPU. And here the
preempt_disable() protection does not work anymore. The easiest thing is
to add a spin_lock() to guard access to the list.

Another detail: mcryptd_queue_worker() is not processing more than
MCRYPTD_BATCH invocation in a row. If there are still items left, then
it will invoke queue_work() to proceed with more later. *I* would
suggest to simply drop that check because it does not use a system
workqueue and the workqueue is already marked as "CPU_INTENSIVE". And if
preemption is required then the scheduler should do it.
However if queue_work() is used then the work item is marked as CPU
unbound. That means it will try to run on the local CPU but it may run
on another CPU as well. Especially with CONFIG_DEBUG_WQ_FORCE_RR_CPU=y.
Again, the preempt_disable() won't work here but lock which was
introduced will help.
In order to keep work-item on the local CPU (and avoid RR) I changed it
to queue_work_on().

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:58 +01:00
Dan Williams
d31a207aaf acpi, nfit: fix health event notification
commit adf6895754 upstream.

Integration testing with a BIOS that generates injected health event
notifications fails to communicate those events to userspace. The nfit
driver neglects to link the ACPI DIMM device with the necessary driver
data so acpi_nvdimm_notify() fails this lookup:

        nfit_mem = dev_get_drvdata(dev);
        if (nfit_mem && nfit_mem->flags_attr)
                sysfs_notify_dirent(nfit_mem->flags_attr);

Add the necessary linkage when installing the notification handler and
clean it up when the nfit driver instance is torn down.

Cc: Toshi Kani <toshi.kani@hpe.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Fixes: ba9c8dd3c2 ("acpi, nfit: add dimm device notification support")
Reported-by: Daniel Osawa <daniel.k.osawa@intel.com>
Tested-by: Daniel Osawa <daniel.k.osawa@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:58 +01:00
Takashi Iwai
54c74d3881 ACPI: APEI / ERST: Fix missing error handling in erst_reader()
commit bb82e0b4a7 upstream.

The commit f6f8285132 ("pstore: pass allocated memory region back to
caller") changed the check of the return value from erst_read() in
erst_reader() in the following way:

        if (len == -ENOENT)
                goto skip;
-       else if (len < 0) {
-               rc = -1;
+       else if (len < sizeof(*rcd)) {
+               rc = -EIO;
                goto out;

This introduced another bug: since the comparison with sizeof() is
cast to unsigned, a negative len value doesn't hit any longer.
As a result, when an error is returned from erst_read(), the code
falls through, and it may eventually lead to some weird thing like
memory corruption.

This patch adds the negative error value check more explicitly for
addressing the issue.

Fixes: f6f8285132 (pstore: pass allocated memory region back to caller)
Tested-by: Jerry Tang <jtang@suse.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-29 17:42:57 +01:00
Weiming Liu
25dada32d3 lcd_extern: add st7701 driver
PD#157223: lcd_extern: add st7701 driver for CES

Change-Id: I49d6930c4a4358a8a97a73cbe0194a77f39f55e3
Signed-off-by: Weiming Liu <weiming.liu@amlogic.com>
2017-12-29 14:34:16 +08:00
tao zeng
4f40b91e06 mm: fix lowmem issue
PD#157252: mm: fix lowmem issue

1. add statistics for CMA pages;
2. reduce cma print and not protect cma unless driver called;
3. fix cma usage policy in alloc path;
4. increase file scan ratio in kswapd;
5. using NOOP for default IO-scheduler;
6. change alloc flags of ZRAM to retry harder.

Change-Id: If7b0363da03da1682efe3996c69bb9d511299209
Signed-off-by: tao zeng <tao.zeng@amlogic.com>
2017-12-28 20:20:30 -07:00
Weiming Liu
fc9f2af920 lcd: add lcd support for txlx
PD#154260: lcd: add txlx support

Add panel dtsi for txlx r311.
Also add backlight local dimming driver.

Change-Id: I8d6cbc0a2099c17de1adc4087a3f58e1c34264ae
Signed-off-by: Weiming Liu <weiming.liu@amlogic.com>
2017-12-29 10:45:24 +08:00
Yi Zhou
df9c37611c hdmitx: fix the non_hdr effect in UI
PD#156644: hdmitx: fix the non_hdr effect in UI

Change-Id: I9b31757838a422bdf2e8c67bb838bb1bbc8dc497
Signed-off-by: Yi Zhou <yi.zhou@amlogic.com>
2017-12-28 03:32:05 -07:00
tao zeng
759513b6ba mm: do not increase CMA bitmap base pfn if retry
PD#157412: mm: do not increase CMA bitmap base pfn if retry

This behavior may cause some device can't allocate buffer.

From bit map debug:
txlx_t962x_r311:/ # cat /sys/kernel/debug/cma/cma-0/bitmap
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffefff ffffffff ffffffff ffffffff
                                    ~~~~~~~~ Here is a bit map gap!!!
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff 003fffff 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ff000000 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 3fffffff 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Change-Id: Ic3440d62ab1b339d6b5531ebc5aa7aa9e28df0e2
Signed-off-by: tao zeng <tao.zeng@amlogic.com>
2017-12-28 03:29:51 -07:00
WenCai You
ed87ab636a dts: add p241 partition table for cts [1/2]
PD#156150: dts: add p241 partition table for cts
cts require data partition at least 4G

1. change system to 1024M
2. change cache to 600M

Change-Id: I9a7e32fc863d58c5fd0b17e28aa7d35193c1dffb
Signed-off-by: WenCai You <wencai.you@amlogic.com>
2017-12-28 00:59:44 -07:00
Yixun Lan
6056e7e120 eth: phy: add the debug interface to read/write regs
PD#150437: eth: phy: add the debug interface to read/write regs

Change-Id: I206760b46c63fcea544cbfb2c127a6488ce4ad8f
Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
2017-12-28 00:59:31 -07:00
tao zeng
146f32cce5 mmext: fix panic caused by page trace
PD#157417: mmext: fix panic caused by page trace

stackframe.graph is not init if CONFIG_FUNCTION_GRAPH_TRACER
is opened.

Change-Id: Iea270dadd4579e71a778d0da764c4da27323938e
Signed-off-by: tao zeng <tao.zeng@amlogic.com>
2017-12-27 23:49:24 -07:00
Greg Kroah-Hartman
cb7518e616 Merge 4.9.72 into android-4.9
Changes in 4.9.72
	cxl: Check if vphb exists before iterating over AFU devices
	arm64: Initialise high_memory global variable earlier
	ALSA: hda - add support for docking station for HP 820 G2
	ALSA: hda - add support for docking station for HP 840 G3
	kvm: fix usage of uninit spinlock in avic_vm_destroy()
	HID: corsair: support for K65-K70 Rapidfire and Scimitar Pro RGB
	HID: corsair: Add driver Scimitar Pro RGB gaming mouse 1b1c:1b3e support to hid-corsair
	arm: kprobes: Fix the return address of multiple kretprobes
	arm: kprobes: Align stack to 8-bytes in test code
	nvme-loop: handle cpu unplug when re-establishing the controller
	cpuidle: Validate cpu_dev in cpuidle_add_sysfs()
	r8152: fix the list rx_done may be used without initialization
	crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex
	vsock: track pkt owner vsock
	vhost-vsock: add pkt cancel capability
	vsock: cancel packets when failing to connect
	sch_dsmark: fix invalid skb_cow() usage
	bna: integer overflow bug in debugfs
	sctp: out_qlen should be updated when pruning unsent queue
	net: qmi_wwan: Add USB IDs for MDM6600 modem on Motorola Droid 4
	hwmon: (max31790) Set correct PWM value
	usb: gadget: f_uvc: Sanity check wMaxPacketSize for SuperSpeed
	usb: gadget: udc: remove pointer dereference after free
	netfilter: nfnl_cthelper: fix runtime expectation policy updates
	netfilter: nfnl_cthelper: Fix memory leak
	iommu/exynos: Workaround FLPD cache flush issues for SYSMMU v5
	r8152: fix the rx early size of RTL8153
	tipc: fix nametbl deadlock at tipc_nametbl_unsubscribe
	inet: frag: release spinlock before calling icmp_send()
	pinctrl: st: add irq_request/release_resources callbacks
	scsi: lpfc: Fix PT2PT PRLI reject
	kvm: vmx: Flush TLB when the APIC-access address changes
	KVM: x86: correct async page present tracepoint
	KVM: VMX: Fix enable VPID conditions
	ARM: dts: ti: fix PCI bus dtc warnings
	hwmon: (asus_atk0110) fix uninitialized data access
	HID: xinmo: fix for out of range for THT 2P arcade controller.
	ASoC: STI: Fix reader substream pointer set
	r8152: prevent the driver from transmitting packets with carrier off
	s390/qeth: size calculation outbound buffers
	s390/qeth: no ETH header for outbound AF_IUCV
	bna: avoid writing uninitialized data into hw registers
	i40iw: Receive netdev events post INET_NOTIFIER state
	IB/core: Protect against self-requeue of a cq work item
	infiniband: Fix alignment of mmap cookies to support VIPT caching
	nbd: set queue timeout properly
	net: Do not allow negative values for busy_read and busy_poll sysctl interfaces
	IB/rxe: double free on error
	IB/rxe: increment msn only when completing a request
	i40e: Do not enable NAPI on q_vectors that have no rings
	RDMA/iser: Fix possible mr leak on device removal event
	irda: vlsi_ir: fix check for DMA mapping errors
	netfilter: nfnl_cthelper: fix a race when walk the nf_ct_helper_hash table
	netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register
	ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend
	cpufreq: Fix creation of symbolic links to policy directories
	net: ipconfig: fix ic_close_devs() use-after-free
	KVM: pci-assign: do not map smm memory slot pages in vt-d page tables
	virtio-balloon: use actual number of stats for stats queue buffers
	virtio_balloon: prevent uninitialized variable use
	isdn: kcapi: avoid uninitialized data
	net: moxa: fix TX overrun memory leak
	xhci: plat: Register shutdown for xhci_plat
	netfilter: nfnetlink_queue: fix secctx memory leak
	Btrfs: fix an integer overflow check
	ARM: dma-mapping: disallow dma_get_sgtable() for non-kernel managed memory
	cpuidle: powernv: Pass correct drv->cpumask for registration
	bnxt_en: Fix NULL pointer dereference in reopen failure path
	backlight: pwm_bl: Fix overflow condition
	crypto: crypto4xx - increase context and scatter ring buffer elements
	rtc: pl031: make interrupt optional
	kvm, mm: account kvm related kmem slabs to kmemcg
	net: phy: at803x: Change error to EINVAL for invalid MAC
	PCI: Avoid bus reset if bridge itself is broken
	scsi: cxgb4i: fix Tx skb leak
	scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive
	PCI: Create SR-IOV virtfn/physfn links before attaching driver
	PM / OPP: Move error message to debug level
	igb: check memory allocation failure
	ixgbe: fix use of uninitialized padding
	IB/rxe: check for allocation failure on elem
	PCI/AER: Report non-fatal errors only to the affected endpoint
	tracing: Exclude 'generic fields' from histograms
	ASoC: img-parallel-out: Add pm_runtime_get/put to set_fmt callback
	fm10k: fix mis-ordered parameters in declaration for .ndo_set_vf_bw
	scsi: lpfc: Fix secure firmware updates
	scsi: lpfc: PLOGI failures during NPIV testing
	vfio/pci: Virtualize Maximum Payload Size
	fm10k: ensure we process SM mbx when processing VF mbx
	net: ipv6: send NS for DAD when link operationally up
	staging: greybus: light: Release memory obtained by kasprintf
	clk: sunxi-ng: sun6i: Rename HDMI DDC clock to avoid name collision
	tcp: fix under-evaluated ssthresh in TCP Vegas
	rtc: set the alarm to the next expiring timer
	cpuidle: fix broadcast control when broadcast can not be entered
	thermal: hisilicon: Handle return value of clk_prepare_enable
	thermal/drivers/hisi: Fix missing interrupt enablement
	thermal/drivers/hisi: Fix kernel panic on alarm interrupt
	thermal/drivers/hisi: Simplify the temperature/step computation
	thermal/drivers/hisi: Fix multiple alarm interrupts firing
	MIPS: math-emu: Fix final emulation phase for certain instructions
	platform/x86: asus-wireless: send an EV_SYN/SYN_REPORT between state changes
	Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"
	bpf: adjust insn_aux_data when patching insns
	bpf: fix branch pruning logic
	bpf: reject out-of-bounds stack pointer calculation
	bpf: fix incorrect sign extension in check_alu_op()
	sparc32: Export vac_cache_size to fix build error
	Linux 4.9.72

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-12-27 13:38:06 +01:00
Kaifu Hu
ee21b12b23 hdmitx: update hdmitx driver
PD#154260: hdmitx: update hdmitx driver

1. using pr_info or pr_debug instead of printk.
2. remove unuse code.
3. change modulepara to sysfs.
4. use iomap api for read and write reg

Change-Id: I523329d7b26cd7c6675bdae55cda76a6a11c533e
Signed-off-by: Kaifu Hu <kaifu.hu@amlogic.com>
2017-12-27 02:39:21 -07:00
hongmin hua
72dcf27ab5 cec: add cec support for txlx
PD#154260: cec: add cec support for txlx

Change-Id: I16465d59fe73e85f7e760a660260590bc179ee53
Signed-off-by: hongmin hua <hongmin.hua@amlogic.com>
2017-12-27 02:29:22 -07:00
Xingyu Chen
73fd77d783 iomap: enable hiu interface for gxl/gxm
PD#154260: iomap: enable hiu interface for gxl/gxm

Change-Id: I0df51f9d782b17901a6b1ea7e6c5aa8a43703583
Signed-off-by: Xingyu Chen <xingyu.chen@amlogic.com>
2017-12-27 02:29:02 -07:00
MingLiang Dong
af65277848 amvecm: add bitdepth config and keystone for txlx
PD#154260: amvecm: add bitdepth config and keystone for txlx

1. add bitdepth 10bit/12bit config for txlx
2. add keystone alg for txlx

Change-Id: Id3c31199dde9df9585c7d7a9d7ff5aab20d32d1f
Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>
2017-12-27 02:28:02 -07:00
Nian Jing
e467c90268 tvin: tvafe: add tvafe driver support
PD#154260: tvin: tvafe: add tvafe driver support

1. palm paln pq adjust.
2. ntsc50 pq adjust.

Change-Id: I03b2e301d70a82560a37791457e524b916db3b16
Signed-off-by: Nian Jing <nian.jing@amlogic.com>
2017-12-27 02:23:06 -07:00
kele bai
bfebc35f9e di: merge latest di driver
PD#154260: di: add latest driver

1) add nr4&cue
2) remove pq releated hard-code
3) add pq load support
4) remove timerc, add hrtimer
5) remove tffbff detection
6) remove extern & global variables
7) move pulldown detection to separate directory
8) update amvecm head file
9) up to commit of PD#154436

Change-Id: I9cde21bb1fd4b4ee08ea88e883ef1c5368ad5b5d
Signed-off-by: kele bai <kele.bai@amlogic.com>
2017-12-27 02:21:46 -07:00
Yicheng Shen
3dba191da3 hdmirx: add hdmirx support for txlx
PD#154260: hdmirx: add hdmirx support for txlx

Change-Id: I26a0dee8aa79eec5f09d72b899ee067949380b12
Signed-off-by: Yicheng Shen <yicheng.shen@amlogic.com>
2017-12-27 02:20:45 -07:00
Bencheng Jing
7556ba8a7e vdin: amlogic: add vdin driver support
PD#154260: vdin: amlogic: add vdin driver support

Merge from kernel 3.14.
Optimize and fix memset error.

Change-Id: I0707de5cb6313da4e1ff8a3a1e91dfb098234529
Signed-off-by: Bencheng Jing <bencheng.jing@amlogic.com>
2017-12-27 02:20:19 -07:00
Nian Jing
878e0f00be cvbs: add cvbs driver support for txlx
PD#154260: add cvbs driver support for txlx

Update dts for all platforms.

1. Remove get_cpu type api and support dts match table data.
2. Add clock tree support.
3. Add performance property in device node.
4. Add protection flag for clk_gate on/off.

Change-Id: I082e48ecbbb44cfec5deb31a3a73b67b31370798
Signed-off-by: Nian Jing <nian.jing@amlogic.com>
2017-12-27 02:19:52 -07:00
Jiamin Ma
e5c989c180 unifykey: refine codes
PD#154260: refine unifykey codes

1. delete calling of cpu version related apis
2. replace self-implemented list with kernel-implemented one
3. delete unused MACRO defination
4. replace global variables with private data structure
5. define pr_fmt in each module
6. fix code defects:
   e438
   e527
   e550
   e570
   e650
7. add safe guard

Change-Id: I3dc93e3fef8ccfe3593d3275a69e0e21786e3ef1
Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
2017-12-27 02:19:35 -07:00
Xing Wang
edf886094e audio: meson: add sound driver support for txlx
PD#154260: audio: meson: add sound driver support for txlx

1. add sound driver support for txlx
2. add amaudio/amaudio2 driver
3. optimizing sound card driver

Change-Id: I726a139e6e34b82891ee4e72832dc529789f8ce7
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2017-12-27 02:19:06 -07:00
Evoke Zhang
514dfc0efc vout: update vout info support
PD#154260: vout: update vout info support

1. add htotal, vtotal support.
2. optimize dv_info, fresh_tx_pkt to vout_device.
3. add vinfo_base struct for vout IOCTL support.
4. set default invalid for hdmimode.

Change-Id: If9d99fd99b5f2d00eaee17504697c2dba3d47d6d
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2017-12-27 02:17:41 -07:00
Evoke Zhang
9585305649 vpu: add vpu support for txlx
PD#154260: vpu: add vpu support for txlx

Update dts for all platforms.

1. add support for txlx
2. add clktree support for clk change
3. remove unused vpu module for mem_pd
4. remove vpu_parent "vid_pll","mpll1","mpll2"

Change-Id: I43aa2435305fd02664ae825bc2f62664ffb526be
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2017-12-27 02:17:11 -07:00
pengcheng chen
c4e118637c osd: meson-txlx: add osd support
PD#154260: osd: meson-txlx: add osd support

Change-Id: I4c899bea555b7d654d8888a0c7433eb6c44893ad
Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
2017-12-27 01:39:17 -07:00
Matthew Shyu
6185bf05f9 crypto: meson-txlx: enable amlogic crypto dma
PD#154260: enable crypto driver

restructure crypto driver on top of dma and enable it on txlx

Change-Id: I0ffc0aaf9ad94c9652b9141bf92201c92463a893
Signed-off-by: Matthew Shyu <matthew.shyu@amlogic.com>
2017-12-27 01:38:34 -07:00
Yue Wang
9695264269 usb: fix usb PLL set.
PD#157680: usb: fix usb PLL set.

meson-txlx: fix usb PLL set.

Change-Id: I3580e6d24a4bd9d22d4173fc370d5263339486f1
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
2017-12-26 23:39:35 -07:00
Jian Hu
ce1681b1ae i2c: meson8b: add i2c surpport
PD#154260: i2c: meson8b: add i2c surpport
PD#157452: i2c: meson8b: add i2c surpport

1. add i2c surpport.
2. update gx/axg/txlx dts.
3. setup i2c b pinctrl for all platforms of axg.

Change-Id: I7fe41b7f42c741cb70cce1c4b7dd57d288deafa7
Signed-off-by: Jian Hu <jian.hu@amlogic.com>
Signed-off-by: Bo Yang <bo.yang@amlogic.com>
2017-12-27 14:01:23 +08:00
Long Yu
ed9d4cf21d emmc: fixed emmc compatible in p241 dts
PD#157611: emmc: fixed emmc compatible in p214 dts

Change-Id: I6f45bf56770a7f4f936c79389f4755a85d7f8c64
Signed-off-by: Long Yu <long.yu@amlogic.com>
2017-12-26 19:12:57 -07:00
Evoke Zhang
9adda5c93c vout_serve: add extcon for display mode change.[1/2]
PD#157561: vout_serve: add extcon for display mode change

add extcon in vout_serve and eliminate the same mode in hdmitx

Change-Id: I1063facae39534d93720632cf441b45680da954c
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
Signed-off-by: Yi Zhou <yi.zhou@amlogic.com>
2017-12-26 03:47:56 -07:00
Long Yu
d0a5e915d2 emmc: refixed support for sdio wifi
PD#154260: emmc: refixed support for sdio wifi

1. adjust sdio timing parameters

Change-Id: Iecd400b0570c363cc1df450bc09f8dfa2d7fa533
Signed-off-by: Long Yu <long.yu@amlogic.com>
2017-12-26 00:26:37 -07:00
Greg Kroah-Hartman
2df3979310 Linux 4.9.72 2017-12-25 14:23:47 +01:00
Guenter Roeck
6430e166ae sparc32: Export vac_cache_size to fix build error
commit 9d262d9511 upstream.

sparc32:allmodconfig fails to build with the following error.

ERROR: "vac_cache_size" [drivers/infiniband/sw/rxe/rdma_rxe.ko] undefined!

Fixes: cb88645596 ("infiniband: Fix alignment of mmap cookies ...")
Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Doug Ledford <dledford@redhat.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-25 14:23:47 +01:00
Daniel Borkmann
3695b3b185 bpf: fix incorrect sign extension in check_alu_op()
From: Jann Horn <jannh@google.com>

[ Upstream commit 95a762e2c8 ]

Distinguish between
BPF_ALU64|BPF_MOV|BPF_K (load 32-bit immediate, sign-extended to 64-bit)
and BPF_ALU|BPF_MOV|BPF_K (load 32-bit immediate, zero-padded to 64-bit);
only perform sign extension in the first case.

Starting with v4.14, this is exploitable by unprivileged users as long as
the unprivileged_bpf_disabled sysctl isn't set.

Debian assigned CVE-2017-16995 for this issue.

v3:
 - add CVE number (Ben Hutchings)

Fixes: 484611357c ("bpf: allow access into map value arrays")
Signed-off-by: Jann Horn <jannh@google.com>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-25 14:23:47 +01:00
Daniel Borkmann
d75d3ee237 bpf: reject out-of-bounds stack pointer calculation
From: Jann Horn <jannh@google.com>

Reject programs that compute wildly out-of-bounds stack pointers.
Otherwise, pointers can be computed with an offset that doesn't fit into an
`int`, causing security issues in the stack memory access check (as well as
signed integer overflow during offset addition).

This is a fix specifically for the v4.9 stable tree because the mainline
code looks very different at this point.

Fixes: 7bca0a9702 ("bpf: enhance verifier to understand stack pointer arithmetic")
Signed-off-by: Jann Horn <jannh@google.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-25 14:23:47 +01:00
Daniel Borkmann
7b5b73ea87 bpf: fix branch pruning logic
From: Alexei Starovoitov <ast@fb.com>

[ Upstream commit c131187db2 ]

when the verifier detects that register contains a runtime constant
and it's compared with another constant it will prune exploration
of the branch that is guaranteed not to be taken at runtime.
This is all correct, but malicious program may be constructed
in such a way that it always has a constant comparison and
the other branch is never taken under any conditions.
In this case such path through the program will not be explored
by the verifier. It won't be taken at run-time either, but since
all instructions are JITed the malicious program may cause JITs
to complain about using reserved fields, etc.
To fix the issue we have to track the instructions explored by
the verifier and sanitize instructions that are dead at run time
with NOPs. We cannot reject such dead code, since llvm generates
it for valid C code, since it doesn't do as much data flow
analysis as the verifier does.

Fixes: 17a5267067 ("bpf: verifier (add verifier core)")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-25 14:23:47 +01:00
Daniel Borkmann
565f012f5a bpf: adjust insn_aux_data when patching insns
From: Alexei Starovoitov <ast@fb.com>

[ Upstream commit 8041902dae ]

convert_ctx_accesses() replaces single bpf instruction with a set of
instructions. Adjust corresponding insn_aux_data while patching.
It's needed to make sure subsequent 'for(all insn)' loops
have matching insn and insn_aux_data.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-25 14:23:47 +01:00