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 'akpm' (patches from Andrew)

Merge misc fixes from ANdrew Morton:
"8 fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
revert "mm: make sure all file VMAs have ->vm_ops set"
MAINTAINERS: update LTP mailing list
userfaultfd: add missing mmput() in error path
lib/string_helpers.c: fix infinite loop in string_get_size()
alpha: lib: export __delay
alpha: io: define ioremap_uc
kasan: fix last shadow judgement in memory_is_poisoned_16()
zram: fix possible use after free in zcomp_create()

+22 -20
+2 -2
MAINTAINERS
··· 6452 6452 LTP (Linux Test Project) 6453 6453 M: Mike Frysinger <vapier@gentoo.org> 6454 6454 M: Cyril Hrubis <chrubis@suse.cz> 6455 - M: Wanlong Gao <gaowanlong@cn.fujitsu.com> 6455 + M: Wanlong Gao <wanlong.gao@gmail.com> 6456 6456 M: Jan Stancek <jstancek@redhat.com> 6457 6457 M: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com> 6458 6458 M: Alexey Kodanev <alexey.kodanev@oracle.com> 6459 - L: ltp-list@lists.sourceforge.net (subscribers-only) 6459 + L: ltp@lists.linux.it (subscribers-only) 6460 6460 W: http://linux-test-project.github.io/ 6461 6461 T: git git://github.com/linux-test-project/ltp.git 6462 6462 S: Maintained
+3 -1
arch/alpha/include/asm/io.h
··· 297 297 unsigned long size) 298 298 { 299 299 return ioremap(offset, size); 300 - } 300 + } 301 + 302 + #define ioremap_uc ioremap_nocache 301 303 302 304 static inline void iounmap(volatile void __iomem *addr) 303 305 {
+1
arch/alpha/lib/udelay.c
··· 30 30 " bgt %0,1b" 31 31 : "=&r" (tmp), "=r" (loops) : "1"(loops)); 32 32 } 33 + EXPORT_SYMBOL(__delay); 33 34 34 35 #ifdef CONFIG_SMP 35 36 #define LPJ cpu_data[smp_processor_id()].loops_per_jiffy
+7 -5
drivers/block/zram/zcomp.c
··· 330 330 * allocate new zcomp and initialize it. return compressing 331 331 * backend pointer or ERR_PTR if things went bad. ERR_PTR(-EINVAL) 332 332 * if requested algorithm is not supported, ERR_PTR(-ENOMEM) in 333 - * case of allocation error. 333 + * case of allocation error, or any other error potentially 334 + * returned by functions zcomp_strm_{multi,single}_create. 334 335 */ 335 336 struct zcomp *zcomp_create(const char *compress, int max_strm) 336 337 { 337 338 struct zcomp *comp; 338 339 struct zcomp_backend *backend; 340 + int error; 339 341 340 342 backend = find_backend(compress); 341 343 if (!backend) ··· 349 347 350 348 comp->backend = backend; 351 349 if (max_strm > 1) 352 - zcomp_strm_multi_create(comp, max_strm); 350 + error = zcomp_strm_multi_create(comp, max_strm); 353 351 else 354 - zcomp_strm_single_create(comp); 355 - if (!comp->stream) { 352 + error = zcomp_strm_single_create(comp); 353 + if (error) { 356 354 kfree(comp); 357 - return ERR_PTR(-ENOMEM); 355 + return ERR_PTR(error); 358 356 } 359 357 return comp; 360 358 }
+3 -1
fs/userfaultfd.c
··· 1287 1287 1288 1288 file = anon_inode_getfile("[userfaultfd]", &userfaultfd_fops, ctx, 1289 1289 O_RDWR | (flags & UFFD_SHARED_FCNTL_FLAGS)); 1290 - if (IS_ERR(file)) 1290 + if (IS_ERR(file)) { 1291 + mmput(ctx->mm); 1291 1292 kmem_cache_free(userfaultfd_ctx_cachep, ctx); 1293 + } 1292 1294 out: 1293 1295 return file; 1294 1296 }
+5 -1
lib/string_helpers.c
··· 59 59 } 60 60 61 61 exp = divisor[units] / (u32)blk_size; 62 - if (size >= exp) { 62 + /* 63 + * size must be strictly greater than exp here to ensure that remainder 64 + * is greater than divisor[units] coming out of the if below. 65 + */ 66 + if (size > exp) { 63 67 remainder = do_div(size, divisor[units]); 64 68 remainder *= blk_size; 65 69 i++;
+1 -2
mm/kasan/kasan.c
··· 135 135 136 136 if (unlikely(*shadow_addr)) { 137 137 u16 shadow_first_bytes = *(u16 *)shadow_addr; 138 - s8 last_byte = (addr + 15) & KASAN_SHADOW_MASK; 139 138 140 139 if (unlikely(shadow_first_bytes)) 141 140 return true; 142 141 143 - if (likely(!last_byte)) 142 + if (likely(IS_ALIGNED(addr, 8))) 144 143 return false; 145 144 146 145 return memory_is_poisoned_1(addr + 15);
-8
mm/mmap.c
··· 612 612 void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma, 613 613 struct rb_node **rb_link, struct rb_node *rb_parent) 614 614 { 615 - WARN_ONCE(vma->vm_file && !vma->vm_ops, "missing vma->vm_ops"); 616 - 617 615 /* Update tracking information for the gap following the new vma. */ 618 616 if (vma->vm_next) 619 617 vma_gap_update(vma->vm_next); ··· 1635 1637 * be updated for vma_link() 1636 1638 */ 1637 1639 WARN_ON_ONCE(addr != vma->vm_start); 1638 - 1639 - /* All file mapping must have ->vm_ops set */ 1640 - if (!vma->vm_ops) { 1641 - static const struct vm_operations_struct dummy_ops = {}; 1642 - vma->vm_ops = &dummy_ops; 1643 - } 1644 1640 1645 1641 addr = vma->vm_start; 1646 1642 vm_flags = vma->vm_flags;