Messages in this thread | ![/](/images/icornerl.gif) | | Date | Fri, 3 Feb 2017 20:34:16 -0800 | From | Matt Mullins <> | Subject | Re: [PATCH resend 4.9] hw_random: Don't use a stack buffer in add_early_randomness() |
| |
On Sat, Feb 04, 2017 at 11:47:38AM +0800, Yisheng Xie wrote: > On 2016/10/18 1:06, Andy Lutomirski wrote: > > hw_random carefully avoids using a stack buffer except in > > add_early_randomness(). This causes a crash in virtio_rng if > > CONFIG_VMAP_STACK=y. > I try to understand this patch, but I do not know why it will cause > a crash in virtio_rng with CONFIG_VMAP_STACK=y? > Could you please give me more info. about it.
My original report was https://lkml.kernel.org/r/20161016002151.GA18235@hydra.tuxags.com.
The virtio ring APIs use scatterlists to keep track of the buffers, and scatterlist requires addresses to be in the kernel direct-mapped address range. This is not the case for vmalloc()ed addresses, such as the original on-stack "bytes" array when VMAP_STACK=y.
| ![\](/images/icornerr.gif) |