diff options
Diffstat (limited to 'drivers/s390/net')
-rw-r--r-- | drivers/s390/net/qeth_core.h | 93 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 579 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_mpc.c | 2 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_offl.c | 60 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l2_main.c | 143 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3.h | 11 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 282 |
7 files changed, 544 insertions, 626 deletions
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h index 9485e363ca1..66f4f12503c 100644 --- a/drivers/s390/net/qeth_core.h +++ b/drivers/s390/net/qeth_core.h @@ -34,59 +34,53 @@ #include "qeth_core_mpc.h" +#define KMSG_COMPONENT "qeth" + /** * Debug Facility stuff */ -#define QETH_DBF_SETUP_NAME "qeth_setup" -#define QETH_DBF_SETUP_LEN 8 -#define QETH_DBF_SETUP_PAGES 8 -#define QETH_DBF_SETUP_NR_AREAS 1 -#define QETH_DBF_SETUP_LEVEL 5 - -#define QETH_DBF_MISC_NAME "qeth_misc" -#define QETH_DBF_MISC_LEN 128 -#define QETH_DBF_MISC_PAGES 2 -#define QETH_DBF_MISC_NR_AREAS 1 -#define QETH_DBF_MISC_LEVEL 2 - -#define QETH_DBF_DATA_NAME "qeth_data" -#define QETH_DBF_DATA_LEN 96 -#define QETH_DBF_DATA_PAGES 8 -#define QETH_DBF_DATA_NR_AREAS 1 -#define QETH_DBF_DATA_LEVEL 2 - -#define QETH_DBF_CONTROL_NAME "qeth_control" -#define QETH_DBF_CONTROL_LEN 256 -#define QETH_DBF_CONTROL_PAGES 8 -#define QETH_DBF_CONTROL_NR_AREAS 1 -#define QETH_DBF_CONTROL_LEVEL 5 - -#define QETH_DBF_TRACE_NAME "qeth_trace" -#define QETH_DBF_TRACE_LEN 8 -#define QETH_DBF_TRACE_PAGES 4 -#define QETH_DBF_TRACE_NR_AREAS 1 -#define QETH_DBF_TRACE_LEVEL 3 - -#define QETH_DBF_SENSE_NAME "qeth_sense" -#define QETH_DBF_SENSE_LEN 64 -#define QETH_DBF_SENSE_PAGES 2 -#define QETH_DBF_SENSE_NR_AREAS 1 -#define QETH_DBF_SENSE_LEVEL 2 - -#define QETH_DBF_QERR_NAME "qeth_qerr" -#define QETH_DBF_QERR_LEN 8 -#define QETH_DBF_QERR_PAGES 2 -#define QETH_DBF_QERR_NR_AREAS 1 -#define QETH_DBF_QERR_LEVEL 2 +enum qeth_dbf_names { + QETH_DBF_SETUP, + QETH_DBF_QERR, + QETH_DBF_TRACE, + QETH_DBF_MSG, + QETH_DBF_SENSE, + QETH_DBF_MISC, + QETH_DBF_CTRL, + QETH_DBF_INFOS /* must be last element */ +}; + +struct qeth_dbf_info { + char name[DEBUG_MAX_NAME_LEN]; + int pages; + int areas; + int len; + int level; + struct debug_view *view; + debug_info_t *id; +}; + +#define QETH_DBF_CTRL_LEN 256 #define QETH_DBF_TEXT(name, level, text) \ - do { \ - debug_text_event(qeth_dbf_##name, level, text); \ - } while (0) + debug_text_event(qeth_dbf[QETH_DBF_##name].id, level, text) #define QETH_DBF_HEX(name, level, addr, len) \ + debug_event(qeth_dbf[QETH_DBF_##name].id, level, (void *)(addr), len) + +#define QETH_DBF_MESSAGE(level, text...) \ + debug_sprintf_event(qeth_dbf[QETH_DBF_MSG].id, level, text) + +#define QETH_DBF_TEXT_(name, level, text...) \ do { \ - debug_event(qeth_dbf_##name, level, (void *)(addr), len); \ + if (qeth_dbf_passes(qeth_dbf[QETH_DBF_##name].id, level)) { \ + char *dbf_txt_buf = \ + get_cpu_var(QETH_DBF_TXT_BUF); \ + sprintf(dbf_txt_buf, text); \ + debug_text_event(qeth_dbf[QETH_DBF_##name].id, \ + level, dbf_txt_buf); \ + put_cpu_var(QETH_DBF_TXT_BUF); \ + } \ } while (0) /* Allow to sort out low debug levels early to avoid wasted sprints */ @@ -826,13 +820,8 @@ void qeth_core_remove_osn_attributes(struct device *); /* exports for qeth discipline device drivers */ extern struct qeth_card_list_struct qeth_core_card_list; -extern debug_info_t *qeth_dbf_setup; -extern debug_info_t *qeth_dbf_data; -extern debug_info_t *qeth_dbf_misc; -extern debug_info_t *qeth_dbf_control; -extern debug_info_t *qeth_dbf_trace; -extern debug_info_t *qeth_dbf_sense; -extern debug_info_t *qeth_dbf_qerr; + +extern struct qeth_dbf_info qeth_dbf[QETH_DBF_INFOS]; void qeth_set_allowed_threads(struct qeth_card *, unsigned long , int); int qeth_threads_running(struct qeth_card *, unsigned long); diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index ce27c0f3c4d..5cfe0ef7719 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -26,38 +26,35 @@ #include "qeth_core.h" #include "qeth_core_offl.h" -#define QETH_DBF_TEXT_(name, level, text...) \ - do { \ - if (qeth_dbf_passes(qeth_dbf_##name, level)) { \ - char *dbf_txt_buf = \ - get_cpu_var(qeth_core_dbf_txt_buf); \ - sprintf(dbf_txt_buf, text); \ - debug_text_event(qeth_dbf_##name, level, dbf_txt_buf); \ - put_cpu_var(qeth_core_dbf_txt_buf); \ - } \ - } while (0) +static DEFINE_PER_CPU(char[256], qeth_core_dbf_txt_buf); +#define QETH_DBF_TXT_BUF qeth_core_dbf_txt_buf + +struct qeth_dbf_info qeth_dbf[QETH_DBF_INFOS] = { + /* define dbf - Name, Pages, Areas, Maxlen, Level, View, Handle */ + /* N P A M L V H */ + [QETH_DBF_SETUP] = {"qeth_setup", + 8, 1, 8, 5, &debug_hex_ascii_view, NULL}, + [QETH_DBF_QERR] = {"qeth_qerr", + 2, 1, 8, 2, &debug_hex_ascii_view, NULL}, + [QETH_DBF_TRACE] = {"qeth_trace", + 4, 1, 8, 3, &debug_hex_ascii_view, NULL}, + [QETH_DBF_MSG] = {"qeth_msg", + 8, 1, 128, 3, &debug_sprintf_view, NULL}, + [QETH_DBF_SENSE] = {"qeth_sense", + 2, 1, 64, 2, &debug_hex_ascii_view, NULL}, + [QETH_DBF_MISC] = {"qeth_misc", + 2, 1, 256, 2, &debug_hex_ascii_view, NULL}, + [QETH_DBF_CTRL] = {"qeth_control", + 8, 1, QETH_DBF_CTRL_LEN, 5, &debug_hex_ascii_view, NULL}, +}; +EXPORT_SYMBOL_GPL(qeth_dbf); struct qeth_card_list_struct qeth_core_card_list; EXPORT_SYMBOL_GPL(qeth_core_card_list); -debug_info_t *qeth_dbf_setup; -EXPORT_SYMBOL_GPL(qeth_dbf_setup); -debug_info_t *qeth_dbf_data; -EXPORT_SYMBOL_GPL(qeth_dbf_data); -debug_info_t *qeth_dbf_misc; -EXPORT_SYMBOL_GPL(qeth_dbf_misc); -debug_info_t *qeth_dbf_control; -EXPORT_SYMBOL_GPL(qeth_dbf_control); -debug_info_t *qeth_dbf_trace; -EXPORT_SYMBOL_GPL(qeth_dbf_trace); -debug_info_t *qeth_dbf_sense; -EXPORT_SYMBOL_GPL(qeth_dbf_sense); -debug_info_t *qeth_dbf_qerr; -EXPORT_SYMBOL_GPL(qeth_dbf_qerr); static struct device *qeth_core_root_dev; static unsigned int known_devices[][10] = QETH_MODELLIST_ARRAY; static struct lock_class_key qdio_out_skb_queue_key; -static DEFINE_PER_CPU(char[256], qeth_core_dbf_txt_buf); static void qeth_send_control_data_cb(struct qeth_channel *, struct qeth_cmd_buffer *); @@ -219,7 +216,7 @@ void qeth_clear_working_pool_list(struct qeth_card *card) { struct qeth_buffer_pool_entry *pool_entry, *tmp; - QETH_DBF_TEXT(trace, 5, "clwrklst"); + QETH_DBF_TEXT(TRACE, 5, "clwrklst"); list_for_each_entry_safe(pool_entry, tmp, &card->qdio.in_buf_pool.entry_list, list){ list_del(&pool_entry->list); @@ -233,7 +230,7 @@ static int qeth_alloc_buffer_pool(struct qeth_card *card) void *ptr; int i, j; - QETH_DBF_TEXT(trace, 5, "alocpool"); + QETH_DBF_TEXT(TRACE, 5, "alocpool"); for (i = 0; i < card->qdio.init_pool.buf_count; ++i) { pool_entry = kmalloc(sizeof(*pool_entry), GFP_KERNEL); if (!pool_entry) { @@ -260,7 +257,7 @@ static int qeth_alloc_buffer_pool(struct qeth_card *card) int qeth_realloc_buffer_pool(struct qeth_card *card, int bufcnt) { - QETH_DBF_TEXT(trace, 2, "realcbp"); + QETH_DBF_TEXT(TRACE, 2, "realcbp"); if ((card->state != CARD_STATE_DOWN) && (card->state != CARD_STATE_RECOVER)) @@ -321,7 +318,7 @@ static int qeth_issue_next_read(struct qeth_card *card) int rc; struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(trace, 5, "issnxrd"); + QETH_DBF_TEXT(TRACE, 5, "issnxrd"); if (card->read.state != CH_STATE_UP) return -EIO; iob = qeth_get_buffer(&card->read); @@ -330,7 +327,7 @@ static int qeth_issue_next_read(struct qeth_card *card) return -ENOMEM; } qeth_setup_ccw(&card->read, iob->data, QETH_BUFSIZE); - QETH_DBF_TEXT(trace, 6, "noirqpnd"); + QETH_DBF_TEXT(TRACE, 6, "noirqpnd"); rc = ccw_device_start(card->read.ccwdev, &card->read.ccw, (addr_t) iob, 0, 0); if (rc) { @@ -368,19 +365,19 @@ static void qeth_put_reply(struct qeth_reply *reply) kfree(reply); } -static void qeth_issue_ipa_msg(struct qeth_ipa_cmd *cmd, +static void qeth_issue_ipa_msg(struct qeth_ipa_cmd *cmd, int rc, struct qeth_card *card) { - int rc; - int com; char *ipa_name; - - com = cmd->hdr.command; - rc = cmd->hdr.return_code; + int com = cmd->hdr.command; ipa_name = qeth_get_ipa_cmd_name(com); - - PRINT_ERR("%s(x%X) for %s returned x%X \"%s\"\n", ipa_name, com, - QETH_CARD_IFNAME(card), rc, qeth_get_ipa_msg(rc)); + if (rc) + QETH_DBF_MESSAGE(2, "IPA: %s(x%X) for %s returned x%X \"%s\"\n", + ipa_name, com, QETH_CARD_IFNAME(card), + rc, qeth_get_ipa_msg(rc)); + else + QETH_DBF_MESSAGE(5, "IPA: %s(x%X) for %s succeeded\n", + ipa_name, com, QETH_CARD_IFNAME(card)); } static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, @@ -388,14 +385,14 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, { struct qeth_ipa_cmd *cmd = NULL; - QETH_DBF_TEXT(trace, 5, "chkipad"); + QETH_DBF_TEXT(TRACE, 5, "chkipad"); if (IS_IPA(iob->data)) { cmd = (struct qeth_ipa_cmd *) PDU_ENCAPSULATION(iob->data); if (IS_IPA_REPLY(cmd)) { - if (cmd->hdr.return_code && - (cmd->hdr.command < IPA_CMD_SETCCID || - cmd->hdr.command > IPA_CMD_MODCCID)) - qeth_issue_ipa_msg(cmd, card); + if (cmd->hdr.command < IPA_CMD_SETCCID || + cmd->hdr.command > IPA_CMD_MODCCID) + qeth_issue_ipa_msg(cmd, + cmd->hdr.return_code, card); return cmd; } else { switch (cmd->hdr.command) { @@ -423,10 +420,10 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, case IPA_CMD_MODCCID: return cmd; case IPA_CMD_REGISTER_LOCAL_ADDR: - QETH_DBF_TEXT(trace, 3, "irla"); + QETH_DBF_TEXT(TRACE, 3, "irla"); break; case IPA_CMD_UNREGISTER_LOCAL_ADDR: - QETH_DBF_TEXT(trace, 3, "urla"); + QETH_DBF_TEXT(TRACE, 3, "urla"); break; default: PRINT_WARN("Received data is IPA " @@ -443,7 +440,7 @@ void qeth_clear_ipacmd_list(struct qeth_card *card) struct qeth_reply *reply, *r; unsigned long flags; - QETH_DBF_TEXT(trace, 4, "clipalst"); + QETH_DBF_TEXT(TRACE, 4, "clipalst"); spin_lock_irqsave(&card->lock, flags); list_for_each_entry_safe(reply, r, &card->cmd_waiter_list, list) { @@ -463,16 +460,16 @@ static int qeth_check_idx_response(unsigned char *buffer) if (!buffer) return 0; - QETH_DBF_HEX(control, 2, buffer, QETH_DBF_CONTROL_LEN); + QETH_DBF_HEX(CTRL, 2, buffer, QETH_DBF_CTRL_LEN); if ((buffer[2] & 0xc0) == 0xc0) { PRINT_WARN("received an IDX TERMINATE " "with cause code 0x%02x%s\n", buffer[4], ((buffer[4] == 0x22) ? " -- try another portname" : "")); - QETH_DBF_TEXT(trace, 2, "ckidxres"); - QETH_DBF_TEXT(trace, 2, " idxterm"); - QETH_DBF_TEXT_(trace, 2, " rc%d", -EIO); + QETH_DBF_TEXT(TRACE, 2, "ckidxres"); + QETH_DBF_TEXT(TRACE, 2, " idxterm"); + QETH_DBF_TEXT_(TRACE, 2, " rc%d", -EIO); return -EIO; } return 0; @@ -483,7 +480,7 @@ static void qeth_setup_ccw(struct qeth_channel *channel, unsigned char *iob, { struct qeth_card *card; - QETH_DBF_TEXT(trace, 4, "setupccw"); + QETH_DBF_TEXT(TRACE, 4, "setupccw"); card = CARD_FROM_CDEV(channel->ccwdev); if (channel == &card->read) memcpy(&channel->ccw, READ_CCW, sizeof(struct ccw1)); @@ -497,7 +494,7 @@ static struct qeth_cmd_buffer *__qeth_get_buffer(struct qeth_channel *channel) { __u8 index; - QETH_DBF_TEXT(trace, 6, "getbuff"); + QETH_DBF_TEXT(TRACE, 6, "getbuff"); index = channel->io_buf_no; do { if (channel->iob[index].state == BUF_STATE_FREE) { @@ -518,7 +515,7 @@ void qeth_release_buffer(struct qeth_channel *channel, { unsigned long flags; - QETH_DBF_TEXT(trace, 6, "relbuff"); + QETH_DBF_TEXT(TRACE, 6, "relbuff"); spin_lock_irqsave(&channel->iob_lock, flags); memset(iob->data, 0, QETH_BUFSIZE); iob->state = BUF_STATE_FREE; @@ -568,7 +565,7 @@ static void qeth_send_control_data_cb(struct qeth_channel *channel, unsigned long flags; int keep_reply; - QETH_DBF_TEXT(trace, 4, "sndctlcb"); + QETH_DBF_TEXT(TRACE, 4, "sndctlcb"); card = CARD_FROM_CDEV(channel->ccwdev); if (qeth_check_idx_response(iob->data)) { @@ -638,7 +635,7 @@ static int qeth_setup_channel(struct qeth_channel *channel) { int cnt; - QETH_DBF_TEXT(setup, 2, "setupch"); + QETH_DBF_TEXT(SETUP, 2, "setupch"); for (cnt = 0; cnt < QETH_CMD_BUFFER_NO; cnt++) { channel->iob[cnt].data = (char *) kmalloc(QETH_BUFSIZE, GFP_DMA|GFP_KERNEL); @@ -732,7 +729,7 @@ EXPORT_SYMBOL_GPL(qeth_do_run_thread); void qeth_schedule_recovery(struct qeth_card *card) { - QETH_DBF_TEXT(trace, 2, "startrec"); + QETH_DBF_TEXT(TRACE, 2, "startrec"); if (qeth_set_thread_start_bit(card, QETH_RECOVER_THREAD) == 0) schedule_work(&card->kernel_thread_starter); } @@ -750,7 +747,7 @@ static int qeth_get_problem(struct ccw_device *cdev, struct irb *irb) if (cstat & (SCHN_STAT_CHN_CTRL_CHK | SCHN_STAT_INTF_CTRL_CHK | SCHN_STAT_CHN_DATA_CHK | SCHN_STAT_CHAIN_CHECK | SCHN_STAT_PROT_CHECK | SCHN_STAT_PROG_CHECK)) { - QETH_DBF_TEXT(trace, 2, "CGENCHK"); + QETH_DBF_TEXT(TRACE, 2, "CGENCHK"); PRINT_WARN("check on device %s, dstat=x%x, cstat=x%x ", cdev->dev.bus_id, dstat, cstat); print_hex_dump(KERN_WARNING, "qeth: irb ", DUMP_PREFIX_OFFSET, @@ -761,23 +758,23 @@ static int qeth_get_problem(struct ccw_device *cdev, struct irb *irb) if (dstat & DEV_STAT_UNIT_CHECK) { if (sense[SENSE_RESETTING_EVENT_BYTE] & SENSE_RESETTING_EVENT_FLAG) { - QETH_DBF_TEXT(trace, 2, "REVIND"); + QETH_DBF_TEXT(TRACE, 2, "REVIND"); return 1; } if (sense[SENSE_COMMAND_REJECT_BYTE] & SENSE_COMMAND_REJECT_FLAG) { - QETH_DBF_TEXT(trace, 2, "CMDREJi"); + QETH_DBF_TEXT(TRACE, 2, "CMDREJi"); return 0; } if ((sense[2] == 0xaf) && (sense[3] == 0xfe)) { - QETH_DBF_TEXT(trace, 2, "AFFE"); + QETH_DBF_TEXT(TRACE, 2, "AFFE"); return 1; } if ((!sense[0]) && (!sense[1]) && (!sense[2]) && (!sense[3])) { - QETH_DBF_TEXT(trace, 2, "ZEROSEN"); + QETH_DBF_TEXT(TRACE, 2, "ZEROSEN"); return 0; } - QETH_DBF_TEXT(trace, 2, "DGENCHK"); + QETH_DBF_TEXT(TRACE, 2, "DGENCHK"); return 1; } return 0; @@ -792,13 +789,13 @@ static long __qeth_check_irb_error(struct ccw_device *cdev, switch (PTR_ERR(irb)) { case -EIO: PRINT_WARN("i/o-error on device %s\n", cdev->dev.bus_id); - QETH_DBF_TEXT(trace, 2, "ckirberr"); - QETH_DBF_TEXT_(trace, 2, " rc%d", -EIO); + QETH_DBF_TEXT(TRACE, 2, "ckirberr"); + QETH_DBF_TEXT_(TRACE, 2, " rc%d", -EIO); break; case -ETIMEDOUT: PRINT_WARN("timeout on device %s\n", cdev->dev.bus_id); - QETH_DBF_TEXT(trace, 2, "ckirberr"); - QETH_DBF_TEXT_(trace, 2, " rc%d", -ETIMEDOUT); + QETH_DBF_TEXT(TRACE, 2, "ckirberr"); + QETH_DBF_TEXT_(TRACE, 2, " rc%d", -ETIMEDOUT); if (intparm == QETH_RCD_PARM) { struct qeth_card *card = CARD_FROM_CDEV(cdev); @@ -811,8 +808,8 @@ static long __qeth_check_irb_error(struct ccw_device *cdev, default: PRINT_WARN("unknown error %ld on device %s\n", PTR_ERR(irb), cdev->dev.bus_id); - QETH_DBF_TEXT(trace, 2, "ckirberr"); - QETH_DBF_TEXT(trace, 2, " rc???"); + QETH_DBF_TEXT(TRACE, 2, "ckirberr"); + QETH_DBF_TEXT(TRACE, 2, " rc???"); } return PTR_ERR(irb); } @@ -828,7 +825,7 @@ static void qeth_irq(struct ccw_device *cdev, unsigned long intparm, struct qeth_cmd_buffer *iob; __u8 index; - QETH_DBF_TEXT(trace, 5, "irq"); + QETH_DBF_TEXT(TRACE, 5, "irq"); if (__qeth_check_irb_error(cdev, intparm, irb)) return; @@ -841,13 +838,13 @@ static void qeth_irq(struct ccw_device *cdev, unsigned long intparm, if (card->read.ccwdev == cdev) { channel = &card->read; - QETH_DBF_TEXT(trace, 5, "read"); + QETH_DBF_TEXT(TRACE, 5, "read"); } else if (card->write.ccwdev == cdev) { channel = &card->write; - QETH_DBF_TEXT(trace, 5, "write"); + QETH_DBF_TEXT(TRACE, 5, "write"); } else { channel = &card->data; - QETH_DBF_TEXT(trace, 5, "data"); + QETH_DBF_TEXT(TRACE, 5, "data"); } atomic_set(&channel->irq_pending, 0); @@ -863,12 +860,12 @@ static void qeth_irq(struct ccw_device *cdev, unsigned long intparm, goto out; if (intparm == QETH_CLEAR_CHANNEL_PARM) { - QETH_DBF_TEXT(trace, 6, "clrchpar"); + QETH_DBF_TEXT(TRACE, 6, "clrchpar"); /* we don't have to handle this further */ intparm = 0; } if (intparm == QETH_HALT_CHANNEL_PARM) { - QETH_DBF_TEXT(trace, 6, "hltchpar"); + QETH_DBF_TEXT(TRACE, 6, "hltchpar"); /* we don't have to handle this further */ intparm = 0; } @@ -954,7 +951,7 @@ void qeth_clear_qdio_buffers(struct qeth_card *card) { int i, j; - QETH_DBF_TEXT(trace, 2, "clearqdbf"); + QETH_DBF_TEXT(TRACE, 2, "clearqdbf"); /* clear outbound buffers to free skbs */ for (i = 0; i < card->qdio.no_out_queues; ++i) if (card->qdio.out_qs[i]) { @@ -969,7 +966,7 @@ static void qeth_free_buffer_pool(struct qeth_card *card) { struct qeth_buffer_pool_entry *pool_entry, *tmp; int i = 0; - QETH_DBF_TEXT(trace, 5, "freepool"); + QETH_DBF_TEXT(TRACE, 5, "freepool"); list_for_each_entry_safe(pool_entry, tmp, &card->qdio.init_pool.entry_list, init_list){ for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) @@ -983,7 +980,7 @@ static void qeth_free_qdio_buffers(struct qeth_card *card) { int i, j; - QETH_DBF_TEXT(trace, 2, "freeqdbf"); + QETH_DBF_TEXT(TRACE, 2, "freeqdbf"); if (atomic_xchg(&card->qdio.state, QETH_QDIO_UNINITIALIZED) == QETH_QDIO_UNINITIALIZED) return; @@ -1008,7 +1005,7 @@ static void qeth_clean_channel(struct qeth_channel *channel) { int cnt; - QETH_DBF_TEXT(setup, 2, "freech"); + QETH_DBF_TEXT(SETUP, 2, "freech"); for (cnt = 0; cnt < QETH_CMD_BUFFER_NO; cnt++) kfree(channel->iob[cnt].data); } @@ -1028,7 +1025,7 @@ static int qeth_is_1920_device(struct qeth_card *card) u8 chpp; } *chp_dsc; - QETH_DBF_TEXT(setup, 2, "chk_1920"); + QETH_DBF_TEXT(SETUP, 2, "chk_1920"); ccwdev = card->data.ccwdev; chp_dsc = (struct channelPath_dsc *)ccw_device_get_chp_desc(ccwdev, 0); @@ -1037,13 +1034,13 @@ static int qeth_is_1920_device(struct qeth_card *card) single_queue = ((chp_dsc->chpp & 0x02) == 0x02); kfree(chp_dsc); } - QETH_DBF_TEXT_(setup, 2, "rc:%x", single_queue); + QETH_DBF_TEXT_(SETUP, 2, "rc:%x", single_queue); return single_queue; } static void qeth_init_qdio_info(struct qeth_card *card) { - QETH_DBF_TEXT(setup, 4, "intqdinf"); + QETH_DBF_TEXT(SETUP, 4, "intqdinf"); atomic_set(&card->qdio.state, QETH_QDIO_UNINITIALIZED); /* inbound */ card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT; @@ -1073,7 +1070,7 @@ static int qeth_do_start_thread(struct qeth_card *card, unsigned long thread) int rc = 0; spin_lock_irqsave(&card->thread_mask_lock, flags); - QETH_DBF_TEXT_(trace, 4, " %02x%02x%02x", + QETH_DBF_TEXT_(TRACE, 4, " %02x%02x%02x", (u8) card->thread_start_mask, (u8) card->thread_allowed_mask, (u8) card->thread_running_mask); @@ -1086,7 +1083,7 @@ static void qeth_start_kernel_thread(struct work_struct *work) { struct qeth_card *card = container_of(work, struct qeth_card, kernel_thread_starter); - QETH_DBF_TEXT(trace , 2, "strthrd"); + QETH_DBF_TEXT(TRACE , 2, "strthrd"); if (card->read.state != CH_STATE_UP && card->write.state != CH_STATE_UP) @@ -1099,8 +1096,8 @@ static void qeth_start_kernel_thread(struct work_struct *work) static int qeth_setup_card(struct qeth_card *card) { - QETH_DBF_TEXT(setup, 2, "setupcrd"); - QETH_DBF_HEX(setup, 2, &card, sizeof(void *)); + QETH_DBF_TEXT(SETUP, 2, "setupcrd"); + QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *)); card->read.state = CH_STATE_DOWN; card->write.state = CH_STATE_DOWN; @@ -1122,7 +1119,7 @@ static int qeth_setup_card(struct qeth_card *card) INIT_LIST_HEAD(&card->ip_list); card->ip_tbd_list = kmalloc(sizeof(struct list_head), GFP_KERNEL); if (!card->ip_tbd_list) { - QETH_DBF_TEXT(setup, 0, "iptbdnom"); + QETH_DBF_TEXT(SETUP, 0, "iptbdnom"); return -ENOMEM; } INIT_LIST_HEAD(card->ip_tbd_list); @@ -1144,11 +1141,11 @@ static struct qeth_card *qeth_alloc_card(void) { struct qeth_card *card; - QETH_DBF_TEXT(setup, 2, "alloccrd"); + QETH_DBF_TEXT(SETUP, 2, "alloccrd"); card = kzalloc(sizeof(struct qeth_card), GFP_DMA|GFP_KERNEL); if (!card) return NULL; - QETH_DBF_HEX(setup, 2, &card, sizeof(void *)); + QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *)); if (qeth_setup_channel(&card->read)) { kfree(card); return NULL; @@ -1166,7 +1163,7 @@ static int qeth_determine_card_type(struct qeth_card *card) { int i = 0; - QETH_DBF_TEXT(setup, 2, "detcdtyp"); + QETH_DBF_TEXT(SETUP, 2, "detcdtyp"); card->qdio.do_prio_queueing = QETH_PRIOQ_DEFAULT; card->qdio.default_out_queue = QETH_DEFAULT_QUEUE; @@ -1197,7 +1194,7 @@ static int qeth_clear_channel(struct qeth_channel *channel) struct qeth_card *card; int rc; - QETH_DBF_TEXT(trace, 3, "clearch"); + QETH_DBF_TEXT(TRACE, 3, "clearch"); card = CARD_FROM_CDEV(channel->ccwdev); spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags); rc = ccw_device_clear(channel->ccwdev, QETH_CLEAR_CHANNEL_PARM); @@ -1221,7 +1218,7 @@ static int qeth_halt_channel(struct qeth_channel *channel) struct qeth_card *card; int rc; - QETH_DBF_TEXT(trace, 3, "haltch"); + QETH_DBF_TEXT(TRACE, 3, "haltch"); card = CARD_FROM_CDEV(channel->ccwdev); spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags); rc = ccw_device_halt(channel->ccwdev, QETH_HALT_CHANNEL_PARM); @@ -1242,7 +1239,7 @@ static int qeth_halt_channels(struct qeth_card *card) { int rc1 = 0, rc2 = 0, rc3 = 0; - QETH_DBF_TEXT(trace, 3, "haltchs"); + QETH_DBF_TEXT(TRACE, 3, "haltchs"); rc1 = qeth_halt_channel(&card->read); rc2 = qeth_halt_channel(&card->write); rc3 = qeth_halt_channel(&card->data); @@ -1257,7 +1254,7 @@ static int qeth_clear_channels(struct qeth_card *card) { int rc1 = 0, rc2 = 0, rc3 = 0; - QETH_DBF_TEXT(trace, 3, "clearchs"); + QETH_DBF_TEXT(TRACE, 3, "clearchs"); rc1 = qeth_clear_channel(&card->read); rc2 = qeth_clear_channel(&card->write); rc3 = qeth_clear_channel(&card->data); @@ -1272,8 +1269,8 @@ static int qeth_clear_halt_card(struct qeth_card *card, int halt) { int rc = 0; - QETH_DBF_TEXT(trace, 3, "clhacrd"); - QETH_DBF_HEX(trace, 3, &card, sizeof(void *)); + QETH_DBF_TEXT(TRACE, 3, "clhacrd"); + QETH_DBF_HEX(TRACE, 3, &card, sizeof(void *)); if (halt) rc = qeth_halt_channels(card); @@ -1286,7 +1283,7 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt) { int rc = 0; - QETH_DBF_TEXT(trace, 3, "qdioclr"); + QETH_DBF_TEXT(TRACE, 3, "qdioclr"); switch (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ESTABLISHED, QETH_QDIO_CLEANING)) { case QETH_QDIO_ESTABLISHED: @@ -1297,7 +1294,7 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt) rc = qdio_cleanup(CARD_DDEV(card), QDIO_FLAG_CLEANUP_USING_CLEAR); if (rc) - QETH_DBF_TEXT_(trace, 3, "1err%d", rc); + QETH_DBF_TEXT_(TRACE, 3, "1err%d", rc); atomic_set(&card->qdio.state, QETH_QDIO_ALLOCATED); break; case QETH_QDIO_CLEANING: @@ -1307,7 +1304,7 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt) } rc = qeth_clear_halt_card(card, use_halt); if (rc) - QETH_DBF_TEXT_(trace, 3, "2err%d", rc); + QETH_DBF_TEXT_(TRACE, 3, "2err%d", rc); card->state = CARD_STATE_DOWN; return rc; } @@ -1367,7 +1364,7 @@ static int qeth_get_unitaddr(struct qeth_card *card) char *prcd; int rc; - QETH_DBF_TEXT(setup, 2, "getunit"); + QETH_DBF_TEXT(SETUP, 2, "getunit"); rc = qeth_read_conf_data(card, (void **) &prcd, &length); if (rc) { PRINT_ERR("qeth_read_conf_data for device %s returned %i\n", @@ -1428,7 +1425,7 @@ static int qeth_idx_activate_get_answer(struct qeth_channel *channel, int rc; struct qeth_card *card; - QETH_DBF_TEXT(setup, 2, "idxanswr"); + QETH_DBF_TEXT(SETUP, 2, "idxanswr"); card = CARD_FROM_CDEV(channel->ccwdev); iob = qeth_get_buffer(channel); iob->callback = idx_reply_cb; @@ -1438,7 +1435,7 @@ static int qeth_idx_activate_get_answer(struct qeth_channel *channel, wait_event(card->wait_q, atomic_cmpxchg(&channel->irq_pending, 0, 1) == 0); - QETH_DBF_TEXT(setup, 6, "noirqpnd"); + QETH_DBF_TEXT(SETUP, 6, "noirqpnd"); spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags); rc = ccw_device_start(channel->ccwdev, &channel->ccw, (addr_t) iob, 0, 0); @@ -1446,7 +1443,7 @@ static int qeth_idx_activate_get_answer(struct qeth_channel *channel, if (rc) { PRINT_ERR("Error2 in activating channel rc=%d\n", rc); - QETH_DBF_TEXT_(setup, 2, "2err%d", rc); + QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc); atomic_set(&channel->irq_pending, 0); wake_up(&card->wait_q); return rc; @@ -1457,7 +1454,7 @@ static int qeth_idx_activate_get_answer(struct qeth_channel *channel, return rc; if (channel->state != CH_STATE_UP) { rc = -ETIME; - QETH_DBF_TEXT_(setup, 2, "3err%d", rc); + QETH_DBF_TEXT_(SETUP, 2, "3err%d", rc); qeth_clear_cmd_buffers(channel); } else rc = 0; @@ -1477,7 +1474,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, card = CARD_FROM_CDEV(channel->ccwdev); - QETH_DBF_TEXT(setup, 2, "idxactch"); + QETH_DBF_TEXT(SETUP, 2, "idxactch"); iob = qeth_get_buffer(channel); iob->callback = idx_reply_cb; @@ -1507,7 +1504,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, wait_event(card->wait_q, atomic_cmpxchg(&channel->irq_pending, 0, 1) == 0); - QETH_DBF_TEXT(setup, 6, "noirqpnd"); + QETH_DBF_TEXT(SETUP, 6, "noirqpnd"); spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags); rc = ccw_device_start(channel->ccwdev, &channel->ccw, (addr_t) iob, 0, 0); @@ -1515,7 +1512,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, if (rc) { PRINT_ERR("Error1 in activating channel. rc=%d\n", rc); - QETH_DBF_TEXT_(setup, 2, "1err%d", rc); + QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc); atomic_set(&channel->irq_pending, 0); wake_up(&card->wait_q); return rc; @@ -1526,7 +1523,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel, return rc; if (channel->state != CH_STATE_ACTIVATING) { PRINT_WARN("IDX activate timed out!\n"); - QETH_DBF_TEXT_(setup, 2, "2err%d", -ETIME); + QETH_DBF_TEXT_(SETUP, 2, "2err%d", -ETIME); qeth_clear_cmd_buffers(channel); return -ETIME; } @@ -1548,7 +1545,7 @@ static void qeth_idx_write_cb(struct qeth_channel *channel, struct qeth_card *card; __u16 temp; - QETH_DBF_TEXT(setup , 2, "idxwrcb"); + QETH_DBF_TEXT(SETUP , 2, "idxwrcb"); if (channel->state == CH_STATE_DOWN) { channel->state = CH_STATE_ACTIVATING; @@ -1585,7 +1582,7 @@ static void qeth_idx_read_cb(struct qeth_channel *channel, struct qeth_card *card; __u16 temp; - QETH_DBF_TEXT(setup , 2, "idxrdcb"); + QETH_DBF_TEXT(SETUP , 2, "idxrdcb"); if (channel->state == CH_STATE_DOWN) { channel->state = CH_STATE_ACTIVATING; goto out; @@ -1645,7 +1642,7 @@ void qeth_prepare_control_data(struct qeth_card *card, int len, card->seqno.pdu_hdr++; memcpy(QETH_PDU_HEADER_ACK_SEQ_NO(iob->data), &card->seqno.pdu_hdr_ack, QETH_SEQ_NO_LENGTH); - QETH_DBF_HEX(control, 2, iob->data, QETH_DBF_CONTROL_LEN); + QETH_DBF_HEX(CTRL, 2, iob->data, QETH_DBF_CTRL_LEN); } EXPORT_SYMBOL_GPL(qeth_prepare_control_data); @@ -1660,11 +1657,11 @@ int qeth_send_control_data(struct qeth_card *card, int len, struct qeth_reply *reply = NULL; unsigned long timeout; - QETH_DBF_TEXT(trace, 2, "sendctl"); + QETH_DBF_TEXT(TRACE, 2, "sendctl"); reply = qeth_alloc_reply(card); if (!reply) { - PRINT_WARN("Could no alloc qeth_reply!\n"); + PRINT_WARN("Could not alloc qeth_reply!\n"); return -ENOMEM; } reply->callback = reply_cb; @@ -1677,7 +1674,7 @@ int qeth_send_control_data(struct qeth_card *card, int len, spin_lock_irqsave(&card->lock, flags); list_add_tail(&reply->list, &card->cmd_waiter_list); spin_unlock_irqrestore(&card->lock, flags); - QETH_DBF_HEX(control, 2, iob->data, QETH_DBF_CONTROL_LEN); + QETH_DBF_HEX(CTRL, 2, iob->data, QETH_DBF_CTRL_LEN); while (atomic_cmpxchg(&card->write.irq_pending, 0, 1)) ; qeth_prepare_control_data(card, len, iob); @@ -1687,7 +1684,7 @@ int qeth_send_control_data(struct qeth_card *card, int len, else timeout = jiffies + QETH_TIMEOUT; - QETH_DBF_TEXT(trace, 6, "noirqpnd"); + QETH_DBF_TEXT(TRACE, 6, "noirqpnd"); spin_lock_irqsave(get_ccwdev_lock(card->write.ccwdev), flags); rc = ccw_device_start(card->write.ccwdev, &card->write.ccw, (addr_t) iob, 0, 0); @@ -1695,7 +1692,7 @@ int qeth_send_control_data(struct qeth_card *card, int len, if (rc) { PRINT_WARN("qeth_send_control_data: " "ccw_device_start rc = %i\n", rc); - QETH_DBF_TEXT_(trace, 2, " err%d", rc); + QETH_DBF_TEXT_(TRACE, 2, " err%d", rc); spin_lock_irqsave(&card->lock, flags); list_del_init(&reply->list); qeth_put_reply(reply); @@ -1727,13 +1724,13 @@ static int qeth_cm_enable_cb(struct qeth_card *card, struct qeth_reply *reply, { struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "cmenblcb"); + QETH_DBF_TEXT(SETUP, 2, "cmenblcb"); iob = (struct qeth_cmd_buffer *) data; memcpy(&card->token.cm_filter_r, QETH_CM_ENABLE_RESP_FILTER_TOKEN(iob->data), QETH_MPC_TOKEN_LENGTH); - QETH_DBF_TEXT_(setup, 2, " rc%d", iob->rc); + QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } @@ -1742,7 +1739,7 @@ static int qeth_cm_enable(struct qeth_card *card) int rc; struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "cmenable"); + QETH_DBF_TEXT(SETUP, 2, "cmenable"); iob = qeth_wait_for_buffer(&card->write); memcpy(iob->data, CM_ENABLE, CM_ENABLE_SIZE); @@ -1762,13 +1759,13 @@ static int qeth_cm_setup_cb(struct qeth_card *card, struct qeth_reply *reply, struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "cmsetpcb"); + QETH_DBF_TEXT(SETUP, 2, "cmsetpcb"); iob = (struct qeth_cmd_buffer *) data; memcpy(&card->token.cm_connection_r, QETH_CM_SETUP_RESP_DEST_ADDR(iob->data), QETH_MPC_TOKEN_LENGTH); - QETH_DBF_TEXT_(setup, 2, " rc%d", iob->rc); + QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } @@ -1777,7 +1774,7 @@ static int qeth_cm_setup(struct qeth_card *card) int rc; struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "cmsetup"); + QETH_DBF_TEXT(SETUP, 2, "cmsetup"); iob = qeth_wait_for_buffer(&card->write); memcpy(iob->data, CM_SETUP, CM_SETUP_SIZE); @@ -1878,7 +1875,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, __u8 link_type; struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "ulpenacb"); + QETH_DBF_TEXT(SETUP, 2, "ulpenacb"); iob = (struct qeth_cmd_buffer *) data; memcpy(&card->token.ulp_filter_r, @@ -1889,7 +1886,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, mtu = qeth_get_mtu_outof_framesize(framesize); if (!mtu) { iob->rc = -EINVAL; - QETH_DBF_TEXT_(setup, 2, " rc%d", iob->rc); + QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } card->info.max_mtu = mtu; @@ -1908,7 +1905,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, card->info.link_type = link_type; } else card->info.link_type = 0; - QETH_DBF_TEXT_(setup, 2, " rc%d", iob->rc); + QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } @@ -1919,7 +1916,7 @@ static int qeth_ulp_enable(struct qeth_card *card) struct qeth_cmd_buffer *iob; /*FIXME: trace view callbacks*/ - QETH_DBF_TEXT(setup, 2, "ulpenabl"); + QETH_DBF_TEXT(SETUP, 2, "ulpenabl"); iob = qeth_wait_for_buffer(&card->write); memcpy(iob->data, ULP_ENABLE, ULP_ENABLE_SIZE); @@ -1952,13 +1949,13 @@ static int qeth_ulp_setup_cb(struct qeth_card *card, struct qeth_reply *reply, { struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "ulpstpcb"); + QETH_DBF_TEXT(SETUP, 2, "ulpstpcb"); iob = (struct qeth_cmd_buffer *) data; memcpy(&card->token.ulp_connection_r, QETH_ULP_SETUP_RESP_CONNECTION_TOKEN(iob->data), QETH_MPC_TOKEN_LENGTH); - QETH_DBF_TEXT_(setup, 2, " rc%d", iob->rc); + QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } @@ -1969,7 +1966,7 @@ static int qeth_ulp_setup(struct qeth_card *card) struct qeth_cmd_buffer *iob; struct ccw_dev_id dev_id; - QETH_DBF_TEXT(setup, 2, "ulpsetup"); + QETH_DBF_TEXT(SETUP, 2, "ulpsetup"); iob = qeth_wait_for_buffer(&card->write); memcpy(iob->data, ULP_SETUP, ULP_SETUP_SIZE); @@ -1994,7 +1991,7 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card) { int i, j; - QETH_DBF_TEXT(setup, 2, "allcqdbf"); + QETH_DBF_TEXT(SETUP, 2, "allcqdbf"); if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_UNINITIALIZED, QETH_QDIO_ALLOCATED) != QETH_QDIO_UNINITIALIZED) @@ -2004,8 +2001,8 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card) GFP_KERNEL); if (!card->qdio.in_q) goto out_nomem; - QETH_DBF_TEXT(setup, 2, "inq"); - QETH_DBF_HEX(setup, 2, &card->qdio.in_q, sizeof(void *)); + QETH_DBF_TEXT(SETUP, 2, "inq"); + QETH_DBF_HEX(SETUP, 2, &card->qdio.in_q, sizeof(void *)); memset(card->qdio.in_q, 0, sizeof(struct qeth_qdio_q)); /* give inbound qeth_qdio_buffers their qdio_buffers */ for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) @@ -2025,8 +2022,8 @@ static int qeth_alloc_qdio_buffers(struct qeth_card *card) GFP_KERNEL); if (!card->qdio.out_qs[i]) goto out_freeoutq; - QETH_DBF_TEXT_(setup, 2, "outq %i", i); - QETH_DBF_HEX(setup, 2, &card->qdio.out_qs[i], sizeof(void *)); + QETH_DBF_TEXT_(SETUP, 2, "outq %i", i); + QETH_DBF_HEX(SETUP, 2, &card->qdio.out_qs[i], sizeof(void *)); memset(card->qdio.out_qs[i], 0, sizeof(struct qeth_qdio_out_q)); card->qdio.out_qs[i]->queue_no = i; /* give outbound qeth_qdio_buffers their qdio_buffers */ @@ -2086,7 +2083,7 @@ static void qeth_create_qib_param_field_blkt(struct qeth_card *card, static int qeth_qdio_activate(struct qeth_card *card) { - QETH_DBF_TEXT(setup, 3, "qdioact"); + QETH_DBF_TEXT(SETUP, 3, "qdioact"); return qdio_activate(CARD_DDEV(card), 0); } @@ -2095,7 +2092,7 @@ static int qeth_dm_act(struct qeth_card *card) int rc; struct qeth_cmd_buffer *iob; - QETH_DBF_TEXT(setup, 2, "dmact"); + QETH_DBF_TEXT(SETUP, 2, "dmact"); iob = qeth_wait_for_buffer(&card->write); memcpy(iob->data, DM_ACT, DM_ACT_SIZE); @@ -2112,52 +2109,52 @@ static int qeth_mpc_initialize(struct qeth_card *card) { int rc; - QETH_DBF_TEXT(setup, 2, "mpcinit"); + QETH_DBF_TEXT(SETUP, 2, "mpcinit"); rc = qeth_issue_next_read(card); if (rc) { - QETH_DBF_TEXT_(setup, 2, "1err%d", rc); + QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc); return rc; } rc = qeth_cm_enable(ca |