• Harald Freudenberger's avatar
    s390/ap: Rework ap_dqap to deal with messages greater than recv buffer · 1f0d22de
    Harald Freudenberger authored
    Rework of the ap_dqap() inline function with the dqap inline assembler
    invocation and the caller code in ap_queue.c to be able to handle
    replies which exceed the receive buffer size.
    
    ap_dqap() now provides two additional parameters to handle together
    with the caller the case where a reply in the firmware queue entry
    exceeds the given message buffer size. It depends on the caller how to
    exactly handle this. The behavior implemented now by ap_sm_recv() in
    ap_queue.c is to simple purge this entry from the firmware queue and
    let the caller 'receive' a -EMSGSIZE for the request without
    delivering any reply data - not even a truncated reply message.
    
    However, the reworked ap_dqap() could now get invoked in a way that
    the message is received in multiple parts and the caller assembles the
    parts into one reply message.
    Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
    Suggested-by: default avatarJuergen Christ <jchrist@linux.ibm.com>
    Reviewed-by: default avatarJuergen Christ <jchrist@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    1f0d22de
ap_queue.c 23.8 KB