Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

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] cio: fix cio_tpi ignoring adapter interrupts
[S390] gmap: always up mmap_sem properly
[S390] Do not clobber personality flags on exec

+12 -6
+2 -1
arch/s390/include/asm/elf.h
··· 188 188 #define SET_PERSONALITY(ex) \ 189 189 do { \ 190 190 if (personality(current->personality) != PER_LINUX32) \ 191 - set_personality(PER_LINUX); \ 191 + set_personality(PER_LINUX | \ 192 + (current->personality & ~PER_MASK)); \ 192 193 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ 193 194 set_thread_flag(TIF_31BIT); \ 194 195 else \
+4 -3
arch/s390/mm/pgtable.c
··· 303 303 /* Walk the guest addr space page table */ 304 304 table = gmap->table + (((to + off) >> 53) & 0x7ff); 305 305 if (*table & _REGION_ENTRY_INV) 306 - return 0; 306 + goto out; 307 307 table = (unsigned long *)(*table & _REGION_ENTRY_ORIGIN); 308 308 table = table + (((to + off) >> 42) & 0x7ff); 309 309 if (*table & _REGION_ENTRY_INV) 310 - return 0; 310 + goto out; 311 311 table = (unsigned long *)(*table & _REGION_ENTRY_ORIGIN); 312 312 table = table + (((to + off) >> 31) & 0x7ff); 313 313 if (*table & _REGION_ENTRY_INV) 314 - return 0; 314 + goto out; 315 315 table = (unsigned long *)(*table & _REGION_ENTRY_ORIGIN); 316 316 table = table + (((to + off) >> 20) & 0x7ff); 317 317 ··· 319 319 flush |= gmap_unlink_segment(gmap, table); 320 320 *table = _SEGMENT_ENTRY_INV; 321 321 } 322 + out: 322 323 up_read(&gmap->mm->mmap_sem); 323 324 if (flush) 324 325 gmap_flush_tlb(gmap);
+6 -2
drivers/s390/cio/cio.c
··· 654 654 static int console_subchannel_in_use; 655 655 656 656 /* 657 - * Use tpi to get a pending interrupt, call the interrupt handler and 658 - * return a pointer to the subchannel structure. 657 + * Use cio_tpi to get a pending interrupt and call the interrupt handler. 658 + * Return non-zero if an interrupt was processed, zero otherwise. 659 659 */ 660 660 static int cio_tpi(void) 661 661 { ··· 667 667 tpi_info = (struct tpi_info *)&S390_lowcore.subchannel_id; 668 668 if (tpi(NULL) != 1) 669 669 return 0; 670 + if (tpi_info->adapter_IO) { 671 + do_adapter_IO(tpi_info->isc); 672 + return 1; 673 + } 670 674 irb = (struct irb *)&S390_lowcore.irb; 671 675 /* Store interrupt response block to lowcore. */ 672 676 if (tsch(tpi_info->schid, irb) != 0)