diff options
| author | Dave Jiang <dave.jiang@intel.com> | 2019-03-11 15:47:14 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2019-04-08 12:39:32 -0400 |
| commit | 2170a0d53bee1a6c1a4ebd042f99d85aafc6c0ea (patch) | |
| tree | 4798fc6c3d8ccef6c221824c589924313b996368 | |
| parent | 9dc6488e84b0f64df17672271664752488cd6a25 (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.c | 6 |
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)]; | |||
| 146 | struct nfit_test_sec { | 146 | struct 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 |
