diff options
Diffstat (limited to 'drivers/char/ipmi/ipmi_si_intf.c')
-rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 5eac94cf4ff8..62929a3e397e 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -70,7 +70,8 @@ enum si_intf_state { #define IPMI_BT_INTMASK_CLEAR_IRQ_BIT 2 #define IPMI_BT_INTMASK_ENABLE_IRQ_BIT 1 -static const char * const si_to_str[] = { "invalid", "kcs", "smic", "bt" }; +/* 'invalid' to allow a firmware-specified interface to be disabled */ +const char *const si_to_str[] = { "invalid", "kcs", "smic", "bt", NULL }; static bool initialized; @@ -1169,9 +1170,8 @@ static int smi_start_processing(void *send_info, new_smi->thread = kthread_run(ipmi_thread, new_smi, "kipmi%d", new_smi->si_num); if (IS_ERR(new_smi->thread)) { - dev_notice(new_smi->io.dev, "Could not start" - " kernel thread due to error %ld, only using" - " timers to drive the interface\n", + dev_notice(new_smi->io.dev, + "Could not start kernel thread due to error %ld, only using timers to drive the interface\n", PTR_ERR(new_smi->thread)); new_smi->thread = NULL; } @@ -1223,18 +1223,14 @@ static int smi_num; /* Used to sequence the SMIs */ static const char * const addr_space_to_str[] = { "i/o", "mem" }; module_param_array(force_kipmid, int, &num_force_kipmid, 0); -MODULE_PARM_DESC(force_kipmid, "Force the kipmi daemon to be enabled (1) or" - " disabled(0). Normally the IPMI driver auto-detects" - " this, but the value may be overridden by this parm."); +MODULE_PARM_DESC(force_kipmid, + "Force the kipmi daemon to be enabled (1) or disabled(0). Normally the IPMI driver auto-detects this, but the value may be overridden by this parm."); module_param(unload_when_empty, bool, 0); -MODULE_PARM_DESC(unload_when_empty, "Unload the module if no interfaces are" - " specified or found, default is 1. Setting to 0" - " is useful for hot add of devices using hotmod."); +MODULE_PARM_DESC(unload_when_empty, + "Unload the module if no interfaces are specified or found, default is 1. Setting to 0 is useful for hot add of devices using hotmod."); module_param_array(kipmid_max_busy_us, uint, &num_max_busy_us, 0644); MODULE_PARM_DESC(kipmid_max_busy_us, - "Max time (in microseconds) to busy-wait for IPMI data before" - " sleeping. 0 (default) means to wait forever. Set to 100-500" - " if kipmid is using up a lot of CPU time."); + "Max time (in microseconds) to busy-wait for IPMI data before sleeping. 0 (default) means to wait forever. Set to 100-500 if kipmid is using up a lot of CPU time."); void ipmi_irq_finish_setup(struct si_sm_io *io) { @@ -1270,8 +1266,7 @@ int ipmi_std_irq_setup(struct si_sm_io *io) SI_DEVICE_NAME, io->irq_handler_data); if (rv) { - dev_warn(io->dev, "%s unable to claim interrupt %d," - " running polled\n", + dev_warn(io->dev, "%s unable to claim interrupt %d, running polled\n", SI_DEVICE_NAME, io->irq); io->irq = 0; } else { @@ -1346,10 +1341,8 @@ retry: /* record completion code */ unsigned char cc = *(resp + 2); - if ((cc == IPMI_DEVICE_IN_FW_UPDATE_ERR - || cc == IPMI_DEVICE_IN_INIT_ERR - || cc == IPMI_NOT_IN_MY_STATE_ERR) - && ++retry_count <= GET_DEVICE_ID_MAX_RETRY) { + if (cc != IPMI_CC_NO_ERROR && + ++retry_count <= GET_DEVICE_ID_MAX_RETRY) { dev_warn(smi_info->io.dev, "BMC returned 0x%2.2x, retry get bmc device id\n", cc); @@ -2207,10 +2200,6 @@ static void shutdown_smi(void *send_info) if (smi_info->handlers) smi_info->handlers->cleanup(smi_info->si_sm); - if (smi_info->io.addr_source_cleanup) { - smi_info->io.addr_source_cleanup(&smi_info->io); - smi_info->io.addr_source_cleanup = NULL; - } if (smi_info->io.io_cleanup) { smi_info->io.io_cleanup(&smi_info->io); smi_info->io.io_cleanup = NULL; @@ -2306,5 +2295,4 @@ module_exit(cleanup_ipmi_si); MODULE_ALIAS("platform:dmi-ipmi-si"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Corey Minyard <minyard@mvista.com>"); -MODULE_DESCRIPTION("Interface to the IPMI driver for the KCS, SMIC, and BT" - " system interfaces."); +MODULE_DESCRIPTION("Interface to the IPMI driver for the KCS, SMIC, and BT system interfaces."); |