Re: 2.6.21-mm1 and now 2.6.21-git: SLUB Crashes on boot - crypto?

Kevin Winchester
2007-05-10T11:11:08Z

On 5/9/07, Herbert Xu <herbert@gondor.apana.org.au> wrote:
> On Tue, May 08, 2007 at 09:58:09PM -0300, Kevin Winchester wrote:
> >
> > Not having any idea what I'm doing, I looked at cryptomgr_probe and
> > cryptomgr_notify, and can't seem to see much, except for the following
> > odd lines.
> >
> > From cryptomgr_schedule_probe, which is almost certainly inlined into
> > crypto_notify:
>
> Thanks for reporting this. This patch should fix the problem.
>
> Cheers,
> --
> 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 -puN crypto/cryptomgr.c~crypto-fix crypto/cryptomgr.c
> --- a/crypto/cryptomgr.c~crypto-fix
> +++ a/crypto/cryptomgr.c
> @@ -24,8 +24,6 @@
> #include "internal.h"
>
> struct cryptomgr_param {
> - struct task_struct *thread;
> -
> struct rtattr *tb[CRYPTOA_MAX];
>
> struct {
> @@ -81,6 +79,7 @@ err:
>
> static int cryptomgr_schedule_probe(struct crypto_larval *larval)
> {
> + struct task_struct *thread;
> struct cryptomgr_param *param;
> const char *name = larval->alg.cra_name;
> const char *p;
> @@ -130,8 +129,8 @@ static int cryptomgr_schedule_probe(stru
>
> memcpy(param->larval.name, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME);
>
> - param->thread = kthread_run(cryptomgr_probe, param, "cryptomgr");
> - if (IS_ERR(param->thread))
> + thread = kthread_run(cryptomgr_probe, param, "cryptomgr");
> + if (IS_ERR(thread))
> goto err_free_param;
>
> return NOTIFY_STOP;
> _
>

I see that this patch made it in to mainline, and latest -git now
works for me, so I assume this was the correct solution. I thought I
had tried this exact change without success when I was looking at the
problem, but I guess I did something wrong along the way.

Thanks for the fix,
Kevin