aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/ipmi
diff options
context:
space:
mode:
authorCorey Minyard <minyard@acm.org>2006-10-01 02:28:20 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-01 03:39:26 -0400
commitdf3fe8defedc52745526914e12eb4ba0b8a9f6ca (patch)
tree389280329901ab1e01e4549ca4fb67b6d3c20060 /drivers/char/ipmi
parentdcb9c39236a27c2288a7059aa504abb57427df7c (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.c6
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)) {