All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Steven Price" <steven.price@arm.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"John Hubbard" <jhubbard@nvidia.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Sasha Levin" <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.19 21/40] include/linux/swapops.h: correct guards for non_swap_entry()
Date: Wed, 15 Apr 2020 07:46:04 -0400	[thread overview]
Message-ID: <20200415114623.14972-21-sashal@kernel.org> (raw)
In-Reply-To: <20200415114623.14972-1-sashal@kernel.org>

From: Steven Price <steven.price@arm.com>

[ Upstream commit 3f3673d7d324d872d9d8ddb73b3e5e47fbf12e0d ]

If CONFIG_DEVICE_PRIVATE is defined, but neither CONFIG_MEMORY_FAILURE nor
CONFIG_MIGRATION, then non_swap_entry() will return 0, meaning that the
condition (non_swap_entry(entry) && is_device_private_entry(entry)) in
zap_pte_range() will never be true even if the entry is a device private
one.

Equally any other code depending on non_swap_entry() will not function as
expected.

I originally spotted this just by looking at the code, I haven't actually
observed any problems.

Looking a bit more closely it appears that actually this situation
(currently at least) cannot occur:

DEVICE_PRIVATE depends on ZONE_DEVICE
ZONE_DEVICE depends on MEMORY_HOTREMOVE
MEMORY_HOTREMOVE depends on MIGRATION

Fixes: 5042db43cc26 ("mm/ZONE_DEVICE: new type of ZONE_DEVICE for unaddressable memory")
Signed-off-by: Steven Price <steven.price@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Link: http://lkml.kernel.org/r/20200305130550.22693-1-steven.price@arm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/swapops.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/swapops.h b/include/linux/swapops.h
index 22af9d8a84ae2..28d572b7ea73e 100644
--- a/include/linux/swapops.h
+++ b/include/linux/swapops.h
@@ -368,7 +368,8 @@ static inline void num_poisoned_pages_inc(void)
 }
 #endif
 
-#if defined(CONFIG_MEMORY_FAILURE) || defined(CONFIG_MIGRATION)
+#if defined(CONFIG_MEMORY_FAILURE) || defined(CONFIG_MIGRATION) || \
+    defined(CONFIG_DEVICE_PRIVATE)
 static inline int non_swap_entry(swp_entry_t entry)
 {
 	return swp_type(entry) >= MAX_SWAPFILES;
-- 
2.20.1


  parent reply	other threads:[~2020-04-15 12:14 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15 11:45 [PATCH AUTOSEL 4.19 01/40] clk: at91: usb: continue if clk_hw_round_rate() return zero Sasha Levin
2020-04-15 11:45 ` Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 02/40] power: supply: bq27xxx_battery: Silence deferred-probe error Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 03/40] clk: tegra: Fix Tegra PMC clock out parents Sasha Levin
2020-04-15 11:45   ` Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 04/40] soc: imx: gpc: fix power up sequencing Sasha Levin
2020-04-15 11:45   ` Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 05/40] rtc: 88pm860x: fix possible race condition Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 06/40] NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid() Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 07/40] NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 08/40] s390/cpuinfo: fix wrong output when CPU0 is offline Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 09/40] btrfs: handle NULL roots in btrfs_put/btrfs_grab_fs_root Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 10/40] powerpc/maple: Fix declaration made after definition Sasha Levin
2020-04-15 11:45   ` Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 11/40] s390/cpum_sf: Fix wrong page count in error message Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 12/40] ext4: do not commit super on read-only bdev Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 13/40] ext4: fix incorrect group count in ext4_fill_super error message Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 14/40] ext4: fix incorrect inodes per group in " Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 15/40] um: ubd: Prevent buffer overrun on command completion Sasha Levin
2020-04-15 11:45   ` Sasha Levin
2020-04-15 11:45 ` [PATCH AUTOSEL 4.19 16/40] cifs: Allocate encryption header through kmalloc Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 17/40] slcan: Don't transmit uninitialized stack data in padding Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 18/40] net: qualcomm: rmnet: Allow configuration updates to existing devices Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 19/40] net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 20/40] net: dsa: bcm_sf2: Do not register slave MDIO bus with OF Sasha Levin
2020-04-15 11:46 ` Sasha Levin [this message]
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 22/40] percpu_counter: fix a data race at vm_committed_as Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 23/40] compiler.h: fix error in BUILD_BUG_ON() reporting Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 24/40] KVM: s390: vsie: Fix possible race when shadowing region 3 tables Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 25/40] net: dsa: bcm_sf2: Ensure correct sub-node is parsed Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 26/40] x86: ACPI: fix CPU hotplug deadlock Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 27/40] net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before accessing PHY registers Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 28/40] drm/amdkfd: kfree the wrong pointer Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 29/40] NFS: Fix memory leaks in nfs_pageio_stop_mirroring() Sasha Levin
2020-04-15 11:46 ` [f2fs-dev] [PATCH AUTOSEL 4.19 30/40] f2fs: fix NULL pointer dereference in f2fs_write_begin() Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 31/40] mfd: dln2: Fix sanity checking for endpoints Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 32/40] drm/vc4: Fix HDMI mode validation Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 33/40] iommu/vt-d: Fix mm reference leak Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 34/40] ext2: fix empty body warnings when -Wextra is used Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 35/40] ovl: fix value of i_ino for lower hardlink corner case Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 36/40] ext2: fix debug reference to ext2_xattr_cache Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 37/40] power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 38/40] libnvdimm: Out of bounds read in __nd_ioctl() Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [PATCH AUTOSEL 4.19 39/40] iommu/amd: Fix the configuration of GCR3 table root pointer Sasha Levin
2020-04-15 11:46   ` Sasha Levin
2020-04-15 11:46 ` [f2fs-dev] [PATCH AUTOSEL 4.19 40/40] f2fs: fix to wait all node page writeback Sasha Levin
2020-04-15 11:46   ` Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200415114623.14972-21-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=dan.j.williams@intel.com \
    --cc=jglisse@redhat.com \
    --cc=jhubbard@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=steven.price@arm.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.