cxl/test: Assign one mock memdev a full-width serial number

Mock memdev serial numbers have historically been derived from
pdev->id, leaving them single-digit. As a result they never exercised
either the decimal-vs-hex security-key lookup or unsigned formatting
of large serial numbers.

Give one mock memdev a full-width serial with bit 63 set. This mirrors
real hardware (for example, Montage devices) and provides a test
device that exposes both the hexadecimal-vs-decimal and signed-vs-
unsigned formatting differences.

pdev->id 7 is unused by the auto-region topology so the larger serial
does not affect existing tests.

This enables adding a new test case to cxl-security.sh that verify
auto-unlock using a mock device whose serial exposes both formatting
differences.

Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Link: https://patch.msgid.link/3e569a748fce4424b8622032fbffc298d92153b9.1784924949.git.alison.schofield@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
This commit is contained in:
Alison Schofield 2026-07-24 13:37:19 -07:00 committed by Dave Jiang
parent 95a84b7cb4
commit 94d84e3d89

View File

@ -1713,6 +1713,7 @@ static int cxl_mock_mem_probe(struct platform_device *pdev)
struct cxl_mockmem_data *mdata;
struct cxl_mailbox *cxl_mbox;
struct cxl_dpa_info range_info = { 0 };
u64 serial;
int rc;
/* Increase async probe race window */
@ -1739,7 +1740,19 @@ static int cxl_mock_mem_probe(struct platform_device *pdev)
if (rc)
return rc;
mds = cxl_memdev_state_create(dev, pdev->id + 1, 0);
/*
* Mock serials have historically been derived from pdev->id and stayed
* single-digit, so they never exercised either decimal-vs-hex key
* lookup or unsigned formatting. Give one mock device a full-width
* serial with bit 63 set, matching real hardware such as Montage CXL
* devices. pdev->id 7 is unused by the auto-region topology.
*/
if (pdev->id == 7)
serial = 0x8a34567890abcdef;
else
serial = pdev->id + 1;
mds = cxl_memdev_state_create(dev, serial, 0);
if (IS_ERR(mds))
return PTR_ERR(mds);