Skip to content

Commit c2896de

Browse files
committed
Merge branch 'ipmi' (emailed ipmi fixes)
Merge ipmi fixes from Corey Minyard: "Things collected since last kernel release. Some of these are pretty important. The first three are bug fixes. The next two are to hopefully make everyone happy about allowing ACPI to be on all the time and not have IPMI have an effect on the system when not in use. The last is a little cleanup" * emailed patches from Corey Minyard <[email protected]>: ipmi: boolify some things ipmi: Turn off all activity on an idle ipmi interface ipmi: Turn off default probing of interfaces ipmi: Reset the KCS timeout when starting error recovery ipmi: Fix a race restarting the timer Char: ipmi_bt_sm, fix infinite loop
2 parents 88764e0 + 7aefac2 commit c2896de

File tree

7 files changed

+261
-155
lines changed

7 files changed

+261
-155
lines changed

drivers/char/ipmi/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@ config IPMI_SI
5050
Currently, only KCS and SMIC are supported. If
5151
you are using IPMI, you should probably say "y" here.
5252

53+
config IPMI_SI_PROBE_DEFAULTS
54+
bool 'Probe for all possible IPMI system interfaces by default'
55+
default n
56+
depends on IPMI_SI
57+
help
58+
Modern systems will usually expose IPMI interfaces via a discoverable
59+
firmware mechanism such as ACPI or DMI. Older systems do not, and so
60+
the driver is forced to probe hardware manually. This may cause boot
61+
delays. Say "n" here to disable this manual probing. IPMI will then
62+
only be available on older systems if the "ipmi_si_intf.trydefaults=1"
63+
boot argument is passed.
64+
5365
config IPMI_WATCHDOG
5466
tristate 'IPMI Watchdog Timer'
5567
help

drivers/char/ipmi/ipmi_bt_sm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ static inline void write_all_bytes(struct si_sm_data *bt)
352352

353353
static inline int read_all_bytes(struct si_sm_data *bt)
354354
{
355-
unsigned char i;
355+
unsigned int i;
356356

357357
/*
358358
* length is "framing info", minimum = 4: NetFn, Seq, Cmd, cCode.

drivers/char/ipmi/ipmi_kcs_sm.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,9 @@ static inline int check_obf(struct si_sm_data *kcs, unsigned char status,
251251
if (!GET_STATUS_OBF(status)) {
252252
kcs->obf_timeout -= time;
253253
if (kcs->obf_timeout < 0) {
254-
start_error_recovery(kcs, "OBF not ready in time");
255-
return 1;
254+
kcs->obf_timeout = OBF_RETRY_TIMEOUT;
255+
start_error_recovery(kcs, "OBF not ready in time");
256+
return 1;
256257
}
257258
return 0;
258259
}

0 commit comments

Comments
 (0)