compound_mapcount() is only called after PageCompound() has already
been checked by the caller, so there's no point to check it again. Gcc
may optimize it away too because it's inline but this will remove the
runtime check for sure and add it'll add an assert instead.

Signed-off-by: Andrea Arcangeli <[email protected]>
---
 include/linux/mm.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 263f229..726ba80 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -471,8 +471,7 @@ static inline atomic_t *compound_mapcount_ptr(struct page 
*page)
 
 static inline int compound_mapcount(struct page *page)
 {
-       if (!PageCompound(page))
-               return 0;
+       VM_BUG_ON_PAGE(!PageCompound(page), page);
        page = compound_head(page);
        return atomic_read(compound_mapcount_ptr(page)) + 1;
 }

Reply via email to