Message ID | 20201215161949.15461-1-aryabinin@virtuozzo.com |
---|---|
State | New |
Series | "vdso: fix VM_BUG_ON_PAGE(PageSlab(page)) on unmap" |
Headers | show
Delivered-To: criupatchwork@gmail.com Received: from imap.gmail.com [108.177.119.109] by patchwork.criu.org with IMAP (fetchmail-6.4.8) for <root@localhost> (single-drop); Tue, 15 Dec 2020 17:20:30 +0100 (CET) Received: by 2002:aa6:c11a:0:b029:a4:55c9:6120 with SMTP id c26csp3917379lkp; Tue, 15 Dec 2020 08:20:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJxYYGJ1Mbh+VHR3pc1RcOHPoF0YxdwQomnPsNJqb/SReq4jmRFK162vLm/bGqdPclt4QYUI X-Received: by 2002:ac2:5145:: with SMTP id q5mr10867557lfd.626.1608049224030; Tue, 15 Dec 2020 08:20:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608049224; cv=none; d=google.com; s=arc-20160816; b=a9kBJMyx8cYaMEwm2rYqqVTrGpxBsJboAc3/Jn6dxtEnFMTCRCyz4fzZg/Ogsze8r9 MF2DKhILckALp6jFcfMOoL0pjD+1Vk6AesJXxsu7t7G7trVd0Ew100bzKxLJEk3vyJeE qbRUAoXBncgU2fk8iwVH9lBfk10g3Hg5b0nc2VT3Lh45Jpom4r8bgU+wGoroYFhrX27i chQzVYr+NmVy33+S3XqXI4dlQeicDPohI2j/N9e1r/Z4sl6mP8LJJ7VGrNviPQr6MR7c seJfsX+srKUEtvPZAPi8qmyuxWv8PROROiscNI+V+Yh2jpPu0q6mkbIHfu2twzOtisAI XuVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:message-id:date:to:from; bh=A3zlbWvFwdvw+AN4S/Yj+FNXu48e5IMkrU9am3Crb2g=; b=hAcbx3S4M8gL9qb1L2I4QIWcYHsHCAM3KGmoW9hlu9rfPwNgmbonzg9rr0NREnfZFJ qyHcQdkUzuUEmbdh3dqlSTI1FCxuVcntAMatek1Ji9wUsWqEfxSlxUdQ1g1B/v6tTs// Kg0vYRur7qyAA2DiZ9+mzveUMBrefwOp34tXxO/CyyuKiBQHBOP8JO2ICzuFIsXSEKwv f9z2bnlpoaXi3MkBAKNtigdBVNAkjy+E5a8XleQbtxS3qc36J2X/6QJH9LDXY4B7znco Pq8wDkJCcVOolfyN8NsiJco6R2ptOqd+L6JFv44hmytWRiCi96PtT0/HKN93/9MLs/2F x7yw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 as permitted sender) smtp.mailfrom=devel-bounces@openvz.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Return-Path: <devel-bounces@openvz.org> Received: from mail.openvz.org (mail.openvz.org. [185.231.241.50]) by mx.google.com with ESMTPS id 15si774563lfk.471.2020.12.15.08.20.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 15 Dec 2020 08:20:24 -0800 (PST) Received-SPF: pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 as permitted sender) client-ip=185.231.241.50; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devel-bounces@openvz.org designates 185.231.241.50 as permitted sender) smtp.mailfrom=devel-bounces@openvz.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from localhost.localdomain (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 0BFGJg9R003142; Tue, 15 Dec 2020 19:19:45 +0300 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2109.outbound.protection.outlook.com [104.47.17.109]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 0BFGJeNU003139 for <devel@openvz.org>; Tue, 15 Dec 2020 19:19:41 +0300 Received: from DB3PR08CA0016.eurprd08.prod.outlook.com (2603:10a6:8::29) by AM5PR0801MB1828.eurprd08.prod.outlook.com (2603:10a6:203:3b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.17; Tue, 15 Dec 2020 16:19:42 +0000 Received: from DB5EUR01FT012.eop-EUR01.prod.protection.outlook.com (2603:10a6:8:0:cafe::47) by DB3PR08CA0016.outlook.office365.com (2603:10a6:8::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12 via Frontend Transport; Tue, 15 Dec 2020 16:19:41 +0000 Authentication-Results: spf=pass (sender IP is 185.231.240.75) smtp.mailfrom=virtuozzo.com; openvz.org; dkim=none (message not signed) header.d=none; openvz.org; dmarc=pass action=none header.from=virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of virtuozzo.com designates 185.231.240.75 as permitted sender) receiver=protection.outlook.com; client-ip=185.231.240.75; helo=relay3.sw.ru; Received: from relay3.sw.ru (185.231.240.75) by DB5EUR01FT012.mail.protection.outlook.com (10.152.4.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12 via Frontend Transport; Tue, 15 Dec 2020 16:19:41 +0000 Received: from [192.168.15.26] (helo=localhost.sw.ru) by relay3.sw.ru with esmtp (Exim 4.94) (envelope-from <aryabinin@virtuozzo.com>) id 1kpD2l-00D9Mi-80; Tue, 15 Dec 2020 19:19:19 +0300 From: Andrey Ryabinin <aryabinin@virtuozzo.com> To: devel@openvz.org Date: Tue, 15 Dec 2020 19:19:49 +0300 Message-Id: <20201215161949.15461-1-aryabinin@virtuozzo.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 835d92b2-a001-4674-eced-08d8a1153a19 X-MS-TrafficTypeDiagnostic: AM5PR0801MB1828: X-Forefront-Antispam-Report: CIP:185.231.240.75; CTRY:RU; LANG:en; SCL:-1; SRV:; IPV:CAL; SFV:SKN; H:relay3.sw.ru; PTR:relay.sw.ru; CAT:NONE; SFS:; DIR:INB; X-MS-Oob-TLC-OOBClassifiers: OLM:1923; X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MAwU81QEmcK9fdmJGVkEkGTNRCdNK69Pi3Hit/F/Div1wgOC/UhrtJx8YLuS?= =?us-ascii?Q?02q+kxFh6xDQxtlC0iD9xK3yUx5Jgx8w9fVCcZzV5Yt8bzt8K8hmLareystX?= =?us-ascii?Q?SNQLybBAAArzqPmcM8HsZHNDfddgAwOHzlE7rmQxLX3Q13ARlU3NzajGuFNT?= =?us-ascii?Q?EcPLWUyTJ3ID5WeFZVob7gWhZU9/NgaGNZePGXvkO/03W4wQk3mP/npEyGn3?= =?us-ascii?Q?q2fWqBQ8jLsFLgOvWFDFcpJfA/I0QeO5ZjmvLBZzbpnHfaiSjjRiHwaDUWph?= =?us-ascii?Q?VpmyzoxfVIICsmjovfgWhIUmtMszN5UiK8WNHBA7XTlhqMZmHeOo5XiJosdK?= =?us-ascii?Q?RJDkSoz4gI8+SOT87+tM7kZc8A2Fp4+DGV3zmLfHBKw05wflE0G/lubUpmpP?= =?us-ascii?Q?w7gx7QRFV5VogqRL5GOwOmMZ/AVbS6VgnFEZRfcv28AlGQfGb5/GP+016mJ8?= =?us-ascii?Q?6LTRW0zK6WMdQOfXlPcR+3paJzMjF5fikzhXgT7jKJllUL5G5Opsz0X3H2cs?= =?us-ascii?Q?P9ndongrgQn03oWrU88vR6iLTiZcP4aGiPnlG2M6244fnPnwnTYTFnw+Qx/0?= =?us-ascii?Q?OOoM0K7si+3E5wsZSPYhEGrcbaP3AdKaCZnr80AYy4BH1ZMvZ/tiKwYeCQAO?= =?us-ascii?Q?7i71QYUxsbZi2/KLSO08cAITLcMCpj6XgMi8QD59yDAgKPP82MndHeWCWh7B?= =?us-ascii?Q?AUA18I/0ly9ZLEP2gTM7ydYkBfSVGPOqQYXW3EZhA3WW7aZ1M08gclQTkqYv?= =?us-ascii?Q?5PUEGRZXdZAUL6T4G3NWdZD/dooeUDxVosF1Ni/bABHHsqDOp6JrZLQwpdg/?= =?us-ascii?Q?1FR3+DH+QFoWcYuGF7G+V6Ga9ncC0iDgpZJIpN/9mrgIw8ZTGIn3efhppXe0?= =?us-ascii?Q?zw0OI9Wgn1CS6dhGn9N6h2bsQYoOIuIszDSi1il2fdNGlABwUJul/1eXffdT?= =?us-ascii?Q?WZ475XC3+rY2A7Bf/nvM2FWGgbs1yO4OQ2Na3Bac77hsnqZh+tn/Re42raJQ?= =?us-ascii?Q?jc3JgG0EyEDSEp/ALeq94XHzhYZNuVcGQCB2OXiEuk0IeR3igYLJPuO4C6cs?= =?us-ascii?Q?hif3dEGPCjHSMYXCoK0t5sLELXrn+1aAlo7c3C//zPqh5IKOUnjaL89LYyFV?= =?us-ascii?Q?kYAvvRLmbwVI7tLBPOdUr8dY+YDdaSiHoxdnyX+nl7YTMjfpxUN+gbIJCldk?= =?us-ascii?Q?sm4guvo7FvpxhFcyvEfv8QaRgarAGXz18O8m4W1wMCyP3wSBUajKPteFAvJs?= =?us-ascii?Q?6zEEWcZE2rrCKysZpNmcSTxJuCHhSZiL8/s/SnKL3fjvSbiX7UTe/h87LqZb?= =?us-ascii?Q?CPV+1Xrq7qyNvQJ616vlBpRdQxgfD6QhN0vY1OPOwzoAVqW0cB58RjXVe5RX?= =?us-ascii?Q?ymJtegS9w8rNP9/Qxv6fBsa3eaZ+4ARFtDQFdGXOs6sEncD1S12Gg0lBRfa2?= =?us-ascii?Q?eH+zWEDl9xKxrE4cevvmBBzmnhxcWFRhug+3b4l6MtpaXjj8eraOJoSMaTLG?= =?us-ascii?Q?cY6wdpi52nzLbmp1QNEHEv//G19ZbdFMtsFpakDNP48WBMOMg5b1Qipr/A?= =?us-ascii?Q?=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2020 16:19:41.3998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 835d92b2-a001-4674-eced-08d8a1153a19 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0bc7f26d-0264-416e-a6fc-8352af79c58f; Ip=[185.231.240.75]; Helo=[relay3.sw.ru] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR01FT012.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1828 X-MS-Exchange-CrossPremises-OriginalClientIPAddress: 185.231.240.75 X-MS-Exchange-CrossPremises-TransportTrafficType: Email X-MS-Exchange-CrossPremises-AuthSource: DB5EUR01FT012.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossPremises-AuthAs: Anonymous X-MS-Exchange-CrossPremises-SCL: -1 X-MS-Exchange-CrossPremises-Processed-By-Journaling: Journal Agent X-OrganizationHeadersPreserved: AM5PR0801MB1828.eurprd08.prod.outlook.com Subject: [Devel] [PATCH vz8] vdso: fix VM_BUG_ON_PAGE(PageSlab(page)) on unmap X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development <devel.openvz.org> List-Unsubscribe: <https://lists.openvz.org/mailman/options/devel>, <mailto:devel-request@openvz.org?subject=unsubscribe> List-Archive: <http://lists.openvz.org/pipermail/devel/> List-Post: <mailto:devel@openvz.org> List-Help: <mailto:devel-request@openvz.org?subject=help> List-Subscribe: <https://lists.openvz.org/mailman/listinfo/devel>, <mailto:devel-request@openvz.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org |
diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c index b114e2918bb7..0c6630c6616a 100644 --- a/kernel/ve/ve.c +++ b/kernel/ve/ve.c @@ -568,7 +568,7 @@ static int copy_vdso(struct vdso_image **vdso_dst, const struct vdso_image *vdso if (!vdso) return -ENOMEM; - vdso_data = kmalloc(vdso_src->size, GFP_KERNEL); + vdso_data = alloc_pages_exact(vdso_src->size, GFP_KERNEL); if (!vdso_data) { kfree(vdso); return -ENOMEM; @@ -585,11 +585,11 @@ static int copy_vdso(struct vdso_image **vdso_dst, const struct vdso_image *vdso static void ve_free_vdso(struct ve_struct *ve) { if (ve->vdso_64 && ve->vdso_64 != &vdso_image_64) { - kfree(ve->vdso_64->data); + free_pages_exact(ve->vdso_64->data, ve->vdso_64->size); kfree(ve->vdso_64); } if (ve->vdso_32 && ve->vdso_32 != &vdso_image_32) { - kfree(ve->vdso_32->data); + free_pages_exact(ve->vdso_32->data, ve->vdso_32->size); kfree(ve->vdso_32); } }
vdso_data is mapped to userspace which means that we can't use kmalloc() to allocate it. Kmalloc() doesn't even guarantee that we will get page aligned memory. kernel BUG at include/linux/mm.h:693! RIP: 0010:unmap_page_range+0x15f2/0x2630 Call Trace: unmap_vmas+0x11e/0x1d0 exit_mmap+0x215/0x420 mmput+0x10a/0x400 do_exit+0x98f/0x2d00 do_group_exit+0xec/0x2b0 __x64_sys_exit_group+0x3a/0x50 do_syscall_64+0xa5/0x4d0 entry_SYSCALL_64_after_hwframe+0x6a/0xdf Use alloc_pages_exact() to allocate it. We can't use alloc_pages(), or __get_free_pages() here since vdso_fault() need to perform get_page() on individual sub-pages and alloc_pages() doesn't initalize sub-pages. https://jira.sw.ru/browse/PSBM-123551 Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> --- kernel/ve/ve.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)