diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 7b7222b4f611..3a558a3c2cca 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -3556,7 +3556,13 @@ static inline void *skb_frag_address(const skb_frag_t *frag) */ static inline void *skb_frag_address_safe(const skb_frag_t *frag) { - void *ptr = page_address(skb_frag_page(frag)); + struct page *page = skb_frag_page(frag); + void *ptr; + + if (!page) + return NULL; + + ptr = page_address(page); if (unlikely(!ptr)) return NULL;