Re: BUG: sleeping function called from invalid context at ./include/linux/uaccess.h:LINE

From: Paolo Bonzini
Date: Mon Nov 06 2017 - 11:37:18 EST


On 06/11/2017 17:19, David Hildenbrand wrote:
> On 06.11.2017 17:14, Paolo Bonzini wrote:
>> On 06/11/2017 17:01, David Hildenbrand wrote:
>>> On 06.11.2017 16:10, Nick Desaulniers wrote:
>>>> Does it have to be stack allocated?
>>>
>>> We can't use kmalloc and friends in emulate.c. We would have to
>>> introduce new emulator callbacks.
>>>
>>> a) for malloc and free. hmmm.
>>> b) for carrying out the fxrstr/fixup.
>>>
>>> Paolo, what do you suggest?
>>
>> You can use kmalloc. Any userspace user of emulate.c would have to
>> write a wrapper. But I'm not sure it's useful... maybe the
>> asm_safe+memcpy could be moved to a separate noinline function, so that
>> segmented_read_std is invoked with a leaner stack.
>
> That's basically what we had before 9d643f63128b, however without the
> "noinline".

Indeed. I do prefer the usage of __fxstate_size though that was
introduced by 9d643f63128b.

Paolo