• Jane Chu's avatar
    libnvdimm/security: the 'security' attr never show 'overwrite' state · 7c02d53d
    Jane Chu authored
    'security' attribute displays the security state of an nvdimm.
    During normal operation, the nvdimm state maybe one of 'disabled',
    'unlocked' or 'locked'.  When an admin issues
      # ndctl sanitize-dimm nmem0 --overwrite
    the attribute is expected to change to 'overwrite' until the overwrite
    operation completes.
    
    But tests on our systems show that 'overwrite' is never shown during
    the overwrite operation. i.e.
      # cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/nmem0/security
      unlocked
    the attribute remain 'unlocked' through out the operation, consequently
    "ndctl wait-overwrite nmem0" command doesn't wait at all.
    
    The driver tracks the state in 'nvdimm->sec.flags': when the operation
    starts, it adds an overwrite bit to the flags; and when the operation
    completes, it removes the bit. Hence security_show() should check the
    'overwrite' bit first, in order to indicate the actual state when multiple
    bits are set in the flags.
    
    Link: https://lore.kernel.org/r/1596494499-9852-2-git-send-email-jane.chu@oracle.comReviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
    Signed-off-by: default avatarJane Chu <jane.chu@oracle.com>
    Signed-off-by: default avatarVishal Verma <vishal.l.verma@intel.com>
    7c02d53d
dimm_devs.c 24.7 KB