diff mbox series

scsi: hisi_sas: Fix build error without SATA_HOST

Message ID 20200402063021.34672-1-yuehaibing@huawei.com (mailing list archive)
State Superseded
Headers show
Series scsi: hisi_sas: Fix build error without SATA_HOST | expand

Commit Message

Yue Haibing April 2, 2020, 6:30 a.m. UTC
If SATA_HOST is n, build fails:

drivers/scsi/hisi_sas/hisi_sas_main.o: In function `hisi_sas_fill_ata_reset_cmd':
hisi_sas_main.c:(.text+0x2500): undefined reference to `ata_tf_to_fis'

Select SATA_HOST to fix this.

Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: 7c594f0407de ("scsi: hisi_sas: add softreset function for SATA disk")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
 drivers/scsi/hisi_sas/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

John Garry April 2, 2020, 7:30 a.m. UTC | #1
On 02/04/2020 07:30, YueHaibing wrote:

+

> If SATA_HOST is n, build fails:
> 
> drivers/scsi/hisi_sas/hisi_sas_main.o: In function `hisi_sas_fill_ata_reset_cmd':
> hisi_sas_main.c:(.text+0x2500): undefined reference to `ata_tf_to_fis'
> 
> Select SATA_HOST to fix this.
> 
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Fixes: 7c594f0407de ("scsi: hisi_sas: add softreset function for SATA disk")

That's not right. SATA_HOST was only introduced recently in the ATA 
code. It would fix those kconfig changes.

> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> ---
>   drivers/scsi/hisi_sas/Kconfig | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/scsi/hisi_sas/Kconfig b/drivers/scsi/hisi_sas/Kconfig
> index 90a17452a50d..13ed9073fc72 100644
> --- a/drivers/scsi/hisi_sas/Kconfig
> +++ b/drivers/scsi/hisi_sas/Kconfig
> @@ -6,6 +6,7 @@ config SCSI_HISI_SAS
>   	select SCSI_SAS_LIBSAS
>   	select BLK_DEV_INTEGRITY
>   	depends on ATA
> +	select SATA_HOST

That does not feel right.

SCSI_HISI_SAS depends on ATA, but SATA_HOST also depends on ATA, so it 
seems better to just depend on SATA_HOST (and omit explicit ATA 
dependency), rather than select it.

Thanks,
John
Yue Haibing April 2, 2020, 8:51 a.m. UTC | #2
On 2020/4/2 15:30, John Garry wrote:
> On 02/04/2020 07:30, YueHaibing wrote:
> 
> +
> 
>> If SATA_HOST is n, build fails:
>>
>> drivers/scsi/hisi_sas/hisi_sas_main.o: In function `hisi_sas_fill_ata_reset_cmd':
>> hisi_sas_main.c:(.text+0x2500): undefined reference to `ata_tf_to_fis'
>>
>> Select SATA_HOST to fix this.
>>
>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Fixes: 7c594f0407de ("scsi: hisi_sas: add softreset function for SATA disk")
> 
> That's not right. SATA_HOST was only introduced recently in the ATA code. It would fix those kconfig changes.

Ok, thanks

> 
>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>> ---
>>   drivers/scsi/hisi_sas/Kconfig | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/scsi/hisi_sas/Kconfig b/drivers/scsi/hisi_sas/Kconfig
>> index 90a17452a50d..13ed9073fc72 100644
>> --- a/drivers/scsi/hisi_sas/Kconfig
>> +++ b/drivers/scsi/hisi_sas/Kconfig
>> @@ -6,6 +6,7 @@ config SCSI_HISI_SAS
>>       select SCSI_SAS_LIBSAS
>>       select BLK_DEV_INTEGRITY
>>       depends on ATA
>> +    select SATA_HOST
> 
> That does not feel right.
> 
> SCSI_HISI_SAS depends on ATA, but SATA_HOST also depends on ATA, so it seems better to just depend on SATA_HOST (and omit explicit ATA dependency), rather than select it.

Depends on SATA_HOST will result int this:

scripts/kconfig/mconf  Kconfig
drivers/scsi/hisi_sas/Kconfig:2:error: recursive dependency detected!
drivers/scsi/hisi_sas/Kconfig:2:        symbol SCSI_HISI_SAS depends on SATA_HOST
drivers/ata/Kconfig:37: symbol SATA_HOST is selected by SCSI_SAS_ATA
drivers/scsi/libsas/Kconfig:18: symbol SCSI_SAS_ATA depends on SCSI_SAS_LIBSAS
drivers/scsi/libsas/Kconfig:9:  symbol SCSI_SAS_LIBSAS is selected by SCSI_HISI_SAS
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"


All users of SATA_HOST have the 'select' statement, so we should do the same here.

> 
> Thanks,
> John
> 
> .
>
Bartlomiej Zolnierkiewicz April 2, 2020, 8:53 a.m. UTC | #3
On 4/2/20 9:30 AM, John Garry wrote:
> On 02/04/2020 07:30, YueHaibing wrote:
> 
> +
> 
>> If SATA_HOST is n, build fails:
>>
>> drivers/scsi/hisi_sas/hisi_sas_main.o: In function `hisi_sas_fill_ata_reset_cmd':
>> hisi_sas_main.c:(.text+0x2500): undefined reference to `ata_tf_to_fis'
>>
>> Select SATA_HOST to fix this.

Sorry for missing hisi_sas and thanks for fixing it.

>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Fixes: 7c594f0407de ("scsi: hisi_sas: add softreset function for SATA disk")
> 
> That's not right. SATA_HOST was only introduced recently in the ATA code. It would fix those kconfig changes.

Yes, this should be:

Fixes: bd322af15ce9 ("ata: make SATA_PMP option selectable only if any SATA host driver is enabled")

>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>> ---
>>   drivers/scsi/hisi_sas/Kconfig | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/scsi/hisi_sas/Kconfig b/drivers/scsi/hisi_sas/Kconfig
>> index 90a17452a50d..13ed9073fc72 100644
>> --- a/drivers/scsi/hisi_sas/Kconfig
>> +++ b/drivers/scsi/hisi_sas/Kconfig
>> @@ -6,6 +6,7 @@ config SCSI_HISI_SAS
>>       select SCSI_SAS_LIBSAS
>>       select BLK_DEV_INTEGRITY
>>       depends on ATA
>> +    select SATA_HOST
> 
> That does not feel right.
> 
> SCSI_HISI_SAS depends on ATA, but SATA_HOST also depends on ATA, so it seems better to just depend on SATA_HOST (and omit explicit ATA dependency), rather than select it.

SATA_HOST config option is invisible to user so it needs to be
selected.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
diff mbox series

Patch

diff --git a/drivers/scsi/hisi_sas/Kconfig b/drivers/scsi/hisi_sas/Kconfig
index 90a17452a50d..13ed9073fc72 100644
--- a/drivers/scsi/hisi_sas/Kconfig
+++ b/drivers/scsi/hisi_sas/Kconfig
@@ -6,6 +6,7 @@  config SCSI_HISI_SAS
 	select SCSI_SAS_LIBSAS
 	select BLK_DEV_INTEGRITY
 	depends on ATA
+	select SATA_HOST
 	help
 		This driver supports HiSilicon's SAS HBA, including support based
 		on platform device