lkml.org 
[lkml]   [2015]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v3 61/77] ncr5380: Fix EH during arbitration and selection
    From
    Date
    On 12/22/2015 02:18 AM, Finn Thain wrote:
    > During arbitration and selection, the relevant command is invisible to
    > exception handlers and can be found only in a pointer on the stack of a
    > different thread.
    >
    > When eh_abort_handler can't find a given command, it can't decide whether
    > that command was completed already or is still in arbitration or selection
    > phase. But it must return either SUCCESS (e.g. command completed earlier)
    > or FAILED (could not abort the nexus, try bus reset).
    >
    > The solution is to make sure all commands belonging to the LLD are always
    > visible to exception handlers. Add another scsi_cmnd pointer to the
    > hostdata struct to track the command in arbitration or selection phase.
    >
    > Replace 'retain_dma_irq' with the new 'selecting' pointer, to bring
    > atari_NCR5380.c into line with NCR5380.c.
    >
    > Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    >
    > ---
    > drivers/scsi/NCR5380.c | 76 +++++++++++++++++++++++++++++----------
    > drivers/scsi/NCR5380.h | 4 +-
    > drivers/scsi/atari_NCR5380.c | 82 +++++++++++++++++++++++++++++++------------
    > 3 files changed, 119 insertions(+), 43 deletions(-)
    >
    Reviewed-by: Hannes Reinecke <hare@suse.com>

    Cheers,

    Hannes
    --
    Dr. Hannes Reinecke zSeries & Storage
    hare@suse.de +49 911 74053 688
    SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
    GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)


    \
     
     \ /
      Last update: 2015-12-22 09:21    [W:3.102 / U:0.880 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site