Tom Hromatka
9ae34dbd8a
sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
...
This commit moves sparc64's prototype of pmd_write() outside
of the CONFIG_TRANSPARENT_HUGEPAGE ifdef.
In 2013, commit a7b9403f0e ("sparc64: Encode huge PMDs using PTE
encoding.") exposed a path where pmd_write() could be called without
CONFIG_TRANSPARENT_HUGEPAGE defined. This can result in the panic below.
The diff is awkward to read, but the changes are straightforward.
pmd_write() was moved outside of #ifdef CONFIG_TRANSPARENT_HUGEPAGE.
Also, __HAVE_ARCH_PMD_WRITE was defined.
kernel BUG at include/asm-generic/pgtable.h:576!
\|/ ____ \|/
"@'/ .. \`@"
/_| \__/ |_\
\__U_/
oracle_8114_cdb(8114): Kernel bad sw trap 5 [#1 ]
CPU: 120 PID: 8114 Comm: oracle_8114_cdb Not tainted
4.1.12-61.7.1.el6uek.rc1.sparc64 #1
task: fff8400700a24d60 ti: fff8400700bc4000 task.ti: fff8400700bc4000
TSTATE: 0000004411e01607 TPC: 00000000004609f8 TNPC: 00000000004609fc Y:
00000005 Not tainted
TPC: <gup_huge_pmd+0x198/0x1e0>
g0: 000000000001c000 g1: 0000000000ef3954 g2: 0000000000000000 g3: 0000000000000001
g4: fff8400700a24d60 g5: fff8001fa5c10000 g6: fff8400700bc4000 g7: 0000000000000720
o0: 0000000000bc5058 o1: 0000000000000240 o2: 0000000000006000 o3: 0000000000001c00
o4: 0000000000000000 o5: 0000048000080000 sp: fff8400700bc6ab1 ret_pc: 00000000004609f0
RPC: <gup_huge_pmd+0x190/0x1e0>
l0: fff8400700bc74fc l1: 0000000000020000 l2: 0000000000002000 l3: 0000000000000000
l4: fff8001f93250950 l5: 000000000113f800 l6: 0000000000000004 l7: 0000000000000000
i0: fff8400700ca46a0 i1: bd0000085e800453 i2: 000000026a0c4000 i3: 000000026a0c6000
i4: 0000000000000001 i5: fff800070c958de8 i6: fff8400700bc6b61 i7: 0000000000460dd0
I7: <gup_pud_range+0x170/0x1a0>
Call Trace:
[0000000000460dd0] gup_pud_range+0x170/0x1a0
[0000000000460e84] get_user_pages_fast+0x84/0x120
[00000000006f5a18] iov_iter_get_pages+0x98/0x240
[00000000005fa744] do_direct_IO+0xf64/0x1e00
[00000000005fbbc0] __blockdev_direct_IO+0x360/0x15a0
[00000000101f74fc] ext4_ind_direct_IO+0xdc/0x400 [ext4]
[00000000101af690] ext4_ext_direct_IO+0x1d0/0x2c0 [ext4]
[00000000101af86c] ext4_direct_IO+0xec/0x220 [ext4]
[0000000000553bd4] generic_file_read_iter+0x114/0x140
[00000000005bdc2c] __vfs_read+0xac/0x100
[00000000005bf254] vfs_read+0x54/0x100
[00000000005bf368] SyS_pread64+0x68/0x80
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-06 12:03:29 -07:00
arch
sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write()
2017-04-06 12:03:29 -07:00
block
blk-mq: don't complete un-started request in timeout handler
2017-03-22 08:03:35 -06:00
certs
crypto
net: Work around lockdep limitation in sockets that use sockets
2017-03-09 18:23:27 -08:00
Documentation
Char/Misc driver fixes for 4.11-rc4
2017-03-26 11:15:54 -07:00
drivers
A new EDAC driver for the Pondicherry2 memory controller IP found in the
2017-03-27 11:09:00 -07:00
firmware
fs
driver core fix for 4.11-rc4
2017-03-26 11:05:42 -07:00
include
Char/Misc driver fixes for 4.11-rc4
2017-03-26 11:15:54 -07:00
init
Change get_random_{int,log} to use the CRNG used by /dev/urandom and
2017-03-11 09:08:47 -08:00
ipc
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
kernel
Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
2017-03-25 15:13:55 -07:00
lib
mm: convert generic code to 5-level paging
2017-03-09 11:48:47 -08:00
mm
mm, swap: Remove WARN_ON_ONCE() in free_swap_slot()
2017-03-21 14:13:19 -07:00
net
A fix for a writeback deadlock caused by a GFP_KERNEL allocation on the
2017-03-24 14:35:39 -07:00
samples
Merge branch 'rebased-statx' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-03-03 11:38:56 -08:00
scripts
Merge branch 'akpm' (patches from Andrew)
2017-03-10 08:34:42 -08:00
security
Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-03-03 10:16:38 -08:00
sound
ALSA: hda - Adding a group of pin definition to fix headset problem
2017-03-23 09:39:55 +01:00
tools
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2017-03-23 11:29:49 -07:00
usr
kbuild: initramfs cleanup, set target from Kconfig
2017-01-05 09:40:16 -08:00
virt
KVM: arm/arm64: VGIC: Fix command handling while ITS being disabled
2017-03-07 15:44:08 +00:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
mailmap: add codeaurora.org names for nameless email commits
2017-01-10 18:31:55 -08:00
COPYING
CREDITS
MAINTAINERS: Remove old e-mail address
2017-02-13 12:24:56 -05:00
Kbuild
Kconfig
MAINTAINERS
A new EDAC driver for the Pondicherry2 memory controller IP found in the
2017-03-27 11:09:00 -07:00
Makefile
Linux 4.11-rc4
2017-03-26 14:15:16 -07:00
README
README: add a new README file, pointing to the Documentation/
2016-10-24 08:12:35 -02:00