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 tag 's390-5.4-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Vasily Gorbik:

- Add R_390_GLOB_DAT relocation type support. This fixes boot problem
on linux-next.

- Fix memory leak in zcrypt

* tag 's390-5.4-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/kaslr: add support for R_390_GLOB_DAT relocation type
s390/zcrypt: fix memleak at release

+13 -5
+11 -3
arch/s390/boot/startup.c
··· 101 101 dynsym = (Elf64_Sym *) vmlinux.dynsym_start; 102 102 for (rela = rela_start; rela < rela_end; rela++) { 103 103 loc = rela->r_offset + offset; 104 - val = rela->r_addend + offset; 104 + val = rela->r_addend; 105 105 r_sym = ELF64_R_SYM(rela->r_info); 106 - if (r_sym) 107 - val += dynsym[r_sym].st_value; 106 + if (r_sym) { 107 + if (dynsym[r_sym].st_shndx != SHN_UNDEF) 108 + val += dynsym[r_sym].st_value + offset; 109 + } else { 110 + /* 111 + * 0 == undefined symbol table index (STN_UNDEF), 112 + * used for R_390_RELATIVE, only add KASLR offset 113 + */ 114 + val += offset; 115 + } 108 116 r_type = ELF64_R_TYPE(rela->r_info); 109 117 rc = arch_kexec_do_relocs(r_type, (void *) loc, val, 0); 110 118 if (rc)
+1
arch/s390/kernel/machine_kexec_reloc.c
··· 27 27 *(u32 *)loc = val; 28 28 break; 29 29 case R_390_64: /* Direct 64 bit. */ 30 + case R_390_GLOB_DAT: 30 31 *(u64 *)loc = val; 31 32 break; 32 33 case R_390_PC16: /* PC relative 16 bit. */
+1 -2
drivers/s390/crypto/zcrypt_api.c
··· 522 522 if (filp->f_inode->i_cdev == &zcrypt_cdev) { 523 523 struct zcdn_device *zcdndev; 524 524 525 - if (mutex_lock_interruptible(&ap_perms_mutex)) 526 - return -ERESTARTSYS; 525 + mutex_lock(&ap_perms_mutex); 527 526 zcdndev = find_zcdndev_by_devt(filp->f_inode->i_rdev); 528 527 mutex_unlock(&ap_perms_mutex); 529 528 if (zcdndev) {