mirror of
https://github.com/torvalds/linux.git
synced 2026-10-17 06:20:02 +02:00
The CXL NVDIMM security passphrase key description and the nvdimm 'id'
sysfs attribute are both derived from the CXL device serial number,
but the serial number is not formatted consistently.
The key description is formatted in hexadecimal while the 'id'
attribute is formatted in decimal. As a result, ndctl stores the key
using a decimal description while the kernel later looks it up using
a hexadecimal description. For serial numbers of 10 and above, the
descriptions no longer match, preventing automatic unlock after
reboot.
The decimal formatting has a second problem: both the key description
and the 'id' attribute use the signed %lld format for a u64 PCIe
Device Serial Number. Devices whose vendor OUI sets bit 63, such as
Montage CXL devices, appear with negative decimal serial numbers.
Format the security key description and 'id' attribute as unsigned
decimal, %llu, and document that the 'id' attribute is an unsigned
decimal value.
The key lookup mismatch was exposed by CXL unit test cxl-security.sh
when cxl_test mock serial numbers were extended to 10 and above.
A work around is described for ndctl load-key users here:
https://github.com/pmem/ndctl/issues/299
Cc: stable@vger.kernel.org
Fixes: b5807c80b5 ("cxl: add dimm_id support for __nvdimm_create()")
Acked-by: Dan Williams <djbw@kernel.org>
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Link: https://patch.msgid.link/2c673a5ba0a8fa93ad160578e193bd556091fa95.1784924949.git.alison.schofield@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
61 lines
2.3 KiB
Plaintext
61 lines
2.3 KiB
Plaintext
What: nvdimm
|
|
Date: July 2020
|
|
KernelVersion: 5.8
|
|
Contact: Dan Williams <dan.j.williams@intel.com>
|
|
Description:
|
|
|
|
The libnvdimm sub-system implements a common sysfs interface for
|
|
platform nvdimm resources. See Documentation/driver-api/nvdimm/.
|
|
|
|
What: /sys/bus/event_source/devices/nmemX/format
|
|
Date: February 2022
|
|
KernelVersion: 5.18
|
|
Contact: Kajol Jain <kjain@linux.ibm.com>
|
|
Description: (RO) Attribute group to describe the magic bits
|
|
that go into perf_event_attr.config for a particular pmu.
|
|
(See ABI/testing/sysfs-bus-event_source-devices-format).
|
|
|
|
Each attribute under this group defines a bit range of the
|
|
perf_event_attr.config. Supported attribute is listed
|
|
below::
|
|
|
|
event = "config:0-4" - event ID
|
|
|
|
For example::
|
|
|
|
ctl_res_cnt = "event=0x1"
|
|
|
|
What: /sys/bus/event_source/devices/nmemX/events
|
|
Date: February 2022
|
|
KernelVersion: 5.18
|
|
Contact: Kajol Jain <kjain@linux.ibm.com>
|
|
Description: (RO) Attribute group to describe performance monitoring events
|
|
for the nvdimm memory device. Each attribute in this group
|
|
describes a single performance monitoring event supported by
|
|
this nvdimm pmu. The name of the file is the name of the event.
|
|
(See ABI/testing/sysfs-bus-event_source-devices-events). A
|
|
listing of the events supported by a given nvdimm provider type
|
|
can be found in Documentation/driver-api/nvdimm/$provider.
|
|
|
|
What: /sys/bus/event_source/devices/nmemX/cpumask
|
|
Date: February 2022
|
|
KernelVersion: 5.18
|
|
Contact: Kajol Jain <kjain@linux.ibm.com>
|
|
Description: (RO) This sysfs file exposes the cpumask which is designated to
|
|
to retrieve nvdimm pmu event counter data.
|
|
|
|
What: /sys/bus/nd/devices/nmemX/cxl/id
|
|
Date: November 2022
|
|
KernelVersion: 6.2
|
|
Contact: Dave Jiang <dave.jiang@intel.com>
|
|
Description: (RO) Show the id (serial) of the device, formatted as an
|
|
unsigned 64-bit decimal value. This is CXL specific.
|
|
|
|
What: /sys/bus/nd/devices/nmemX/cxl/provider
|
|
Date: November 2022
|
|
KernelVersion: 6.2
|
|
Contact: Dave Jiang <dave.jiang@intel.com>
|
|
Description: (RO) Shows the CXL bridge device that ties to a CXL memory device
|
|
to this NVDIMM device. I.e. the parent of the device returned is
|
|
a /sys/bus/cxl/devices/memX instance.
|