aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2019-03-11 15:47:14 -0400
committerDan Williams <dan.j.williams@intel.com>2019-04-08 12:39:32 -0400
commit2170a0d53bee1a6c1a4ebd042f99d85aafc6c0ea (patch)
tree4798fc6c3d8ccef6c221824c589924313b996368
parent9dc6488e84b0f64df17672271664752488cd6a25 (diff)
tools/testing/nvdimm: Retain security state after overwrite
Overwrite retains the security state after completion of operation. Fix nfit_test to reflect this so that the kernel can test the behavior it is more likely to see in practice. Fixes: 926f74802cb1 ("tools/testing/nvdimm: Add overwrite support for nfit_test") Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--tools/testing/nvdimm/test/nfit.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/testing/nvdimm/test/nfit.c b/tools/testing/nvdimm/test/nfit.c
index cad719876ef4..85ffdcfa596b 100644
--- a/tools/testing/nvdimm/test/nfit.c
+++ b/tools/testing/nvdimm/test/nfit.c
@@ -146,6 +146,7 @@ static int dimm_fail_cmd_code[ARRAY_SIZE(handle)];
146struct nfit_test_sec { 146struct nfit_test_sec {
147 u8 state; 147 u8 state;
148 u8 ext_state; 148 u8 ext_state;
149 u8 old_state;
149 u8 passphrase[32]; 150 u8 passphrase[32];
150 u8 master_passphrase[32]; 151 u8 master_passphrase[32];
151 u64 overwrite_end_time; 152 u64 overwrite_end_time;
@@ -1100,7 +1101,7 @@ static int nd_intel_test_cmd_overwrite(struct nfit_test *t,
1100 return 0; 1101 return 0;
1101 } 1102 }
1102 1103
1103 memset(sec->passphrase, 0, ND_INTEL_PASSPHRASE_SIZE); 1104 sec->old_state = sec->state;
1104 sec->state = ND_INTEL_SEC_STATE_OVERWRITE; 1105 sec->state = ND_INTEL_SEC_STATE_OVERWRITE;
1105 dev_dbg(dev, "overwrite progressing.\n"); 1106 dev_dbg(dev, "overwrite progressing.\n");
1106 sec->overwrite_end_time = get_jiffies_64() + 5 * HZ; 1107 sec->overwrite_end_time = get_jiffies_64() + 5 * HZ;
@@ -1122,7 +1123,8 @@ static int nd_intel_test_cmd_query_overwrite(struct nfit_test *t,
1122 1123
1123 if (time_is_before_jiffies64(sec->overwrite_end_time)) { 1124 if (time_is_before_jiffies64(sec->overwrite_end_time)) {
1124 sec->overwrite_end_time = 0; 1125 sec->overwrite_end_time = 0;
1125 sec->state = 0; 1126 sec->state = sec->old_state;
1127 sec->old_state = 0;
1126 sec->ext_state = ND_INTEL_SEC_ESTATE_ENABLED; 1128 sec->ext_state = ND_INTEL_SEC_ESTATE_ENABLED;
1127 dev_dbg(dev, "overwrite is complete\n"); 1129 dev_dbg(dev, "overwrite is complete\n");
1128 } else 1130 } else