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 305E0C04FFE for ; Tue, 14 May 2024 04:34:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D9FD6B02F4; Tue, 14 May 2024 00:34:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 489A86B02F5; Tue, 14 May 2024 00:34:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 352CD6B02F6; Tue, 14 May 2024 00:34:03 -0400 (EDT) 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 157596B02F4 for ; Tue, 14 May 2024 00:34:03 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 82B5E1C155B for ; Tue, 14 May 2024 04:34:02 +0000 (UTC) X-FDA: 82115733924.28.DF3341C Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by imf01.hostedemail.com (Postfix) with ESMTP id C009D40005 for ; Tue, 14 May 2024 04:34:00 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=FXjzoDeT; spf=pass (imf01.hostedemail.com: domain of keescook@chromium.org designates 209.85.161.43 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715661240; 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:dkim-signature; bh=ieVmwJeBrIpSOsFcbCNJW/aUPlRaeFvuifUbhBt56JM=; b=gAce9Wfn/Xgy0IAxXs5eSU034mjGqk0ucSUoXIPcxkoXYy4CVl/Z8FlT3Hty56IzqbB6Jt 6CuN0gO2lHgmTdeBCYIv803f8BZxgrs8LGbq5SMwfZUZ8CfOigdCWpJXgtWnjYTfcF3X/3 tezSOpDSq6AOwhhNzuYK82DEVXkyOoo= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=FXjzoDeT; spf=pass (imf01.hostedemail.com: domain of keescook@chromium.org designates 209.85.161.43 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715661240; a=rsa-sha256; cv=none; b=jEbKTswsqhxynu7eFfqtQVi10UuGNtHKN43k2hRHdBIbXD5ZvikX3SvdkYWjJ1JIc+5FUr 2Uw0s1t5+JJdkuB2gjTskN/S5bk9Xw2VWSzf4BwFiV8l/EHXhu30GNoEEV2LVDwYbwZpK6 RGDBvaxUlhWZ31ykf7Vl5IdrFo9t0gk= Received: by mail-oo1-f43.google.com with SMTP id 006d021491bc7-5b278cdfad6so2037967eaf.3 for ; Mon, 13 May 2024 21:34:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1715661240; x=1716266040; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:message-id:subject:cc :to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=ieVmwJeBrIpSOsFcbCNJW/aUPlRaeFvuifUbhBt56JM=; b=FXjzoDeTu91RAgcJzMw494Sz2SICWClIVNXf344x4I5fLurX1E5cQI51Nd5ewrmElx siKavfOlDR3JxIR7k2XZhO6MHjtz/aiE8DFLY2lLCG8FmhqmvYhXktEc/NlsQjftv6ff nviMPMnFHVQqQDInzefNGmQoUl+aOo2uBEZVw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715661240; x=1716266040; h=in-reply-to:content-disposition:mime-version:message-id:subject:cc :to:from:date:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ieVmwJeBrIpSOsFcbCNJW/aUPlRaeFvuifUbhBt56JM=; b=u4yAUmae5PynvoP+wu0ITx9wLNodVpEq1wKAZQApiVmVIP1BhwHAI0u7FgWO7rG+Bx WQKP2DbAh/vrz7/+YbdkU+jRz4/vsIouM2RGZd7hn/21hFHZkze39Kh5DJLBNoIt9Dgy OCPMWNVimZZMw8y57HMJZGSgOwl/P0R6vaXzlhnMzoUzb0HstkeWUcsRtT9CTYUujOxF t5lwRaUuAOQTCQDOq5t2jgNpgu6fMT80QiG37vJycBLdBq3Uz+XTEPFVelKiVba15rDK 77jWXByOTSM3bnx8HF7vF1myHMHUjE8i+9zoFaCnx0233iz7p8R2r5oJh8Zd+Odv3v9G pSfw== X-Gm-Message-State: AOJu0Yw2etKhGC8g+lBmGGYpC8PP/wlCkFdGD8lXWormkOn+Y5MTcRvk 1B3XdQ9F5VEIGviIVBwLPTh6D6LlTB+dvzSGB+4nYxcokTzTt7Ib5t9ptFFFC7XqBRbBIQ67NEA = X-Google-Smtp-Source: AGHT+IHGm8V2v87vOpHFDNJecz0UA3rbvhtyesrkV5fA/Ky1f10cXn7Ys7sq7EceRMyBgrEF73XkOg== X-Received: by 2002:a05:6358:e49e:b0:192:4dd2:2b49 with SMTP id e5c5f4694b2df-193bb3fe9femr1272555255d.4.1715661239616; Mon, 13 May 2024 21:33:59 -0700 (PDT) Received: from www.outflux.net ([198.0.35.241]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-634103f67e8sm8489390a12.69.2024.05.13.21.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 May 2024 21:33:58 -0700 (PDT) Date: Mon, 13 May 2024 21:33:57 -0700 From: Kees Cook To: Matthew Wilcox Cc: linux-mm@kvack.org Subject: Re: [PATCH 4/8] mm: Add __dump_folio() Message-ID: <202405132126.E26FE7B9@keescook> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240227192337.757313-5-willy@infradead.org> X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: C009D40005 X-Stat-Signature: xa9a5adnk6asxbipmkorbdbsffaghhq6 X-HE-Tag: 1715661240-956974 X-HE-Meta: U2FsdGVkX1/TaJXpVcpc3j/rjXhfO/DMiIptFcZhypdl4UZJNpA9uj3PwPsuYFqBIUuuaxY9Sy+6nPu1aUTpY9d+rGlATyCji2FSJo5DefFR/BB76Oq49qzA7dpYcfB6gmfcgMhTyrOenbaiFgnpy9vh0LeouS+gSlOU+UTBAsNamcVrRGhNXzDqDrfSjx+Rr8hunjqnfAq3NUpeRE3V+dZhG2IrMexk+EYQwIGXPuQo41RghDwceWKELjvBpwyDDKj2tLBKE+BgOQDqxOFE0pzcjJC+ehzaR5o+0l7lRhORA9+ozTTQBdQgSBqaCcSho34ElAeP+4b2O4c7mPpMHt5K856F92Cjnl05fW1mB59siVNLrWDaRMp2G3KWeQIqdNQi64mmP8FDwe805rjOxXsPXGhplv4u/OXoS1E5aFrOaiSAcOnNcIjphJLE4ky1sW6/QgkNWsQGqTl/3ZappP5eiC9x4Qg5XbMIDgnhi5LDGF1k+/al6Co2QQ4pnI1pDS1dEDba6j7hX0zcFoQvdRrpWDBDl39UmNtfT34hxMZV2T5SgDcEeqjqSeX08e0xeWSLB36VZq419cSHWgJDO4DnbBrkU5j4mgpgsV1Z71Dqxcs7JVJhixBLknwsOUPlOJvmOA0D7uPKOv22yq96YP+PwYcwEt2b+aHfW1FUnYVNaT5PZ9uxYZUf6SrLvQHHyMT8NS7ZodnQUf9a/PRhgLg28YJ+WoPKlGbqnGQIBwyXUe6m16QTDZAIZIIGvJkovk4PYgnGP5Co53U79B7lz/INbvVvRtln9E/Ctf9wj5UPLJ5V0pYYvhA65aI714bOG4/al7GX0BAWejdAvO6OlTKVsp6KwntCqw2NDOKvcqdwBndE/95/3tMLg2Jm+OWr+ZHHBw1+D6ReurrV4D8MwmMi8UQhY8hU7GbNP+WQANKGbPFg2lhMNN0AeONE/rP8NyrNOvwcKSGCPKCeSTT h2bPFPPH nvclfX+UKoZPwPfabfGHkgxbuRPN092Kgbh2CQ93GX9ZJ/sj1OcOwKIfJqca3yZB/1ltaFQ6/77sJTvjNza3p4HR/DofP4v0xFC9RP+ycUrxMsiM+JHsIB6DZKzDPO6E5PFzmbhqlVODoIZLAIm5O4nIhRQMTvzAsfrmJHtywk3wEYnCMVpjepDV/kO4owHylQF208ayVvEtIYbFRdOPXUpvc8VhhUP7fPLauaKO7xJCwdq8CXteZBP5L8NkjsDH0Dsrtj+r/k6G4MacAroICahrY9Iz3Gv1bmcKwdp8td3qISYtFd6tW7giAWUC80P6W0/OYZ6lbfya+dmzItuEsPAai72ShF4CG/kh2TMevrVIE45LA+KufTMSbTC4qyx40HlQ/67ehQGo8NpQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.018825, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi! While working on testing an improved -Warray-bounds in GCC, I encountered this, which seems to be reasonable: In file included from ./arch/x86/include/generated/asm/rwonce.h:1, from ../include/linux/compiler.h:299, from ../include/linux/array_size.h:5, from ../include/linux/kernel.h:16, from ../mm/debug.c:9: In function 'page_fixed_fake_head', inlined from '_compound_head' at ../include/linux/page-flags.h:251:24, inlined from '__dump_page' at ../mm/debug.c:123:11: ../include/asm-generic/rwonce.h:44:26: warning: array subscript 9 is outside array bounds of 'struct page[1]' [-Warray-bounds=] 44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE' 50 | __READ_ONCE(x); \ | ^~~~~~~~~~~ ../include/linux/page-flags.h:226:38: note: in expansion of macro 'READ_ONCE' 226 | unsigned long head = READ_ONCE(page[1].compound_head); | ^~~~~~~~~ ../mm/debug.c: In function '__dump_page': ../mm/debug.c:116:21: note: at offset 72 into object 'precise' of size 64 116 | struct page precise; | ^~~~~~~ (Not noted in this warning is that the code passes through page_folio() _Generic macro.) It doesn't like that it can see that "precise" is exactly one page, so looking at page[1] later is going to freak out. I suspect this may be "impossible" at run-time, but I'm not 100% sure. Regardless, the compiler can't tell. I suspect just making precise be a 2 page array would make this happy, but it wasn't clear to me how such a page should be initialized. -Kees -- Kees Cook