Re: [PATCH] virtio: 9p: correctly pass physical address to userspacefor high pages

From: Sasha Levin
Date: Wed Oct 17 2012 - 12:05:12 EST


On Wed, Oct 17, 2012 at 6:14 AM, Will Deacon <will.deacon@xxxxxxx> wrote:
> When using a virtio transport, the 9p net device allocates pages to back
> the descriptors inserted into the virtqueue. These allocations may be
> performed from atomic context (under the channel lock) and can therefore
> return high mappings which aren't suitable for virt_to_phys.
>
> This patch ensures that virtual addresses for virtio queue descriptors
> are converted to physical addresses using kmap_to_page, which handles
> high memory correctly.
>
> Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
> Cc: Sasha Levin <levinsasha928@xxxxxxxxx>
> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
> Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
> ---

One of the things I was seeing when fuzzing within lkvm were random
crashes resulting
from "odd" addresses used by virtio-9p queue descriptions. I
attributed that to memory
corruption as a result of something else failing the fuzz tests
before, but this patch
explains what might have gone wrong.

I'll plug it in and run tests on it.


Thanks,
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/