mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 21:02:43 +01:00
stackdepot: rename pool_index to pool_index_plus_1
Commit3ee34eabac("lib/stackdepot: fix first entry having a 0-handle") changed the meaning of the pool_index field to mean "the pool index plus 1". This made the code accessing this field less self-documenting, as well as causing debuggers such as drgn to not be able to easily remain compatible with both old and new kernels, because they typically do that by testing for presence of the new field. Because stackdepot is a debugging tool, we should make sure that it is debugger friendly. Therefore, give the field a different name to improve readability as well as enabling debugger backwards compatibility. This is needed in 6.9, which would otherwise become an odd release with the new semantics and old name so debuggers wouldn't recognize the new semantics there. Fixes:3ee34eabac("lib/stackdepot: fix first entry having a 0-handle") Link: https://lkml.kernel.org/r/[email protected] Link: https://linux-review.googlesource.com/id/Ib3e70c36c1d230dd0a118dc22649b33e768b9f88 Signed-off-by: Peter Collingbourne <[email protected]> Acked-by: Vlastimil Babka <[email protected]> Reviewed-by: Alexander Potapenko <[email protected]> Acked-by: Marco Elver <[email protected]> Acked-by: Oscar Salvador <[email protected]> Cc: Andrey Konovalov <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Omar Sandoval <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
This commit is contained in:
1 parent
04c35ab3bd
commit
a6c1d9cb9a
2 files changed
+5
-6
No files matched your search
@@ -44,10 +44,9 @@ typedef u32 depot_stack_handle_t;
|
||||
union handle_parts {
|
||||
depot_stack_handle_t handle;
|
||||
struct {
|
||||
/* pool_index is offset by 1 */
|
||||
u32 pool_index : DEPOT_POOL_INDEX_BITS;
|
||||
u32 offset : DEPOT_OFFSET_BITS;
|
||||
u32 extra : STACK_DEPOT_EXTRA_BITS;
|
||||
u32 pool_index_plus_1 : DEPOT_POOL_INDEX_BITS;
|
||||
u32 offset : DEPOT_OFFSET_BITS;
|
||||
u32 extra : STACK_DEPOT_EXTRA_BITS;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -330,7 +330,7 @@ static struct stack_record *depot_pop_free_pool(void **prealloc, size_t size)
|
||||
stack = current_pool + pool_offset;
|
||||
|
||||
/* Pre-initialize handle once. */
|
||||
stack->handle.pool_index = pool_index + 1;
|
||||
stack->handle.pool_index_plus_1 = pool_index + 1;
|
||||
stack->handle.offset = pool_offset >> DEPOT_STACK_ALIGN;
|
||||
stack->handle.extra = 0;
|
||||
INIT_LIST_HEAD(&stack->hash_list);
|
||||
@@ -441,7 +441,7 @@ static struct stack_record *depot_fetch_stack(depot_stack_handle_t handle)
|
||||
const int pools_num_cached = READ_ONCE(pools_num);
|
||||
union handle_parts parts = { .handle = handle };
|
||||
void *pool;
|
||||
u32 pool_index = parts.pool_index - 1;
|
||||
u32 pool_index = parts.pool_index_plus_1 - 1;
|
||||
size_t offset = parts.offset << DEPOT_STACK_ALIGN;
|
||||
struct stack_record *stack;
|
||||
|
||||
|
||||
Reference in new issue
Block a user