Commit Graph

129135 Commits

Author SHA1 Message Date
Jerry Xu
9f0dddb259 ARM: dts: rk3288-popmetal: support android on rk3288 PopMetal
1. support android 7.1
2. support vga out

Change-Id: Ic2b8384566fe2f1919843616a544a6c8a516f608
Signed-off-by: Jerry Xu <xbl@rock-chips.com>
2017-12-04 17:57:30 +08:00
Li Dongqiang
bd370f2645 ARM: dts: rk3229-gva: add audio config
Change-Id: I38dba9824034c5e3f75c1d44667d7772f1f490e9
Signed-off-by: Li Dongqiang <david.li@rock-chips.com>
2017-12-04 17:56:44 +08:00
Alex Zhao
8092b0b5e9 ARM/ARM64: make modules when build kernel.img
Change-Id: I79fe4d0e475bda97c2ad1e8e7f6ab454e4a7d147
Signed-off-by: Alex Zhao <zzc@rock-chips.com>
2017-12-04 14:26:01 +08:00
Sugar Zhang
131e05e3ac ARM: dts: rk3066-rayeager: add support for hdmi audio
Change-Id: Idc15040a95a97584117f2f229063b7b404ab2268
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2017-12-04 14:17:36 +08:00
xxh
c19d52e5b7 arm64: dts: rockchip: RK3328 EVB board for bluetooth
Change-Id: Id54ef68dc939d3edf54d5cda1ee25e0014de2579
Signed-off-by: Xu Xuehui <xxh@rock-chips.com>
2017-12-04 14:13:17 +08:00
Li Dongqiang
2d4d0a7a20 ARM: dts: rk3229-at-som: update audio config
Change-Id: I4a128227ffdd6a6a6c2c34a30b4843495e28620e
Signed-off-by: Li Dongqiang <david.li@rock-chips.com>
2017-12-04 11:18:04 +08:00
Zheng Yang
2b30312566 ARM: dts: rockchip: rk3066a: add HDMI nodes
Change-Id: Ic8d7731c445ff1ea8fd607c1f9984ce4672833b3
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-12-01 18:27:37 +08:00
Zheng Yang
69ef4dcd8d ARM: configs: rockchip_linux_defconfig enable RK3066 HDMI
Change-Id: I0eae8ffc45950081f1fd5dbc4d21b82be4a59693
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-12-01 18:26:49 +08:00
Jianqun Xu
647d1b5702 ARM: configs: rockchip_linux_defconfig select CMA & DMA_CMA
Change-Id: I2dfa8fe524b7625c4ef574e4ff72f68b82a7a308
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-01 14:42:21 +08:00
Tao Huang
c1a3c92580 arm64: rockchip_cros_defconfig: update by savedefconfig
Also remove schedfreq as default, which is dropped by linaro.

Change-Id: Ide1e05586cdbb1ddde2dcc87a3fccfdc54fe0061
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2017-12-01 14:29:52 +08:00
Tao Huang
afd240d168 Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git
* linux-linaro-lsk-v4.4-android: (510 commits)
  Linux 4.4.103
  Revert "sctp: do not peel off an assoc from one netns to another one"
  xen: xenbus driver must not accept invalid transaction ids
  s390/kbuild: enable modversions for symbols exported from asm
  ASoC: wm_adsp: Don't overrun firmware file buffer when reading region data
  btrfs: return the actual error value from from btrfs_uuid_tree_iterate
  ASoC: rsnd: don't double free kctrl
  netfilter: nf_tables: fix oob access
  netfilter: nft_queue: use raw_smp_processor_id()
  spi: SPI_FSL_DSPI should depend on HAS_DMA
  staging: iio: cdc: fix improper return value
  iio: light: fix improper return value
  mac80211: Suppress NEW_PEER_CANDIDATE event if no room
  mac80211: Remove invalid flag operations in mesh TSF synchronization
  drm: Apply range restriction after color adjustment when allocation
  ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE
  ath10k: set CTS protection VDEV param only if VDEV is up
  ath10k: fix potential memory leak in ath10k_wmi_tlv_op_pull_fw_stats()
  ath10k: ignore configuring the incorrect board_id
  ath10k: fix incorrect txpower set by P2P_DEVICE interface
  ...

Conflicts:
	drivers/media/v4l2-core/v4l2-ctrls.c
	kernel/sched/fair.c

