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

Herbert Xu
2007-05-09T03:03:39Z

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;
_