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 3DD2DD68BCF for ; Fri, 15 Nov 2024 19:11:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C49876B0099; Fri, 15 Nov 2024 14:11:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BF9216B009A; Fri, 15 Nov 2024 14:11:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4B3B6B009C; Fri, 15 Nov 2024 14:11:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 828C16B0099 for ; Fri, 15 Nov 2024 14:11:40 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0D594141B81 for ; Fri, 15 Nov 2024 19:11:40 +0000 (UTC) X-FDA: 82789271796.25.4D993D6 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf02.hostedemail.com (Postfix) with ESMTP id 311968001F for ; Fri, 15 Nov 2024 19:10:10 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=gWrTpi7F; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EkshnYP6; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=gWrTpi7F; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EkshnYP6; spf=pass (imf02.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731697752; 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:dkim-signature; bh=09Ssehw5TOmrUBMgX/2b8KWE1Gr/Av3Z6R+ja6H8aRM=; b=OW9KjmN/CUb8z6k0RtA6kbgGWHXrqQPjGMTt6bhCSjG/ya42z22X2bn0B+mZgbGWu0XUCT D8CsvMBsihliZC+ZZ75sPj6KoZNzpqL5mY993WlCXss8M1vJYajaWdqTTpvTdTTaJ1jeQ1 s63nICUDpEK210Qqrh9yW4+A3m92qJU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731697752; a=rsa-sha256; cv=none; b=Yb3J74mePkPUsbdSOstvgxFczAZjThwIet/x5ALBTsuGaWOV5liZiz/pm3/ELjvNYp8/wW wmXfzwttSw2xEyjvNWSNRgbZ6H4wO5q6xuTzc8JoD9mDYfRxrB2PJPtmhcrqBARguKPSBp BuB8Fur/P2Dznhhvg3dSqYBmb8dhG88= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=gWrTpi7F; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EkshnYP6; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=gWrTpi7F; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EkshnYP6; spf=pass (imf02.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 0E10321109; Fri, 15 Nov 2024 19:11:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1731697896; h=from:from:reply-to: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:autocrypt:autocrypt; bh=09Ssehw5TOmrUBMgX/2b8KWE1Gr/Av3Z6R+ja6H8aRM=; b=gWrTpi7Fcy0S/0ZYvi4evWOLskn8IDtTrciVcyjE6P6fPSV3dWMZ+JMLQhBLOsZWlm6k8e k9Qbt/kKm3bziNNisRAa2N0YntCY5Jly9Fpnc38UbJ464WhaVdBHfIPpIiJOIPgrlLEJ4t 1jKFIfGPAfVV8+BgZwBtmdU/va6ms6o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1731697896; h=from:from:reply-to: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:autocrypt:autocrypt; bh=09Ssehw5TOmrUBMgX/2b8KWE1Gr/Av3Z6R+ja6H8aRM=; b=EkshnYP6HFMSuUUP5rvqd/C2W0OpIgR1ErWPWYAgePjhhNqMj3p2uScRwSrgzcz2B82BQ7 5tNY3WIHaduvQUBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1731697896; h=from:from:reply-to: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:autocrypt:autocrypt; bh=09Ssehw5TOmrUBMgX/2b8KWE1Gr/Av3Z6R+ja6H8aRM=; b=gWrTpi7Fcy0S/0ZYvi4evWOLskn8IDtTrciVcyjE6P6fPSV3dWMZ+JMLQhBLOsZWlm6k8e k9Qbt/kKm3bziNNisRAa2N0YntCY5Jly9Fpnc38UbJ464WhaVdBHfIPpIiJOIPgrlLEJ4t 1jKFIfGPAfVV8+BgZwBtmdU/va6ms6o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1731697896; h=from:from:reply-to: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:autocrypt:autocrypt; bh=09Ssehw5TOmrUBMgX/2b8KWE1Gr/Av3Z6R+ja6H8aRM=; b=EkshnYP6HFMSuUUP5rvqd/C2W0OpIgR1ErWPWYAgePjhhNqMj3p2uScRwSrgzcz2B82BQ7 5tNY3WIHaduvQUBw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DCC7C134B8; Fri, 15 Nov 2024 19:11:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 0VpMNeecN2c8fQAAD6G6ig (envelope-from ); Fri, 15 Nov 2024 19:11:35 +0000 Message-ID: <1fd407b1-c061-4f24-b78a-ab90fa5d78d5@suse.cz> Date: Fri, 15 Nov 2024 20:11:35 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 6.1.y 0/4] fix error handling in mmap_region() and refactor (hotfixes) Content-Language: en-US To: Lorenzo Stoakes , stable@vger.kernel.org Cc: Andrew Morton , "Liam R . Howlett" , Jann Horn , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Linus Torvalds , Peter Xu , Catalin Marinas , Will Deacon , Mark Brown , "David S . Miller" , Andreas Larsson , "James E . J . Bottomley" , Helge Deller References: From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 EP+ylKVEKb0Q2A== In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 311968001F X-Stat-Signature: w7wftmm9eyotyunob8heecu5s7ac3gtd X-HE-Tag: 1731697810-978402 X-HE-Meta: U2FsdGVkX184Oef2a4ZeuWQvJXEMjFeRDpedW8zjrApiBpJ3X4MIHBi86w1qmSjUc4Ebj+Usz1O803gHKgeIIu3pO8mmV5Xc9xZPkEHoGROSp7yr+lxSqcwsPy6xxwTAVui8oOBnhV/9gr12BPxfrA0Y16VGMNuu2zcot7s4pkYVQMX6jq6nEZPzR8sf0MpJoDtpbl64hrTr9NgG65CnyrVOVSy0JUPsGIeWpdon7tqXsLlbFfx7/BPFqCVH/miawDouEFvFY/hbk0k5+T8e2BZcmrfpr+ihjetLJ3lwW53nDJJO6ypRmJkDNKWmbfxPlU8Okv/9aE+HKMbtcEb0Bcc2ui0C6G64uzvE+K9eWiBVh/pzr7+NnOx5nCGhAerB+MffG06zVMRN29jWIGreL/uiW/le26JPkaCdopiQ+5omP5LD+rH3JiHuII4DEZo1uhBq9E7wFMjzP0oiDD/89nMrAbCuvcYhls3Dh381Oo6dWnuCq2aQMTYmWp7zVYVpwgZDIX+q58dPGRkaFcjEIWoViFjtddXUD+nF9MENZpzApoSUFAJfo0q0G79z4uTKAtvSZdQWyS7kOqArQzdjepgWAdVgSsmjMQYcAFFiyU6jx5LQn8xo2SaXnfm7XQZSZP233sdqRf4P0MPqw5poLJpR2gwGTE1UGITdKVPO6O95Cwmvlax0r2hXnc3hJZDQL3EnAcZKh9dcEMap59lS0KSHM366YZHgHyYpLKNXXiZ5TsaOWn+78vhBfjnv2uHk+yjvHTJJfBy9rnV6X/T0eY7qDYg2WWlug3JtUsLlsPG+gcRxagUhU9pVhxmjrK5d4G0+mVI/jDioYyq98scQBpuN+JPoxUganXKp4NxmlmbL/ouQ9cf1iRsymKgSZGavPuZeRnDHPGa9JJKkIG7EL+NyPSG8GHPzk1DUZdbRIdVOX+5H/kroHpFjrRdh/5v8Cn8184V7HRGySYkj19L ta/dN/lB 2kI3Rrq2dBV7Velv6KPQ3/Bi0BMwcLkkcHJ3H//F8dlTyDOwt1SVyvNvWYmDQn/vvBvhd/o4A92GNY6ZcyGDsVXytu0/UHxb3sYLfsvaM7qTnQyoaoHCOg7JRd77EuiO7eWrpifq9kbEVw/mPtRUIhv/eNvmRuVALwRh9U2EM4jMaaF81NnKWb45rUbM+Qfh1y8YIv/nOpWvzQ/F2NFuN6q+HUldELYzTr+2KLaWqDQH1/6o6JKIUafWNKxSbNPYyzVs0v8SZP9pu4VVcr2ZPOTVBzcuDn9hOTFbJd+//ddA3jUV+gH4OxExv9VJ6VFLvmupLkjvzAbSAlsOdSx4kaRyW2w== 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: On 11/15/24 13:40, Lorenzo Stoakes wrote: > Critical fixes for mmap_region(), backported to 6.1.y. > > Some notes on differences from upstream: > > * We do NOT take commit 0fb4a7ad270b ("mm: refactor > map_deny_write_exec()"), as this refactors code only introduced in 6.2. > > * We make reference in "mm: refactor arch_calc_vm_flag_bits() and arm64 MTE > handling" to parisc, but the referenced functionality does not exist in > this kernel. > > * In this kernel is_shared_maywrite() does not exist and the code uses > VM_SHARED to determine whether mapping_map_writable() / > mapping_unmap_writable() should be invoked. This backport therefore > follows suit. > > * The vma_dummy_vm_ops static global doesn't exist in this kernel, so we > use a local static variable in mmap_file() and vma_close(). Seems adding 9a9d0b829901 ("mm: move dummy_vm_ops out of a header") as prerequisity would have been less work, but I didn't find a bug in your adjustments so seems fine to me. > > * Each version of these series is confronted by a slightly different > mmap_region(), so we must adapt the change for each stable version. The > approach remains the same throughout, however, and we correctly avoid > closing the VMA part way through any __mmap_region() operation. > > * This version of the kernel uses mas_preallocate() rather than the > vma_iter_prealloc() wrapper and mas_destroy() rather than the > vma_iter_free() wrapper, however the logic of rearranging the positioning > of these remains the same, as well as avoiding the iterator leak we > previously had on some error paths. > > Lorenzo Stoakes (4): > mm: avoid unsafe VMA hook invocation when error arises on mmap hook > mm: unconditionally close VMAs on error > mm: refactor arch_calc_vm_flag_bits() and arm64 MTE handling > mm: resolve faulty mmap_region() error path behaviour Aside from the suspected memory leak I reported for 4/4, Reviewed-by: Vlastimil Babka > arch/arm64/include/asm/mman.h | 10 ++- > include/linux/mman.h | 7 +- > mm/internal.h | 19 ++++++ > mm/mmap.c | 119 ++++++++++++++++++---------------- > mm/nommu.c | 9 ++- > mm/shmem.c | 3 - > mm/util.c | 33 ++++++++++ > 7 files changed, 129 insertions(+), 71 deletions(-) > > -- > 2.47.0