From: Finn Thain <fthain@telegraphics.com.au>
To: "James E.J. Bottomley" <JBottomley@parallels.com>,
linux-scsi@vger.kernel.org
Cc: Sam Creasey <sammy@sammy.net>,
Russell King <linux@arm.linux.org.uk>,
Michael Schmitz <schmitz@debian.org>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-m68k@vger.kernel.org
Subject: [PATCH 09/12] scsi/NCR5380: fix and standardize NDEBUG macros
Date: Tue, 18 Mar 2014 11:42:21 +1100 [thread overview]
Message-ID: <20140318004215.292486266@telegraphics.com.au> (raw)
In-Reply-To: 20140318004212.612472697@telegraphics.com.au
[-- Attachment #1: ncr5380-debug-macros-fix-NDEBUG --]
[-- Type: text/plain, Size: 8110 bytes --]
All three NCR5380 core driver implementations share the same NCR5380.h
header file so they need to agree on certain macro definitions.
The flag bit used by the NDEBUG_MERGING macro in atari_NCR5380 and
sun3_NCR5380 collides with the bit used by NDEBUG_LISTS.
Moreover, NDEBUG_ABORT appears in NCR5380.c so it should be defined in
NCR5380.h rather than in each of the many drivers using that core.
An undefined NDEBUG_ABORT macro caused compiler errors and led to dodgy
workarounds in the core driver that can now be removed.
(See commits f566a576bca09de85bf477fc0ab2c8c96405b77b and
185a7a1cd79b9891e3c17abdb103ba1c98d6ca7a.)
Move all of the NDEBUG_ABORT, NDEBUG_TAGS and NDEBUG_MERGING macro
definitions into NCR5380.h where all the other NDEBUG macros live.
Also, incorrect "#ifdef NDEBUG" becomes "#if NDEBUG" to fix the warning:
drivers/scsi/mac_scsi.c: At top level:
drivers/scsi/NCR5380.c:418: warning: 'NCR5380_print' defined but not used
drivers/scsi/NCR5380.c:459: warning: 'NCR5380_print_phase' defined but not used
The debugging code is now enabled when NDEBUG != 0.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
---
drivers/scsi/NCR5380.c | 7 -------
drivers/scsi/NCR5380.h | 22 ++++++++++++++++++----
drivers/scsi/atari_NCR5380.c | 10 ----------
drivers/scsi/atari_scsi.c | 6 ------
drivers/scsi/dtc.c | 2 --
drivers/scsi/mac_scsi.c | 6 ------
drivers/scsi/sun3_NCR5380.c | 8 +-------
drivers/scsi/sun3_scsi.c | 6 ------
drivers/scsi/sun3_scsi_vme.c | 6 ------
9 files changed, 19 insertions(+), 54 deletions(-)
Index: linux-m68k/drivers/scsi/NCR5380.h
===================================================================
--- linux-m68k.orig/drivers/scsi/NCR5380.h 2014-03-18 00:18:34.000000000 +1100
+++ linux-m68k/drivers/scsi/NCR5380.h 2014-03-18 00:18:36.000000000 +1100
@@ -56,6 +56,9 @@
#define NDEBUG_C400_PREAD 0x100000
#define NDEBUG_C400_PWRITE 0x200000
#define NDEBUG_LISTS 0x400000
+#define NDEBUG_ABORT 0x800000
+#define NDEBUG_TAGS 0x1000000
+#define NDEBUG_MERGING 0x2000000
#define NDEBUG_ANY 0xFFFFFFFFUL
@@ -288,9 +291,24 @@ struct NCR5380_hostdata {
#ifdef __KERNEL__
+#ifndef NDEBUG
+#define NDEBUG (0)
+#endif
+
+#if NDEBUG
+#define dprintk(flg, fmt, args...) \
+ do { if ((NDEBUG) & (flg)) pr_debug(fmt, ## args); } while (0)
+#define NCR5380_dprint(flg, arg) \
+ do { if ((NDEBUG) & (flg)) NCR5380_print(arg); } while (0)
+#define NCR5380_dprint_phase(flg, arg) \
+ do { if ((NDEBUG) & (flg)) NCR5380_print_phase(arg); } while (0)
+static void NCR5380_print_phase(struct Scsi_Host *instance);
+static void NCR5380_print(struct Scsi_Host *instance);
+#else
#define dprintk(flg, fmt, args...) do {} while (0)
#define NCR5380_dprint(flg, arg) do {} while (0)
#define NCR5380_dprint_phase(flg, arg) do {} while (0)
+#endif
#if defined(AUTOPROBE_IRQ)
static int NCR5380_probe_irq(struct Scsi_Host *instance, int possible);
@@ -303,10 +321,6 @@ static irqreturn_t NCR5380_intr(int irq,
#endif
static void NCR5380_main(struct work_struct *work);
static void __maybe_unused NCR5380_print_options(struct Scsi_Host *instance);
-#ifdef NDEBUG
-static void NCR5380_print_phase(struct Scsi_Host *instance);
-static void NCR5380_print(struct Scsi_Host *instance);
-#endif
static int NCR5380_abort(Scsi_Cmnd * cmd);
static int NCR5380_bus_reset(Scsi_Cmnd * cmd);
static int NCR5380_queue_command(struct Scsi_Host *, struct scsi_cmnd *);
Index: linux-m68k/drivers/scsi/atari_scsi.c
===================================================================
--- linux-m68k.orig/drivers/scsi/atari_scsi.c 2014-03-18 00:18:36.000000000 +1100
+++ linux-m68k/drivers/scsi/atari_scsi.c 2014-03-18 00:18:36.000000000 +1100
@@ -67,12 +67,6 @@
#include <linux/module.h>
-#define NDEBUG (0)
-
-#define NDEBUG_ABORT 0x00100000
-#define NDEBUG_TAGS 0x00200000
-#define NDEBUG_MERGING 0x00400000
-
#define AUTOSENSE
/* For the Atari version, use only polled IO or REAL_DMA */
#define REAL_DMA
Index: linux-m68k/drivers/scsi/NCR5380.c
===================================================================
--- linux-m68k.orig/drivers/scsi/NCR5380.c 2014-03-18 00:18:34.000000000 +1100
+++ linux-m68k/drivers/scsi/NCR5380.c 2014-03-18 00:18:36.000000000 +1100
@@ -87,13 +87,6 @@
#include <scsi/scsi_dbg.h>
#include <scsi/scsi_transport_spi.h>
-#ifndef NDEBUG
-#define NDEBUG 0
-#endif
-#ifndef NDEBUG_ABORT
-#define NDEBUG_ABORT 0
-#endif
-
#if (NDEBUG & NDEBUG_LISTS)
#define LIST(x,y) {printk("LINE:%d Adding %p to %p\n", __LINE__, (void*)(x), (void*)(y)); if ((x)==(y)) udelay(5); }
#define REMOVE(w,x,y,z) {printk("LINE:%d Removing: %p->%p %p->%p \n", __LINE__, (void*)(w), (void*)(x), (void*)(y), (void*)(z)); if ((x)==(y)) udelay(5); }
Index: linux-m68k/drivers/scsi/sun3_scsi_vme.c
===================================================================
--- linux-m68k.orig/drivers/scsi/sun3_scsi_vme.c 2014-03-17 23:49:23.000000000 +1100
+++ linux-m68k/drivers/scsi/sun3_scsi_vme.c 2014-03-18 00:18:36.000000000 +1100
@@ -38,12 +38,6 @@
/* dma on! */
#define REAL_DMA
-#define NDEBUG 0
-
-#define NDEBUG_ABORT 0x00100000
-#define NDEBUG_TAGS 0x00200000
-#define NDEBUG_MERGING 0x00400000
-
#include "scsi.h"
#include "initio.h"
#include <scsi/scsi_host.h>
Index: linux-m68k/drivers/scsi/sun3_scsi.c
===================================================================
--- linux-m68k.orig/drivers/scsi/sun3_scsi.c 2014-03-18 00:18:33.000000000 +1100
+++ linux-m68k/drivers/scsi/sun3_scsi.c 2014-03-18 00:18:36.000000000 +1100
@@ -65,12 +65,6 @@
#include <asm/idprom.h>
#include <asm/machines.h>
-#define NDEBUG 0
-
-#define NDEBUG_ABORT 0x00100000
-#define NDEBUG_TAGS 0x00200000
-#define NDEBUG_MERGING 0x00400000
-
/* dma on! */
#define REAL_DMA
Index: linux-m68k/drivers/scsi/mac_scsi.c
===================================================================
--- linux-m68k.orig/drivers/scsi/mac_scsi.c 2014-03-18 00:18:32.000000000 +1100
+++ linux-m68k/drivers/scsi/mac_scsi.c 2014-03-18 00:18:36.000000000 +1100
@@ -54,12 +54,6 @@
#include "NCR5380.h"
-#if 0
-#define NDEBUG (NDEBUG_INTR | NDEBUG_PSEUDO_DMA | NDEBUG_ARBITRATION | NDEBUG_SELECTION | NDEBUG_RESELECTION)
-#else
-#define NDEBUG (NDEBUG_ABORT)
-#endif
-
#define RESET_BOOT
#define DRIVER_SETUP
Index: linux-m68k/drivers/scsi/sun3_NCR5380.c
===================================================================
--- linux-m68k.orig/drivers/scsi/sun3_NCR5380.c 2014-03-18 00:18:36.000000000 +1100
+++ linux-m68k/drivers/scsi/sun3_NCR5380.c 2014-03-18 00:18:36.000000000 +1100
@@ -484,7 +484,7 @@ static __inline__ void initialize_SCp(st
#include <linux/delay.h>
-#if 1
+#if NDEBUG
static struct {
unsigned char mask;
const char * name;}
@@ -572,12 +572,6 @@ static void NCR5380_print_phase(struct S
}
}
-#else /* !NDEBUG */
-
-/* dummies... */
-__inline__ void NCR5380_print(struct Scsi_Host *instance) { };
-__inline__ void NCR5380_print_phase(struct Scsi_Host *instance) { };
-
#endif
/*
Index: linux-m68k/drivers/scsi/dtc.c
===================================================================
--- linux-m68k.orig/drivers/scsi/dtc.c 2014-03-17 23:49:23.000000000 +1100
+++ linux-m68k/drivers/scsi/dtc.c 2014-03-18 00:18:36.000000000 +1100
@@ -3,8 +3,6 @@
#define PSEUDO_DMA
#define DONT_USE_INTR
#define UNSAFE /* Leave interrupts enabled during pseudo-dma I/O */
-#define xNDEBUG (NDEBUG_INTR+NDEBUG_RESELECTION+\
- NDEBUG_SELECTION+NDEBUG_ARBITRATION)
#define DMA_WORKS_RIGHT
Index: linux-m68k/drivers/scsi/atari_NCR5380.c
===================================================================
--- linux-m68k.orig/drivers/scsi/atari_NCR5380.c 2014-03-18 00:18:36.000000000 +1100
+++ linux-m68k/drivers/scsi/atari_NCR5380.c 2014-03-18 00:18:36.000000000 +1100
@@ -626,16 +626,6 @@ static void NCR5380_print_phase(struct S
}
}
-#else /* !NDEBUG */
-
-/* dummies... */
-static inline void NCR5380_print(struct Scsi_Host *instance)
-{
-};
-static inline void NCR5380_print_phase(struct Scsi_Host *instance)
-{
-};
-
#endif
/*
next prev parent reply other threads:[~2014-03-18 0:42 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-18 0:42 [PATCH 00/12] scsi/NCR5380: fix debugging macros and #include structure Finn Thain
2014-03-18 0:42 ` [PATCH 01/12] scsi/NCR5380: remove unused BOARD_NORMAL and BOARD_NCR53C400 Finn Thain
2014-05-28 9:48 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 02/12] scsi/NCR5380: remove redundant HOSTS_C macro tests Finn Thain
2014-05-28 9:49 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 03/12] scsi/NCR5380: remove old CVS keywords Finn Thain
2014-05-28 9:49 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 04/12] scsi/NCR5380: use NCR5380_dprint() instead of NCR5380_print() Finn Thain
2014-05-28 9:49 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 05/12] scsi/NCR5380: fix build failures when debugging is enabled Finn Thain
2014-05-28 9:50 ` Christoph Hellwig
2014-05-28 12:09 ` Finn Thain
2014-05-28 12:13 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 06/12] scsi/NCR5380: fix dprintk macro usage and definition Finn Thain
2014-05-28 9:50 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 07/12] scsi/NCR5380: adopt NCR5380_dprint() and NCR5380_dprint_phase() Finn Thain
2014-05-28 9:51 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 08/12] scsi/NCR5380: adopt dprintk() Finn Thain
2014-05-28 9:52 ` Christoph Hellwig
2014-03-18 0:42 ` Finn Thain [this message]
2014-05-28 9:54 ` [PATCH 09/12] scsi/NCR5380: fix and standardize NDEBUG macros Christoph Hellwig
2014-03-18 0:42 ` [PATCH 10/12] scsi/NCR5380: remove unused macro definitions Finn Thain
2014-05-28 9:54 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 11/12] scsi/NCR5380: reduce depth of sun3_scsi nested includes Finn Thain
2014-05-28 9:55 ` Christoph Hellwig
2014-03-18 0:42 ` [PATCH 12/12] scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c Finn Thain
2014-05-28 9:55 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140318004215.292486266@telegraphics.com.au \
--to=fthain@telegraphics.com.au \
--cc=JBottomley@parallels.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=sammy@sammy.net \
--cc=schmitz@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox