diff options
author | Corey Minyard <minyard@acm.org> | 2006-10-01 02:28:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 03:39:26 -0400 |
commit | df3fe8defedc52745526914e12eb4ba0b8a9f6ca (patch) | |
tree | 389280329901ab1e01e4549ca4fb67b6d3c20060 /drivers/char/ipmi | |
parent | dcb9c39236a27c2288a7059aa504abb57427df7c (diff) |
[PATCH] ipmi: don't start kipmid if the IPMI driver can use interrupts
If the driver has interrupts available to it, there is really no reason to
have a kernel daemon push the IPMI state machine.
Note that I have experienced machines where the interrupts do not work
correctly. This was a long time ago and hopefully things are better now.
If some machines still have broken interrupts, a blacklist will need to be
added.
Signed-off-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/ipmi')
-rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index abca98beac14..908521e36d81 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -916,7 +916,11 @@ static int smi_start_processing(void *send_info, | |||
916 | new_smi->last_timeout_jiffies = jiffies; | 916 | new_smi->last_timeout_jiffies = jiffies; |
917 | mod_timer(&new_smi->si_timer, jiffies + SI_TIMEOUT_JIFFIES); | 917 | mod_timer(&new_smi->si_timer, jiffies + SI_TIMEOUT_JIFFIES); |
918 | 918 | ||
919 | if (new_smi->si_type != SI_BT) { | 919 | /* |
920 | * The BT interface is efficient enough to not need a thread, | ||
921 | * and there is no need for a thread if we have interrupts. | ||
922 | */ | ||
923 | if ((new_smi->si_type != SI_BT) && (!new_smi->irq)) { | ||
920 | new_smi->thread = kthread_run(ipmi_thread, new_smi, | 924 | new_smi->thread = kthread_run(ipmi_thread, new_smi, |
921 | "kipmi%d", new_smi->intf_num); | 925 | "kipmi%d", new_smi->intf_num); |
922 | if (IS_ERR(new_smi->thread)) { | 926 | if (IS_ERR(new_smi->thread)) { |