Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f12e4ed8 authored by Eric Biggers's avatar Eric Biggers Committed by Herbert Xu
Browse files

crypto: doc - fix documentation for bulk registration functions



Update the documentation for crypto_register_algs() and
crypto_unregister_algs() to match the actual behavior.

Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent d89a6713
Loading
Loading
Loading
Loading
+26 −12
Original line number Diff line number Diff line
@@ -797,7 +797,8 @@ kernel crypto API | Caller
     include/linux/crypto.h and their definition can be seen below.
     The former function registers a single transformation, while
     the latter works on an array of transformation descriptions.
     The latter is useful when registering transformations in bulk.
     The latter is useful when registering transformations in bulk,
     for example when a driver implements multiple transformations.
    </para>

    <programlisting>
@@ -822,18 +823,31 @@ kernel crypto API | Caller
    </para>

    <para>
     The bulk registration / unregistration functions require
     that struct crypto_alg is an array of count size. These
     functions simply loop over that array and register /
     unregister each individual algorithm. If an error occurs,
     the loop is terminated at the offending algorithm definition.
     That means, the algorithms prior to the offending algorithm
     are successfully registered. Note, the caller has no way of
     knowing which cipher implementations have successfully
     registered. If this is important to know, the caller should
     loop through the different implementations using the single
     instance *_alg functions for each individual implementation.
     The bulk registration/unregistration functions
     register/unregister each transformation in the given array of
     length count.  They handle errors as follows:
    </para>
    <itemizedlist>
     <listitem>
      <para>
       crypto_register_algs() succeeds if and only if it
       successfully registers all the given transformations. If an
       error occurs partway through, then it rolls back successful
       registrations before returning the error code. Note that if
       a driver needs to handle registration errors for individual
       transformations, then it will need to use the non-bulk
       function crypto_register_alg() instead.
      </para>
     </listitem>
     <listitem>
      <para>
       crypto_unregister_algs() tries to unregister all the given
       transformations, continuing on error. It logs errors and
       always returns zero.
      </para>
     </listitem>
    </itemizedlist>

   </sect1>

   <sect1><title>Single-Block Symmetric Ciphers [CIPHER]</title>