pagevec: Initialise folio_batch->percpu_pvec_drained

When UBSAN is enabled, it reports an invalid value in __pagevec_release()
when accessing pvec->percpu_pvec_drained, which is simply whatever
garbage was on the stack.  Initialise it when initialising the rest of
the folio_batch.

Fixes: 10331795 ("pagevec: Add folio_batch")
Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
parent 455e73a0
...@@ -111,6 +111,7 @@ static_assert(offsetof(struct pagevec, pages) == ...@@ -111,6 +111,7 @@ static_assert(offsetof(struct pagevec, pages) ==
static inline void folio_batch_init(struct folio_batch *fbatch) static inline void folio_batch_init(struct folio_batch *fbatch)
{ {
fbatch->nr = 0; fbatch->nr = 0;
fbatch->percpu_pvec_drained = false;
} }
static inline unsigned int folio_batch_count(struct folio_batch *fbatch) static inline unsigned int folio_batch_count(struct folio_batch *fbatch)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment