lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 050/271] s390/qdio: handle PENDING state for QEBSM devices
    Date
    [ Upstream commit 04310324c6f482921c071444833e70fe861b73d9 ]

    When a CQ-enabled device uses QEBSM for SBAL state inspection,
    get_buf_states() can return the PENDING state for an Output Queue.
    get_outbound_buffer_frontier() isn't prepared for this, and any PENDING
    buffer will permanently stall all further completion processing on this
    Queue.

    This isn't a concern for non-QEBSM devices, as get_buf_states() for such
    devices will manually turn PENDING buffers into EMPTY ones.

    Fixes: 104ea556ee7f ("qdio: support asynchronous delivery of storage blocks")
    Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/s390/cio/qdio_main.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
    index 9c7d9da42ba0..4ac4a73037f5 100644
    --- a/drivers/s390/cio/qdio_main.c
    +++ b/drivers/s390/cio/qdio_main.c
    @@ -749,6 +749,7 @@ static int get_outbound_buffer_frontier(struct qdio_q *q)

    switch (state) {
    case SLSB_P_OUTPUT_EMPTY:
    + case SLSB_P_OUTPUT_PENDING:
    /* the adapter got it */
    DBF_DEV_EVENT(DBF_INFO, q->irq_ptr,
    "out empty:%1d %02x", q->nr, count);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-07-24 22:09    [W:4.183 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site