diff options
Diffstat (limited to 'net/9p/trans_virtio.c')
-rw-r--r-- | net/9p/trans_virtio.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c index cd1e1ede73a4..ac2666c1d011 100644 --- a/net/9p/trans_virtio.c +++ b/net/9p/trans_virtio.c | |||
@@ -340,7 +340,10 @@ static int p9_get_mapped_pages(struct virtio_chan *chan, | |||
340 | int count = nr_pages; | 340 | int count = nr_pages; |
341 | while (nr_pages) { | 341 | while (nr_pages) { |
342 | s = rest_of_page(data); | 342 | s = rest_of_page(data); |
343 | pages[index++] = kmap_to_page(data); | 343 | if (is_vmalloc_addr(data)) |
344 | pages[index++] = vmalloc_to_page(data); | ||
345 | else | ||
346 | pages[index++] = kmap_to_page(data); | ||
344 | data += s; | 347 | data += s; |
345 | nr_pages--; | 348 | nr_pages--; |
346 | } | 349 | } |