mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-04-07 06:44:53 +00:00
random: remove rand_initialize_irq()
With the new interrupt sampling system, we are no longer using the timer_rand_state structure in the irq descriptor, so we can stop initializing it now. [ Merged in fixes from Sedat to find some last missing references to rand_initialize_irq() ] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
This commit is contained in:
parent
27130f0cc3
commit
c5857ccf29
6 changed files with 0 additions and 79 deletions
|
@ -23,7 +23,6 @@
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/kernel_stat.h>
|
#include <linux/kernel_stat.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
#include <linux/random.h> /* for rand_initialize_irq() */
|
|
||||||
#include <linux/signal.h>
|
#include <linux/signal.h>
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/threads.h>
|
#include <linux/threads.h>
|
||||||
|
|
|
@ -634,43 +634,6 @@ struct timer_rand_state {
|
||||||
unsigned dont_count_entropy:1;
|
unsigned dont_count_entropy:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef CONFIG_GENERIC_HARDIRQS
|
|
||||||
|
|
||||||
static struct timer_rand_state *irq_timer_state[NR_IRQS];
|
|
||||||
|
|
||||||
static struct timer_rand_state *get_timer_rand_state(unsigned int irq)
|
|
||||||
{
|
|
||||||
return irq_timer_state[irq];
|
|
||||||
}
|
|
||||||
|
|
||||||
static void set_timer_rand_state(unsigned int irq,
|
|
||||||
struct timer_rand_state *state)
|
|
||||||
{
|
|
||||||
irq_timer_state[irq] = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
static struct timer_rand_state *get_timer_rand_state(unsigned int irq)
|
|
||||||
{
|
|
||||||
struct irq_desc *desc;
|
|
||||||
|
|
||||||
desc = irq_to_desc(irq);
|
|
||||||
|
|
||||||
return desc->timer_rand_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void set_timer_rand_state(unsigned int irq,
|
|
||||||
struct timer_rand_state *state)
|
|
||||||
{
|
|
||||||
struct irq_desc *desc;
|
|
||||||
|
|
||||||
desc = irq_to_desc(irq);
|
|
||||||
|
|
||||||
desc->timer_rand_state = state;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add device- or boot-specific data to the input and nonblocking
|
* Add device- or boot-specific data to the input and nonblocking
|
||||||
* pools to help initialize them to unique values.
|
* pools to help initialize them to unique values.
|
||||||
|
@ -1133,24 +1096,6 @@ static int rand_initialize(void)
|
||||||
}
|
}
|
||||||
module_init(rand_initialize);
|
module_init(rand_initialize);
|
||||||
|
|
||||||
void rand_initialize_irq(int irq)
|
|
||||||
{
|
|
||||||
struct timer_rand_state *state;
|
|
||||||
|
|
||||||
state = get_timer_rand_state(irq);
|
|
||||||
|
|
||||||
if (state)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If kzalloc returns null, we just won't use that entropy
|
|
||||||
* source.
|
|
||||||
*/
|
|
||||||
state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL);
|
|
||||||
if (state)
|
|
||||||
set_timer_rand_state(irq, state);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_BLOCK
|
#ifdef CONFIG_BLOCK
|
||||||
void rand_initialize_disk(struct gendisk *disk)
|
void rand_initialize_disk(struct gendisk *disk)
|
||||||
{
|
{
|
||||||
|
|
|
@ -931,9 +931,6 @@ static int __devinit ab3100_probe(struct i2c_client *client,
|
||||||
|
|
||||||
err = request_threaded_irq(client->irq, NULL, ab3100_irq_handler,
|
err = request_threaded_irq(client->irq, NULL, ab3100_irq_handler,
|
||||||
IRQF_ONESHOT, "ab3100-core", ab3100);
|
IRQF_ONESHOT, "ab3100-core", ab3100);
|
||||||
/* This real unpredictable IRQ is of course sampled for entropy */
|
|
||||||
rand_initialize_irq(client->irq);
|
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
goto exit_no_irq;
|
goto exit_no_irq;
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,6 @@ struct module;
|
||||||
*/
|
*/
|
||||||
struct irq_desc {
|
struct irq_desc {
|
||||||
struct irq_data irq_data;
|
struct irq_data irq_data;
|
||||||
struct timer_rand_state *timer_rand_state;
|
|
||||||
unsigned int __percpu *kstat_irqs;
|
unsigned int __percpu *kstat_irqs;
|
||||||
irq_flow_handler_t handle_irq;
|
irq_flow_handler_t handle_irq;
|
||||||
#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
|
#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
|
||||||
|
|
|
@ -48,8 +48,6 @@ struct rnd_state {
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
extern void rand_initialize_irq(int irq);
|
|
||||||
|
|
||||||
extern void add_device_randomness(const void *, unsigned int);
|
extern void add_device_randomness(const void *, unsigned int);
|
||||||
extern void add_input_randomness(unsigned int type, unsigned int code,
|
extern void add_input_randomness(unsigned int type, unsigned int code,
|
||||||
unsigned int value);
|
unsigned int value);
|
||||||
|
|
|
@ -893,22 +893,6 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
if (!try_module_get(desc->owner))
|
if (!try_module_get(desc->owner))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
/*
|
|
||||||
* Some drivers like serial.c use request_irq() heavily,
|
|
||||||
* so we have to be careful not to interfere with a
|
|
||||||
* running system.
|
|
||||||
*/
|
|
||||||
if (new->flags & IRQF_SAMPLE_RANDOM) {
|
|
||||||
/*
|
|
||||||
* This function might sleep, we want to call it first,
|
|
||||||
* outside of the atomic block.
|
|
||||||
* Yes, this might clear the entropy pool if the wrong
|
|
||||||
* driver is attempted to be loaded, without actually
|
|
||||||
* installing a new handler, but is this really a problem,
|
|
||||||
* only the sysadmin is able to do this.
|
|
||||||
*/
|
|
||||||
rand_initialize_irq(irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check whether the interrupt nests into another interrupt
|
* Check whether the interrupt nests into another interrupt
|
||||||
|
@ -1354,7 +1338,6 @@ EXPORT_SYMBOL(free_irq);
|
||||||
* Flags:
|
* Flags:
|
||||||
*
|
*
|
||||||
* IRQF_SHARED Interrupt is shared
|
* IRQF_SHARED Interrupt is shared
|
||||||
* IRQF_SAMPLE_RANDOM The interrupt can be used for entropy
|
|
||||||
* IRQF_TRIGGER_* Specify active edge(s) or level
|
* IRQF_TRIGGER_* Specify active edge(s) or level
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue