File tree Expand file tree Collapse file tree 3 files changed +15
-5
lines changed
Expand file tree Collapse file tree 3 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ namespace IPMI
6262 CHASSIS_POWER_OFF = 0x00 ,
6363 CHASSIS_POWER_SOFT_RESET = 0x01 ,
6464 CHASSIS_POWER_CYCLE = 0x02 ,
65+ CHASSIS_POWER_RESET = 0x03 ,
6566 };
6667
6768 // Used in the factory for creating the proper subclass.
Original file line number Diff line number Diff line change @@ -317,6 +317,15 @@ namespace IPMI
317317 "completion code %x" ,
318318 iv_netfun , iv_cmd , iv_seq , iv_cc );
319319
320+ if (iv_cc == IPMI ::CC_CMDSPC1 )
321+ {
322+ // We got a completion code with 0x80, which is no data
323+ // Let's trace the event, but not log an error.
324+ IPMI_TRAC (ERR_MRK "SEL returned with no data, not logging "
325+ "an error" );
326+ break ;
327+ }
328+
320329 /* @errorlog tag
321330 * @errortype ERRL_SEV_INFORMATIONAL
322331 * @moduleid IPMI::MOD_IPMISRV_REPLY
@@ -338,7 +347,7 @@ namespace IPMI
338347 errlCommit (err , IPMI_COMP_ID );
339348 break ;
340349 }
341-
350+
342351 // Before we self destruct, we need to turn the data collected in to
343352 // a record we can pass to the waiting event handler.
344353 Singleton < IpmiRP > ::instance ().postEvent (new IPMI ::oemSEL (iv_data ));
Original file line number Diff line number Diff line change @@ -438,13 +438,13 @@ void IpmiRP::handlePowerMessage( IPMI::oemSEL* i_event )
438438#endif
439439
440440 }
441- // If the event type is a power soft reset aka power cycle
441+ // If the event type is a power soft reset, send a chasis reset
442442 // update the modifier to send to the BMC
443443 else if ( i_event -> iv_cmd [1 ] == IPMI ::CHASSIS_POWER_SOFT_RESET )
444444 {
445- // handle the message as a power cycle request
446- IPMI_TRAC ("IPMI power cycle request received" );
447- iv_chassis_power_mod = IPMI ::CHASSIS_POWER_CYCLE ;
445+ // handle the message as a power reset request
446+ IPMI_TRAC ("IPMI power reset request received" );
447+ iv_chassis_power_mod = IPMI ::CHASSIS_POWER_RESET ;
448448#ifdef CONFIG_CONSOLE
449449 CONSOLE ::displayf (NULL , "IPMI: power cycle requested" );
450450 CONSOLE ::flush ();
You can’t perform that action at this time.
0 commit comments