lkml.org 
[lkml]   [2008]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 2.6.25-rc[1,2]: failed to setup dm-crypt key mapping
    On Thu, Feb 21, 2008 at 01:58:19AM +0800, Herbert Xu wrote:
    > On Wed, Feb 20, 2008 at 06:47:58PM +0100, Milan Broz wrote:
    > >
    > > I just tested one affected configuration and problem was in missing
    > > "chainiv.ko" module on ramdisk.
    >
    > Ah OK. We probably should merge chainiv into the blkcipher
    > module too since it's the default IV generator. I'll take
    > care of it.

    Does this patch fix the problem?

    Thanks,
    --
    Visit Openswan at http://www.openswan.org/
    Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
    Home Page: http://gondor.apana.org.au/~herbert/
    PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
    --
    diff --git a/crypto/Makefile b/crypto/Makefile
    index 48c7583..7cf3625 100644
    --- a/crypto/Makefile
    +++ b/crypto/Makefile
    @@ -12,9 +12,9 @@ obj-$(CONFIG_CRYPTO_AEAD) += aead.o

    crypto_blkcipher-objs := ablkcipher.o
    crypto_blkcipher-objs += blkcipher.o
    +crypto_blkcipher-objs += chainiv.o
    +crypto_blkcipher-objs += eseqiv.o
    obj-$(CONFIG_CRYPTO_BLKCIPHER) += crypto_blkcipher.o
    -obj-$(CONFIG_CRYPTO_BLKCIPHER) += chainiv.o
    -obj-$(CONFIG_CRYPTO_BLKCIPHER) += eseqiv.o
    obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o

    crypto_hash-objs := hash.o
    diff --git a/crypto/ablkcipher.c b/crypto/ablkcipher.c
    index 3bcb099..94140b3 100644
    --- a/crypto/ablkcipher.c
    +++ b/crypto/ablkcipher.c
    @@ -341,6 +341,3 @@ err:
    return ERR_PTR(err);
    }
    EXPORT_SYMBOL_GPL(crypto_alloc_ablkcipher);
    -
    -MODULE_LICENSE("GPL");
    -MODULE_DESCRIPTION("Asynchronous block chaining cipher type");
    diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
    index 4a7e65c..185f955 100644
    --- a/crypto/blkcipher.c
    +++ b/crypto/blkcipher.c
    @@ -696,5 +696,34 @@ void skcipher_geniv_exit(struct crypto_tfm *tfm)
    }
    EXPORT_SYMBOL_GPL(skcipher_geniv_exit);

    +static int __init blkcipher_module_init(void)
    +{
    + int err;
    +
    + err = chainiv_module_init();
    + if (err)
    + goto out;
    +
    + err = eseqiv_module_init();
    + if (err)
    + goto eseqiv_err;
    +
    +out:
    + return err;
    +
    +eseqiv_err:
    + chainiv_module_exit();
    + goto out;
    +}
    +
    +static void __exit blkcipher_module_exit(void)
    +{
    + eseqiv_module_exit();
    + chainiv_module_exit();
    +}
    +
    +module_init(blkcipher_module_init);
    +module_exit(blkcipher_module_exit);
    +
    MODULE_LICENSE("GPL");
    MODULE_DESCRIPTION("Generic block chaining cipher type");
    diff --git a/crypto/chainiv.c b/crypto/chainiv.c
    index d17fa04..0a7cac6 100644
    --- a/crypto/chainiv.c
    +++ b/crypto/chainiv.c
    @@ -314,18 +314,14 @@ static struct crypto_template chainiv_tmpl = {
    .module = THIS_MODULE,
    };

    -static int __init chainiv_module_init(void)
    +int __init chainiv_module_init(void)
    {
    return crypto_register_template(&chainiv_tmpl);
    }
    +EXPORT_SYMBOL_GPL(chainiv_module_init);

    -static void __exit chainiv_module_exit(void)
    +void __exit chainiv_module_exit(void)
    {
    crypto_unregister_template(&chainiv_tmpl);
    }
    -
    -module_init(chainiv_module_init);
    -module_exit(chainiv_module_exit);
    -
    -MODULE_LICENSE("GPL");
    -MODULE_DESCRIPTION("Chain IV Generator");
    +EXPORT_SYMBOL_GPL(chainiv_module_exit);
    diff --git a/crypto/eseqiv.c b/crypto/eseqiv.c
    index eb90d27..6f2cd06 100644
    --- a/crypto/eseqiv.c
    +++ b/crypto/eseqiv.c
    @@ -247,18 +247,14 @@ static struct crypto_template eseqiv_tmpl = {
    .module = THIS_MODULE,
    };

    -static int __init eseqiv_module_init(void)
    +int __init eseqiv_module_init(void)
    {
    return crypto_register_template(&eseqiv_tmpl);
    }
    +EXPORT_SYMBOL_GPL(eseqiv_module_init);

    -static void __exit eseqiv_module_exit(void)
    +void __exit eseqiv_module_exit(void)
    {
    crypto_unregister_template(&eseqiv_tmpl);
    }
    -
    -module_init(eseqiv_module_init);
    -module_exit(eseqiv_module_exit);
    -
    -MODULE_LICENSE("GPL");
    -MODULE_DESCRIPTION("Encrypted Sequence Number IV Generator");
    +EXPORT_SYMBOL_GPL(eseqiv_module_exit);
    diff --git a/include/crypto/internal/skcipher.h b/include/crypto/internal/skcipher.h
    index 2ba42cd..a8f1264 100644
    --- a/include/crypto/internal/skcipher.h
    +++ b/include/crypto/internal/skcipher.h
    @@ -15,6 +15,7 @@

    #include <crypto/algapi.h>
    #include <crypto/skcipher.h>
    +#include <linux/init.h>
    #include <linux/types.h>

    struct rtattr;
    @@ -64,6 +65,11 @@ void skcipher_geniv_free(struct crypto_instance *inst);
    int skcipher_geniv_init(struct crypto_tfm *tfm);
    void skcipher_geniv_exit(struct crypto_tfm *tfm);

    +int __init eseqiv_module_init(void);
    +void __exit eseqiv_module_exit(void);
    +int __init chainiv_module_init(void);
    +void __exit chainiv_module_exit(void);
    +
    static inline struct crypto_ablkcipher *skcipher_geniv_cipher(
    struct crypto_ablkcipher *geniv)
    {

    \
     
     \ /
      Last update: 2008-02-22 13:37    [W:0.028 / U:32.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site