Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2331469ybt; Fri, 3 Jul 2020 06:41:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyx3tuwSmjKQ73Q/ik9mQXmpi0/oKfwilj5ZGHGRA8K6AcTzJ3d2nWpX9QpEyY8txJmpxxq X-Received: by 2002:a05:6402:b79:: with SMTP id cb25mr20643154edb.154.1593783675881; Fri, 03 Jul 2020 06:41:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593783675; cv=none; d=google.com; s=arc-20160816; b=BFxbt2bRsU8bbtFL2dOx8k3jIiozflOA/Ho071etSp6OoDApZwTsafbK5O4n7jGPl2 SI8zss9pwIkGmYnCCLjxkc4J2Ijvfd1TjKfn5SIoAXDZeGSO+mAmY7qYpOHg4GQpqasD TGXMbEt+BabEo6UkendKFa5hqkECvc7jhBZOxpFGmQUC727A1I9rJl0LCR5yvcEogtzu EQ0MxpLOuheE/SidykdE0e05mfFP7m7ddMf6F4iz2L5nsVuxkO4OsVGbk2CHHRikgE8C y3bMsHU5YmcsoqQLWKU+ZXnc2P0B7WzJ6RSJ+sYJV94DhbbSlA2qFn8r4OvWcBunbM5Y WdTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=VkR62g3UrGpBqyKGtfB0CF1RNYbpRziS7AD0u/OIIZk=; b=sqhRRSUOAlhyQjmqJikfylg3JjKuxSGICuQBcblvTJYPl46KtP2mNJBzSQh3Nefoev 1ZR+ZAu6D2DJx7bCoi+0kKRq3/R1rNJxcohmmB6b9J5sb8WuoGEKBVbwbTt6gnb1Oj7G Vx/vhRYUixGQrMvrMWBBXrgwsvjl91zS53gL36Pj5y1+bmhkWCLnMsE1orXsub7QpF80 RhLpEB1TtJQ5h233m/dwpFwhu1QwgcIGzB86/dfZAClenIeFm6nyr22RiJ8kDtkILqpI mQpPpcO/RmkFVFRKG7rWLVScnaqaF9XVSSzncm7BGgjqN+RceDWxrOZUdizA01rrzlaa m1kQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="BG3c/Bmo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ly20si7830431ejb.607.2020.07.03.06.40.52; Fri, 03 Jul 2020 06:41:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="BG3c/Bmo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726616AbgGCNjj (ORCPT + 99 others); Fri, 3 Jul 2020 09:39:39 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:54655 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726506AbgGCNji (ORCPT ); Fri, 3 Jul 2020 09:39:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593783577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VkR62g3UrGpBqyKGtfB0CF1RNYbpRziS7AD0u/OIIZk=; b=BG3c/BmobVLIQJuhl9Q7P1YpyNMOZNAj5hWIgogOKsNjvVAnSEGFyrlQ4oKeEGIgmfELQY j9I0HgKFb72FFSZ1XO5hHrvwmSPR5hkE/bTUgWoOu8wDuqNvrSntrUoIaJtQXuQLGM56Em 7ON45dx5S0o3j0PcbV4+YuN/Lng/0/Y= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-448-Vg_5UOTRNDWIIxSERty0oQ-1; Fri, 03 Jul 2020 09:39:33 -0400 X-MC-Unique: Vg_5UOTRNDWIIxSERty0oQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2E97BBFC1; Fri, 3 Jul 2020 13:39:32 +0000 (UTC) Received: from t480s.redhat.com (ovpn-114-0.ams2.redhat.com [10.36.114.0]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8D0AE71690; Fri, 3 Jul 2020 13:39:30 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-s390@vger.kernel.org, linux-mm@kvack.org, David Hildenbrand , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , Gerald Schaefer Subject: [PATCH v1 5/9] s390/vmemmap: take the vmem_mutex when populating/freeing Date: Fri, 3 Jul 2020 15:39:13 +0200 Message-Id: <20200703133917.39045-6-david@redhat.com> In-Reply-To: <20200703133917.39045-1-david@redhat.com> References: <20200703133917.39045-1-david@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Let's synchronize all accesses to the 1:1 and vmemmap mappings. This will be especially relevant when wanting to cleanup empty page tables that could be shared by both. Avoid races when removing tables that might be just about to get reused. Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Christian Borntraeger Cc: Gerald Schaefer Signed-off-by: David Hildenbrand --- arch/s390/mm/vmem.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c index bcddabd509da8..aa968f67d7f9f 100644 --- a/arch/s390/mm/vmem.c +++ b/arch/s390/mm/vmem.c @@ -293,6 +293,7 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, pte_t *pt_dir; int ret = -ENOMEM; + mutex_lock(&vmem_mutex); pgt_prot = pgprot_val(PAGE_KERNEL); sgt_prot = pgprot_val(SEGMENT_KERNEL); if (!MACHINE_HAS_NX) { @@ -364,6 +365,7 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, } ret = 0; out: + mutex_unlock(&vmem_mutex); if (ret) vmemmap_free(start, end, altmap); return ret; @@ -372,7 +374,9 @@ int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node, void vmemmap_free(unsigned long start, unsigned long end, struct vmem_altmap *altmap) { + mutex_lock(&vmem_mutex); remove_pagetable(start, end, false); + mutex_unlock(&vmem_mutex); } void vmem_remove_mapping(unsigned long start, unsigned long size) -- 2.26.2