lkml.org 
[lkml]   [2016]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 107/238] mtip32xx: Fix broken service thread handling
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Asai Thambi SP <asamymuthupa@micron.com>

    commit cfc05bd31384c4898bf2437a4de5557f3cf9803a upstream.

    Service thread does not detect the need for taskfile error hanlding. Fixed the
    flag condition to process taskfile error.

    Signed-off-by: Selvan Mani <smani@micron.com>
    Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/block/mtip32xx/mtip32xx.c | 6 +++---
    drivers/block/mtip32xx/mtip32xx.h | 5 +++++
    2 files changed, 8 insertions(+), 3 deletions(-)

    --- a/drivers/block/mtip32xx/mtip32xx.c
    +++ b/drivers/block/mtip32xx/mtip32xx.c
    @@ -2917,9 +2917,7 @@ static int mtip_service_thread(void *dat
    * is in progress nor error handling is active
    */
    wait_event_interruptible(port->svc_wait, (port->flags) &&
    - !(port->flags & MTIP_PF_PAUSE_IO));
    -
    - set_bit(MTIP_PF_SVC_THD_ACTIVE_BIT, &port->flags);
    + (port->flags & MTIP_PF_SVC_THD_WORK));

    if (kthread_should_stop() ||
    test_bit(MTIP_PF_SVC_THD_STOP_BIT, &port->flags))
    @@ -2929,6 +2927,8 @@ static int mtip_service_thread(void *dat
    &dd->dd_flag)))
    goto st_out;

    + set_bit(MTIP_PF_SVC_THD_ACTIVE_BIT, &port->flags);
    +
    restart_eh:
    /* Demux bits: start with error handling */
    if (test_bit(MTIP_PF_EH_ACTIVE_BIT, &port->flags)) {
    --- a/drivers/block/mtip32xx/mtip32xx.h
    +++ b/drivers/block/mtip32xx/mtip32xx.h
    @@ -144,6 +144,11 @@ enum {
    MTIP_PF_REBUILD_BIT = 6,
    MTIP_PF_SVC_THD_STOP_BIT = 8,

    + MTIP_PF_SVC_THD_WORK = ((1 << MTIP_PF_EH_ACTIVE_BIT) |
    + (1 << MTIP_PF_ISSUE_CMDS_BIT) |
    + (1 << MTIP_PF_REBUILD_BIT) |
    + (1 << MTIP_PF_SVC_THD_STOP_BIT)),
    +
    /* below are bit numbers in 'dd_flag' defined in driver_data */
    MTIP_DDF_SEC_LOCK_BIT = 0,
    MTIP_DDF_REMOVE_PENDING_BIT = 1,

    \
     
     \ /
      Last update: 2016-04-10 22:41    [W:4.125 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site