• Andrew Jeffery's avatar
    mboxd: Broadcast the daemon is ready on all transports · fe0c9e86
    Andrew Jeffery authored
    
    
    The code as it stood only sent the state update at startup on the active
    transport, which is somewhat arbitrarily chosen as an implementation
    detail of the mbox initialisation function.
    
    If the host firmware is using IPMI, it will not learn of the update
    unless it attempts to contact mboxd, which it won't do if it knows the
    daemon isn't there, which it may have learned of by receiving a state
    update from the daemon's shutdown path. In this circumstance the host
    firmware is now stuck.
    
    Relieve the host firmware of this problem by always sending the daemon
    state on all supported transports. To avoid some insanity we introduce a
    new callback in struct transport_ops that allows use to send the BMC's
    entire event state rather than just set or clear updates.
    
    Change-Id: I094ff4089eeebd8be99fbd343b94f7bbef023fb1
    Signed-off-by: Andrew Jeffery's avatarAndrew Jeffery <andrew@aj.id.au>
    fe0c9e86
protocol.c 14.2 KB