提交 aa3f2cb6 编写于 作者: P Peter Tiedemann 提交者: Jeff Garzik

s390/net/ctcm: message cleanup

Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: NPeter Tiedemann <ptiedem@de.ibm.com>
Signed-off-by: NUrsula Braun <ursula.braun@de.ibm.com>
Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
上级 b805da74
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
*/ */
#include <linux/stddef.h> #include <linux/stddef.h>
#include <linux/string.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/slab.h> #include <linux/slab.h>
...@@ -22,15 +23,13 @@ ...@@ -22,15 +23,13 @@
* Debug Facility Stuff * Debug Facility Stuff
*/ */
DEFINE_PER_CPU(char[256], ctcm_dbf_txt_buf);
struct ctcm_dbf_info ctcm_dbf[CTCM_DBF_INFOS] = { struct ctcm_dbf_info ctcm_dbf[CTCM_DBF_INFOS] = {
[CTCM_DBF_SETUP] = {"ctc_setup", 8, 1, 64, 5, NULL}, [CTCM_DBF_SETUP] = {"ctc_setup", 8, 1, 64, CTC_DBF_INFO, NULL},
[CTCM_DBF_ERROR] = {"ctc_error", 8, 1, 64, 3, NULL}, [CTCM_DBF_ERROR] = {"ctc_error", 8, 1, 64, CTC_DBF_ERROR, NULL},
[CTCM_DBF_TRACE] = {"ctc_trace", 8, 1, 64, 3, NULL}, [CTCM_DBF_TRACE] = {"ctc_trace", 8, 1, 64, CTC_DBF_ERROR, NULL},
[CTCM_DBF_MPC_SETUP] = {"mpc_setup", 8, 1, 64, 5, NULL}, [CTCM_DBF_MPC_SETUP] = {"mpc_setup", 8, 1, 80, CTC_DBF_INFO, NULL},
[CTCM_DBF_MPC_ERROR] = {"mpc_error", 8, 1, 64, 3, NULL}, [CTCM_DBF_MPC_ERROR] = {"mpc_error", 8, 1, 80, CTC_DBF_ERROR, NULL},
[CTCM_DBF_MPC_TRACE] = {"mpc_trace", 8, 1, 64, 3, NULL}, [CTCM_DBF_MPC_TRACE] = {"mpc_trace", 8, 1, 80, CTC_DBF_ERROR, NULL},
}; };
void ctcm_unregister_dbf_views(void) void ctcm_unregister_dbf_views(void)
...@@ -65,3 +64,17 @@ int ctcm_register_dbf_views(void) ...@@ -65,3 +64,17 @@ int ctcm_register_dbf_views(void)
return 0; return 0;
} }
void ctcm_dbf_longtext(enum ctcm_dbf_names dbf_nix, int level, char *fmt, ...)
{
char dbf_txt_buf[64];
va_list args;
if (level > (ctcm_dbf[dbf_nix].id)->level)
return;
va_start(args, fmt);
vsnprintf(dbf_txt_buf, sizeof(dbf_txt_buf), fmt, args);
va_end(args);
debug_text_event(ctcm_dbf[dbf_nix].id, level, dbf_txt_buf);
}
...@@ -20,16 +20,17 @@ ...@@ -20,16 +20,17 @@
#else #else
#define do_debug 0 #define do_debug 0
#endif #endif
#ifdef DEBUGDATA
#define do_debug_data 1
#else
#define do_debug_data 0
#endif
#ifdef DEBUGCCW #ifdef DEBUGCCW
#define do_debug_ccw 1 #define do_debug_ccw 1
#define DEBUGDATA 1
#else #else
#define do_debug_ccw 0 #define do_debug_ccw 0
#endif #endif
#ifdef DEBUGDATA
#define do_debug_data 1
#else
#define do_debug_data 0
#endif
/* define dbf debug levels similar to kernel msg levels */ /* define dbf debug levels similar to kernel msg levels */
#define CTC_DBF_ALWAYS 0 /* always print this */ #define CTC_DBF_ALWAYS 0 /* always print this */
...@@ -42,8 +43,6 @@ ...@@ -42,8 +43,6 @@
#define CTC_DBF_INFO 5 /* informational */ #define CTC_DBF_INFO 5 /* informational */
#define CTC_DBF_DEBUG 6 /* debug-level messages */ #define CTC_DBF_DEBUG 6 /* debug-level messages */
DECLARE_PER_CPU(char[256], ctcm_dbf_txt_buf);
enum ctcm_dbf_names { enum ctcm_dbf_names {
CTCM_DBF_SETUP, CTCM_DBF_SETUP,
CTCM_DBF_ERROR, CTCM_DBF_ERROR,
...@@ -67,6 +66,7 @@ extern struct ctcm_dbf_info ctcm_dbf[CTCM_DBF_INFOS]; ...@@ -67,6 +66,7 @@ extern struct ctcm_dbf_info ctcm_dbf[CTCM_DBF_INFOS];
int ctcm_register_dbf_views(void); int ctcm_register_dbf_views(void);
void ctcm_unregister_dbf_views(void); void ctcm_unregister_dbf_views(void);
void ctcm_dbf_longtext(enum ctcm_dbf_names dbf_nix, int level, char *text, ...);
static inline const char *strtail(const char *s, int n) static inline const char *strtail(const char *s, int n)
{ {
...@@ -74,12 +74,6 @@ static inline const char *strtail(const char *s, int n) ...@@ -74,12 +74,6 @@ static inline const char *strtail(const char *s, int n)
return (l > n) ? s + (l - n) : s; return (l > n) ? s + (l - n) : s;
} }
/* sort out levels early to avoid unnecessary sprintfs */
static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level)
{
return (dbf_grp->level >= level);
}
#define CTCM_FUNTAIL strtail((char *)__func__, 16) #define CTCM_FUNTAIL strtail((char *)__func__, 16)
#define CTCM_DBF_TEXT(name, level, text) \ #define CTCM_DBF_TEXT(name, level, text) \
...@@ -94,16 +88,7 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level) ...@@ -94,16 +88,7 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level)
} while (0) } while (0)
#define CTCM_DBF_TEXT_(name, level, text...) \ #define CTCM_DBF_TEXT_(name, level, text...) \
do { \ ctcm_dbf_longtext(CTCM_DBF_##name, level, text)
if (ctcm_dbf_passes(ctcm_dbf[CTCM_DBF_##name].id, level)) { \
char *ctcm_dbf_txt_buf = \
get_cpu_var(ctcm_dbf_txt_buf); \
sprintf(ctcm_dbf_txt_buf, text); \
debug_text_event(ctcm_dbf[CTCM_DBF_##name].id, \
level, ctcm_dbf_txt_buf); \
put_cpu_var(ctcm_dbf_txt_buf); \
} \
} while (0)
/* /*
* cat : one of {setup, mpc_setup, trace, mpc_trace, error, mpc_error}. * cat : one of {setup, mpc_setup, trace, mpc_trace, error, mpc_error}.
...@@ -112,13 +97,13 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level) ...@@ -112,13 +97,13 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level)
*/ */
#define CTCM_DBF_DEV_NAME(cat, dev, text) \ #define CTCM_DBF_DEV_NAME(cat, dev, text) \
do { \ do { \
CTCM_DBF_TEXT_(cat, CTC_DBF_INFO, "%s(%s) : %s", \ CTCM_DBF_TEXT_(cat, CTC_DBF_INFO, "%s(%s) :- %s", \
CTCM_FUNTAIL, dev->name, text); \ CTCM_FUNTAIL, dev->name, text); \
} while (0) } while (0)
#define MPC_DBF_DEV_NAME(cat, dev, text) \ #define MPC_DBF_DEV_NAME(cat, dev, text) \
do { \ do { \
CTCM_DBF_TEXT_(MPC_##cat, CTC_DBF_INFO, "%s(%s) : %s", \ CTCM_DBF_TEXT_(MPC_##cat, CTC_DBF_INFO, "%s(%s) := %s", \
CTCM_FUNTAIL, dev->name, text); \ CTCM_FUNTAIL, dev->name, text); \
} while (0) } while (0)
...@@ -137,13 +122,13 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level) ...@@ -137,13 +122,13 @@ static inline int ctcm_dbf_passes(debug_info_t *dbf_grp, int level)
*/ */
#define CTCM_DBF_DEV(cat, dev, text) \ #define CTCM_DBF_DEV(cat, dev, text) \
do { \ do { \
CTCM_DBF_TEXT_(cat, CTC_DBF_INFO, "%s(%p) : %s", \ CTCM_DBF_TEXT_(cat, CTC_DBF_INFO, "%s(%p) :-: %s", \
CTCM_FUNTAIL, dev, text); \ CTCM_FUNTAIL, dev, text); \
} while (0) } while (0)
#define MPC_DBF_DEV(cat, dev, text) \ #define MPC_DBF_DEV(cat, dev, text) \
do { \ do { \
CTCM_DBF_TEXT_(MPC_##cat, CTC_DBF_INFO, "%s(%p) : %s", \ CTCM_DBF_TEXT_(MPC_##cat, CTC_DBF_INFO, "%s(%p) :=: %s", \
CTCM_FUNTAIL, dev, text); \ CTCM_FUNTAIL, dev, text); \
} while (0) } while (0)
......
此差异已折叠。
此差异已折叠。
...@@ -22,9 +22,9 @@ ...@@ -22,9 +22,9 @@
#define CTC_DRIVER_NAME "ctcm" #define CTC_DRIVER_NAME "ctcm"
#define CTC_DEVICE_NAME "ctc" #define CTC_DEVICE_NAME "ctc"
#define CTC_DEVICE_GENE "ctc%d"
#define MPC_DEVICE_NAME "mpc" #define MPC_DEVICE_NAME "mpc"
#define MPC_DEVICE_GENE "mpc%d" #define CTC_DEVICE_GENE CTC_DEVICE_NAME "%d"
#define MPC_DEVICE_GENE MPC_DEVICE_NAME "%d"
#define CHANNEL_FLAGS_READ 0 #define CHANNEL_FLAGS_READ 0
#define CHANNEL_FLAGS_WRITE 1 #define CHANNEL_FLAGS_WRITE 1
...@@ -48,6 +48,30 @@ ...@@ -48,6 +48,30 @@
#define ctcm_pr_err(fmt, arg...) printk(KERN_ERR fmt, ##arg) #define ctcm_pr_err(fmt, arg...) printk(KERN_ERR fmt, ##arg)
#define ctcm_pr_crit(fmt, arg...) printk(KERN_CRIT fmt, ##arg) #define ctcm_pr_crit(fmt, arg...) printk(KERN_CRIT fmt, ##arg)
#define CTCM_PR_DEBUG(fmt, arg...) \
do { \
if (do_debug) \
printk(KERN_DEBUG fmt, ##arg); \
} while (0)
#define CTCM_PR_DBGDATA(fmt, arg...) \
do { \
if (do_debug_data) \
printk(KERN_DEBUG fmt, ##arg); \
} while (0)
#define CTCM_D3_DUMP(buf, len) \
do { \
if (do_debug_data) \
ctcmpc_dumpit(buf, len); \
} while (0)
#define CTCM_CCW_DUMP(buf, len) \
do { \
if (do_debug_ccw) \
ctcmpc_dumpit(buf, len); \
} while (0)
/* /*
* CCW commands, used in this driver. * CCW commands, used in this driver.
*/ */
...@@ -161,8 +185,9 @@ struct channel { ...@@ -161,8 +185,9 @@ struct channel {
fsm_instance *fsm; /* finite state machine of this channel */ fsm_instance *fsm; /* finite state machine of this channel */
struct net_device *netdev; /* corresponding net_device */ struct net_device *netdev; /* corresponding net_device */
struct ctcm_profile prof; struct ctcm_profile prof;
unsigned char *trans_skb_data; __u8 *trans_skb_data;
__u16 logflags; __u16 logflags;
__u8 sense_rc; /* last unit check sense code report control */
}; };
struct ctcm_priv { struct ctcm_priv {
......
此差异已折叠。
...@@ -231,7 +231,7 @@ static inline void ctcmpc_dump32(char *buf, int len) ...@@ -231,7 +231,7 @@ static inline void ctcmpc_dump32(char *buf, int len)
int ctcmpc_open(struct net_device *); int ctcmpc_open(struct net_device *);
void ctcm_ccw_check_rc(struct channel *, int, char *); void ctcm_ccw_check_rc(struct channel *, int, char *);
void mpc_group_ready(unsigned long adev); void mpc_group_ready(unsigned long adev);
int mpc_channel_action(struct channel *ch, int direction, int action); void mpc_channel_action(struct channel *ch, int direction, int action);
void mpc_action_send_discontact(unsigned long thischan); void mpc_action_send_discontact(unsigned long thischan);
void mpc_action_discontact(fsm_instance *fi, int event, void *arg); void mpc_action_discontact(fsm_instance *fi, int event, void *arg);
void ctcmpc_bh(unsigned long thischan); void ctcmpc_bh(unsigned long thischan);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册