IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y

Change the mthca debugging trace output code so that it can enabled
and disabled at runtime with the debug_level module parameter in
sysfs.  Also, don't allow CONFIG_INFINIBAND_MTHCA_DEBUG to be disabled
unless CONFIG_EMBEDDED is selected.  We want users (and especially
distros) to have this turned on unless they really need to save space,
because by the time we want debugging output, it's usually too late to
rebuild a kernel.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
Roland Dreier 2006-04-02 14:39:20 -07:00
parent f5545d24b8
commit 227c939b00
4 changed files with 29 additions and 11 deletions

View File

@ -7,10 +7,11 @@ config INFINIBAND_MTHCA
("Tavor") and the MT25208 PCI Express HCA ("Arbel"). ("Tavor") and the MT25208 PCI Express HCA ("Arbel").
config INFINIBAND_MTHCA_DEBUG config INFINIBAND_MTHCA_DEBUG
bool "Verbose debugging output" bool "Verbose debugging output" if EMBEDDED
depends on INFINIBAND_MTHCA depends on INFINIBAND_MTHCA
default n default y
---help--- ---help---
This option causes the mthca driver produce a bunch of debug This option causes debugging code to be compiled into the
messages. Select this is you are developing the driver or mthca driver. The output can be turned on via the
trying to diagnose a problem. debug_level module parameter (which can also be set after
the driver is loaded through sysfs).

View File

@ -1,7 +1,3 @@
ifdef CONFIG_INFINIBAND_MTHCA_DEBUG
EXTRA_CFLAGS += -DDEBUG
endif
obj-$(CONFIG_INFINIBAND_MTHCA) += ib_mthca.o obj-$(CONFIG_INFINIBAND_MTHCA) += ib_mthca.o
ib_mthca-y := mthca_main.o mthca_cmd.o mthca_profile.o mthca_reset.o \ ib_mthca-y := mthca_main.o mthca_cmd.o mthca_profile.o mthca_reset.o \

View File

@ -355,8 +355,21 @@ struct mthca_dev {
spinlock_t sm_lock; spinlock_t sm_lock;
}; };
#define mthca_dbg(mdev, format, arg...) \ #ifdef CONFIG_INFINIBAND_MTHCA_DEBUG
dev_dbg(&mdev->pdev->dev, format, ## arg) extern int mthca_debug_level;
#define mthca_dbg(mdev, format, arg...) \
do { \
if (mthca_debug_level) \
dev_printk(KERN_DEBUG, &mdev->pdev->dev, format, ## arg); \
} while (0)
#else /* CONFIG_INFINIBAND_MTHCA_DEBUG */
#define mthca_dbg(mdev, format, arg...) do { (void) mdev; } while (0)
#endif /* CONFIG_INFINIBAND_MTHCA_DEBUG */
#define mthca_err(mdev, format, arg...) \ #define mthca_err(mdev, format, arg...) \
dev_err(&mdev->pdev->dev, format, ## arg) dev_err(&mdev->pdev->dev, format, ## arg)
#define mthca_info(mdev, format, arg...) \ #define mthca_info(mdev, format, arg...) \

View File

@ -52,6 +52,14 @@ MODULE_DESCRIPTION("Mellanox InfiniBand HCA low-level driver");
MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("Dual BSD/GPL");
MODULE_VERSION(DRV_VERSION); MODULE_VERSION(DRV_VERSION);
#ifdef CONFIG_INFINIBAND_MTHCA_DEBUG
int mthca_debug_level = 0;
module_param_named(debug_level, mthca_debug_level, int, 0644);
MODULE_PARM_DESC(debug_level, "Enable debug tracing if > 0");
#endif /* CONFIG_INFINIBAND_MTHCA_DEBUG */
#ifdef CONFIG_PCI_MSI #ifdef CONFIG_PCI_MSI
static int msi_x = 0; static int msi_x = 0;