mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
ata: sata_fsl: fix scsi host initialization
When compiling with W=1, the sata_fsl driver compilation throws the warning: drivers/ata/sata_fsl.c:1385:22: error: initialized field overwritten [-Werror=override-init] 1385 | .can_queue = SATA_FSL_QUEUE_DEPTH, This is due to the driver scsi host template initialization overwriting the can_queue field that is already set using the ATA_NCQ_SHT() initializer macro, resulting in the same field being initialized twice in the host template declaration. To remove this warning, introduce the ATA_SUBBASE_SHT_QD() and ATA_NCQ_SHT_QD() initialization macros to allow specifying a queue depth different from the default ATA_DEF_QUEUE using an additional argument to the macro. Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Reviewed-by: Hannes Reinecke <hare@suse.de>
This commit is contained in:
parent
a3d11c275b
commit
e5b48ee30a
2 changed files with 12 additions and 2 deletions
|
@ -1380,8 +1380,7 @@ static void sata_fsl_host_stop(struct ata_host *host)
|
||||||
* scsi mid-layer and libata interface structures
|
* scsi mid-layer and libata interface structures
|
||||||
*/
|
*/
|
||||||
static struct scsi_host_template sata_fsl_sht = {
|
static struct scsi_host_template sata_fsl_sht = {
|
||||||
ATA_NCQ_SHT("sata_fsl"),
|
ATA_NCQ_SHT_QD("sata_fsl", SATA_FSL_QUEUE_DEPTH),
|
||||||
.can_queue = SATA_FSL_QUEUE_DEPTH,
|
|
||||||
.sg_tablesize = SATA_FSL_MAX_PRD_USABLE,
|
.sg_tablesize = SATA_FSL_MAX_PRD_USABLE,
|
||||||
.dma_boundary = ATA_DMA_BOUNDARY,
|
.dma_boundary = ATA_DMA_BOUNDARY,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1385,6 +1385,12 @@ extern const struct attribute_group *ata_common_sdev_groups[];
|
||||||
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
||||||
.slave_configure = ata_scsi_slave_config
|
.slave_configure = ata_scsi_slave_config
|
||||||
|
|
||||||
|
#define ATA_SUBBASE_SHT_QD(drv_name, drv_qd) \
|
||||||
|
__ATA_BASE_SHT(drv_name), \
|
||||||
|
.can_queue = drv_qd, \
|
||||||
|
.tag_alloc_policy = BLK_TAG_ALLOC_RR, \
|
||||||
|
.slave_configure = ata_scsi_slave_config
|
||||||
|
|
||||||
#define ATA_BASE_SHT(drv_name) \
|
#define ATA_BASE_SHT(drv_name) \
|
||||||
ATA_SUBBASE_SHT(drv_name), \
|
ATA_SUBBASE_SHT(drv_name), \
|
||||||
.sdev_groups = ata_common_sdev_groups
|
.sdev_groups = ata_common_sdev_groups
|
||||||
|
@ -1396,6 +1402,11 @@ extern const struct attribute_group *ata_ncq_sdev_groups[];
|
||||||
ATA_SUBBASE_SHT(drv_name), \
|
ATA_SUBBASE_SHT(drv_name), \
|
||||||
.sdev_groups = ata_ncq_sdev_groups, \
|
.sdev_groups = ata_ncq_sdev_groups, \
|
||||||
.change_queue_depth = ata_scsi_change_queue_depth
|
.change_queue_depth = ata_scsi_change_queue_depth
|
||||||
|
|
||||||
|
#define ATA_NCQ_SHT_QD(drv_name, drv_qd) \
|
||||||
|
ATA_SUBBASE_SHT_QD(drv_name, drv_qd), \
|
||||||
|
.sdev_groups = ata_ncq_sdev_groups, \
|
||||||
|
.change_queue_depth = ata_scsi_change_queue_depth
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue