Received: by 2002:a05:6512:3d0e:0:0:0:0 with SMTP id d14csp12593lfv; Tue, 12 Apr 2022 15:15:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZpiS/07XV6axhRKJq+HpAIGJk+P57cz5OcSviEfr/YMAMSjLObo28DL/0Yf0KEGO/e18C X-Received: by 2002:a17:90b:224a:b0:1cb:8bad:ec3e with SMTP id hk10-20020a17090b224a00b001cb8badec3emr7400316pjb.30.1649801703960; Tue, 12 Apr 2022 15:15:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649801703; cv=none; d=google.com; s=arc-20160816; b=HhEEv3+oIQ/bN6gNeqJmzXxoEXmDMkcSxGWHYV8Lj+oUopjyOdSYUYxjtPj+OTZE5d HOWcM/ttK1+tCQNrXqaqOylb3Zs3j/d1Jw19du0VeniYwf7XGOSoqrjXjBS16J9u92lN pWyZCWAXN49VarpuCeOpqV1x3BS3W4yXVhnA2LrCXa7slMWkRFs+c8m78M+7N4XzyKXH ZY27D0bHEPweGWAeWJA8hF5LEN8HNCvdYo7N8T3EM57llaw80YcLqg7PGCwOxrmhuwqy j1VKgClzLgYPqKlW7Ur5+qHm6XntrAUM62mBCd4eGS3NS749oZXdNQk/jcn+7W2znuDl nfvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/+oYUwGm3cP42Ihimk19QK79TbnX6IgOSxu94Lof+xY=; b=AfjwmYF0TOEBVSv06u5Zqf2lB045iilKpjmg+RG4RCvd+OsYkfzMWX03pqTfNwfufV /snY6NDNPVlkyyODnhEn9MKRUPs+KGZL141+e65uaNp1RZLu1I+8GPMTb/s+54NVyVn9 iE4N67ncUxdH5XMWcLjnARmWSAvpnJCfKh+MxKL9qrMCayv/FHyIhX4aNArtKDiFWCnb 6GAjvsYFGZq6mFEdc0B7Xb4XtNIL0ucLEvFnkjLG5mrBp6E54wguCNcQpG2hQEzwDA7D uf3cUU1oFARZcGVTk9d/JP0UDwBETnnwU3/kuA5DZIfacqM6mTWsKAQbESlNOxJ9Vq07 dcog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=RhUfw83N; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id pj10-20020a17090b4f4a00b001ca9792869esi17001071pjb.145.2022.04.12.15.15.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 15:15:03 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=RhUfw83N; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 753EE3FD81; Tue, 12 Apr 2022 13:56:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359241AbiDLJKg (ORCPT + 99 others); Tue, 12 Apr 2022 05:10:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358947AbiDLHmW (ORCPT ); Tue, 12 Apr 2022 03:42:22 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F17554BD0; Tue, 12 Apr 2022 00:19:41 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 471AEB81B67; Tue, 12 Apr 2022 07:19:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98439C385AB; Tue, 12 Apr 2022 07:19:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649747979; bh=NwKPkCap+dw1eHh5siCsbaMYWMopuS5/YjbGJCk9bjU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RhUfw83NFvDBuor1kGzeItLgEXEWaOwYyu7aDS7LNxzhDA4VLnvSviJcM29UcB0zc enNNGNAN1z4ESJG17xG23dhuOxNSgPEUf75u2qoYeMqsEIuu6jkf+EtJreC5cGp7ZO 7j3rvPdDa2bq730mNt47Vzpk6MV9C8xMbYmUv5eI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, syzbot+6bde52d89cfdf9f61425@syzkaller.appspotmail.com, Paolo Bonzini , Sean Christopherson , Andrew Morton , Linus Torvalds Subject: [PATCH 5.17 274/343] mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0) Date: Tue, 12 Apr 2022 08:31:32 +0200 Message-Id: <20220412062959.231328521@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062951.095765152@linuxfoundation.org> References: <20220412062951.095765152@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 From: Paolo Bonzini commit 01e67e04c28170c47700c2c226d732bbfedb1ad0 upstream. If an mremap() syscall with old_size=0 ends up in move_page_tables(), it will call invalidate_range_start()/invalidate_range_end() unnecessarily, i.e. with an empty range. This causes a WARN in KVM's mmu_notifier. In the past, empty ranges have been diagnosed to be off-by-one bugs, hence the WARNing. Given the low (so far) number of unique reports, the benefits of detecting more buggy callers seem to outweigh the cost of having to fix cases such as this one, where userspace is doing something silly. In this particular case, an early return from move_page_tables() is enough to fix the issue. Link: https://lkml.kernel.org/r/20220329173155.172439-1-pbonzini@redhat.com Reported-by: syzbot+6bde52d89cfdf9f61425@syzkaller.appspotmail.com Signed-off-by: Paolo Bonzini Cc: Sean Christopherson Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- mm/mremap.c | 3 +++ 1 file changed, 3 insertions(+) --- a/mm/mremap.c +++ b/mm/mremap.c @@ -486,6 +486,9 @@ unsigned long move_page_tables(struct vm pmd_t *old_pmd, *new_pmd; pud_t *old_pud, *new_pud; + if (!len) + return 0; + old_end = old_addr + len; flush_cache_range(vma, old_addr, old_end);