Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1778533ybh; Fri, 17 Jul 2020 00:22:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJznkVV4HyyqD1EeSGGEySZyXNJwn8BxA4sLsIAaG7cZa+mLu99APAUUwlB/lWo3s5qfQzac X-Received: by 2002:a17:906:538a:: with SMTP id g10mr7839567ejo.354.1594970520994; Fri, 17 Jul 2020 00:22:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594970520; cv=none; d=google.com; s=arc-20160816; b=YYOZEmQZTLIJwNZGP8c5SQBhTlxjo2k1bnJfs2U5vF7GqaOyeGnLaWELB45frwlapO EBaXHNCZa1uCIGT+xqw7yIO5/5Nv8r4PJJ8cwN+3mxPJEqnOTWgm+f8MUuZDfNNq9yK9 csMTZJAk9NfKtlv/buPJfzudxL3BqQrqwS7DBzBT04Dfoh2WNcBpZfOgyD/JfPt1MMhZ DA1f1IAt9IdXt07nOaIOeUODc5SYHBZ/N8aerbn5uFdgUtUg28/FDl5CoLWUzu5p3sH6 pwnQ/ZS4SV3XTkmWyfdUEYoDUp6b+5xF94MPVmcSeN4HBRspjJffjHpiuZnPv1HzW3KH qXOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=uFtvIbuyOgPDhlmb5rZKdgF9uMGoSF5hw68JGQ+86vM=; b=KBFE+8gDCdhl7041xEMeCE2JEX49t9SNaKNsAuEzpCQUvc/wuBlh+Lu+sxDgcnBUkK coq3q/6wyIx2KYDvZNsssMm7Vu2ZZKdlB47GeKoaNUoYlfl+n03uRgaAcvNk12o608eB 0FaCv14LicG6j1rzk4g3Cba35QOPZVpVib+HZuc23gerepU6j1zsbh3eT/KF0Z9aQszL BaNW0809Q5Oiz+y5Y9RJj1QH0Pur2sfYrxIXfroD6alN+sHmS1xQ2tufhIYBv4sqvB3N pUvYsmnCbPuYIOr5iEot37z33S0Z9YepN4TNfm4/Yp5EDuOJfCkDZzBsBNWRMPCoKkGj pTmg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk25si4574847edb.28.2020.07.17.00.21.38; Fri, 17 Jul 2020 00:22:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728159AbgGQHVT (ORCPT + 99 others); Fri, 17 Jul 2020 03:21:19 -0400 Received: from mga05.intel.com ([192.55.52.43]:11415 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728097AbgGQHVK (ORCPT ); Fri, 17 Jul 2020 03:21:10 -0400 IronPort-SDR: K75kQDp0cb8JmmILXvpz+oyuggRuth6vlJLIFNf3MF/Q22GyOhme01tT2huB9AlAQA+IFkCR9C t1u3PtQySSpA== X-IronPort-AV: E=McAfee;i="6000,8403,9684"; a="234401130" X-IronPort-AV: E=Sophos;i="5.75,362,1589266800"; d="scan'208";a="234401130" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2020 00:21:10 -0700 IronPort-SDR: viJrwwhLUZwipsvXApKspDNsQU+CwYvDOwHjI74HqRE/r92df5TCe9N6WlL3Sucvt7R6kOjDXY nvO/Jnn8HJfQ== X-IronPort-AV: E=Sophos;i="5.75,362,1589266800"; d="scan'208";a="325362844" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.147]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2020 00:21:09 -0700 From: ira.weiny@intel.com To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , Peter Zijlstra Cc: Ira Weiny , x86@kernel.org, Dave Hansen , Dan Williams , Vishal Verma , Andrew Morton , Fenghua Yu , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH RFC V2 16/17] [dax|pmem]: Enable stray write protection Date: Fri, 17 Jul 2020 00:20:55 -0700 Message-Id: <20200717072056.73134-17-ira.weiny@intel.com> X-Mailer: git-send-email 2.28.0.rc0.12.gb6a658bd00c9 In-Reply-To: <20200717072056.73134-1-ira.weiny@intel.com> References: <20200717072056.73134-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ira Weiny Protecting against stray writes is particularly important for PMEM because, unlike writes to anonymous memory, writes to PMEM persists across a reboot. Thus data corruption could result in permanent loss of data. Therefore, there is no option presented to the user. Enable stray write protection by setting the flag in pgmap which requests it. Note if Zone Device Access Protection not be supported this flag will have no affect. Signed-off-by: Ira Weiny --- drivers/dax/device.c | 2 ++ drivers/nvdimm/pmem.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 4c0af2eb7e19..884f66d73d32 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -430,6 +430,8 @@ int dev_dax_probe(struct device *dev) } dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX; + dev_dax->pgmap.flags |= PGMAP_PROT_ENABLED; + addr = devm_memremap_pages(dev, &dev_dax->pgmap); if (IS_ERR(addr)) return PTR_ERR(addr); diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 46c11a09b813..9416a660eede 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -427,6 +427,8 @@ static int pmem_attach_disk(struct device *dev, return -EBUSY; } + pmem->pgmap.flags |= PGMAP_PROT_ENABLED; + q = blk_alloc_queue(pmem_make_request, dev_to_node(dev)); if (!q) return -ENOMEM; -- 2.28.0.rc0.12.gb6a658bd00c9