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

Commit 013e8963 authored by Christoph Lameter's avatar Christoph Lameter Committed by Pekka Enberg
Browse files

Avoid duplicate _count variables in page_struct



Restructure the union / struct cascade in struct page so that
we only have one definition of _count.

Tested-by: default avatarHugh Dickins <hughd@google.com>
Signed-off-by: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
parent 3adf004d
Loading
Loading
Loading
Loading
+19 −18
Original line number Diff line number Diff line
@@ -49,31 +49,32 @@ struct page {
					 * see PAGE_MAPPING_ANON below.
					 */
	/* Second double word */
	union {
	struct {
		union {
			pgoff_t index;		/* Our offset within mapping. */
			void *freelist;		/* slub first free object */
		};

		union {
			/* Used for cmpxchg_double in slub */
			unsigned long counters;

			struct {

				union {
					atomic_t _mapcount;	/* Count of ptes mapped in mms,
							 * to show when page is mapped
							 * & limit reverse map searches.
							 */
			atomic_t _count;		/* Usage count, see below. */
		};

		struct {			/* SLUB cmpxchg_double area */
			void *freelist;
			union {
				unsigned long counters;
					struct {
						unsigned inuse:16;
						unsigned objects:15;
						unsigned frozen:1;
					/*
					 * Kernel may make use of this field even when slub
					 * uses the rest of the double word!
					 */
					atomic_t _count;
					};
				};
				atomic_t _count;		/* Usage count, see below. */
			};
		};
	};