diff options
Diffstat (limited to 'mm/slob.c')
-rw-r--r-- | mm/slob.c | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -130,17 +130,17 @@ static LIST_HEAD(free_slob_large); | |||
130 | */ | 130 | */ |
131 | static inline int slob_page(struct slob_page *sp) | 131 | static inline int slob_page(struct slob_page *sp) |
132 | { | 132 | { |
133 | return test_bit(PG_active, &sp->flags); | 133 | return PageSlobPage((struct page *)sp); |
134 | } | 134 | } |
135 | 135 | ||
136 | static inline void set_slob_page(struct slob_page *sp) | 136 | static inline void set_slob_page(struct slob_page *sp) |
137 | { | 137 | { |
138 | __set_bit(PG_active, &sp->flags); | 138 | __SetPageSlobPage((struct page *)sp); |
139 | } | 139 | } |
140 | 140 | ||
141 | static inline void clear_slob_page(struct slob_page *sp) | 141 | static inline void clear_slob_page(struct slob_page *sp) |
142 | { | 142 | { |
143 | __clear_bit(PG_active, &sp->flags); | 143 | __ClearPageSlobPage((struct page *)sp); |
144 | } | 144 | } |
145 | 145 | ||
146 | /* | 146 | /* |
@@ -148,19 +148,19 @@ static inline void clear_slob_page(struct slob_page *sp) | |||
148 | */ | 148 | */ |
149 | static inline int slob_page_free(struct slob_page *sp) | 149 | static inline int slob_page_free(struct slob_page *sp) |
150 | { | 150 | { |
151 | return test_bit(PG_private, &sp->flags); | 151 | return PageSlobFree((struct page *)sp); |
152 | } | 152 | } |
153 | 153 | ||
154 | static void set_slob_page_free(struct slob_page *sp, struct list_head *list) | 154 | static void set_slob_page_free(struct slob_page *sp, struct list_head *list) |
155 | { | 155 | { |
156 | list_add(&sp->list, list); | 156 | list_add(&sp->list, list); |
157 | __set_bit(PG_private, &sp->flags); | 157 | __SetPageSlobFree((struct page *)sp); |
158 | } | 158 | } |
159 | 159 | ||
160 | static inline void clear_slob_page_free(struct slob_page *sp) | 160 | static inline void clear_slob_page_free(struct slob_page *sp) |
161 | { | 161 | { |
162 | list_del(&sp->list); | 162 | list_del(&sp->list); |
163 | __clear_bit(PG_private, &sp->flags); | 163 | __ClearPageSlobFree((struct page *)sp); |
164 | } | 164 | } |
165 | 165 | ||
166 | #define SLOB_UNIT sizeof(slob_t) | 166 | #define SLOB_UNIT sizeof(slob_t) |
@@ -525,12 +525,11 @@ struct kmem_cache { | |||
525 | unsigned int size, align; | 525 | unsigned int size, align; |
526 | unsigned long flags; | 526 | unsigned long flags; |
527 | const char *name; | 527 | const char *name; |
528 | void (*ctor)(struct kmem_cache *, void *); | 528 | void (*ctor)(void *); |
529 | }; | 529 | }; |
530 | 530 | ||
531 | struct kmem_cache *kmem_cache_create(const char *name, size_t size, | 531 | struct kmem_cache *kmem_cache_create(const char *name, size_t size, |
532 | size_t align, unsigned long flags, | 532 | size_t align, unsigned long flags, void (*ctor)(void *)) |
533 | void (*ctor)(struct kmem_cache *, void *)) | ||
534 | { | 533 | { |
535 | struct kmem_cache *c; | 534 | struct kmem_cache *c; |
536 | 535 | ||
@@ -575,7 +574,7 @@ void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node) | |||
575 | b = slob_new_page(flags, get_order(c->size), node); | 574 | b = slob_new_page(flags, get_order(c->size), node); |
576 | 575 | ||
577 | if (c->ctor) | 576 | if (c->ctor) |
578 | c->ctor(c, b); | 577 | c->ctor(b); |
579 | 578 | ||
580 | return b; | 579 | return b; |
581 | } | 580 | } |