Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6bf53d41 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 4.9.18 into android-4.9



Changes in 4.9.18:
	drm/vc4: Fix termination of the initial scan for branch targets.
	drm/vc4: Use runtime autosuspend to avoid thrashing V3D power state.
	give up on gcc ilog2() constant optimizations
	qla2xxx: Fix memory leak for abts processing
	qla2xxx: Fix request queue corruption.
	parisc: Optimize flush_kernel_vmap_range and invalidate_kernel_vmap_range
	parisc: Fix system shutdown halt
	perf/core: Fix use-after-free in perf_release()
	perf/core: Fix event inheritance on fork()
	xprtrdma: Squelch kbuild sparse complaint
	NFS prevent double free in async nfs4_exchange_id
	cpufreq: Fix and clean up show_cpuinfo_cur_freq()
	powerpc/boot: Fix zImage TOC alignment
	md/raid1/10: fix potential deadlock
	target/pscsi: Fix TYPE_TAPE + TYPE_MEDIMUM_CHANGER export
	scsi: lpfc: Add shutdown method for kexec
	scsi: libiscsi: add lock around task lists to fix list corruption regression
	target: Fix VERIFY_16 handling in sbc_parse_cdb
	isdn/gigaset: fix NULL-deref at probe
	gfs2: Avoid alignment hole in struct lm_lockname
	percpu: acquire pcpu_lock when updating pcpu_nr_empty_pop_pages
	cgroup/pids: remove spurious suspicious RCU usage warning
	drm/amdgpu/si: add dpm quirk for Oland
	ext4: fix fencepost in s_first_meta_bg validation
	Linux 4.9.18

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents d860b2e8 2a486264
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 17
SUBLEVEL = 18
EXTRAVERSION =
NAME = Roaring Lionus

+2 −21
Original line number Diff line number Diff line
@@ -45,28 +45,9 @@ static inline void flush_kernel_dcache_page(struct page *page)

#define flush_kernel_dcache_range(start,size) \
	flush_kernel_dcache_range_asm((start), (start)+(size));
/* vmap range flushes and invalidates.  Architecturally, we don't need
 * the invalidate, because the CPU should refuse to speculate once an
 * area has been flushed, so invalidate is left empty */
static inline void flush_kernel_vmap_range(void *vaddr, int size)
{
	unsigned long start = (unsigned long)vaddr;

	flush_kernel_dcache_range_asm(start, start + size);
}
static inline void invalidate_kernel_vmap_range(void *vaddr, int size)
{
	unsigned long start = (unsigned long)vaddr;
	void *cursor = vaddr;

	for ( ; cursor < vaddr + size; cursor += PAGE_SIZE) {
		struct page *page = vmalloc_to_page(cursor);

		if (test_and_clear_bit(PG_dcache_dirty, &page->flags))
			flush_kernel_dcache_page(page);
	}
	flush_kernel_dcache_range_asm(start, start + size);
}
void flush_kernel_vmap_range(void *vaddr, int size);
void invalidate_kernel_vmap_range(void *vaddr, int size);

#define flush_cache_vmap(start, end)		flush_cache_all()
#define flush_cache_vunmap(start, end)		flush_cache_all()
+22 −0
Original line number Diff line number Diff line
@@ -633,3 +633,25 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long
		__flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
	}
}

void flush_kernel_vmap_range(void *vaddr, int size)
{
	unsigned long start = (unsigned long)vaddr;

	if ((unsigned long)size > parisc_cache_flush_threshold)
		flush_data_cache();
	else
		flush_kernel_dcache_range_asm(start, start + size);
}
EXPORT_SYMBOL(flush_kernel_vmap_range);

void invalidate_kernel_vmap_range(void *vaddr, int size)
{
	unsigned long start = (unsigned long)vaddr;

	if ((unsigned long)size > parisc_cache_flush_threshold)
		flush_data_cache();
	else
		flush_kernel_dcache_range_asm(start, start + size);
}
EXPORT_SYMBOL(invalidate_kernel_vmap_range);
+2 −0
Original line number Diff line number Diff line
@@ -139,6 +139,8 @@ void machine_power_off(void)

	printk(KERN_EMERG "System shut down completed.\n"
	       "Please power this system off now.");

	for (;;);
}

void (*pm_power_off)(void) = machine_power_off;
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ SECTIONS
  }

#ifdef CONFIG_PPC64_BOOT_WRAPPER
  . = ALIGN(256);
  .got :
  {
    __toc_start = .;
Loading