On 01/23/2018 04:50 PM, Eric Dumazet wrote:
> On Mon, 2018-01-22 at 22:53 -0800, Yonghong Song wrote:
>> In commit b471f2f1de8b ("bpf: implement MAP_GET_NEXT_KEY command for
>> LPM_TRIE map"),
>> the implemented MAP_GET_NEXT_KEY callback function is guarded with rcu read
>> lock.
>> In the function body, "kmalloc(size, GFP_USER | __GFP_NOWARN)" is used which
>> may
>> sleep and violate rcu read lock region requirements. This patch fixed the
>> issue
>> by using GFP_ATOMIC instead to avoid blocking kmalloc. Tested with
>> CONFIG_DEBUG_ATOMIC_SLEEP=y as suggested by Eric Dumazet.
>>
>> Fixes: b471f2f1de8b ("bpf: implement MAP_GET_NEXT_KEY command for LPM_TRIE
>> map")
>> Signed-off-by: Yonghong Song <[email protected]>
>
> Reported-by: syzbot <[email protected]>
> Reviewed-by: Eric Dumazet <[email protected]>
Applied to bpf-next, thanks everyone!