Commit 227c939b authored by Roland Dreier's avatar Roland Dreier

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: default avatarRoland Dreier <rolandd@cisco.com>
parent f5545d24
...@@ -7,10 +7,11 @@ config INFINIBAND_MTHCA ...@@ -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).
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 \
......
...@@ -355,8 +355,21 @@ struct mthca_dev { ...@@ -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...) \
......
...@@ -52,6 +52,14 @@ MODULE_DESCRIPTION("Mellanox InfiniBand HCA low-level driver"); ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment