Index: kernel/kmod.c =================================================================== --- kernel/kmod.c (Revision 9469) +++ kernel/kmod.c (Arbeitskopie) @@ -578,6 +578,10 @@ BUG_ON(atomic_read(&sub_info->cred->usage) != 1); validate_creds(sub_info->cred); + if (!sub_info->path) { + call_usermodehelper_freeinfo(sub_info); + return -EINVAL; + } helper_lock(); if (sub_info->path[0] == '\0') goto out; Index: lib/random32.c =================================================================== --- lib/random32.c (Revision 9469) +++ lib/random32.c (Arbeitskopie) @@ -96,7 +96,7 @@ */ for_each_possible_cpu (i) { struct rnd_state *state = &per_cpu(net_rand_state, i); - state->s1 = __seed(state->s1 ^ entropy, 1); + state->s1 = __seed(state->s1 ^ entropy, 2); } } EXPORT_SYMBOL(srandom32); @@ -113,9 +113,9 @@ struct rnd_state *state = &per_cpu(net_rand_state,i); #define LCG(x) ((x) * 69069) /* super-duper LCG */ - state->s1 = __seed(LCG(i + jiffies), 1); - state->s2 = __seed(LCG(state->s1), 7); - state->s3 = __seed(LCG(state->s2), 15); + state->s1 = __seed(LCG(i + jiffies), 2); + state->s2 = __seed(LCG(state->s1), 8); + state->s3 = __seed(LCG(state->s2), 16); /* "warm it up" */ __random32(state); @@ -142,9 +142,9 @@ u32 seeds[3]; get_random_bytes(&seeds, sizeof(seeds)); - state->s1 = __seed(seeds[0], 1); - state->s2 = __seed(seeds[1], 7); - state->s3 = __seed(seeds[2], 15); + state->s1 = __seed(seeds[0], 2); + state->s2 = __seed(seeds[1], 8); + state->s3 = __seed(seeds[2], 16); /* mix it in */ __random32(state); Index: drivers/block/nbd.c =================================================================== --- drivers/block/nbd.c (Revision 9469) +++ drivers/block/nbd.c (Arbeitskopie) @@ -655,7 +655,9 @@ mutex_unlock(&lo->tx_lock); - thread = kthread_create(nbd_thread, lo, lo->disk->disk_name); + thread = kthread_create(nbd_thread, lo, "%s", + lo->disk->disk_name); + if (IS_ERR(thread)) { mutex_lock(&lo->tx_lock); return PTR_ERR(thread); Index: drivers/char/n_tty.c =================================================================== --- drivers/char/n_tty.c (Revision 9486) +++ drivers/char/n_tty.c (Arbeitskopie) @@ -1969,7 +1969,9 @@ tty->ops->flush_chars(tty); } else { while (nr > 0) { + mutex_lock(&tty->output_lock); c = tty->ops->write(tty, b, nr); + mutex_unlock(&tty->output_lock); if (c < 0) { retval = c; goto break_out;