Message ID | 4351271.eUtUWpTn54@wuerfel (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 10/16/2015 02:13 PM, Arnd Bergmann wrote: > The advansys drvier uses the request_dma function that is used on ISA > machines for the internal DMA controller, which causes build errors > on platforms that have ISA slots but do not provide the ISA DMA API: > > drivers/scsi/advansys.c: In function 'advansys_board_found': > drivers/scsi/advansys.c:11300:10: error: implicit declaration of function 'request_dma' [-Werror=implicit-function-declaration] > > The problem now showed up in ARM randconfig builds after commit > 6571fb3f8b7f ("advansys: Update to version 3.5 and remove compilation > warning") made it possible to build on platforms that have neither > VIRT_TO_BUS nor ISA_DMA_API but that do have ISA. > > This adds a dependency to only build the driver on ISA based machines > if they also support ISA_DMA_API, or if they EISA or PCI are also > enabled. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
On Fri, 2015-10-16 at 14:13 +0200, Arnd Bergmann wrote: > The advansys drvier uses the request_dma function that is used on ISA > machines for the internal DMA controller, which causes build errors > on platforms that have ISA slots but do not provide the ISA DMA API: > > drivers/scsi/advansys.c: In function 'advansys_board_found': > drivers/scsi/advansys.c:11300:10: error: implicit declaration of function 'request_dma' [-Werror=implicit-function-declaration] > > The problem now showed up in ARM randconfig builds after commit > 6571fb3f8b7f ("advansys: Update to version 3.5 and remove compilation > warning") made it possible to build on platforms that have neither > VIRT_TO_BUS nor ISA_DMA_API but that do have ISA. > > This adds a dependency to only build the driver on ISA based machines > if they also support ISA_DMA_API, or if they EISA or PCI are also > enabled. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig > index d2f480b04a52..1d8b8257773d 100644 > --- a/drivers/scsi/Kconfig > +++ b/drivers/scsi/Kconfig > @@ -498,7 +498,7 @@ config SCSI_DPT_I2O > config SCSI_ADVANSYS > tristate "AdvanSys SCSI support" > depends on SCSI > - depends on ISA || EISA || PCI > + depends on (ISA && ISA_DMA_API) || EISA || PCI I thought the desire was to avoid a compile failure when ISA && ! ISA_DMA_API? Won't this one fail if ISA is defined with either EISA or PCI and !ISA_DMA_API? James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday 16 October 2015 06:53:44 James Bottomley wrote: > > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > > > diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig > > index d2f480b04a52..1d8b8257773d 100644 > > --- a/drivers/scsi/Kconfig > > +++ b/drivers/scsi/Kconfig > > @@ -498,7 +498,7 @@ config SCSI_DPT_I2O > > config SCSI_ADVANSYS > > tristate "AdvanSys SCSI support" > > depends on SCSI > > - depends on ISA || EISA || PCI > > + depends on (ISA && ISA_DMA_API) || EISA || PCI > > I thought the desire was to avoid a compile failure when ISA && ! > ISA_DMA_API? Won't this one fail if ISA is defined with either EISA or > PCI and !ISA_DMA_API? I thought I had it ruled out, but now I've actually found a combination: we can build an ARM kernel that supports two ancient machines, and one of them supports ISA (but not ISA_DMA_API), while the other one supports PCI. I had looked through several thousand randconfig builds and not found this combination together with advansys, but I guess that is because those were mostly old builds from the times when there was a dependency on VIRT_TO_BUS that this platform doesn't have. So screw this one and go back to the original patch. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2015-10-16 at 16:19 +0200, Arnd Bergmann wrote: > On Friday 16 October 2015 06:53:44 James Bottomley wrote: > > > > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > > > > > diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig > > > index d2f480b04a52..1d8b8257773d 100644 > > > --- a/drivers/scsi/Kconfig > > > +++ b/drivers/scsi/Kconfig > > > @@ -498,7 +498,7 @@ config SCSI_DPT_I2O > > > config SCSI_ADVANSYS > > > tristate "AdvanSys SCSI support" > > > depends on SCSI > > > - depends on ISA || EISA || PCI > > > + depends on (ISA && ISA_DMA_API) || EISA || PCI > > > > I thought the desire was to avoid a compile failure when ISA && ! > > ISA_DMA_API? Won't this one fail if ISA is defined with either EISA or > > PCI and !ISA_DMA_API? > > I thought I had it ruled out, but now I've actually found a combination: > we can build an ARM kernel that supports two ancient machines, and one > of them supports ISA (but not ISA_DMA_API), while the other one supports > PCI. I had looked through several thousand randconfig builds and not > found this combination together with advansys, but I guess that is > because those were mostly old builds from the times when there was > a dependency on VIRT_TO_BUS that this platform doesn't have. > > So screw this one and go back to the original patch. Agreed ... you've also got PA-RISC that enables EISA and is ! DMA_ISA_API. James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index d2f480b04a52..1d8b8257773d 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -498,7 +498,7 @@ config SCSI_DPT_I2O config SCSI_ADVANSYS tristate "AdvanSys SCSI support" depends on SCSI - depends on ISA || EISA || PCI + depends on (ISA && ISA_DMA_API) || EISA || PCI help This is a driver for all SCSI host adapters manufactured by AdvanSys. It is documented in the kernel source in
The advansys drvier uses the request_dma function that is used on ISA machines for the internal DMA controller, which causes build errors on platforms that have ISA slots but do not provide the ISA DMA API: drivers/scsi/advansys.c: In function 'advansys_board_found': drivers/scsi/advansys.c:11300:10: error: implicit declaration of function 'request_dma' [-Werror=implicit-function-declaration] The problem now showed up in ARM randconfig builds after commit 6571fb3f8b7f ("advansys: Update to version 3.5 and remove compilation warning") made it possible to build on platforms that have neither VIRT_TO_BUS nor ISA_DMA_API but that do have ISA. This adds a dependency to only build the driver on ISA based machines if they also support ISA_DMA_API, or if they EISA or PCI are also enabled. Signed-off-by: Arnd Bergmann <arnd@arndb.de> -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html