• John Garry's avatar
    libata: Improve ATA queued command allocation · 4f1a22ee
    John Garry authored
    Improve ATA queued command allocation as follows:
    
    - For attaining a qc tag for a SAS host we need to allocate a bit in
      ata_port.sas_tag_allocated bitmap.
    
      However we already have a unique tag per device in range
      [0, ATA_MAX_QUEUE -1] in the scsi cmnd budget token, so just use that
      instead.
    
    - It is a bit pointless to have ata_qc_new_init() in libata-core.c since it
      pokes scsi internals, so inline it in ata_scsi_qc_new() (in
      libata-scsi.c). Also update Doc accordingly.
    
    - Use standard SCSI helpers set_host_byte() and set_status_byte() in
      ata_scsi_qc_new().
    
    Christoph Hellwig originally contributed the change to inline
    ata_qc_new_init().
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
    4f1a22ee
libata-sata.c 37.3 KB