diff options
author | Jens Freimann <jfrei@linux.vnet.ibm.com> | 2014-02-26 10:32:46 -0500 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2014-04-22 07:24:48 -0400 |
commit | 21ee7ffd176a238cf185c142bd4c20d0152eda4f (patch) | |
tree | 3a77853dd42472cee02ad9b30571a29fb0e391af /arch/s390 | |
parent | 3d53b46ce8b1b873cf8501bac251b8c0cf489d4f (diff) |
s390: rename and split lowcore field per_perc_atmid
per_perc_atmid is currently a two-byte field that combines two
fields, the PER code and the PER Addressing-and-Translation-Mode
Identification (ATMID)
Let's make them accessible indepently and also rename per_cause to
per_code.
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/lowcore.h | 6 | ||||
-rw-r--r-- | arch/s390/kernel/asm-offsets.c | 5 | ||||
-rw-r--r-- | arch/s390/kernel/entry.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/entry64.S | 4 |
4 files changed, 11 insertions, 8 deletions
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index edfa89b67e78..e88cb8c54130 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h | |||
@@ -56,7 +56,8 @@ struct _lowcore { | |||
56 | __u16 pgm_code; /* 0x008e */ | 56 | __u16 pgm_code; /* 0x008e */ |
57 | __u32 trans_exc_code; /* 0x0090 */ | 57 | __u32 trans_exc_code; /* 0x0090 */ |
58 | __u16 mon_class_num; /* 0x0094 */ | 58 | __u16 mon_class_num; /* 0x0094 */ |
59 | __u16 per_perc_atmid; /* 0x0096 */ | 59 | __u8 per_code; /* 0x0096 */ |
60 | __u8 per_atmid; /* 0x0097 */ | ||
60 | __u32 per_address; /* 0x0098 */ | 61 | __u32 per_address; /* 0x0098 */ |
61 | __u32 monitor_code; /* 0x009c */ | 62 | __u32 monitor_code; /* 0x009c */ |
62 | __u8 exc_access_id; /* 0x00a0 */ | 63 | __u8 exc_access_id; /* 0x00a0 */ |
@@ -196,7 +197,8 @@ struct _lowcore { | |||
196 | __u16 pgm_code; /* 0x008e */ | 197 | __u16 pgm_code; /* 0x008e */ |
197 | __u32 data_exc_code; /* 0x0090 */ | 198 | __u32 data_exc_code; /* 0x0090 */ |
198 | __u16 mon_class_num; /* 0x0094 */ | 199 | __u16 mon_class_num; /* 0x0094 */ |
199 | __u16 per_perc_atmid; /* 0x0096 */ | 200 | __u8 per_code; /* 0x0096 */ |
201 | __u8 per_atmid; /* 0x0097 */ | ||
200 | __u64 per_address; /* 0x0098 */ | 202 | __u64 per_address; /* 0x0098 */ |
201 | __u8 exc_access_id; /* 0x00a0 */ | 203 | __u8 exc_access_id; /* 0x00a0 */ |
202 | __u8 per_access_id; /* 0x00a1 */ | 204 | __u8 per_access_id; /* 0x00a1 */ |
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index 94c18d482ce7..31e4ba4aaf17 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c | |||
@@ -89,9 +89,10 @@ int main(void) | |||
89 | DEFINE(__LC_PGM_ILC, offsetof(struct _lowcore, pgm_ilc)); | 89 | DEFINE(__LC_PGM_ILC, offsetof(struct _lowcore, pgm_ilc)); |
90 | DEFINE(__LC_PGM_INT_CODE, offsetof(struct _lowcore, pgm_code)); | 90 | DEFINE(__LC_PGM_INT_CODE, offsetof(struct _lowcore, pgm_code)); |
91 | DEFINE(__LC_TRANS_EXC_CODE, offsetof(struct _lowcore, trans_exc_code)); | 91 | DEFINE(__LC_TRANS_EXC_CODE, offsetof(struct _lowcore, trans_exc_code)); |
92 | DEFINE(__LC_PER_CAUSE, offsetof(struct _lowcore, per_perc_atmid)); | 92 | DEFINE(__LC_PER_CODE, offsetof(struct _lowcore, per_code)); |
93 | DEFINE(__LC_PER_ATMID, offsetof(struct _lowcore, per_atmid)); | ||
93 | DEFINE(__LC_PER_ADDRESS, offsetof(struct _lowcore, per_address)); | 94 | DEFINE(__LC_PER_ADDRESS, offsetof(struct _lowcore, per_address)); |
94 | DEFINE(__LC_PER_PAID, offsetof(struct _lowcore, per_access_id)); | 95 | DEFINE(__LC_PER_ACCESS_ID, offsetof(struct _lowcore, per_access_id)); |
95 | DEFINE(__LC_AR_MODE_ID, offsetof(struct _lowcore, ar_mode_id)); | 96 | DEFINE(__LC_AR_MODE_ID, offsetof(struct _lowcore, ar_mode_id)); |
96 | DEFINE(__LC_SUBCHANNEL_ID, offsetof(struct _lowcore, subchannel_id)); | 97 | DEFINE(__LC_SUBCHANNEL_ID, offsetof(struct _lowcore, subchannel_id)); |
97 | DEFINE(__LC_SUBCHANNEL_NR, offsetof(struct _lowcore, subchannel_nr)); | 98 | DEFINE(__LC_SUBCHANNEL_NR, offsetof(struct _lowcore, subchannel_nr)); |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 1662038516c0..e66f046b9c43 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -391,8 +391,8 @@ ENTRY(pgm_check_handler) | |||
391 | jz pgm_kprobe | 391 | jz pgm_kprobe |
392 | oi __TI_flags+3(%r12),_TIF_PER_TRAP | 392 | oi __TI_flags+3(%r12),_TIF_PER_TRAP |
393 | mvc __THREAD_per_address(4,%r1),__LC_PER_ADDRESS | 393 | mvc __THREAD_per_address(4,%r1),__LC_PER_ADDRESS |
394 | mvc __THREAD_per_cause(2,%r1),__LC_PER_CAUSE | 394 | mvc __THREAD_per_cause(2,%r1),__LC_PER_CODE |
395 | mvc __THREAD_per_paid(1,%r1),__LC_PER_PAID | 395 | mvc __THREAD_per_paid(1,%r1),__LC_PER_ACCESS_ID |
396 | 0: REENABLE_IRQS | 396 | 0: REENABLE_IRQS |
397 | xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) | 397 | xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) |
398 | l %r1,BASED(.Ljump_table) | 398 | l %r1,BASED(.Ljump_table) |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 5963e43618bb..3c34753de6ad 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -423,8 +423,8 @@ ENTRY(pgm_check_handler) | |||
423 | jz pgm_kprobe | 423 | jz pgm_kprobe |
424 | oi __TI_flags+7(%r12),_TIF_PER_TRAP | 424 | oi __TI_flags+7(%r12),_TIF_PER_TRAP |
425 | mvc __THREAD_per_address(8,%r14),__LC_PER_ADDRESS | 425 | mvc __THREAD_per_address(8,%r14),__LC_PER_ADDRESS |
426 | mvc __THREAD_per_cause(2,%r14),__LC_PER_CAUSE | 426 | mvc __THREAD_per_cause(2,%r14),__LC_PER_CODE |
427 | mvc __THREAD_per_paid(1,%r14),__LC_PER_PAID | 427 | mvc __THREAD_per_paid(1,%r14),__LC_PER_ACCESS_ID |
428 | 0: REENABLE_IRQS | 428 | 0: REENABLE_IRQS |
429 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) | 429 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) |
430 | larl %r1,pgm_check_table | 430 | larl %r1,pgm_check_table |