Message ID | 1342524793-2522-1-git-send-email-sedat.dilek@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 17, 2012 at 01:33:13PM +0200, Sedat Dilek wrote: > rand_initialize_irq() was removed here: > > commit 946672f548682905d8ecdab33bb6e2c705418505 > "random: remove rand_initialize_irq()" > > The AB3100 mfd-driver is the only driver still using it and breaks > with the following error-messages in linux-next (next-20120717) Oops. Sorry, I thought I had caught all of the users of rand_initialize_irq(). Thanks for catching this! I'll take your advice and merge it into the original commit. - Ted
On Tue, Jul 17, 2012 at 7:12 PM, Theodore Ts'o <tytso@mit.edu> wrote: > On Tue, Jul 17, 2012 at 01:33:13PM +0200, Sedat Dilek wrote: >> rand_initialize_irq() was removed here: >> >> commit 946672f548682905d8ecdab33bb6e2c705418505 >> "random: remove rand_initialize_irq()" >> >> The AB3100 mfd-driver is the only driver still using it and breaks >> with the following error-messages in linux-next (next-20120717) > > Oops. Sorry, I thought I had caught all of the users of > rand_initialize_irq(). Thanks for catching this! > > I'll take your advice and merge it into the original commit. So the IRQ will be auto-sampled now or something? Sorry for not quite following, which commit do I look at to understand this now... Yours, Linus Walleij
On Tue, Jul 17, 2012 at 08:57:19PM +0200, Linus Walleij wrote: > So the IRQ will be auto-sampled now or something? > > Sorry for not quite following, which commit do I look at to > understand this now... Yes, there was a huge discussion on LKML about two weeks ago. The key commit that will be going in during the next merge window is: http://git.kernel.org/?p=linux/kernel/git/tytso/random.git;a=commitdiff;h=775f4b297b780601e61787b766f306ed3e1d23eb There are a whole lot of other changes, of course, but that's the key change which IRQF_SAMPLE_RANDOM a no-op. People have tested this under extreme conditions (high speed networking tests with no interrupt mitigations, etc.) and the patch as tweaked had no measurable overhead, so we can simply sample every single commit with a low-overhead fast path which uses per-cpu buffers, and then mix into the /dev/random entropy pool less frequently (which is still fast, but requires a few more memory accesses to shared memory that may incur delays due to cache line bounces). - Ted
On Tue, Jul 17, 2012 at 11:42 PM, Theodore Ts'o <tytso@mit.edu> wrote: > On Tue, Jul 17, 2012 at 08:57:19PM +0200, Linus Walleij wrote: >> So the IRQ will be auto-sampled now or something? >> >> Sorry for not quite following, which commit do I look at to >> understand this now... > > Yes, there was a huge discussion on LKML about two weeks ago. The > key commit that will be going in during the next merge window is: > > http://git.kernel.org/?p=linux/kernel/git/tytso/random.git;a=commitdiff;h=775f4b297b780601e61787b766f306ed3e1d23eb I get it now, after checking the commit and reading the LWN article. It's all looking good, Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 5c3e088..1034884 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c @@ -23,7 +23,6 @@ #include <linux/ioport.h> #include <linux/kernel_stat.h> #include <linux/ptrace.h> -#include <linux/random.h> /* for rand_initialize_irq() */ #include <linux/signal.h> #include <linux/smp.h> #include <linux/threads.h> diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c index e799050..78fca29 100644 --- a/drivers/mfd/ab3100-core.c +++ b/drivers/mfd/ab3100-core.c @@ -934,8 +934,6 @@ static int __devinit ab3100_probe(struct i2c_client *client, IRQF_ONESHOT, "ab3100-core", ab3100); if (err) goto exit_no_irq; - /* This real unpredictable IRQ is of course sampled for entropy */ - rand_initialize_irq(client->irq); err = abx500_register_ops(&client->dev, &ab3100_ops); if (err) diff --git a/include/linux/random.h b/include/linux/random.h index 29e217a..ac621ce 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -48,8 +48,6 @@ struct rnd_state { #ifdef __KERNEL__ -extern void rand_initialize_irq(int irq); - extern void add_device_randomness(const void *, unsigned int); extern void add_input_randomness(unsigned int type, unsigned int code, unsigned int value);
rand_initialize_irq() was removed here: commit 946672f548682905d8ecdab33bb6e2c705418505 "random: remove rand_initialize_irq()" The AB3100 mfd-driver is the only driver still using it and breaks with the following error-messages in linux-next (next-20120717): ... drivers/built-in.o: In function `ab3100_probe': ab3100-core.c:(.devinit.text+0xbf97): undefined reference to `rand_initialize_irq' Fix this issue and remove all remaining relicts of rand_initialize_irq(). Might be worth to fold-in these changes into the original commit. Tested against linux-next (next-20120717) on a Ubuntu/precise AMD64 host. [ v2: Polish up subject and commit message ] Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com> --- arch/ia64/kernel/irq_ia64.c | 1 - drivers/mfd/ab3100-core.c | 2 -- include/linux/random.h | 2 -- 3 files changed, 5 deletions(-)