Select the types of activity you want to include in your feed.
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: [S390] kvm: extension capability for new address space layout [S390] kvm: fix address mode switching
···658658 * struct gmap_struct - guest address space659659 * @mm: pointer to the parent mm_struct660660 * @table: pointer to the page directory661661+ * @asce: address space control element for gmap page table661662 * @crst_list: list of all crst tables used in the guest address space662663 */663664struct gmap {664665 struct list_head list;665666 struct mm_struct *mm;666667 unsigned long *table;668668+ unsigned long asce;667669 struct list_head crst_list;668670};669671
+3
arch/s390/kernel/asm-offsets.c
···1010#include <linux/sched.h>1111#include <asm/vdso.h>1212#include <asm/sigp.h>1313+#include <asm/pgtable.h>13141415/*1516 * Make sure that the compiler is new enough. We want a compiler that···127126 DEFINE(__LC_KERNEL_STACK, offsetof(struct _lowcore, kernel_stack));128127 DEFINE(__LC_ASYNC_STACK, offsetof(struct _lowcore, async_stack));129128 DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack));129129+ DEFINE(__LC_USER_ASCE, offsetof(struct _lowcore, user_asce));130130 DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock));131131 DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock));132132 DEFINE(__LC_MACHINE_FLAGS, offsetof(struct _lowcore, machine_flags));···153151 DEFINE(__LC_VDSO_PER_CPU, offsetof(struct _lowcore, vdso_per_cpu_data));154152 DEFINE(__LC_GMAP, offsetof(struct _lowcore, gmap));155153 DEFINE(__LC_CMF_HPP, offsetof(struct _lowcore, cmf_hpp));154154+ DEFINE(__GMAP_ASCE, offsetof(struct gmap, asce));156155#endif /* CONFIG_32BIT */157156 return 0;158157}
+6
arch/s390/kernel/entry64.S
···10761076 lg %r14,__LC_THREAD_INFO # pointer thread_info struct10771077 tm __TI_flags+7(%r14),_TIF_EXIT_SIE10781078 jnz sie_exit10791079+ lg %r14,__LC_GMAP # get gmap pointer10801080+ ltgr %r14,%r1410811081+ jz sie_gmap10821082+ lctlg %c1,%c1,__GMAP_ASCE(%r14) # load primary asce10831083+sie_gmap:10791084 lg %r14,__SF_EMPTY(%r15) # get control block pointer10801085 SPP __SF_EMPTY(%r15) # set guest id10811086 sie 0(%r14)···10881083 SPP __LC_CMF_HPP # set host id10891084 lg %r14,__LC_THREAD_INFO # pointer thread_info struct10901085sie_exit:10861086+ lctlg %c1,%c1,__LC_USER_ASCE # load primary asce10911087 ni __TI_flags+6(%r14),255-(_TIF_SIE>>8)10921088 lg %r14,__SF_EMPTY+8(%r15) # load guest register save area10931089 stmg %r0,%r13,0(%r14) # save guest gprs 0-13
+3-2
arch/s390/kvm/kvm-s390.c
···123123124124 switch (ext) {125125 case KVM_CAP_S390_PSW:126126+ case KVM_CAP_S390_GMAP:126127 r = 1;127128 break;128129 default:···264263 vcpu->arch.guest_fpregs.fpc &= FPC_VALID_MASK;265264 restore_fp_regs(&vcpu->arch.guest_fpregs);266265 restore_access_regs(vcpu->arch.guest_acrs);266266+ gmap_enable(vcpu->arch.gmap);267267}268268269269void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)270270{271271+ gmap_disable(vcpu->arch.gmap);271272 save_fp_regs(&vcpu->arch.guest_fpregs);272273 save_access_regs(vcpu->arch.guest_acrs);273274 restore_fp_regs(&vcpu->arch.host_fpregs);···464461 local_irq_disable();465462 kvm_guest_enter();466463 local_irq_enable();467467- gmap_enable(vcpu->arch.gmap);468464 VCPU_EVENT(vcpu, 6, "entering sie flags %x",469465 atomic_read(&vcpu->arch.sie_block->cpuflags));470466 if (sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs)) {···472470 }473471 VCPU_EVENT(vcpu, 6, "exit sie icptcode %d",474472 vcpu->arch.sie_block->icptcode);475475- gmap_disable(vcpu->arch.gmap);476473 local_irq_disable();477474 kvm_guest_exit();478475 local_irq_enable();