From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Borkmann Subject: Re: [PATCH bpf] bpf: disable and restore preemption in __BPF_PROG_RUN_ARRAY Date: Mon, 23 Apr 2018 23:28:40 +0200 Message-ID: <5a5f000a-5867-01f3-22a6-c4b12d4c3876@iogearbox.net> References: <20180423170921.16162-1-guro@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: kernel-team@fb.com, Alexei Starovoitov To: Roman Gushchin , netdev@vger.kernel.org Return-path: Received: from www62.your-server.de ([213.133.104.62]:44505 "EHLO www62.your-server.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932391AbeDWV2m (ORCPT ); Mon, 23 Apr 2018 17:28:42 -0400 In-Reply-To: <20180423170921.16162-1-guro@fb.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 04/23/2018 07:09 PM, Roman Gushchin wrote: > Running bpf programs requires disabled preemption, > however at least some* of the BPF_PROG_RUN_ARRAY users > do not follow this rule. > > To fix this bug, and also to make it not happen in the future, > let's add explicit preemption disabling/re-enabling > to the __BPF_PROG_RUN_ARRAY code. > > * for example: > [ 17.624472] RIP: 0010:__cgroup_bpf_run_filter_sk+0x1c4/0x1d0 > ... > [ 17.640890] inet6_create+0x3eb/0x520 > [ 17.641405] __sock_create+0x242/0x340 > [ 17.641939] __sys_socket+0x57/0xe0 > [ 17.642370] ? trace_hardirqs_off_thunk+0x1a/0x1c > [ 17.642944] SyS_socket+0xa/0x10 > [ 17.643357] do_syscall_64+0x79/0x220 > [ 17.643879] entry_SYSCALL_64_after_hwframe+0x42/0xb7 > > Signed-off-by: Roman Gushchin > Cc: Alexei Starovoitov > Cc: Daniel Borkmann Applied to bpf, thanks Roman.