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 53D18C7EE23 for ; Tue, 30 May 2023 08:07:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E36C3900003; Tue, 30 May 2023 04:07:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBEBB900002; Tue, 30 May 2023 04:07:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3885900007; Tue, 30 May 2023 04:07:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B3B49900002 for ; Tue, 30 May 2023 04:07:01 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 848EB4014A for ; Tue, 30 May 2023 08:07:01 +0000 (UTC) X-FDA: 80846190642.12.B933BA0 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf21.hostedemail.com (Postfix) with ESMTP id 658E51C0019 for ; Tue, 30 May 2023 08:06:59 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=c9JZIZga; spf=pass (imf21.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685434019; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YnZxXReVL1I6DCXtGtPRve4mJl7NAfBnjCqu1uEcaFE=; b=h/EAggMZmYWAs2V/SaXCOaaKVJkb434taXKglB7k1eftPkIhTkUrhTsUJ7/BBSwVZlrHcw QBWfg5Rd4snS4W3BqWBKM3H2ZqC7z8ghWD5qSiUI+u09/M7thT4flHNLQFVYyWreE7KB3U u5PCE89pIsX7B5F2D7SNP/QpQX1DM3I= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685434019; a=rsa-sha256; cv=none; b=HzKPsT9BQ2gdJWskngzg4zTfSQoRqVfpaMTVp1uodwQHftEQ3hpn+2LWzqYb8qbLMBDTv+ DcgdTZjUKfKTZduE8G0LqoBJL5Vx6qkBLF8aYHTaYetM6wDuoc02FyEQ8jIh6m8eEhDBMo 9SClycHO4OpLmhTfLuHzIFVHPno20ZM= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=c9JZIZga; spf=pass (imf21.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685434019; x=1716970019; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iLg8+BuQb6cfAwix3TzfWOi+K6oPegJSPNVGDscU724=; b=c9JZIZgaAQZOSOP05/iLfi76lMSenbsAGAfwPOSkOj3+dNtSw9qiJ3X2 Z4PGkGT42JE5ZepmRBaLzps9GHr5FLLsREktAu2tJXFiWu2WN5bjDgibw qCqNsBeswFzF+IwDHd200RMQGD28K3yZeFyWN2lUzvpWyyN5a+jdGW8mD hlx9Dmn63h35oXy7Z+rLOVt3YSLdokeZjWOrtTOOtIsA8VKdjJn161yN7 iuzIZRrXDCdJZIDfrIGw4ch9zZo/rACNRo9OxzM2kcPMPAVb4cOaSQIxy nxDujwTyGa+etGs4kI39p5IUIvFX1pisU3w0cAGM0qhmVPhc85Cd0+kuj w==; X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="344349316" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="344349316" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 01:06:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="880678883" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="880678883" Received: from fyin-dev.sh.intel.com ([10.239.159.32]) by orsmga005.jf.intel.com with ESMTP; 30 May 2023 01:06:54 -0700 From: Yin Fengwei To: willy@infradead.org, ryan.roberts@arm.com, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: fengwei.yin@intel.com Subject: [PATCH 4/4] filemap: Check address range in filemap_map_folio_range() Date: Tue, 30 May 2023 16:07:31 +0800 Message-Id: <20230530080731.1462122-5-fengwei.yin@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230530080731.1462122-1-fengwei.yin@intel.com> References: <20230530080731.1462122-1-fengwei.yin@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 658E51C0019 X-Rspam-User: X-Stat-Signature: 4szqo6y1p8fqugzaftcihosct184ko6q X-Rspamd-Server: rspam03 X-HE-Tag: 1685434019-219092 X-HE-Meta: U2FsdGVkX1/LD458etN/2f7YWA7fDwqqDzKOJ0hksEd9T8YUMP3BaxytIcD9RgZ4FdKP0kIDr3P6a0VPSYvBnV/KJA+DBn7nscpFSWeEXltyTqUEmguNECCG5+r8KdfdY2nim0II0zHSnypRMdGDiN+nh41j3zQp4xERwNH29rE5w0J7jusnI/5mxIlYO7Vtq9wcuMPdQoO4W6RpR0SRlE0rPVa6Af2Vh79YN5VC/1TQMFJ3JeSEzwlp4XTINhVQP6p8b8Jbriox0C6OMXdMw7964NqHWz2MnwztICI+Xm0S3rV6NXPVL66bJ3Y/cd1kGK/ykL5Fcn/WbwVu5+WKA3wLj8mQVs+X9YFatt56NfUPomr8+E5IDz8k0Wn01qQDOx0jxaIZQE4qLUBYPXo2+stspu9BHmDF9y03LDzyJbVnXYlksvcj3mH9cXF7mefK6okJl30WEcCtHngCynUL3YllSGUGjFDhpTx/iY1QE97HDDHY5agYsiK+C9nU47FP0/So+ZKjIapCyIJNtJ/2IeMZ4xcQjt1YUWXrZeQWoUm5JFSBnuEz6ZnK0NfZu+o25uJ1GpE6ojBg29yyoUocz6t27UL1TtDPoEzvcKatGwec7uMU1WT8GHjNKhHkGoMsMen6QLMi2fCTnFAD2VB1OgSpBPJ9d/cLQUFDw23t+pV7fX80M9qbDuIHqOis/qzwQZ90T6gTAW4z/T+gTHTJDyVxr6T+BsH+1Wh5RN/OpU6yfnowpuAJFxGmtt0QuQSxUADeMUxQj89p1AAltMHpoiC6UJOo9XKBW71MtasCvYMumD/UdICSBY6QEltfzLM/n7robSkEGmXgxriL7w0ZwjVzmKjuo/BU6djaErYKC0vmNTTzE/80x/XBD4/w9Q6aFU1D6O0/yK2YSeGUiz7RygsVV3hVh/bj8DYjaU0ZfZoKIjccRQRztkBvBe6UK6kiZXp8kclL/RERJLDIyR5 +lsyeRrb 7EYH3AM789Hwvh9uZH63XMetVW6TXTXqQ41ImQJaV/Hx12nn4FEje6SyCIwkN7ZlBVit34dJn8VO9AF//OBNGOz8KP49KOpQSlfsTq+8Jh/vfwFNVC7TagtL2hAaXWs64Rtj7+XkZemXc1TMhaRLHby/X2ZIp0WC8soDIE0r3Csi2253vcyZvX/kVwEDyil+TeimXyfi6T4wp9Jg= 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: With filemap_map_folio_range(), the addr is updated with range also. Address range checking is needed to make sure correct return value (VM_FAULT_NOPAGE) if vmf->address is handled. Signed-off-by: Yin Fengwei --- mm/filemap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index fdb3e0a339b3..0f4baba1cd31 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3488,15 +3488,15 @@ static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, if (!pte_none(vmf->pte[count])) goto skip; - if (vmf->address == addr) - ret = VM_FAULT_NOPAGE; - count++; continue; skip: if (count) { set_pte_range(vmf, folio, page, count, addr); folio_ref_add(folio, count); + if ((vmf->address < (addr + count * PAGE_SIZE)) && + (vmf->address >= addr)) + ret = VM_FAULT_NOPAGE; } count++; @@ -3509,6 +3509,9 @@ static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, if (count) { set_pte_range(vmf, folio, page, count, addr); folio_ref_add(folio, count); + if ((vmf->address < (addr + count * PAGE_SIZE)) && + (vmf->address >= addr)) + ret = VM_FAULT_NOPAGE; } vmf->pte = old_ptep; -- 2.30.2