diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-25 13:05:37 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-25 13:05:37 -0400 |
| commit | 2849a3a945d0e440fa245c47c49c80ef1cc103c3 (patch) | |
| tree | 616868130f4b8a063cfa1c138135c10247a4da0e /arch/s390 | |
| parent | 417c765af914106f5e76c4e0181dd555fe6a89a0 (diff) | |
| parent | 8bb9660418e05bb1845ac1a2428444d78e322cc7 (diff) | |
Merge 3.9-rc4 into usb-next
This picks up the fixes we had for USB in 3.9-rc4
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/s390')
| -rw-r--r-- | arch/s390/include/asm/eadm.h | 6 | ||||
| -rw-r--r-- | arch/s390/include/asm/tlbflush.h | 2 | ||||
| -rw-r--r-- | arch/s390/kernel/entry.S | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/entry64.S | 5 | ||||
| -rw-r--r-- | arch/s390/kernel/setup.c | 2 |
5 files changed, 12 insertions, 6 deletions
diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 8d4847191ecc..dc9200ca32ed 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h | |||
| @@ -34,6 +34,8 @@ struct arsb { | |||
| 34 | u32 reserved[4]; | 34 | u32 reserved[4]; |
| 35 | } __packed; | 35 | } __packed; |
| 36 | 36 | ||
| 37 | #define EQC_WR_PROHIBIT 22 | ||
| 38 | |||
| 37 | struct msb { | 39 | struct msb { |
| 38 | u8 fmt:4; | 40 | u8 fmt:4; |
| 39 | u8 oc:4; | 41 | u8 oc:4; |
| @@ -96,11 +98,13 @@ struct scm_device { | |||
| 96 | #define OP_STATE_TEMP_ERR 2 | 98 | #define OP_STATE_TEMP_ERR 2 |
| 97 | #define OP_STATE_PERM_ERR 3 | 99 | #define OP_STATE_PERM_ERR 3 |
| 98 | 100 | ||
| 101 | enum scm_event {SCM_CHANGE, SCM_AVAIL}; | ||
| 102 | |||
| 99 | struct scm_driver { | 103 | struct scm_driver { |
| 100 | struct device_driver drv; | 104 | struct device_driver drv; |
| 101 | int (*probe) (struct scm_device *scmdev); | 105 | int (*probe) (struct scm_device *scmdev); |
| 102 | int (*remove) (struct scm_device *scmdev); | 106 | int (*remove) (struct scm_device *scmdev); |
| 103 | void (*notify) (struct scm_device *scmdev); | 107 | void (*notify) (struct scm_device *scmdev, enum scm_event event); |
| 104 | void (*handler) (struct scm_device *scmdev, void *data, int error); | 108 | void (*handler) (struct scm_device *scmdev, void *data, int error); |
| 105 | }; | 109 | }; |
| 106 | 110 | ||
diff --git a/arch/s390/include/asm/tlbflush.h b/arch/s390/include/asm/tlbflush.h index 1d8fe2b17ef6..6b32af30878c 100644 --- a/arch/s390/include/asm/tlbflush.h +++ b/arch/s390/include/asm/tlbflush.h | |||
| @@ -74,8 +74,6 @@ static inline void __tlb_flush_idte(unsigned long asce) | |||
| 74 | 74 | ||
| 75 | static inline void __tlb_flush_mm(struct mm_struct * mm) | 75 | static inline void __tlb_flush_mm(struct mm_struct * mm) |
| 76 | { | 76 | { |
| 77 | if (unlikely(cpumask_empty(mm_cpumask(mm)))) | ||
| 78 | return; | ||
| 79 | /* | 77 | /* |
| 80 | * If the machine has IDTE we prefer to do a per mm flush | 78 | * If the machine has IDTE we prefer to do a per mm flush |
| 81 | * on all cpus instead of doing a local flush if the mm | 79 | * on all cpus instead of doing a local flush if the mm |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 550228523267..94feff7d6132 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
| @@ -636,7 +636,8 @@ ENTRY(mcck_int_handler) | |||
| 636 | UPDATE_VTIME %r14,%r15,__LC_MCCK_ENTER_TIMER | 636 | UPDATE_VTIME %r14,%r15,__LC_MCCK_ENTER_TIMER |
| 637 | mcck_skip: | 637 | mcck_skip: |
| 638 | SWITCH_ASYNC __LC_GPREGS_SAVE_AREA+32,__LC_PANIC_STACK,PAGE_SHIFT | 638 | SWITCH_ASYNC __LC_GPREGS_SAVE_AREA+32,__LC_PANIC_STACK,PAGE_SHIFT |
| 639 | mvc __PT_R0(64,%r11),__LC_GPREGS_SAVE_AREA | 639 | stm %r0,%r7,__PT_R0(%r11) |
| 640 | mvc __PT_R8(32,%r11),__LC_GPREGS_SAVE_AREA+32 | ||
| 640 | stm %r8,%r9,__PT_PSW(%r11) | 641 | stm %r8,%r9,__PT_PSW(%r11) |
| 641 | xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) | 642 | xc __SF_BACKCHAIN(4,%r15),__SF_BACKCHAIN(%r15) |
| 642 | l %r1,BASED(.Ldo_machine_check) | 643 | l %r1,BASED(.Ldo_machine_check) |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 9c837c101297..2e6d60c55f90 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
| @@ -678,8 +678,9 @@ ENTRY(mcck_int_handler) | |||
| 678 | UPDATE_VTIME %r14,__LC_MCCK_ENTER_TIMER | 678 | UPDATE_VTIME %r14,__LC_MCCK_ENTER_TIMER |
| 679 | LAST_BREAK %r14 | 679 | LAST_BREAK %r14 |
| 680 | mcck_skip: | 680 | mcck_skip: |
| 681 | lghi %r14,__LC_GPREGS_SAVE_AREA | 681 | lghi %r14,__LC_GPREGS_SAVE_AREA+64 |
| 682 | mvc __PT_R0(128,%r11),0(%r14) | 682 | stmg %r0,%r7,__PT_R0(%r11) |
| 683 | mvc __PT_R8(64,%r11),0(%r14) | ||
| 683 | stmg %r8,%r9,__PT_PSW(%r11) | 684 | stmg %r8,%r9,__PT_PSW(%r11) |
| 684 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) | 685 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) |
| 685 | lgr %r2,%r11 # pass pointer to pt_regs | 686 | lgr %r2,%r11 # pass pointer to pt_regs |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index a5360de85ec7..29268859d8ee 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
| @@ -571,6 +571,8 @@ static void __init setup_memory_end(void) | |||
| 571 | 571 | ||
| 572 | /* Split remaining virtual space between 1:1 mapping & vmemmap array */ | 572 | /* Split remaining virtual space between 1:1 mapping & vmemmap array */ |
| 573 | tmp = VMALLOC_START / (PAGE_SIZE + sizeof(struct page)); | 573 | tmp = VMALLOC_START / (PAGE_SIZE + sizeof(struct page)); |
| 574 | /* vmemmap contains a multiple of PAGES_PER_SECTION struct pages */ | ||
| 575 | tmp = SECTION_ALIGN_UP(tmp); | ||
| 574 | tmp = VMALLOC_START - tmp * sizeof(struct page); | 576 | tmp = VMALLOC_START - tmp * sizeof(struct page); |
| 575 | tmp &= ~((vmax >> 11) - 1); /* align to page table level */ | 577 | tmp &= ~((vmax >> 11) - 1); /* align to page table level */ |
| 576 | tmp = min(tmp, 1UL << MAX_PHYSMEM_BITS); | 578 | tmp = min(tmp, 1UL << MAX_PHYSMEM_BITS); |
