DMA from stack in virtio_net and virtio_console

Michael S. Tsirkin
Sun, 26 Jun 2016 02:06:19 -0000

On Fri, Jun 24, 2016 at 06:45:50PM -0700, Andy Lutomirski
wrote:
> virtio_net does DMA on the stack when it calls sg_init_one in
> virtio_set_queues, virtnet_vlan_rx_add_vid, and
> virtnet_vlan_rx_kill_vid.  Michael, I think these are examples we
> missed somehow when fixing these issues earlier on.
>
> virtio_console does it here:
>
> sg_init_one(sg, &cpkt, sizeof(cpkt));
>
> This will cause problems on some architectures (Xen at the very least,
> and it'll cause more subtle problems on other architectures if they
> start using the DMA API), and it will blow up horribly with virtually
> mapped stacks.
>
> Could you fix these, please?
>
> Thanks,
> Andy

Will do, thanks for the report.

--
MST