modification of EVM-protected metadata and
                disable all further modification of policy
 
-               Note that once a key has been loaded, it will no longer be
-               possible to enable metadata modification.
+               Echoing a value is additive, the new value is added to the
+               existing initialization flags.
+
+               For example, after::
+
+                 echo 2 ><securityfs>/evm
+
+               another echo can be performed::
+
+                 echo 1 ><securityfs>/evm
+
+               and the resulting value will be 3.
+
+               Note that once an HMAC key has been loaded, it will no longer
+               be possible to enable metadata modification. Signaling that an
+               HMAC key has been loaded will clear the corresponding flag.
+               For example, if the current value is 6 (2 and 4 set)::
+
+                 echo 1 ><securityfs>/evm
+
+               will set the new value to 3 (4 cleared).
+
+               Loading an HMAC key is the only way to disable metadata
+               modification.
 
                Until key loading has been signaled EVM can not create
                or validate the 'security.evm' xattr, but returns
 
        if (!i || (i & ~EVM_INIT_MASK) != 0)
                return -EINVAL;
 
-       /* Don't allow a request to freshly enable metadata writes if
-        * keys are loaded.
+       /*
+        * Don't allow a request to enable metadata writes if
+        * an HMAC key is loaded.
         */
        if ((i & EVM_ALLOW_METADATA_WRITES) &&
-           ((evm_initialized & EVM_KEY_MASK) != 0) &&
-           !(evm_initialized & EVM_ALLOW_METADATA_WRITES))
+           (evm_initialized & EVM_INIT_HMAC) != 0)
                return -EPERM;
 
        if (i & EVM_INIT_HMAC) {