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 6D8C2C4332F for ; Wed, 13 Dec 2023 15:37:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D06518D0033; Wed, 13 Dec 2023 10:37:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CB66A8D0015; Wed, 13 Dec 2023 10:37:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B56948D0033; Wed, 13 Dec 2023 10:37:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id A46128D0015 for ; Wed, 13 Dec 2023 10:37:32 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 7972D1A01AB for ; Wed, 13 Dec 2023 15:37:32 +0000 (UTC) X-FDA: 81562199544.09.95F15C5 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP id BBD704001F for ; Wed, 13 Dec 2023 15:37:28 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=AyFgr3bo; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702481850; a=rsa-sha256; cv=none; b=i7Kg46WzdOuieC/LIAiuhnPICxgCvj/bikZ4YpLXS9aOJKptwKRwisoM298zwcKMrGPzeN unKvSve4uE5moL3NCQi3Ys3Xd7LogqXP4EXJqpWuD0sZCPkZcwDYDWfhaaRcrJnmzP48g8 H/zYr2XdbuIHN/ywivDU4R14ko/p/bU= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=AyFgr3bo; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702481850; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9mTkxMi+RNoUKh9Z8ntE/7RuDTcMFFAdXEtBfAqXPeY=; b=u/5Tegp9mChZ5LRnrWPSg7jNNf5RvlC3akGIhLx+z08k7PTnlEijLE99BsQyct4trePz7q C7iNsuJdcXGqEEqgyfT0AZ9S21Q6AjB2hJ5yMqYkoe2q1y0yRIPfUv9da3A0RyBxcwjac2 OU4g33X4AKCkGjTXnWEa7tierPPhF1U= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=9mTkxMi+RNoUKh9Z8ntE/7RuDTcMFFAdXEtBfAqXPeY=; b=AyFgr3boHvp7jULXMgDZrWd7hd xyBr12Iji+yt4oyZlZKDrzGBZs2rPbLvuHzGOCuLrsK1euI99QeuAt1Ubs9E34ulNV1VXWaw6teuw vJmxHEzJNHeVgiIxrYKo+E0q6XLjE81yOFPsL7u6ZVEgOWXqtJk3Uv0buWr7yh3oBPYuyp/CDMK2w KeW/XP3+ZStBoQv4k3QYe5aLK/gHgDOU5g1/YasBl++lj+bKm3QoZOCISQ+ibcBuiCGqNdeevSbrH tCkIaxUtSD1JcwFyr4won1n7hVdldxSkn6TNExU8NjXH0Vvx4RFCSaT2wrzVZtY4q20nblhf4cW73 vDyaqldQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1rDRIb-0025WG-DP; Wed, 13 Dec 2023 15:37:25 +0000 Date: Wed, 13 Dec 2023 15:37:25 +0000 From: Matthew Wilcox To: Dan Carpenter Cc: linux-mm@kvack.org Subject: Re: [bug report] mm: convert ksm_might_need_to_copy() to work on folios Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: BBD704001F X-Stat-Signature: qas8n3q41f91zmogartghja5nn87wq58 X-Rspam-User: X-HE-Tag: 1702481848-305203 X-HE-Meta: U2FsdGVkX19cgmzPjJrCmHaL51X1I3Z2sxS7PDyim7YflACrzr0fSRyIYo+wfKesSeEOU4OX8ojWRCiu7jyY/A5UHAk7ibAUgXiCtVA7szmpCJYZxmroBVLCvA1TeocYcBUmFpXdU/gbGaywJR1RvcZeLxFWyuzQ5TooQVG9GfvS6I320j3Y+w8SEMyakUYwp1d7muvgpeaL/2rN7dzRaR3Nnz+c8pWFPRO1u9CM14IvLiPKjTd/Lh9trHlBt0DfhEtI+4jptVuyIyxxASnXG6VmlrO/6pNu/G07rf+H+7OBTi3eKlvEsPThhN5kRbE60KoPNiVQXdYstK0IeBpCtFspR8+qA0f5GCpQbcsTue+jbK5ND1ZS4LnBnqMM417XVAqzrfJdze+2tTcwzCqODsWSD0A0HrvqOrawHP6YroxAbeElSFCDIseyqHPfDGc9U0rTJzmEMMCN2vfKRVxhUS99z0zsoQUal49HwYQZRnWoRcY4i4BhYzMWrcHz1NKCezr+sSWNOC7nzLroyni6bM3XxEd9WHxFPm/dO170Ugo1l9FgqZ590rJWxfFw4BYrlYgNpjG1Ukpcz38nHolfxJYjiHtuvPgDG1bhI2Hw6Lw6zCUkv95pgDv8F+LvwoOddMyGvXvsq1pjke1WWQByQCl6FeWyF6iAbPFTrUyRA/flVpEW3fwWukA+e7by9MjEIEgkWC/6TH7c6x9pR0JexnrC4vaqawlmEwFZwQegEKcMX/Gsi6Mk32JEP+MwpNaz5QYbNqBJ7cwpuVXEglSq4VqWd6Pn4+o5Sh/uyynDYTKn1KvxEvRNAn8wU9alxuAqcHk4PfzHAZ7s4kB+rNma0rd2ph2Bj1gBrp6DDE/rsbk07MFeOEepXHat6P4Dd+wltDkeUqit70JIkCw+8KG7u1lE10p9xHGVpo5+aOHlZWjgdzmSHhVNRb0c9m/GXmjefqotZxBA9yIbnW/RdxI 5Z+d5Yez Ow1Bl7vrF4Zbk2hUJSB6PPZnpNOqaVRQ0LHm5obuvzb/deUjyO+2XrkWGmwrOOR5kMd0e2oniqHHEluUQqJawQ//aXUN6zm4WTb4VQPyz87lxK06GtWVMUy2T1ootYx2URDVVlYjqOeY0d7Pbi2fJJThPul5+3nXllmMLfZ/9xoN/lqK5SOT5LaA/9Q== 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 Wed, Dec 13, 2023 at 10:01:46AM +0300, Dan Carpenter wrote: > Hello Matthew Wilcox (Oracle), > > The patch 6faef19bdfcc: "mm: convert ksm_might_need_to_copy() to work > on folios" from Dec 11, 2023 (linux-next), leads to the following > Smatch static checker warning: > > mm/memory.c:4118 do_swap_page() > error: 'folio' dereferencing possible ERR_PTR() Right! Andrew, please squash in: diff --git a/mm/memory.c b/mm/memory.c index 318f923134e4..1270d70dcb80 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3945,9 +3945,11 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) folio = ksm_might_need_to_copy(folio, vma, vmf->address); if (unlikely(!folio)) { ret = VM_FAULT_OOM; + folio = swapcache; goto out_page; } else if (unlikely(folio == ERR_PTR(-EHWPOISON))) { ret = VM_FAULT_HWPOISON; + folio = swapcache; goto out_page; } page = folio_page(folio, 0);