lib: add missing newline character in the warning message
Suren Baghdasaryan
maintainerPATCH 1/3 lib: add missing newline character in the warning message
--- include/linux/alloc_tag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/alloc_tag.h +1 -1
@@ -122,7 +122,7 @@ static inline void alloc_tag_add_check(union codetag_ref *ref, struct alloc_tag"alloc_tag was not cleared (got tag for %s:%u)\n" , ref->ct->filename, ref->ct->lineno); -WARN_ONCE (!tag,"current->alloc_tag not set" ); +WARN_ONCE (!tag,"current->alloc_tag not set\n" ); }static inline void alloc_tag_sub_check (union codetag_ref *ref)
base-commit: 8a18fda0febb7790de20ec1c3b4522ce026be1c6
Signature · 1 line
2.45.2.993.g49e7a77208-goog
Suren Baghdasaryan
maintainerPATCH 2/3 lib: reuse page_ext_data() to obtain codetag_ref
codetag_ref_from_page_ext() reimplements the same calculation as page_ext_data(). Reuse existing function instead.
--- include/linux/pgalloc_tag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/pgalloc_tag.h +1 -1
@@ -15,7 +15,7 @@ extern struct page_ext_operations page_alloc_tagging_ops;static inline union codetag_ref *codetag_ref_from_page_ext (struct page_ext *page_ext) { -return (void *)page_ext + page_alloc_tagging_ops.offset; +return (union codetag_ref *)page_ext_data (page_ext, &page_alloc_tagging_ops); }static inline struct page_ext *page_ext_from_codetag_ref (union codetag_ref *ref)
Signature · 1 line
2.45.2.993.g49e7a77208-goog
Suren Baghdasaryan
maintainerPATCH 3/3 alloc_tag: fix page_ext_get/page_ext_put sequence during page splitting
In reply to Suren Baghdasaryanpgalloc_tag_sub() might call page_ext_put() using a page different from the one used in page_ext_get() call. This does not pose an issue since page_ext_put() ignores this parameter as long as it's non-NULL but technically this is wrong. Fix it by storing the original page used in page_ext_get() and passing it to page_ext_put().
--- include/linux/pgalloc_tag.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
include/linux/pgalloc_tag.h +3 -2
@@ -71,6 +71,7 @@ static inline void pgalloc_tag_sub(struct page *page, unsigned int nr)static inline void pgalloc_tag_split (struct page *page,unsigned int nr) {int i; +struct page_ext *first_page_ext;struct page_ext *page_ext;union codetag_ref *ref;struct alloc_tag *tag;
@@ -78,7 +79,7 @@ static inline void pgalloc_tag_split(struct page *page, unsigned int nr)if (!mem_alloc_profiling_enabled ())return ; - page_ext =page_ext_get (page); + first_page_ext = page_ext =page_ext_get (page);if (unlikely (!page_ext))return ;
@@ -94,7 +95,7 @@ static inline void pgalloc_tag_split(struct page *page, unsigned int nr) page_ext =page_ext_next (page_ext); } out: -page_ext_put (page_ext); +page_ext_put (first_page_ext); }static inline struct alloc_tag *pgalloc_tag_get (struct page *page)
Signature · 1 line
2.45.2.993.g49e7a77208-goog
Suren Baghdasaryan
maintainerQuoted 3 lines · Suren Baghdasaryan
Fixes 22d407b164ff ("lib: add allocation tagging support for memory allocation profiling")Signed-off-by Suren Baghdasaryan <[email protected]>
The fixes in this patchset are cleanups, not critical and not urgent. Thanks,
Suren.
Quoted 22 lines
--- include/linux/alloc_tag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/linux/alloc_tag.h +1
-1@@ -122,7 +122,7 @@ static inline void alloc_tag_add_check(union codetag_ref *ref, struct alloc_tag"alloc_tag was not cleared (got tag for %s:%u)\n" , ref->ct->filename, ref->ct->lineno); -WARN_ONCE (!tag,"current->alloc_tag not set" ); +WARN_ONCE (!tag,"current->alloc_tag not set\n" ); }static inline void alloc_tag_sub_check (union codetag_ref *ref)base-commit:
8a18fda0febb7790de20ec1c3b4522ce026be1c6--
2.45.2.993.g49e7a77208-goog