Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git]
/
kernel
/
arch
/
s390
/
mm
/
fault.c
diff --git
a/kernel/arch/s390/mm/fault.c
b/kernel/arch/s390/mm/fault.c
index
4c8f5d7
..
ec1a30d
100644
(file)
--- a/
kernel/arch/s390/mm/fault.c
+++ b/
kernel/arch/s390/mm/fault.c
@@
-30,6
+30,7
@@
#include <linux/uaccess.h>
#include <linux/hugetlb.h>
#include <asm/asm-offsets.h>
#include <linux/uaccess.h>
#include <linux/hugetlb.h>
#include <asm/asm-offsets.h>
+#include <asm/diag.h>
#include <asm/pgtable.h>
#include <asm/irq.h>
#include <asm/mmu_context.h>
#include <asm/pgtable.h>
#include <asm/irq.h>
#include <asm/mmu_context.h>
@@
-589,7
+590,7
@@
int pfault_init(void)
.reffcode = 0,
.refdwlen = 5,
.refversn = 2,
.reffcode = 0,
.refdwlen = 5,
.refversn = 2,
- .refgaddr = __LC_
CURRENT_PID
,
+ .refgaddr = __LC_
LPP
,
.refselmk = 1ULL << 48,
.refcmpmk = 1ULL << 48,
.reserved = __PF_RES_FIELD };
.refselmk = 1ULL << 48,
.refcmpmk = 1ULL << 48,
.reserved = __PF_RES_FIELD };
@@
-597,6
+598,7
@@
int pfault_init(void)
if (pfault_disable)
return -1;
if (pfault_disable)
return -1;
+ diag_stat_inc(DIAG_STAT_X258);
asm volatile(
" diag %1,%0,0x258\n"
"0: j 2f\n"
asm volatile(
" diag %1,%0,0x258\n"
"0: j 2f\n"
@@
-618,6
+620,7
@@
void pfault_fini(void)
if (pfault_disable)
return;
if (pfault_disable)
return;
+ diag_stat_inc(DIAG_STAT_X258);
asm volatile(
" diag %0,0,0x258\n"
"0:\n"
asm volatile(
" diag %0,0,0x258\n"
"0:\n"
@@
-646,7
+649,7
@@
static void pfault_interrupt(struct ext_code ext_code,
return;
inc_irq_stat(IRQEXT_PFL);
/* Get the token (= pid of the affected task). */
return;
inc_irq_stat(IRQEXT_PFL);
/* Get the token (= pid of the affected task). */
- pid =
sizeof(void *) == 4 ? param32 : param64
;
+ pid =
param64 & LPP_PFAULT_PID_MASK
;
rcu_read_lock();
tsk = find_task_by_pid_ns(pid, &init_pid_ns);
if (tsk)
rcu_read_lock();
tsk = find_task_by_pid_ns(pid, &init_pid_ns);
if (tsk)