https://github.com/torvalds/linux
Revision 8832317f662c06f5c06e638f57bfe89a71c9b266 authored by Vasant Hegde on 16 October 2015, 10:23:29 UTC, committed by Michael Ellerman on 22 October 2015, 00:03:25 UTC
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: 55190f88789a ("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>
1 parent 53c656c
Tip revision: 8832317f662c06f5c06e638f57bfe89a71c9b266 authored by Vasant Hegde on 16 October 2015, 10:23:29 UTC
powerpc/rtas: Validate rtas.entry before calling enter_rtas()
powerpc/rtas: Validate rtas.entry before calling enter_rtas()
Tip revision: 8832317
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 640 bytes |
Makefile | -rw-r--r-- | 207 bytes |
alloc.c | -rw-r--r-- | 14.3 KB |
anode.c | -rw-r--r-- | 15.4 KB |
buffer.c | -rw-r--r-- | 5.3 KB |
dentry.c | -rw-r--r-- | 1.4 KB |
dir.c | -rw-r--r-- | 8.6 KB |
dnode.c | -rw-r--r-- | 30.4 KB |
ea.c | -rw-r--r-- | 11.4 KB |
file.c | -rw-r--r-- | 5.5 KB |
hpfs.h | -rw-r--r-- | 17.9 KB |
hpfs_fn.h | -rw-r--r-- | 12.9 KB |
inode.c | -rw-r--r-- | 8.8 KB |
map.c | -rw-r--r-- | 9.7 KB |
name.c | -rw-r--r-- | 3.1 KB |
namei.c | -rw-r--r-- | 16.3 KB |
super.c | -rw-r--r-- | 19.4 KB |
Computing file changes ...