page = alloc_page(gfp_mask);
                if (!page) {
                        while (head) {
-                               struct page *next = (struct page *)head->private;
+                               struct page *next = (struct page *)page_private(head);
                                put_page(head);
                                head = next;
                        }
                memcpy(page_address(page),
                       vaddr + f->page_offset, skb_frag_size(f));
                kunmap_atomic(vaddr);
-               page->private = (unsigned long)head;
+               set_page_private(page, (unsigned long)head);
                head = page;
        }
 
        for (i = num_frags - 1; i >= 0; i--) {
                __skb_fill_page_desc(skb, i, head, 0,
                                     skb_shinfo(skb)->frags[i].size);
-               head = (struct page *)head->private;
+               head = (struct page *)page_private(head);
        }
 
        skb_shinfo(skb)->tx_flags &= ~SKBTX_DEV_ZEROCOPY;