Change-Id: I48152b2a0ab1f9f07e1da7823119b94f9b9e1751
2017-12-01 11:04:13 +08:00
Zorro Liu
b5c33435dd arm64: dts: rockchip: rk3368-xikp: disabled sdmmc
we need uart2 to debug

Change-Id: I09d2acb77b0ea16f21d54a723d1718989f91a31c
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
2017-12-01 10:22:04 +08:00
Alex Shi
0f646885c3 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-12-01 01:02:04 +08:00
Alex Shi
81ab793d6d Merge tag 'v4.4.103' into linux-linaro-lsk-v4.4
This is the 4.4.103 stable release
2017-12-01 01:02:00 +08:00
Zhang Zhijie
c58e8c45ef arm64: dts: rockchip: rk3328: add firmware and optee node
Add optee node to supply OP-TEE required properties.
/optee node is supposed to be below /firmware node.

Change-Id: I5a55a8e62c741726b9c5c7cf33ca832d3cbae86b
Signed-off-by: Zhang Zhijie <zhangzj@rock-chips.com>
2017-11-30 18:50:33 +08:00
Zhang Zhijie
67e46ec537 arm64: rockchip_defconfig: enable CONFIG_TEE and CONFIG_OPTEE
Change-Id: Ib299f9b5c07484b00e21e80166548f03a5a6f4a1
Signed-off-by: Zhang Zhijie <zhangzj@rock-chips.com>
2017-11-30 18:50:32 +08:00
Heiko Carstens
eedd29f510 s390/kbuild: enable modversions for symbols exported from asm
[ Upstream commit cabab3f9f5 ]

