• Jesse Larrew's avatar
    powerpc/pseries: Add PRRN RTAS event handler · 49c68a85
    Jesse Larrew authored
    
    
    A PRRN event is signaled via the RTAS event-scan mechanism, which
    returns a Hot Plug Event message "fixed part" indicating "Platform
    Resource Reassignment". In response to the Hot Plug Event message,
    we must call ibm,update-nodes to determine which resources were
    reassigned and then ibm,update-properties to obtain the new affinity
    information about those resources.
    
    The PRRN event-scan RTAS message contains only the "fixed part" with
    the "Type" field set to the value 160 and no Extended Event Log. The
    four-byte Extended Event Log Length field is re-purposed (since no
    Extended Event Log message is included) to pass the "scope" parameter
    that causes the ibm,update-nodes to return the nodes affected by the
    specific resource reassignment.
    
    This patch adds a handler for RTAS events. The function
    pseries_devicetree_update() (from mobility.c) is used to make the
    ibm,update-nodes/ibm,update-properties RTAS calls. Updating the NUMA maps
    (handled by a subsequent patch) will require significant processing,
    so pseries_devicetree_update() is called from an asynchronous workqueue
    to allow event processing to continue.
    
    PRRN RTAS events on pseries systems are rare events that have to be
    initiated from the HMC console for the system by an IBM tech. This allows
    us to assume that these events are widely spaced. Additionally, all work
    on the queue is flushed before handling any new work to ensure we only have
    one event in flight being handled at a time.
    
    Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    49c68a85