diff options
| -rw-r--r-- | arch/x86/xen/p2m.c | 5 | ||||
| -rw-r--r-- | drivers/net/xen-netback/netback.c | 6 |
2 files changed, 3 insertions, 8 deletions
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index c9bc53f64359..a8691cb08420 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c | |||
| @@ -682,9 +682,10 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops, | |||
| 682 | pfn = page_to_pfn(pages[i]); | 682 | pfn = page_to_pfn(pages[i]); |
| 683 | 683 | ||
| 684 | WARN_ON(PagePrivate(pages[i])); | 684 | WARN_ON(PagePrivate(pages[i])); |
| 685 | WARN(pfn_to_mfn(pfn) != INVALID_P2M_ENTRY, "page must be ballooned"); | ||
| 686 | |||
| 685 | SetPagePrivate(pages[i]); | 687 | SetPagePrivate(pages[i]); |
| 686 | set_page_private(pages[i], mfn); | 688 | set_page_private(pages[i], mfn); |
| 687 | pages[i]->index = pfn_to_mfn(pfn); | ||
| 688 | 689 | ||
| 689 | if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) { | 690 | if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) { |
| 690 | ret = -ENOMEM; | 691 | ret = -ENOMEM; |
| @@ -718,7 +719,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, | |||
| 718 | set_page_private(pages[i], INVALID_P2M_ENTRY); | 719 | set_page_private(pages[i], INVALID_P2M_ENTRY); |
| 719 | WARN_ON(!PagePrivate(pages[i])); | 720 | WARN_ON(!PagePrivate(pages[i])); |
| 720 | ClearPagePrivate(pages[i]); | 721 | ClearPagePrivate(pages[i]); |
| 721 | set_phys_to_machine(pfn, pages[i]->index); | 722 | set_phys_to_machine(pfn, INVALID_P2M_ENTRY); |
| 722 | } | 723 | } |
| 723 | if (kunmap_ops) | 724 | if (kunmap_ops) |
| 724 | ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref, | 725 | ret = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref, |
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 908e65e9b821..64413189ad06 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c | |||
| @@ -1241,12 +1241,6 @@ static void xenvif_fill_frags(struct xenvif_queue *queue, struct sk_buff *skb) | |||
| 1241 | /* Take an extra reference to offset network stack's put_page */ | 1241 | /* Take an extra reference to offset network stack's put_page */ |
| 1242 | get_page(queue->mmap_pages[pending_idx]); | 1242 | get_page(queue->mmap_pages[pending_idx]); |
| 1243 | } | 1243 | } |
| 1244 | /* FIXME: __skb_fill_page_desc set this to true because page->pfmemalloc | ||
| 1245 | * overlaps with "index", and "mapping" is not set. I think mapping | ||
| 1246 | * should be set. If delivered to local stack, it would drop this | ||
| 1247 | * skb in sk_filter unless the socket has the right to use it. | ||
| 1248 | */ | ||
| 1249 | skb->pfmemalloc = false; | ||
| 1250 | } | 1244 | } |
| 1251 | 1245 | ||
| 1252 | static int xenvif_get_extras(struct xenvif_queue *queue, | 1246 | static int xenvif_get_extras(struct xenvif_queue *queue, |
