Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp5220064imw; Wed, 20 Jul 2022 01:07:00 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t6iX7g5aEn79WG2SEfhUiqrRkQc+sqK710CJemKzgd+GfP5KCbMd7r2du57YoWLHnyW4TL X-Received: by 2002:a17:90a:f2d7:b0:1ef:8859:d61 with SMTP id gt23-20020a17090af2d700b001ef88590d61mr4013018pjb.215.1658304420130; Wed, 20 Jul 2022 01:07:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658304420; cv=none; d=google.com; s=arc-20160816; b=cGxiKwO8Lw0Xeyd07I0KugxYenCTsKsh1LgyQfNwDEcl8SU2yzqwA3g0ysU8+cod/e 5apgJe96ahQAdmBZxkG1NSjQ+evWMc9+IFuNoVLD7VjnEEZMxBBpgDDGdjZEK+BZ59C5 nKYMNWen3UvorAKAJ1aRpv3j1dS+5r/fcpxuNtEJI0IrUVbWZNia8/pxmybI3qyr2Hww QKoSmijOhbiVvbvCsjl7Wg/vdPl1sNhLNy+e38fuiCp4+J6bPOHk7b0/O62SZORF36eE +DpmXyzKEv/17h5o1cKkcJUYbjdC9pVOV1dXTCIj7x2ncw9st0Bw4yvm3LJ31GAj4fzB Fkbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:cc:to :subject; bh=a8RaMwmZd7aWPDPOVas20kN1BXQJOjf+PoGJYgdTsaE=; b=GLc2ax4FWACAOkWIjWQ9Tzm9SgTl/5dWIxO9YuZ/xcR+WcpPT7KlfWCXAx0A7TCtpG bqY5kt9bbrBk9eclTkRw0wXpONVpjWZJgofLzJTfwBIt+1/4S5eMlZcIncoBkcHFirgO S86aH8riCThwireXWCHzkVReer6pjGE2Amm9h4iezsHUxUcF/ug3JG88Tzy3G85PBBjC Le+J4+bBuer7FYvcxVglHm/49A3YhTYO6g4YU27Vai3hKwYL0I9ikEEAY0ryRNVUoV4b zdg5P0kEOQ1ii1lIx9IYUiM3Q3pr+nwE7AcUDkPQN5fTzPoACO8h0UN4zP/e3L6TuFgj 57TQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j189-20020a6380c6000000b0041a4871ea75si4627422pgd.492.2022.07.20.01.06.42; Wed, 20 Jul 2022 01:07:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235562AbiGTH0V (ORCPT + 99 others); Wed, 20 Jul 2022 03:26:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46032 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239346AbiGTH0O (ORCPT ); Wed, 20 Jul 2022 03:26:14 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBF5F54CAF; Wed, 20 Jul 2022 00:26:12 -0700 (PDT) Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4LnnG63MBszVg3L; Wed, 20 Jul 2022 15:22:22 +0800 (CST) Received: from kwepemm600017.china.huawei.com (7.193.23.234) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Wed, 20 Jul 2022 15:25:36 +0800 Received: from [10.174.177.234] (10.174.177.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Wed, 20 Jul 2022 15:25:35 +0800 Subject: Re: [PATCH bpf-next] bpf: fix bpf compile error caused by CONFIG_CGROUP_BPF To: Stanislav Fomichev CC: , , , , , References: <1658221305-35718-1-git-send-email-xujia39@huawei.com> From: "xujia (Q)" Message-ID: <1eec4e32-9136-0360-a547-7f99c0bfa6be@huawei.com> Date: Wed, 20 Jul 2022 15:25:34 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.234] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600017.china.huawei.com (7.193.23.234) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It is fixed, not warning again. Thank you very much! 在 2022/7/19 23:46, Stanislav Fomichev 写道: > On Tue, Jul 19, 2022 at 1:49 AM Xu Jia wrote: >> We failed to compile when CONFIG_BPF_LSM is enabled but CONFIG_CGROUP_BPF >> is not set. The failings are shown as below: >> >> kernel/bpf/trampoline.o: in function `bpf_trampoline_link_cgroup_shim' >> trampoline.c: undefined reference to `bpf_cgroup_atype_get' >> kernel/bpf/bpf_lsm.o: In function `bpf_lsm_find_cgroup_shim': >> bpf_lsm.c: undefined reference to `__cgroup_bpf_run_lsm_current' >> bpf_lsm.c: undefined reference to `__cgroup_bpf_run_lsm_sock' >> bpf_lsm.c: undefined reference to `__cgroup_bpf_run_lsm_socket' >> >> Fix them by protecting these functions with CONFIG_CGROUP_BPF. > Should be fixed by the following? > > https://lore.kernel.org/bpf/20220714185404.3647772-1-sdf@google.com/ > >> Fixes: 69fd337a975c ("bpf: per-cgroup lsm flavor") >> Signed-off-by: Xu Jia >> --- >> include/linux/bpf.h | 12 +++++++++--- >> include/linux/bpf_lsm.h | 10 ++++++---- >> kernel/bpf/bpf_lsm.c | 2 ++ >> kernel/bpf/trampoline.c | 2 ++ >> 4 files changed, 19 insertions(+), 7 deletions(-) >> >> diff --git a/include/linux/bpf.h b/include/linux/bpf.h >> index 2b21f2a3452f..add8895c02cc 100644 >> --- a/include/linux/bpf.h >> +++ b/include/linux/bpf.h >> @@ -1255,9 +1255,7 @@ struct bpf_dummy_ops { >> int bpf_struct_ops_test_run(struct bpf_prog *prog, const union bpf_attr *kattr, >> union bpf_attr __user *uattr); >> #endif >> -int bpf_trampoline_link_cgroup_shim(struct bpf_prog *prog, >> - int cgroup_atype); >> -void bpf_trampoline_unlink_cgroup_shim(struct bpf_prog *prog); >> + >> #else >> static inline const struct bpf_struct_ops *bpf_struct_ops_find(u32 type_id) >> { >> @@ -1281,6 +1279,14 @@ static inline int bpf_struct_ops_map_sys_lookup_elem(struct bpf_map *map, >> { >> return -EINVAL; >> } >> +#endif >> + >> +#if defined(CONFIG_BPF_JIT) && defined(CONFIG_BPF_SYSCALL) && \ >> + defined(CONFIG_CGROUP_BPF) >> +int bpf_trampoline_link_cgroup_shim(struct bpf_prog *prog, >> + int cgroup_atype); >> +void bpf_trampoline_unlink_cgroup_shim(struct bpf_prog *prog); >> +#else >> static inline int bpf_trampoline_link_cgroup_shim(struct bpf_prog *prog, >> int cgroup_atype) >> { >> diff --git a/include/linux/bpf_lsm.h b/include/linux/bpf_lsm.h >> index 4bcf76a9bb06..bed45a0c8a9c 100644 >> --- a/include/linux/bpf_lsm.h >> +++ b/include/linux/bpf_lsm.h >> @@ -42,8 +42,6 @@ extern const struct bpf_func_proto bpf_inode_storage_get_proto; >> extern const struct bpf_func_proto bpf_inode_storage_delete_proto; >> void bpf_inode_storage_free(struct inode *inode); >> >> -void bpf_lsm_find_cgroup_shim(const struct bpf_prog *prog, bpf_func_t *bpf_func); >> - >> #else /* !CONFIG_BPF_LSM */ >> >> static inline bool bpf_lsm_is_sleepable_hook(u32 btf_id) >> @@ -67,11 +65,15 @@ static inline void bpf_inode_storage_free(struct inode *inode) >> { >> } >> >> +#endif /* CONFIG_BPF_LSM */ >> + >> +#if defined(CONFIG_BPF_LSM) && defined(CONFIG_BPF_CGROUP) >> +void bpf_lsm_find_cgroup_shim(const struct bpf_prog *prog, bpf_func_t *bpf_func); >> +#else >> static inline void bpf_lsm_find_cgroup_shim(const struct bpf_prog *prog, >> bpf_func_t *bpf_func) >> { >> } >> - >> -#endif /* CONFIG_BPF_LSM */ >> +#endif >> >> #endif /* _LINUX_BPF_LSM_H */ >> diff --git a/kernel/bpf/bpf_lsm.c b/kernel/bpf/bpf_lsm.c >> index d469b7f3deef..29527828b38b 100644 >> --- a/kernel/bpf/bpf_lsm.c >> +++ b/kernel/bpf/bpf_lsm.c >> @@ -63,6 +63,7 @@ BTF_ID(func, bpf_lsm_socket_post_create) >> BTF_ID(func, bpf_lsm_socket_socketpair) >> BTF_SET_END(bpf_lsm_unlocked_sockopt_hooks) >> >> +#ifdef CONFIG_BPF_CGROUP >> void bpf_lsm_find_cgroup_shim(const struct bpf_prog *prog, >> bpf_func_t *bpf_func) >> { >> @@ -86,6 +87,7 @@ void bpf_lsm_find_cgroup_shim(const struct bpf_prog *prog, >> #endif >> *bpf_func = __cgroup_bpf_run_lsm_current; >> } >> +#endif /* CONFIG_BPF_CGROUP */ >> >> int bpf_lsm_verify_prog(struct bpf_verifier_log *vlog, >> const struct bpf_prog *prog) >> diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c >> index 6cd226584c33..127924711935 100644 >> --- a/kernel/bpf/trampoline.c >> +++ b/kernel/bpf/trampoline.c >> @@ -525,6 +525,7 @@ static const struct bpf_link_ops bpf_shim_tramp_link_lops = { >> .dealloc = bpf_shim_tramp_link_dealloc, >> }; >> >> +#ifdef CONFIG_CGROUP_BPF >> static struct bpf_shim_tramp_link *cgroup_shim_alloc(const struct bpf_prog *prog, >> bpf_func_t bpf_func, >> int cgroup_atype) >> @@ -668,6 +669,7 @@ void bpf_trampoline_unlink_cgroup_shim(struct bpf_prog *prog) >> >> bpf_trampoline_put(tr); /* bpf_trampoline_lookup above */ >> } >> +#endif /* CONFIG_CGROUP_BPF */ >> #endif >> >> struct bpf_trampoline *bpf_trampoline_get(u64 key, >> -- >> 2.25.1 >> > .