linux/arch/powerpc
Vasant Hegde a17d7e441e powerpc/rtas: Validate rtas.entry before calling enter_rtas()
[ Upstream commit 8832317f66 ]

Currently we do not validate rtas.entry before calling enter_rtas(). This
leads to a kernel oops when user space calls rtas system call on a powernv
platform (see below). This patch adds code to validate rtas.entry before
making enter_rtas() call.

  Oops: Exception in kernel mode, sig: 4 [#1]
  SMP NR_CPUS=1024 NUMA PowerNV
  task: c000000004294b80 ti: c0000007e1a78000 task.ti: c0000007e1a78000
  NIP: 0000000000000000 LR: 0000000000009c14 CTR: c000000000423140
  REGS: c0000007e1a7b920 TRAP: 0e40   Not tainted  (3.18.17-340.el7_1.pkvm3_1_0.2400.1.ppc64le)
  MSR: 1000000000081000 <HV,ME>  CR: 00000000  XER: 00000000
  CFAR: c000000000009c0c SOFTE: 0
  NIP [0000000000000000]           (null)
  LR [0000000000009c14] 0x9c14
  Call Trace:
  [c0000007e1a7bba0] [c00000000041a7f4] avc_has_perm_noaudit+0x54/0x110 (unreliable)
  [c0000007e1a7bd80] [c00000000002ddc0] ppc_rtas+0x150/0x2d0
  [c0000007e1a7be30] [c000000000009358] syscall_exit+0x0/0x98

Cc: stable@vger.kernel.org # v3.2+
Fixes: 55190f8878 ("powerpc: Add skeleton PowerNV platform")
Reported-by: NAGESWARA R. SASTRY <nasastry@in.ibm.com>
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[mpe: Reword change log, trim oops, and add stable + fixes]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2015-11-15 12:51:47 -05:00
..
boot powerpc/mpc85xx: Add ranges to etsec2 nodes 2015-04-16 20:13:18 -04:00
configs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux 2014-10-21 07:48:56 -07:00
crypto crypto: add missing crypto module aliases 2015-01-29 17:40:46 -08:00
include powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers 2015-10-07 10:14:09 -04:00
kernel powerpc/rtas: Validate rtas.entry before calling enter_rtas() 2015-11-15 12:51:47 -05:00
kvm Fixes and features for 3.18. 2014-10-08 05:27:39 -04:00
lib powerpc: Implement emulation of string loads and stores 2014-09-25 23:14:52 +10:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc/mm: Recompute hash value after a failed update 2015-10-07 10:14:35 -04:00
net net: bpf: be friendly to kmemcheck 2014-09-09 16:58:56 -07:00
oprofile powerpc: Ensure global functions include their prototype 2014-09-25 23:14:42 +10:00
perf powerpc/perf: Fix book3s kernel to userspace backtraces 2015-07-03 23:02:22 -04:00
platforms powerpc/MSI: Fix race condition in tearing down MSI interrupts 2015-10-27 22:14:14 -04:00
sysdev powerpc/MSI: Fix race condition in tearing down MSI interrupts 2015-10-27 22:14:14 -04:00
xmon powerpc/xmon: Fix another endiannes issue in RTAS call from xmon 2015-02-05 22:36:03 -08:00
Kconfig powerpc/cell: Move spu_handle_mm_fault() out of cell platform 2014-10-08 20:14:54 +11:00
Kconfig.debug Patch queue for ppc - 2014-08-01 2014-08-05 09:58:11 +02:00
Makefile powerpc: Add POWER8 CPU selection 2014-09-25 23:14:49 +10:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00