• Damien Le Moal's avatar
    ata: libata-scsi: Fix initialization of device queue depth · 6a8438de
    Damien Le Moal authored
    For SATA devices supporting NCQ, drivers using libsas first initialize a
    scsi device queue depth based on the controller and device capabilities,
    leading to the scsi device queue_depth field being 32 (ATA maximum queue
    depth) for most setup. However, if libata was loaded using the
    force=[ID]]noncq argument, the default queue depth should be set to 1 to
    reflect the fact that queuable commands will never be used. This is
    consistent with manually setting a device queue depth to 1 through sysfs
    as that disables NCQ use for the device.
    
    Fix ata_scsi_dev_config() to honor the noncq parameter by sertting the
    device queue depth to 1 for devices that do not have the ATA_DFLAG_NCQ
    flag set.
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
    Tested-by: default avatarJohn Garry <john.garry@huawei.com>
    6a8438de
libata-scsi.c 114 KB