From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 35D33C4706F for ; Thu, 28 Dec 2023 13:13:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 69ABF6B00D1; Thu, 28 Dec 2023 08:13:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 64B436B00D2; Thu, 28 Dec 2023 08:13:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4EAE76B00D3; Thu, 28 Dec 2023 08:13:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 38F016B00D1 for ; Thu, 28 Dec 2023 08:13:06 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 18006C066B for ; Thu, 28 Dec 2023 13:13:06 +0000 (UTC) X-FDA: 81616267572.12.F85FBC8 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf27.hostedemail.com (Postfix) with ESMTP id 2095440023 for ; Thu, 28 Dec 2023 13:13:03 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of artem.kuzin@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=artem.kuzin@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703769184; a=rsa-sha256; cv=none; b=ExrPaudf4w4Nje0VqwS5lzqAWKt99yC2RCih/lSARcltcThqoQSUnYGuuncsYYv+uAnBLB /J4lGIcavxtnghTxRC9I/fkJNkvtPsNzCU/D0t8aGzwq1sNxxVS+qef38+vU9KRbijzF66 Rf0LpBN3j6MqbYCsHSlMzYUhC4wr55g= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of artem.kuzin@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=artem.kuzin@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703769184; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DDjL1mlZ/k793k3h74I43GnuaWGVgFcAxNFetAoHh1M=; b=OXbZQyat/9B5qzCqU9iABhEBcm2xRo1iA2C32HjAhA96YBu+VhKLV9YFvkzBw3cabz6ux+ dNVMCOWNrCg1wX7rR6wpe+ZGGIqFSP1l+ae++UAp1vjV7kvN25fq5/xh162CVdCOctcRtD 1A7DosdnC8K46xv8MEMBJbET+cMQyc0= Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T185z3ybJz6J9xD; Thu, 28 Dec 2023 21:11:19 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (unknown [7.191.163.213]) by mail.maildlp.com (Postfix) with ESMTPS id 4259E1400D2; Thu, 28 Dec 2023 21:13:02 +0800 (CST) Received: from mscphis00060.huawei.com (10.123.65.147) by lhrpeml500001.china.huawei.com (7.191.163.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 28 Dec 2023 13:13:00 +0000 From: To: , , , , , , , , , , , , , CC: , , , , , , , , , , Subject: [PATCH RFC 12/12] mm: set memory permissions for BPF handlers replicas Date: Thu, 28 Dec 2023 21:10:56 +0800 Message-ID: <20231228131056.602411-13-artem.kuzin@huawei.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231228131056.602411-1-artem.kuzin@huawei.com> References: <20231228131056.602411-1-artem.kuzin@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.123.65.147] X-ClientProxiedBy: mscpeml500004.china.huawei.com (7.188.26.250) To lhrpeml500001.china.huawei.com (7.191.163.213) X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2095440023 X-Stat-Signature: au8hgt4ebuhtq3c7cfrqy1zfaefney53 X-HE-Tag: 1703769183-560741 X-HE-Meta: U2FsdGVkX18DY/Pt5ESTT+LhncWqmdvaHyvGGjtoUQ0NHCl80pY0p8NoIyIk4+iiRcCkfyMvgrpqXBaRG155FE9xu7nVAfGu9qfkeMTGkG6IzgS0WAhkj3rjmBHEwlgdvrD3+5a94PzBjkoHk4MlSZ4yRhBEuL+ebrl/nFFf8lA+zINXHU9HrKR3iNaWZQ6nQhv2XMc1pYP7X1HTLDsJH/8sORUN2t/ZOLuVva81GL8u8zA3apJERDeEm7FgKvNMB9U+HsZi1QqjwNrJ9a8KAUT5M+Kg/g3ESsmb5z0scRIqtr2ewn1zat9ExoJXDRiDxsmNR/SnQcXUnJ87kW7c+CmMg8IkC9ZROIEGuIsMrdxorm1dMEpafGhK9We784mVTXNPOc39bguhowh52HUd02vGX/5qnV7E9jww32kqBLH5+hqnR1KfpejzBSI3Nx7LlSo6EUxCoYv9NfunCfaLcSI7lGGWy4QpLMEPvAQuDQ9v6BkNbHlRQeLpcHT81SYGWDzgjCH5vPEznsFcbXmV1Vndn3cOMcuNpa0P0zOagH2CiT8VAQJxJeC32HGOAODvq1jLgj/saiYK0nOFN4w7Q+FFta//V1l3fNr3iKw919XiqMGDuZ5Rrn3Phv1EXci2fp6VITlY9mc/bGsxXlJymu2HnIfgZmyuI/xAQq8cg/7XCkolLkzj/zjkNRB+Ek4ggKLiC5mSmn25zPkVRHMAJEpNrWYmZTdonfCsjRxsBfMvO6ya72trCi8iPjzkvozp5NZJJi7VWJfyn4l4sG0KChKArCk2WJ2vqSlc7ArxxF1VrLvZob+HzCPqF5PV1a7uEPM0Sk6N59ywvGq4HofvBXxLYPcojXiSTJsCAgDyG6jN4zwxWOCbyRoditli9wrPerBQ1NoWCJvExUA/v3vfhNSRJMwzEwZmjF7uklDPepdfdXWG/HOrV2vlW9t1AsI05HzRH6AKpnw/kE5EUzN Ta0afPRw exUVteSjpTPocUrVFgsNesHQHI3ZxWC1zb6Q5Pe6wwkT9M0rqJ97PVIwkFPdpDUw9pZNUnvR2vonq1RZKYH25uI8G5RLxVn4MUyd3fk++vszxnwhPvT8zBciFEvcpRT8TyOudB36Fo1cmvqtge8Z04pQ9LsencIDSGHw89Del1kzoypKa2AHR0qJI+KvgR1h/EK3PSyvgNEXIKs2QOWLneywUAo0OWDGvDO0/NkxvPOg+6iXyGqry9fykvsd4FN8GRcImMKAbvkgU2DrZvWfptHeZrQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Artem Kuzin Co-developed-by: Nikita Panov Signed-off-by: Nikita Panov Co-developed-by: Alexander Grubnikov Signed-off-by: Alexander Grubnikov Signed-off-by: Artem Kuzin --- kernel/bpf/bpf_struct_ops.c | 8 ++++---- kernel/bpf/core.c | 4 ++-- kernel/bpf/trampoline.c | 6 +++--- net/bpf/bpf_dummy_struct_ops.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/kernel/bpf/bpf_struct_ops.c b/kernel/bpf/bpf_struct_ops.c index 116a0ce378ec..9fb1dc5fbd5c 100644 --- a/kernel/bpf/bpf_struct_ops.c +++ b/kernel/bpf/bpf_struct_ops.c @@ -512,7 +512,7 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key, err = st_ops->validate(kdata); if (err) goto reset_unlock; - set_memory_rox((long)st_map->image, 1); + numa_set_memory_rox((long)st_map->image, 1); /* Let bpf_link handle registration & unregistration. * * Pair with smp_load_acquire() during lookup_elem(). @@ -521,7 +521,7 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key, goto unlock; } - set_memory_rox((long)st_map->image, 1); + numa_set_memory_rox((long)st_map->image, 1); err = st_ops->reg(kdata); if (likely(!err)) { /* This refcnt increment on the map here after @@ -544,8 +544,8 @@ static long bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key, * there was a race in registering the struct_ops (under the same name) to * a sub-system through different struct_ops's maps. */ - set_memory_nx((long)st_map->image, 1); - set_memory_rw((long)st_map->image, 1); + numa_set_memory_nx((long)st_map->image, 1); + numa_set_memory_rw((long)st_map->image, 1); reset_unlock: bpf_struct_ops_map_put_progs(st_map); diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index e3e45b651cd4..73ebda57c0f5 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -870,7 +870,7 @@ static struct bpf_prog_pack *alloc_new_pack(bpf_jit_fill_hole_t bpf_fill_ill_ins list_add_tail(&pack->list, &pack_list); set_vm_flush_reset_perms(pack->ptr); - set_memory_rox((unsigned long)pack->ptr, BPF_PROG_PACK_SIZE / PAGE_SIZE); + numa_set_memory_rox((unsigned long)pack->ptr, BPF_PROG_PACK_SIZE / PAGE_SIZE); return pack; } @@ -888,7 +888,7 @@ void *bpf_prog_pack_alloc(u32 size, bpf_jit_fill_hole_t bpf_fill_ill_insns) if (ptr) { bpf_fill_ill_insns(ptr, size); set_vm_flush_reset_perms(ptr); - set_memory_rox((unsigned long)ptr, size / PAGE_SIZE); + numa_set_memory_rox((unsigned long)ptr, size / PAGE_SIZE); } goto out; } diff --git a/kernel/bpf/trampoline.c b/kernel/bpf/trampoline.c index 53ff50cac61e..964ae6128ef7 100644 --- a/kernel/bpf/trampoline.c +++ b/kernel/bpf/trampoline.c @@ -444,7 +444,7 @@ static int bpf_trampoline_update(struct bpf_trampoline *tr, bool lock_direct_mut if (err < 0) goto out_free; - set_memory_rox((long)im->image, 1); + numa_set_memory_rox((long)im->image, 1); WARN_ON(tr->cur_image && total == 0); if (tr->cur_image) @@ -465,8 +465,8 @@ static int bpf_trampoline_update(struct bpf_trampoline *tr, bool lock_direct_mut tr->fops->trampoline = 0; /* reset im->image memory attr for arch_prepare_bpf_trampoline */ - set_memory_nx((long)im->image, 1); - set_memory_rw((long)im->image, 1); + numa_set_memory_nx((long)im->image, 1); + numa_set_memory_rw((long)im->image, 1); goto again; } #endif diff --git a/net/bpf/bpf_dummy_struct_ops.c b/net/bpf/bpf_dummy_struct_ops.c index 5918d1b32e19..45a5dbd379ac 100644 --- a/net/bpf/bpf_dummy_struct_ops.c +++ b/net/bpf/bpf_dummy_struct_ops.c @@ -124,7 +124,7 @@ int bpf_struct_ops_test_run(struct bpf_prog *prog, const union bpf_attr *kattr, if (err < 0) goto out; - set_memory_rox((long)image, 1); + numa_set_memory_rox((long)image, 1); prog_ret = dummy_ops_call_op(image, args); err = dummy_ops_copy_args(args); -- 2.34.1