Commit afdfe899 authored by Tejun Heo's avatar Tejun Heo

[PATCH] libata: add missing sht->slave_destroy

Many LLDs are missing sht->slave_destroy.  The method is mandatory to
support device warm unplugging (echo 1 > /sys/.../delete).  Without
it, libata might access released scsi device.
Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
parent 41669553
...@@ -116,6 +116,7 @@ static struct scsi_host_template generic_sht = { ...@@ -116,6 +116,7 @@ static struct scsi_host_template generic_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -346,6 +346,7 @@ static struct scsi_host_template ali_sht = { ...@@ -346,6 +346,7 @@ static struct scsi_host_template ali_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -333,6 +333,7 @@ static struct scsi_host_template amd_sht = { ...@@ -333,6 +333,7 @@ static struct scsi_host_template amd_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -314,6 +314,7 @@ static struct scsi_host_template artop_sht = { ...@@ -314,6 +314,7 @@ static struct scsi_host_template artop_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -216,6 +216,7 @@ static struct scsi_host_template atiixp_sht = { ...@@ -216,6 +216,7 @@ static struct scsi_host_template atiixp_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -275,6 +275,7 @@ static struct scsi_host_template cmd64x_sht = { ...@@ -275,6 +275,7 @@ static struct scsi_host_template cmd64x_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -166,6 +166,7 @@ static struct scsi_host_template cs5520_sht = { ...@@ -166,6 +166,7 @@ static struct scsi_host_template cs5520_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -180,6 +180,7 @@ static struct scsi_host_template cs5530_sht = { ...@@ -180,6 +180,7 @@ static struct scsi_host_template cs5530_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -184,6 +184,7 @@ static struct scsi_host_template cs5535_sht = { ...@@ -184,6 +184,7 @@ static struct scsi_host_template cs5535_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -135,6 +135,7 @@ static struct scsi_host_template cy82c693_sht = { ...@@ -135,6 +135,7 @@ static struct scsi_host_template cy82c693_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -233,6 +233,7 @@ static struct scsi_host_template efar_sht = { ...@@ -233,6 +233,7 @@ static struct scsi_host_template efar_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -329,6 +329,7 @@ static struct scsi_host_template hpt36x_sht = { ...@@ -329,6 +329,7 @@ static struct scsi_host_template hpt36x_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -775,6 +775,7 @@ static struct scsi_host_template hpt37x_sht = { ...@@ -775,6 +775,7 @@ static struct scsi_host_template hpt37x_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -341,6 +341,7 @@ static struct scsi_host_template hpt3x2n_sht = { ...@@ -341,6 +341,7 @@ static struct scsi_host_template hpt3x2n_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -118,6 +118,7 @@ static struct scsi_host_template hpt3x3_sht = { ...@@ -118,6 +118,7 @@ static struct scsi_host_template hpt3x3_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -34,6 +34,7 @@ static struct scsi_host_template isapnp_sht = { ...@@ -34,6 +34,7 @@ static struct scsi_host_template isapnp_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -675,6 +675,7 @@ static struct scsi_host_template it821x_sht = { ...@@ -675,6 +675,7 @@ static struct scsi_host_template it821x_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -136,6 +136,7 @@ static struct scsi_host_template jmicron_sht = { ...@@ -136,6 +136,7 @@ static struct scsi_host_template jmicron_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
/* Use standard CHS mapping rules */ /* Use standard CHS mapping rules */
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -135,6 +135,7 @@ static struct scsi_host_template legacy_sht = { ...@@ -135,6 +135,7 @@ static struct scsi_host_template legacy_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -166,6 +166,7 @@ static struct scsi_host_template mpiix_sht = { ...@@ -166,6 +166,7 @@ static struct scsi_host_template mpiix_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -62,6 +62,7 @@ static struct scsi_host_template netcell_sht = { ...@@ -62,6 +62,7 @@ static struct scsi_host_template netcell_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
/* Use standard CHS mapping rules */ /* Use standard CHS mapping rules */
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -156,6 +156,7 @@ static struct scsi_host_template ns87410_sht = { ...@@ -156,6 +156,7 @@ static struct scsi_host_template ns87410_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -231,6 +231,7 @@ static struct scsi_host_template oldpiix_sht = { ...@@ -231,6 +231,7 @@ static struct scsi_host_template oldpiix_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -202,6 +202,7 @@ static struct scsi_host_template opti_sht = { ...@@ -202,6 +202,7 @@ static struct scsi_host_template opti_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -359,6 +359,7 @@ static struct scsi_host_template optidma_sht = { ...@@ -359,6 +359,7 @@ static struct scsi_host_template optidma_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -69,6 +69,7 @@ static struct scsi_host_template pcmcia_sht = { ...@@ -69,6 +69,7 @@ static struct scsi_host_template pcmcia_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -141,6 +141,7 @@ static struct scsi_host_template pdc2027x_sht = { ...@@ -141,6 +141,7 @@ static struct scsi_host_template pdc2027x_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -269,6 +269,7 @@ static struct scsi_host_template pdc_sht = { ...@@ -269,6 +269,7 @@ static struct scsi_host_template pdc_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -164,6 +164,7 @@ static struct scsi_host_template qdi_sht = { ...@@ -164,6 +164,7 @@ static struct scsi_host_template qdi_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -227,6 +227,7 @@ static struct scsi_host_template radisys_sht = { ...@@ -227,6 +227,7 @@ static struct scsi_host_template radisys_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -90,6 +90,7 @@ static struct scsi_host_template rz1000_sht = { ...@@ -90,6 +90,7 @@ static struct scsi_host_template rz1000_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -193,6 +193,7 @@ static struct scsi_host_template sc1200_sht = { ...@@ -193,6 +193,7 @@ static struct scsi_host_template sc1200_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -325,6 +325,7 @@ static struct scsi_host_template serverworks_sht = { ...@@ -325,6 +325,7 @@ static struct scsi_host_template serverworks_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -225,6 +225,7 @@ static struct scsi_host_template sil680_sht = { ...@@ -225,6 +225,7 @@ static struct scsi_host_template sil680_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -545,6 +545,7 @@ static struct scsi_host_template sis_sht = { ...@@ -545,6 +545,7 @@ static struct scsi_host_template sis_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -237,6 +237,7 @@ static struct scsi_host_template sl82c105_sht = { ...@@ -237,6 +237,7 @@ static struct scsi_host_template sl82c105_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -192,6 +192,7 @@ static struct scsi_host_template triflex_sht = { ...@@ -192,6 +192,7 @@ static struct scsi_host_template triflex_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
...@@ -295,6 +295,7 @@ static struct scsi_host_template via_sht = { ...@@ -295,6 +295,7 @@ static struct scsi_host_template via_sht = {
.proc_name = DRV_NAME, .proc_name = DRV_NAME,
.dma_boundary = ATA_DMA_BOUNDARY, .dma_boundary = ATA_DMA_BOUNDARY,
.slave_configure = ata_scsi_slave_config, .slave_configure = ata_scsi_slave_config,
.slave_destroy = ata_scsi_slave_destroy,
.bios_param = ata_std_bios_param, .bios_param = ata_std_bios_param,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment