diff options
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/netmem.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/include/net/netmem.h b/include/net/netmem.h index a6d65ced5231..507b74c9f52d 100644 --- a/include/net/netmem.h +++ b/include/net/netmem.h @@ -94,10 +94,20 @@ enum net_iov_type { */ struct net_iov { struct netmem_desc desc; - struct net_iov_area *owner; + unsigned int page_type; enum net_iov_type type; + struct net_iov_area *owner; }; +/* Make sure 'the offset of page_type in struct page == the offset of + * type in struct net_iov'. + */ +#define NET_IOV_ASSERT_OFFSET(pg, iov) \ + static_assert(offsetof(struct page, pg) == \ + offsetof(struct net_iov, iov)) +NET_IOV_ASSERT_OFFSET(page_type, page_type); +#undef NET_IOV_ASSERT_OFFSET + struct net_iov_area { /* Array of net_iovs for this area. */ struct net_iov *niovs; @@ -220,7 +230,7 @@ static inline unsigned long netmem_pfn_trace(netmem_ref netmem) */ #define pp_page_to_nmdesc(p) \ ({ \ - DEBUG_NET_WARN_ON_ONCE(!page_pool_page_is_pp(p)); \ + DEBUG_NET_WARN_ON_ONCE(!PageNetpp(p)); \ __pp_page_to_nmdesc(p); \ }) |
