@@ -347,6 +347,7 @@ static struct scsi_host_template ahci_sht = {
.dma_boundary = AHCI_DMA_BOUNDARY,
.shost_attrs = ahci_shost_attrs,
.sdev_attrs = ahci_sdev_attrs,
+ .hotpluggable = 1,
};
static struct ata_port_operations ahci_ops = {
@@ -1252,6 +1252,7 @@ static struct scsi_host_template sata_fsl_sht = {
.can_queue = SATA_FSL_QUEUE_DEPTH,
.sg_tablesize = SATA_FSL_MAX_PRD_USABLE,
.dma_boundary = ATA_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static struct ata_port_operations sata_fsl_ops = {
@@ -234,6 +234,7 @@ static struct scsi_host_template inic_sht = {
ATA_BASE_SHT(DRV_NAME),
.sg_tablesize = LIBATA_MAX_PRD, /* maybe it can be larger? */
.dma_boundary = INIC_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static const int scr_map[] = {
@@ -647,6 +647,7 @@ static struct scsi_host_template mv5_sht = {
ATA_BASE_SHT(DRV_NAME),
.sg_tablesize = MV_MAX_SG_CT / 2,
.dma_boundary = MV_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static struct scsi_host_template mv6_sht = {
@@ -654,6 +655,7 @@ static struct scsi_host_template mv6_sht = {
.can_queue = MV_MAX_Q_DEPTH - 1,
.sg_tablesize = MV_MAX_SG_CT / 2,
.dma_boundary = MV_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static struct ata_port_operations mv5_ops = {
@@ -388,6 +388,7 @@ static struct pci_driver nv_pci_driver = {
static struct scsi_host_template nv_sht = {
ATA_BMDMA_SHT(DRV_NAME),
+ .hotpluggable = 1,
};
static struct scsi_host_template nv_adma_sht = {
@@ -396,6 +397,7 @@ static struct scsi_host_template nv_adma_sht = {
.sg_tablesize = NV_ADMA_SGTBL_TOTAL_LEN,
.dma_boundary = NV_ADMA_DMA_BOUNDARY,
.slave_configure = nv_adma_slave_config,
+ .hotpluggable = 1,
};
static struct scsi_host_template nv_swncq_sht = {
@@ -404,6 +406,7 @@ static struct scsi_host_template nv_swncq_sht = {
.sg_tablesize = LIBATA_MAX_PRD,
.dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = nv_swncq_slave_config,
+ .hotpluggable = 1,
};
/*
@@ -166,6 +166,7 @@ static struct scsi_host_template pdc_ata_sht = {
ATA_BASE_SHT(DRV_NAME),
.sg_tablesize = PDC_MAX_PRD,
.dma_boundary = ATA_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static const struct ata_port_operations pdc_common_ops = {
@@ -130,6 +130,7 @@ static struct scsi_host_template qs_ata_sht = {
ATA_BASE_SHT(DRV_NAME),
.sg_tablesize = QS_MAX_PRD,
.dma_boundary = QS_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static struct ata_port_operations qs_ata_ops = {
@@ -179,7 +179,8 @@ static struct scsi_host_template sil_sht = {
transfer chunks up to 2GB and which cross 64KB boundaries,
therefore the DMA limits are more relaxed than standard ATA SFF. */
.dma_boundary = SIL_DMA_BOUNDARY,
- .sg_tablesize = ATA_MAX_PRD
+ .sg_tablesize = ATA_MAX_PRD,
+ .hotpluggable = 1,
};
static struct ata_port_operations sil_ops = {
@@ -386,6 +386,7 @@ static struct scsi_host_template sil24_sht = {
.can_queue = SIL24_MAX_CMDS,
.sg_tablesize = SIL24_MAX_SGE,
.dma_boundary = ATA_DMA_BOUNDARY,
+ .hotpluggable = 1,
};
static struct ata_port_operations sil24_ops = {
@@ -87,6 +87,7 @@ static struct pci_driver sis_pci_driver = {
static struct scsi_host_template sis_sht = {
ATA_BMDMA_SHT(DRV_NAME),
+ .hotpluggable = 1,
};
static struct ata_port_operations sis_ops = {
@@ -341,6 +341,7 @@ static struct scsi_host_template k2_sata_sht = {
#ifdef CONFIG_PPC_OF
.proc_info = k2_sata_proc_info,
#endif
+ .hotpluggable = 1,
};
@@ -77,6 +77,7 @@ static struct pci_driver uli_pci_driver = {
static struct scsi_host_template uli_sht = {
ATA_BMDMA_SHT(DRV_NAME),
+ .hotpluggable = 1,
};
static struct ata_port_operations uli_ops = {
@@ -111,6 +111,7 @@ static struct pci_driver svia_pci_driver = {
static struct scsi_host_template svia_sht = {
ATA_BMDMA_SHT(DRV_NAME),
+ .hotpluggable = 1,
};
static struct ata_port_operations svia_base_ops = {
@@ -303,6 +303,7 @@ out:
static struct scsi_host_template vsc_sata_sht = {
ATA_BMDMA_SHT(DRV_NAME),
+ .hotpluggable = 1,
};
SATA is generally hotpluggable, though some controllers don't expose enough information to make it possible. Flag most SATA controllers as supporting hotplug, leaving the remaining ones (ich in PIIX mode, Promise SX4, Pacific Digital Talon) marked as not supporting it. Signed-off-by: Matthew Garrett <mjg@redhat.com> --- drivers/ata/ahci.c | 1 + drivers/ata/sata_fsl.c | 1 + drivers/ata/sata_inic162x.c | 1 + drivers/ata/sata_mv.c | 2 ++ drivers/ata/sata_nv.c | 3 +++ drivers/ata/sata_promise.c | 1 + drivers/ata/sata_qstor.c | 1 + drivers/ata/sata_sil.c | 3 ++- drivers/ata/sata_sil24.c | 1 + drivers/ata/sata_sis.c | 1 + drivers/ata/sata_svw.c | 1 + drivers/ata/sata_uli.c | 1 + drivers/ata/sata_via.c | 1 + drivers/ata/sata_vsc.c | 1 + 14 files changed, 18 insertions(+), 1 deletions(-)