s390 version of commit 334bb77387 ("x86/kbuild: enable modversions
for symbols exported from asm") so we get also rid of all these
warnings:

WARNING: EXPORT symbol "_mcount" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memcpy" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memmove" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "memset" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "save_fpu_regs" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "sie64a" [vmlinux] version generation failed, symbol will not be versioned.
WARNING: EXPORT symbol "sie_exit" [vmlinux] version generation failed, symbol will not be versioned.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:28 +00:00
Naveen N. Rao
a2943ce580 powerpc/signal: Properly handle return value from uprobe_deny_signal()
commit 46725b17f1 upstream.

When a uprobe is installed on an instruction that we currently do not
emulate, we copy the instruction into a xol buffer and single step
that instruction. If that instruction generates a fault, we abort the
single stepping before invoking the signal handler. Once the signal
handler is done, the uprobe trap is hit again since the instruction is
retried and the process repeats.

We use uprobe_deny_signal() to detect if the xol instruction triggered
a signal. If so, we clear TIF_SIGPENDING and set TIF_UPROBE so that the
signal is not handled until after the single stepping is aborted. In
this case, uprobe_deny_signal() returns true and get_signal() ends up
returning 0. However, in do_signal(), we are not looking at the return
value, but depending on ksig.sig for further action, all with an
uninitialized ksig that is not touched in this scenario. Fix the same
by initializing ksig.sig to 0.

Fixes: 129b69df9c ("powerpc: Use get_signal() signal_setup_done()")
Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:24 +00:00
John David Anglin
937a91cd39 parisc: Fix validity check of pointer size argument in new CAS implementation
commit 05f016d2ca upstream.

As noted by Christoph Biedl, passing a pointer size of 4 in the new CAS
implementation causes a kernel crash.  The attached patch corrects the
off by one error in the argument validity check.

In reviewing the code, I noticed that we only perform word operations
with the pointer size argument.  The subi instruction intentionally uses
a word condition on 64-bit kernels.  Nullification was used instead of a
cmpib instruction as the branch should never be taken.  The shlw
pseudo-operation generates a depw,z instruction and it clears the target
before doing a shift left word deposit.  Thus, we don't need to clip the
upper 32 bits of this argument on 64-bit kernels.

Tested with a gcc testsuite run with a 64-bit kernel.  The gcc atomic
code in libgcc is the only direct user of the new CAS implementation
that I am aware of.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:24 +00:00
Paolo Bonzini
a694b1f85a KVM: SVM: obey guest PAT
commit 15038e1472 upstream.

For many years some users of assigned devices have reported worse
performance on AMD processors with NPT than on AMD without NPT,
Intel or bare metal.

The reason turned out to be that SVM is discarding the guest PAT
setting and uses the default (PA0=PA4=WB, PA1=PA5=WT, PA2=PA6=UC-,
PA3=UC).  The guest might be using a different setting, and
especially might want write combining but isn't getting it
(instead getting slow UC or UC- accesses).

Thanks a lot to geoff@hostfission.com for noticing the relation
to the g_pat setting.  The patch has been tested also by a bunch
of people on VFIO users forums.

Fixes: 709ddebf81
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=196409
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Tested-by: Nick Sarnie <commendsarnex@gmail.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:22 +00:00
Ladi Prosek
8293dc75de KVM: nVMX: set IDTR and GDTR limits when loading L1 host state
commit 21f2d55118 upstream.

Intel SDM 27.5.2 Loading Host Segment and Descriptor-Table Registers:

"The GDTR and IDTR limits are each set to FFFFH."

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:22 +00:00
Mirko Parthey
153142963c MIPS: BCM47XX: Fix LED inversion for WRT54GSv1
commit 56a46acf62 upstream.

The WLAN LED on the Linksys WRT54GSv1 is active low, but the software
treats it as active high. Fix the inverted logic.

Fixes: 7bb26b1691 ("MIPS: BCM47xx: Fix LEDs on WRT54GS V1.0")
Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
Looks-ok-by: Rafał Miłecki <zajec5@gmail.com>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16071/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:20 +00:00
Maciej W. Rozycki
00fd53bc37 MIPS: Fix an n32 core file generation regset support regression
commit 547da67317 upstream.

Fix a commit 7aeb753b53 ("MIPS: Implement task_user_regset_view.")
regression, then activated by commit 6a9c001b7e ("MIPS: Switch ELF
core dumper to use regsets.)", that caused n32 processes to dump o32
core files by failing to set the EF_MIPS_ABI2 flag in the ELF core file
header's `e_flags' member:

$ file tls-core
tls-core: ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1 (SYSV), [...]
$ ./tls-core
Aborted (core dumped)
$ file core
core: ELF 32-bit MSB core file MIPS, MIPS-I version 1 (SYSV), SVR4-style
$

Previously the flag was set as the result of a:

statement placed in arch/mips/kernel/binfmt_elfn32.c, however in the
regset case, i.e. when CORE_DUMP_USE_REGSET is set, ELF_CORE_EFLAGS is
no longer used by `fill_note_info' in fs/binfmt_elf.c, and instead the
`->e_flags' member of the regset view chosen is.  We have the views
defined in arch/mips/kernel/ptrace.c, however only an o32 and an n64
one, and the latter is used for n32 as well.  Consequently an o32 core
file is incorrectly dumped from n32 processes (the ELF32 vs ELF64 class
is chosen elsewhere, and the 32-bit one is correctly selected for n32).

Correct the issue then by defining an n32 regset view and using it as
appropriate.  Issue discovered in GDB testing.

Fixes: 7aeb753b53 ("MIPS: Implement task_user_regset_view.")
Signed-off-by: Maciej W. Rozycki <macro@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Djordje Todorovic <djordje.todorovic@rt-rk.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17617/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:20 +00:00
Mathias Kresin
0c1faf9df0 MIPS: ralink: Fix typo in mt7628 pinmux function
commit 05a67cc258 upstream.

There is a typo inside the pinmux setup code. The function is called
refclk and not reclk.

Fixes: 53263a1c68 ("MIPS: ralink: add mt7628an support")
Signed-off-by: Mathias Kresin <dev@kresin.me>
Acked-by: John Crispin <john@phrozen.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16047/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:19 +00:00
Mathias Kresin
84c785ed78 MIPS: ralink: Fix MT7628 pinmux
commit 8ef4b43cd3 upstream.

According to the datasheet the REFCLK pin is shared with GPIO#37 and
the PERST pin is shared with GPIO#36.

Fixes: 53263a1c68 ("MIPS: ralink: add mt7628an support")
Signed-off-by: Mathias Kresin <dev@kresin.me>
Acked-by: John Crispin <john@phrozen.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16046/
Signed-off-by: James Hogan <jhogan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:19 +00:00
Philip Derrin
36a082ce59 ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
commit 3b0c0c922f upstream.

When CONFIG_ARM_LPAE is set, the PMD dump relies on the software
read-only bit to determine whether a page is writable. This
concealed a bug which left the kernel text section writable
(AP2=0) while marked read-only in the software bit.

In a kernel with the AP2 bug, the dump looks like this:

    ---[ Kernel Mapping ]---
    0xc0000000-0xc0200000           2M RW NX SHD
    0xc0200000-0xc0600000           4M ro x  SHD
    0xc0600000-0xc0800000           2M ro NX SHD
    0xc0800000-0xc4800000          64M RW NX SHD

The fix is to check that the software and hardware bits are both
set before displaying "ro". The dump then shows the true perms:

    ---[ Kernel Mapping ]---
    0xc0000000-0xc0200000           2M RW NX SHD
    0xc0200000-0xc0600000           4M RW x  SHD
    0xc0600000-0xc0800000           2M RW NX SHD
    0xc0800000-0xc4800000          64M RW NX SHD

Fixes: ded9477984 ("ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE")
Signed-off-by: Philip Derrin <philip@cog.systems>
Tested-by: Neil Dick <neil@cog.systems>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:19 +00:00
Philip Derrin
5f8046f7c9 ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
commit 400eeffaff upstream.

Currently, for ARM kernels with CONFIG_ARM_LPAE and
CONFIG_STRICT_KERNEL_RWX enabled, the 2MiB pages mapping the
kernel code and rodata are writable. They are marked read-only in
a software bit (L_PMD_SECT_RDONLY) but the hardware read-only bit
is not set (PMD_SECT_AP2).

For user mappings, the logic that propagates the software bit
to the hardware bit is in set_pmd_at(); but for the kernel,
section_update() writes the PMDs directly, skipping this logic.

The fix is to set PMD_SECT_AP2 for read-only sections in
section_update(), at the same time as L_PMD_SECT_RDONLY.

Fixes: 1e3479225a ("ARM: 8275/1: mm: fix PMD_SECT_RDONLY undeclared compile error")
Signed-off-by: Philip Derrin <philip@cog.systems>
Reported-by: Neil Dick <neil@cog.systems>
Tested-by: Neil Dick <neil@cog.systems>
Tested-by: Laura Abbott <labbott@redhat.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:19 +00:00
Masami Hiramatsu
29c4b6b4f4 x86/decoder: Add new TEST instruction pattern
commit 12a78d43de upstream.

The kbuild test robot reported this build warning:

  Warning: arch/x86/tools/test_get_len found difference at <jump_table>:ffffffff8103dd2c

  Warning: ffffffff8103dd82: f6 09 d8 testb $0xd8,(%rcx)
  Warning: objdump says 3 bytes, but insn_get_length() says 2
  Warning: decoded and checked 1569014 instructions with 1 warnings

This sequence seems to be a new instruction not in the opcode map in the Intel SDM.

The instruction sequence is "F6 09 d8", means Group3(F6), MOD(00)REG(001)RM(001), and 0xd8.
Intel SDM vol2 A.4 Table A-6 said the table index in the group is "Encoding of Bits 5,4,3 of
the ModR/M Byte (bits 2,1,0 in parenthesis)"

In that table, opcodes listed by the index REG bits as:

  000         001       010 011  100        101        110         111
 TEST Ib/Iz,(undefined),NOT,NEG,MUL AL/rAX,IMUL AL/rAX,DIV AL/rAX,IDIV AL/rAX

So, it seems TEST Ib is assigned to 001.

Add the new pattern.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:19 +00:00
Vasily Gorbik
5c2607d3e7 s390/disassembler: increase show_code buffer size
commit b192571d1a upstream.

Current buffer size of 64 is too small. objdump shows that there are
instructions which would require up to 75 bytes buffer (with current
formating). 128 bytes "ought to be enough for anybody".

Also replaces 8 spaces with a single tab to reduce the memory footprint.

Fixes the following KASAN finding:

BUG: KASAN: stack-out-of-bounds in number+0x3fe/0x538
Write of size 1 at addr 000000005a4a75a0 by task bash/1282

CPU: 1 PID: 1282 Comm: bash Not tainted 4.14.0+ #215
Hardware name: IBM 2964 N96 702 (z/VM 6.4.0)
Call Trace:
([<000000000011eeb6>] show_stack+0x56/0x88)
 [<0000000000e1ce1a>] dump_stack+0x15a/0x1b0
 [<00000000004e2994>] print_address_description+0xf4/0x288
 [<00000000004e2cf2>] kasan_report+0x13a/0x230
 [<0000000000e38ae6>] number+0x3fe/0x538
 [<0000000000e3dfe4>] vsnprintf+0x194/0x948
 [<0000000000e3ea42>] sprintf+0xa2/0xb8
 [<00000000001198dc>] print_insn+0x374/0x500
 [<0000000000119346>] show_code+0x4ee/0x538
 [<000000000011f234>] show_registers+0x34c/0x388
 [<000000000011f2ae>] show_regs+0x3e/0xa8
 [<000000000011f502>] die+0x1ea/0x2e8
 [<0000000000138f0e>] do_no_context+0x106/0x168
 [<0000000000139a1a>] do_protection_exception+0x4da/0x7d0
 [<0000000000e55914>] pgm_check_handler+0x16c/0x1c0
 [<000000000090639e>] sysrq_handle_crash+0x46/0x58
([<0000000000000007>] 0x7)
 [<00000000009073fa>] __handle_sysrq+0x102/0x218
 [<0000000000907c06>] write_sysrq_trigger+0xd6/0x100
 [<000000000061d67a>] proc_reg_write+0xb2/0x128
 [<0000000000520be6>] __vfs_write+0xee/0x368
 [<0000000000521222>] vfs_write+0x21a/0x278
 [<000000000052156a>] SyS_write+0xda/0x178
 [<0000000000e555cc>] system_call+0xc4/0x270

The buggy address belongs to the page:
page:000003d1016929c0 count:0 mapcount:0 mapping:          (null) index:0x0
flags: 0x0()
raw: 0000000000000000 0000000000000000 0000000000000000 ffffffff00000000
raw: 0000000000000100 0000000000000200 0000000000000000 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 000000005a4a7480: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
 000000005a4a7500: 00 00 00 00 00 00 00 00 f2 f2 f2 f2 00 00 00 00
>000000005a4a7580: 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00 00 00
                               ^
 000000005a4a7600: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f8 f8
 000000005a4a7680: f2 f2 f2 f2 f2 f2 f8 f8 f2 f2 f3 f3 f3 f3 00 00
==================================================================

Signed-off-by: Vasily Gorbik <gor@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:18 +00:00
Heiko Carstens
4337fa2425 s390/disassembler: add missing end marker for e7 table
commit 5c50538752 upstream.

The e7 opcode table does not have an end marker. Hence when trying to
find an unknown e7 instruction the code will access memory behind the
table until it finds something that matches the opcode, or the kernel
crashes, whatever comes first.

This affects not only the in-kernel disassembler but also uprobes and
kprobes which refuse to set a probe on unknown instructions, and
therefore search the opcode tables to figure out if instructions are
known or not.

Fixes: 3585cb0280 ("s390/disassembler: add vector instructions")
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:18 +00:00
Heiko Carstens
04bc7a2732 s390/runtime instrumention: fix possible memory corruption
commit d6e646ad7c upstream.

For PREEMPT enabled kernels the runtime instrumentation (RI) code
contains a possible use-after-free bug. If a task that makes use of RI
exits, it will execute do_exit() while still enabled for preemption.

That function will call exit_thread_runtime_instr() via
exit_thread(). If exit_thread_runtime_instr() gets preempted after the
RI control block of the task has been freed but before the pointer to
it is set to NULL, then save_ri_cb(), called from switch_to(), will
write to already freed memory.

Avoid this and simply disable preemption while freeing the control
block and setting the pointer to NULL.

Fixes: e4b8b3f33f ("s390: add support for runtime instrumentation")
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:18 +00:00
Heiko Carstens
7ddbe70107 s390: fix transactional execution control register handling
commit a1c5befc1c upstream.

Dan Horák reported the following crash related to transactional execution:

User process fault: interruption code 0013 ilc:3 in libpthread-2.26.so[3ff93c00000+1b000]
CPU: 2 PID: 1 Comm: /init Not tainted 4.13.4-300.fc27.s390x #1
Hardware name: IBM 2827 H43 400 (z/VM 6.4.0)
task: 00000000fafc8000 task.stack: 00000000fafc4000
User PSW : 0705200180000000 000003ff93c14e70
           R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:1 AS:0 CC:2 PM:0 RI:0 EA:3
User GPRS: 0000000000000077 000003ff00000000 000003ff93144d48 000003ff93144d5e
           0000000000000000 0000000000000002 0000000000000000 000003ff00000000
           0000000000000000 0000000000000418 0000000000000000 000003ffcc9fe770
           000003ff93d28f50 000003ff9310acf0 000003ff92b0319a 000003ffcc9fe6d0
User Code: 000003ff93c14e62: 60e0b030            std     %f14,48(%r11)
           000003ff93c14e66: 60f0b038            std     %f15,56(%r11)
          #000003ff93c14e6a: e5600000ff0e        tbegin  0,65294
          >000003ff93c14e70: a7740006            brc     7,3ff93c14e7c
           000003ff93c14e74: a7080000            lhi     %r0,0
           000003ff93c14e78: a7f40023            brc     15,3ff93c14ebe
           000003ff93c14e7c: b2220000            ipm     %r0
           000003ff93c14e80: 8800001c            srl     %r0,28

There are several bugs with control register handling with respect to
transactional execution:

- on task switch update_per_regs() is only called if the next task has
  an mm (is not a kernel thread). This however is incorrect. This
  breaks e.g. for user mode helper handling, where the kernel creates
  a kernel thread and then execve's a user space program. Control
  register contents related to transactional execution won't be
  updated on execve. If the previous task ran with transactional
  execution disabled then the new task will also run with
  transactional execution disabled, which is incorrect. Therefore call
  update_per_regs() unconditionally within switch_to().

- on startup the transactional execution facility is not enabled for
  the idle thread. This is not really a bug, but an inconsistency to
  other facilities. Therefore enable the facility if it is available.

- on fork the new thread's per_flags field is not cleared. This means
  that a child process inherits the PER_FLAG_NO_TE flag. This flag can
  be set with a ptrace request to disable transactional execution for
  the current process. It should not be inherited by new child
  processes in order to be consistent with the handling of all other
  PER related debugging options. Therefore clear the per_flags field in
  copy_thread_tls().

Reported-and-tested-by: Dan Horák <dan@danny.cz>
Fixes: d35339a42d ("s390: add support for transactional memory")
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-30 08:37:18 +00:00
Xinhuang Li
dcbce81779 arm64: dts: rk3328-evb-android: add new remote control key code
Change-Id: Id50215a6fee72d1adbe40c67ccfe19ab04ffe251
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
2017-11-30 15:06:21 +08:00
Xing Zheng
082904a103 ARM: dts: rockchip: re-configure rk3288-evb-rk1608 board
The rk3288-evb-rk1608 board doesn't share with rk3288-evb, so we
need to separate a new indepentent type of rk3288-evb-rk1608 board.

For now, these primary features have been confirmed on rk3288-evb-rk1608
board:
- The power supply for RK1608 by syr827 via i2c4
- EMMC
- MIPI LCD display
- USB HOST
- GMAC RMII
- WLAN(AP6335)
- TF CARD

Change-Id: Iee2e237027d541498ecf4d893ad6416ebc0d5c02
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2017-11-30 14:56:40 +08:00
Xinhuang Li
d08f1b3908 arm64: dts: rockchip: rk3328: rename rksdmmc to dwmmc
Change-Id: Ie70356eeff9c0064a7d1ef7b2d5dd092ee206ac5
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
2017-11-30 14:32:24 +08:00
Andy Yan
e0836121b6 arm64: dts: rockchip: add cpuinfo dt node for rk3399-android-6.0
Add cpuinfo dt node for android-6.0 on rk3399 platform.
Sync from rk3399-android.dtsi

Change-Id: I18dd17ac1b78d59932f40a0796faafe942fa389d
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2017-11-30 14:09:48 +08:00
Caesar Wang
894c1f0e8c ARM: dts: rockchip: add the needed power domain node on rk3036
As the vpu needed handle the power domain for reset function, this patch
supported the vpu domain for rk3036 Socs.

Change-Id: I67ad6085e2eb9a213c364d58713f02cc78ce6849
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2017-11-29 11:45:56 +08:00
Wyon Bi
f808d024c7 arm64: dts: rockchip: rk3368-xikp: Update display clock frequency for panel
Target pixel clock rate for refresh rate @60 Hz
	= 1341 * 1981 * 60 = 159391260 Hz ~ 159 MHz

Change-Id: Ia018ad3c1a34c48e676f9b63b06e7a2f1cb658f2
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2017-11-29 11:31:52 +08:00
Liang Chen
d0e827fc24 ARM: dts: rk312x: pinctrl pullup UART1 RX pin
UART RX pin need pullup to keep high voltage when bus is idle.

Change-Id: Iaeea6535bfc42d3ffec396798778cf8803cf3e90
Signed-off-by: Liang Chen <cl@rock-chips.com>
2017-11-29 11:12:40 +08:00
Liang Chen
a714d54f27 ARM: dts: rk312x-android: enable fiq mode
Change-Id: Idc400661beb11ba5198add30236f4365038859c9
Signed-off-by: Liang Chen <cl@rock-chips.com>
2017-11-28 17:31:06 +08:00
Wu Liangqing
f3a3899ec9 ARM: dts: rk312x: add gpu frequency 480Mhz
Change-Id: Ie2c7ff75524de5978676ac4f02ba359210e92eab
Signed-off-by: Wu Liangqing <wlq@rock-chips.com>
2017-11-28 17:30:34 +08:00
Joseph Chen
1dfc515d7e ARM: dts: rk3066a-rayeager: add vdd_logic regulator
The vdd_logic is a pwm regulator. Since '#pwm-cells = <2>', there
is not polarity invert support by pwm driver, so we have to add
property 'pwm-dutycycle-range = <100 0>' to support polarity invert
by pwm regulator driver itself.

Change-Id: Ie5d2cda67ce19dc792f96263836bab658d385681
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
2017-11-28 14:32:54 +08:00
Finley Xiao
460c258da9 arm64: dts: rockchip: rk3368-xikp: Enable dmc and dfi
Change-Id: Ic839a159b225b06dbb300268a6cd0a66fd9d83a9
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-11-28 14:14:30 +08:00
Finley Xiao
550c44033a arm64: dts: rockchip: rk3368: Add 240MHz for dmc
Change-Id: I7f52bc136cd36177bba3a15febe8fbf03bb9c97c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-11-28 14:13:04 +08:00
Dalon.zhang
0a894cc356 arm64: dts: rk3399-sapphire-excavator-linux: support ov4689&ov13850
Change-Id: Iadcfa66afb1de8c949dc453fdafc980975d1a4f3
Signed-off-by: Zhang Yunlong <dalon.zhang@rock-chips.com>
2017-11-28 14:09:15 +08:00
Yankun Zheng
391bf3832d ARM: dts: rockchip: rk3229-at-som.dtsi: add spi dev for user space
Change-Id: If552c8f07f43cc3e173c73687c0ff7d2ee6e946f
Signed-off-by: Yankun Zheng <zyk@rock-chips.com>
2017-11-27 20:52:32 +08:00
Binyuan Lan
a12aa9ef01 ARM: dts: rockchip: rk3126-bnd-d708: correct hp-ctl ACTIVE level
Change-Id: I9d1ecc2282261841f56d5d07a7c7e58fe39623d8
Signed-off-by: Binyuan Lan <lby@rock-chips.com>
2017-11-27 19:44:42 +08:00
Dalon.zhang
f2dc59cc0c ARM: dts: rockchip: add cif node for rk3288
Change-Id: Ia7e779b914991694fb1e4f20bf90477f38a5f997
Signed-off-by: Zhang Yunlong <dalon.zhang@rock-chips.com>
2017-11-27 19:37:38 +08:00
wennuan
66cb0ec2bc ARM: dts: rockchip: add a new dts file for RK_EVB_RK1608
Add this a dts-file for the RK_EVB_RK1608 board,the new dts modified
on the basis of the original rk3288-evb-act8846.dts file.The screen
light and touch are added,and the edp and hdmi interface are closed.

Change-Id:  I6895641ad6baa84b826587ca7bae275171bb6d08
Signed-off-by: Nuan Wen <leo.wen@rock-chips.com>
2017-11-27 19:35:02 +08:00
Jianqun Xu
7fb197a5cf ARM: dts: rockchip: rk312x fix to SCLK_CIF_OUT for cif out clk
Change-Id: Id78693129890ddff151753229681b00b911859c9
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-11-27 16:37:19 +08:00