Patch "scsi: NCR5380: Add disconnect_mask module parameter" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: NCR5380: Add disconnect_mask module parameter

to the 4.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-ncr5380-add-disconnect_mask-module-parameter.patch
and it can be found in the queue-4.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e6f41f8528078d40665c8bbf2a0669950eedef67
Author: Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx>
Date:   Sat Nov 16 14:36:57 2019 +1100

    scsi: NCR5380: Add disconnect_mask module parameter
    
    [ Upstream commit 0b7a223552d455bcfba6fb9cfc5eef2b5fce1491 ]
    
    Add a module parameter to inhibit disconnect/reselect for individual
    targets. This gains compatibility with Aztec PowerMonster SCSI/SATA
    adapters with buggy firmware. (No fix is available from the vendor.)
    
    Apparently these adapters pass-through the product/vendor of the attached
    SATA device. Since they can't be identified from the response to an INQUIRY
    command, a device blacklist flag won't work.
    
    Cc: Michael Schmitz <schmitzmic@xxxxxxxxx>
    Link: https://lore.kernel.org/r/993b17545990f31f9fa5a98202b51102a68e7594.1573875417.git.fthain@xxxxxxxxxxxxxxxxxxx
    Reviewed-and-tested-by: Michael Schmitz <schmitzmic@xxxxxxxxx>
    Signed-off-by: Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 8ec68dcc0cc4..95a3e3bf2b43 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -129,6 +129,9 @@
 #define NCR5380_release_dma_irq(x)
 #endif
 
+static unsigned int disconnect_mask = ~0;
+module_param(disconnect_mask, int, 0444);
+
 static int do_abort(struct Scsi_Host *);
 static void do_reset(struct Scsi_Host *);
 static void bus_reset_cleanup(struct Scsi_Host *);
@@ -946,7 +949,8 @@ static bool NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd)
 	int err;
 	bool ret = true;
 	bool can_disconnect = instance->irq != NO_IRQ &&
-			      cmd->cmnd[0] != REQUEST_SENSE;
+			      cmd->cmnd[0] != REQUEST_SENSE &&
+			      (disconnect_mask & BIT(scmd_id(cmd)));
 
 	NCR5380_dprint(NDEBUG_ARBITRATION, instance);
 	dsprintk(NDEBUG_ARBITRATION, instance, "starting arbitration, id = %d\n",



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux