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

Commit 883af14e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'akpm' (patches from Andrew)

Merge fixes from Andrew Morton:
 "26 fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (26 commits)
  MAINTAINERS: add Dan Streetman to zbud maintainers
  MAINTAINERS: add Dan Streetman to zswap maintainers
  mm: do not export ioremap_page_range symbol for external module
  mn10300: fix build error of missing fpu_save()
  romfs: use different way to generate fsid for BLOCK or MTD
  frv: add missing atomic64 operations
  mm, page_alloc: fix premature OOM when racing with cpuset mems update
  mm, page_alloc: move cpuset seqcount checking to slowpath
  mm, page_alloc: fix fast-path race with cpuset update or removal
  mm, page_alloc: fix check for NULL preferred_zone
  kernel/panic.c: add missing \n
  fbdev: color map copying bounds checking
  frv: add atomic64_add_unless()
  mm/mempolicy.c: do not put mempolicy before using its nodemask
  radix-tree: fix private list warnings
  Documentation/filesystems/proc.txt: add VmPin
  mm, memcg: do not retry precharge charges
  proc: add a schedule point in proc_pid_readdir()
  mm: alloc_contig: re-allow CMA to compact FS pages
  mm/slub.c: trace free objects at KERN_INFO
  ...
parents 0263d4eb aab45453
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -212,10 +212,11 @@ asynchronous manner and the value may not be very precise. To see a precise
snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
It's slow but very precise.

Table 1-2: Contents of the status files (as of 4.1)
Table 1-2: Contents of the status files (as of 4.8)
..............................................................................
 Field                       Content
 Name                        filename of the executable
 Umask                       file mode creation mask
 State                       state (R is running, S is sleeping, D is sleeping
                             in an uninterruptible wait, Z is zombie,
			     T is traced or stopped)
@@ -226,7 +227,6 @@ Table 1-2: Contents of the status files (as of 4.1)
 TracerPid                   PID of process tracing this process (0 if not)
 Uid                         Real, effective, saved set, and  file system UIDs
 Gid                         Real, effective, saved set, and  file system GIDs
 Umask                       file mode creation mask
 FDSize                      number of file descriptor slots currently allocated
 Groups                      supplementary group list
 NStgid                      descendant namespace thread group ID hierarchy
@@ -236,6 +236,7 @@ Table 1-2: Contents of the status files (as of 4.1)
 VmPeak                      peak virtual memory size
 VmSize                      total program size
 VmLck                       locked memory size
 VmPin                       pinned memory size
 VmHWM                       peak resident set size ("high water mark")
 VmRSS                       size of memory portions. It contains the three
                             following parts (VmRSS = RssAnon + RssFile + RssShmem)
+2 −0
Original line number Diff line number Diff line
@@ -13625,6 +13625,7 @@ F: drivers/net/hamradio/z8530.h

ZBUD COMPRESSED PAGE ALLOCATOR
M:	Seth Jennings <sjenning@redhat.com>
M:	Dan Streetman <ddstreet@ieee.org>
L:	linux-mm@kvack.org
S:	Maintained
F:	mm/zbud.c
@@ -13680,6 +13681,7 @@ F: Documentation/vm/zsmalloc.txt

ZSWAP COMPRESSED SWAP CACHING
M:	Seth Jennings <sjenning@redhat.com>
M:	Dan Streetman <ddstreet@ieee.org>
L:	linux-mm@kvack.org
S:	Maintained
F:	mm/zswap.c
+34 −1
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ static inline void atomic64_dec(atomic64_t *v)
#define atomic64_sub_and_test(i,v)	(atomic64_sub_return((i), (v)) == 0)
#define atomic64_dec_and_test(v)	(atomic64_dec_return((v)) == 0)
#define atomic64_inc_and_test(v)	(atomic64_inc_return((v)) == 0)

#define atomic64_inc_not_zero(v)	atomic64_add_unless((v), 1, 0)

#define atomic_cmpxchg(v, old, new)	(cmpxchg(&(v)->counter, old, new))
#define atomic_xchg(v, new)		(xchg(&(v)->counter, new))
@@ -161,6 +161,39 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
	return c;
}

static inline int atomic64_add_unless(atomic64_t *v, long long i, long long u)
{
	long long c, old;

	c = atomic64_read(v);
	for (;;) {
		if (unlikely(c == u))
			break;
		old = atomic64_cmpxchg(v, c, c + i);
		if (likely(old == c))
			break;
		c = old;
	}
	return c != u;
}

static inline long long atomic64_dec_if_positive(atomic64_t *v)
{
	long long c, old, dec;

	c = atomic64_read(v);
	for (;;) {
		dec = c - 1;
		if (unlikely(dec < 0))
			break;
		old = atomic64_cmpxchg((v), c, dec);
		if (likely(old == c))
			break;
		c = old;
	}
		return dec;
}

#define ATOMIC_OP(op)							\
static inline int atomic_fetch_##op(int i, atomic_t *v)			\
{									\
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
struct task_struct;
struct thread_struct;

#if !defined(CONFIG_LAZY_SAVE_FPU)
#if defined(CONFIG_FPU) && !defined(CONFIG_LAZY_SAVE_FPU)
struct fpu_state_struct;
extern asmlinkage void fpu_save(struct fpu_state_struct *);
#define switch_fpu(prev, next)						\
+2 −2
Original line number Diff line number Diff line
@@ -408,14 +408,14 @@ static ssize_t show_valid_zones(struct device *dev,
	sprintf(buf, "%s", zone->name);

	/* MMOP_ONLINE_KERNEL */
	zone_shift = zone_can_shift(start_pfn, nr_pages, ZONE_NORMAL);
	zone_can_shift(start_pfn, nr_pages, ZONE_NORMAL, &zone_shift);
	if (zone_shift) {
		strcat(buf, " ");
		strcat(buf, (zone + zone_shift)->name);
	}

	/* MMOP_ONLINE_MOVABLE */
	zone_shift = zone_can_shift(start_pfn, nr_pages, ZONE_MOVABLE);
	zone_can_shift(start_pfn, nr_pages, ZONE_MOVABLE, &zone_shift);
	if (zone_shift) {
		strcat(buf, " ");
		strcat(buf, (zone + zone_shift)->name);
Loading