diff options
Diffstat (limited to 'mm/slob.c')
| -rw-r--r-- | mm/slob.c | 20 |
1 files changed, 9 insertions, 11 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) |
| @@ -519,18 +519,16 @@ size_t ksize(const void *block) | |||
| 519 | else | 519 | else |
| 520 | return sp->page.private; | 520 | return sp->page.private; |
| 521 | } | 521 | } |
| 522 | EXPORT_SYMBOL(ksize); | ||
| 523 | 522 | ||
| 524 | struct kmem_cache { | 523 | struct kmem_cache { |
| 525 | unsigned int size, align; | 524 | unsigned int size, align; |
| 526 | unsigned long flags; | 525 | unsigned long flags; |
| 527 | const char *name; | 526 | const char *name; |
| 528 | void (*ctor)(struct kmem_cache *, void *); | 527 | void (*ctor)(void *); |
| 529 | }; | 528 | }; |
| 530 | 529 | ||
| 531 | struct kmem_cache *kmem_cache_create(const char *name, size_t size, | 530 | struct kmem_cache *kmem_cache_create(const char *name, size_t size, |
| 532 | size_t align, unsigned long flags, | 531 | size_t align, unsigned long flags, void (*ctor)(void *)) |
| 533 | void (*ctor)(struct kmem_cache *, void *)) | ||
| 534 | { | 532 | { |
| 535 | struct kmem_cache *c; | 533 | struct kmem_cache *c; |
| 536 | 534 | ||
| @@ -575,7 +573,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); | 573 | b = slob_new_page(flags, get_order(c->size), node); |
| 576 | 574 | ||
| 577 | if (c->ctor) | 575 | if (c->ctor) |
| 578 | c->ctor(c, b); | 576 | c->ctor(b); |
| 579 | 577 | ||
| 580 | return b; | 578 | return b; |
| 581 | } | 579 | } |
