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: Read buffer overflow
[S390] kernel: Storing machine flags early in lowcore

+7 -3
+3
arch/s390/kernel/early.c
··· 208 208 machine_flags |= MACHINE_FLAG_KVM; 209 209 else 210 210 machine_flags |= MACHINE_FLAG_VM; 211 + 212 + /* Store machine flags for setting up lowcore early */ 213 + S390_lowcore.machine_flags = machine_flags; 211 214 } 212 215 213 216 static __init void early_pgm_check_handler(void)
+4 -3
arch/s390/kvm/sigp.c
··· 169 169 unsigned long *reg) 170 170 { 171 171 struct kvm_s390_float_interrupt *fi = &vcpu->kvm->arch.float_int; 172 - struct kvm_s390_local_interrupt *li; 172 + struct kvm_s390_local_interrupt *li = NULL; 173 173 struct kvm_s390_interrupt_info *inti; 174 174 int rc; 175 175 u8 tmp; ··· 189 189 return 2; /* busy */ 190 190 191 191 spin_lock(&fi->lock); 192 - li = fi->local_int[cpu_addr]; 192 + if (cpu_addr < KVM_MAX_VCPUS) 193 + li = fi->local_int[cpu_addr]; 193 194 194 - if ((cpu_addr >= KVM_MAX_VCPUS) || (li == NULL)) { 195 + if (li == NULL) { 195 196 rc = 1; /* incorrect state */ 196 197 *reg &= SIGP_STAT_INCORRECT_STATE; 197 198 kfree(inti);