Skip to content

Commit

Permalink
scsi/NCR5380: fix and standardize NDEBUG macros
Browse files Browse the repository at this point in the history
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 f566a57 and
185a7a1.)

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>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
  • Loading branch information
Finn Thain authored and Christoph Hellwig committed May 28, 2014
1 parent d65e634 commit 9829e52
Show file tree
Hide file tree
Showing 9 changed files with 19 additions and 54 deletions.
7 changes: 0 additions & 7 deletions drivers/scsi/NCR5380.c
Original file line number Diff line number Diff line change
Expand Up @@ -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); }
Expand Down
22 changes: 18 additions & 4 deletions drivers/scsi/NCR5380.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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);
Expand All @@ -303,10 +321,6 @@ static irqreturn_t NCR5380_intr(int irq, void *dev_id);
#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 *);
Expand Down
10 changes: 0 additions & 10 deletions drivers/scsi/atari_NCR5380.c
Original file line number Diff line number Diff line change
Expand Up @@ -626,16 +626,6 @@ static void NCR5380_print_phase(struct Scsi_Host *instance)
}
}

#else /* !NDEBUG */

/* dummies... */
static inline void NCR5380_print(struct Scsi_Host *instance)
{
};
static inline void NCR5380_print_phase(struct Scsi_Host *instance)
{
};

#endif

/*
Expand Down
6 changes: 0 additions & 6 deletions drivers/scsi/atari_scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/dtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down
6 changes: 0 additions & 6 deletions drivers/scsi/mac_scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
8 changes: 1 addition & 7 deletions drivers/scsi/sun3_NCR5380.c
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ static __inline__ void initialize_SCp(struct scsi_cmnd *cmd)

#include <linux/delay.h>

#if 1
#if NDEBUG
static struct {
unsigned char mask;
const char * name;}
Expand Down Expand Up @@ -572,12 +572,6 @@ static void NCR5380_print_phase(struct Scsi_Host *instance)
}
}

#else /* !NDEBUG */

/* dummies... */
__inline__ void NCR5380_print(struct Scsi_Host *instance) { };
__inline__ void NCR5380_print_phase(struct Scsi_Host *instance) { };

#endif

/*
Expand Down
6 changes: 0 additions & 6 deletions drivers/scsi/sun3_scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 0 additions & 6 deletions drivers/scsi/sun3_scsi_vme.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down

0 comments on commit 9829e52

Please sign in to comment.