mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-28 20:37:27 +00:00
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: Hugh Dickins <hughd@google.com> Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
parent
3adf004d82
commit
013e896373
@ -49,30 +49,31 @@ struct page {
|
||||
* see PAGE_MAPPING_ANON below.
|
||||
*/
|
||||
/* Second double word */
|
||||
union {
|
||||
struct {
|
||||
struct {
|
||||
union {
|
||||
pgoff_t index; /* Our offset within mapping. */
|
||||
atomic_t _mapcount; /* Count of ptes mapped in mms,
|
||||
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;
|
||||
struct {
|
||||
unsigned inuse:16;
|
||||
unsigned objects:15;
|
||||
unsigned frozen:1;
|
||||
};
|
||||
};
|
||||
atomic_t _count; /* Usage count, see below. */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user