[PATCH] [RESEND] SCSI: ips: remove pointless #warning

James Bottomley James.Bottomley at HansenPartnership.com
Tue May 19 11:38:17 PDT 2015


On Tue, 2015-05-19 at 15:56 +0200, Arnd Bergmann wrote:
> On Tuesday 19 May 2015 06:52:52 James Bottomley wrote:
> > On Tue, 2015-05-19 at 15:33 +0200, Arnd Bergmann wrote:
> > > The ips driver contains
> > > 
> > >  #warning "This driver has only been tested on the x86/ia64/x86_64 platforms"
> > > 
> > > which gets printed by the compiler every time this driver gets
> > > build for something other than those three architectures. The same
> > > is true for most other drivers, but none of them prints a warning like
> > > this.
> > > 
> > > Let's remove the warning now to reduce the amount of clutter.
> > > 
> > > FWIW, I've reviewed the driver and found a few oddities, but nothing
> > > that needs to be fixed or that would be architecture specific.
> > 
> > In principle I don't disagree.  However this warning was a specific
> > request of the driver writers.  Since the driver is pretty much dead,
> > I'm not sure anyone is going to check or fix it for non-intel any time
> > soon.
> 
> My main interest here is to get a clean build of ARM 'allmodconfig'.
> 
> If you prefer another approach, we could also add 'depends on X86 || IA64'
> into Kconfig, which would also avoid that warning.

Actually, no, that would cause problems if anyone is actually using this
driver on non-intel.  What about this?  It captures the intent of the
original but gets rid of the warning.

James

---

diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index 7542f11..6242872 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -206,10 +206,6 @@ module_param(ips, charp, 0);
 #define IPS_VERSION_HIGH        IPS_VER_MAJOR_STRING "." IPS_VER_MINOR_STRING
 #define IPS_VERSION_LOW         "." IPS_VER_BUILD_STRING " "
 
-#if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__)
-#warning "This driver has only been tested on the x86/ia64/x86_64 platforms"
-#endif
-
 #define IPS_DMA_DIR(scb) ((!scb->scsi_cmd || ips_is_passthru(scb->scsi_cmd) || \
                          DMA_NONE == scb->scsi_cmd->sc_data_direction) ? \
                          PCI_DMA_BIDIRECTIONAL : \
@@ -6788,6 +6784,11 @@ ips_remove_device(struct pci_dev *pci_dev)
 static int __init
 ips_module_init(void)
 {
+#if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__)
+        printk(KERN_ERR, "ips: This driver has only been tested on the x86/ia64/x86_64 platforms\n");
+        add_taint(TAINT_CPU_OUT_OF_SPEC, LOCKDEP_STILL_OK);
+#endif
+
 	if (pci_register_driver(&ips_pci_driver) < 0)
 		return -ENODEV;
 	ips_driver_template.module = THIS_MODULE;





More information about the linux-arm-kernel mailing list