diff options
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -166,7 +166,7 @@ typedef unsigned char freelist_idx_t; | |||
166 | typedef unsigned short freelist_idx_t; | 166 | typedef unsigned short freelist_idx_t; |
167 | #endif | 167 | #endif |
168 | 168 | ||
169 | #define SLAB_OBJ_MAX_NUM (1 << sizeof(freelist_idx_t) * BITS_PER_BYTE) | 169 | #define SLAB_OBJ_MAX_NUM ((1 << sizeof(freelist_idx_t) * BITS_PER_BYTE) - 1) |
170 | 170 | ||
171 | /* | 171 | /* |
172 | * true if a page was allocated from pfmemalloc reserves for network-based | 172 | * true if a page was allocated from pfmemalloc reserves for network-based |
@@ -2572,13 +2572,13 @@ static void *alloc_slabmgmt(struct kmem_cache *cachep, | |||
2572 | return freelist; | 2572 | return freelist; |
2573 | } | 2573 | } |
2574 | 2574 | ||
2575 | static inline freelist_idx_t get_free_obj(struct page *page, unsigned char idx) | 2575 | static inline freelist_idx_t get_free_obj(struct page *page, unsigned int idx) |
2576 | { | 2576 | { |
2577 | return ((freelist_idx_t *)page->freelist)[idx]; | 2577 | return ((freelist_idx_t *)page->freelist)[idx]; |
2578 | } | 2578 | } |
2579 | 2579 | ||
2580 | static inline void set_free_obj(struct page *page, | 2580 | static inline void set_free_obj(struct page *page, |
2581 | unsigned char idx, freelist_idx_t val) | 2581 | unsigned int idx, freelist_idx_t val) |
2582 | { | 2582 | { |
2583 | ((freelist_idx_t *)(page->freelist))[idx] = val; | 2583 | ((freelist_idx_t *)(page->freelist))[idx] = val; |
2584 | } | 2584 | } |