• Harald Freudenberger's avatar
    s390/ap: fix state machine hang after failure to enable irq · cabebb69
    Harald Freudenberger authored
    If for any reason the interrupt enable for an ap queue fails the
    state machine run for the queue returned wrong return codes to the
    caller. So the caller assumed interrupt support for this queue in
    enabled and thus did not re-establish the high resolution timer used
    for polling. In the end this let to a hang for the user space process
    waiting "forever" for the reply.
    
    This patch reworks these return codes to return correct indications
    for the caller to re-establish the timer when a queue runs without
    interrupt support.
    
    Please note that this is fixing a wrong behavior after a first
    failure (enable interrupt support for the queue) failed. However,
    looks like this occasionally happens on KVM systems.
    Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    cabebb69
ap_queue.c 23.8 KB