aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_l2_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/qeth_l2_main.c')
-rw-r--r--drivers/s390/net/qeth_l2_main.c146
1 files changed, 69 insertions, 77 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 4417a3629ae0..3921d1631a78 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -22,16 +22,7 @@
22#include "qeth_core.h" 22#include "qeth_core.h"
23#include "qeth_core_offl.h" 23#include "qeth_core_offl.h"
24 24
25#define QETH_DBF_TEXT_(name, level, text...) \ 25#define QETH_DBF_TXT_BUF qeth_l2_dbf_txt_buf
26 do { \
27 if (qeth_dbf_passes(qeth_dbf_##name, level)) { \
28 char *dbf_txt_buf = get_cpu_var(qeth_l2_dbf_txt_buf); \
29 sprintf(dbf_txt_buf, text); \
30 debug_text_event(qeth_dbf_##name, level, dbf_txt_buf); \
31 put_cpu_var(qeth_l2_dbf_txt_buf); \
32 } \
33 } while (0)
34
35static DEFINE_PER_CPU(char[256], qeth_l2_dbf_txt_buf); 26static DEFINE_PER_CPU(char[256], qeth_l2_dbf_txt_buf);
36 27
37static int qeth_l2_set_offline(struct ccwgroup_device *); 28static int qeth_l2_set_offline(struct ccwgroup_device *);
@@ -87,7 +78,7 @@ static int qeth_l2_do_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
87 rc = -EOPNOTSUPP; 78 rc = -EOPNOTSUPP;
88 } 79 }
89 if (rc) 80 if (rc)
90 QETH_DBF_TEXT_(trace, 2, "ioce%d", rc); 81 QETH_DBF_TEXT_(TRACE, 2, "ioce%d", rc);
91 return rc; 82 return rc;
92} 83}
93 84
@@ -141,7 +132,7 @@ static int qeth_l2_send_setgroupmac_cb(struct qeth_card *card,
141 struct qeth_ipa_cmd *cmd; 132 struct qeth_ipa_cmd *cmd;
142 __u8 *mac; 133 __u8 *mac;
143 134
144 QETH_DBF_TEXT(trace, 2, "L2Sgmacb"); 135 QETH_DBF_TEXT(TRACE, 2, "L2Sgmacb");
145 cmd = (struct qeth_ipa_cmd *) data; 136 cmd = (struct qeth_ipa_cmd *) data;
146 mac = &cmd->data.setdelmac.mac[0]; 137 mac = &cmd->data.setdelmac.mac[0];
147 /* MAC already registered, needed in couple/uncouple case */ 138 /* MAC already registered, needed in couple/uncouple case */
@@ -162,7 +153,7 @@ static int qeth_l2_send_setgroupmac_cb(struct qeth_card *card,
162 153
163static int qeth_l2_send_setgroupmac(struct qeth_card *card, __u8 *mac) 154static int qeth_l2_send_setgroupmac(struct qeth_card *card, __u8 *mac)
164{ 155{
165 QETH_DBF_TEXT(trace, 2, "L2Sgmac"); 156 QETH_DBF_TEXT(TRACE, 2, "L2Sgmac");
166 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETGMAC, 157 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETGMAC,
167 qeth_l2_send_setgroupmac_cb); 158 qeth_l2_send_setgroupmac_cb);
168} 159}
@@ -174,7 +165,7 @@ static int qeth_l2_send_delgroupmac_cb(struct qeth_card *card,
174 struct qeth_ipa_cmd *cmd; 165 struct qeth_ipa_cmd *cmd;
175 __u8 *mac; 166 __u8 *mac;
176 167
177 QETH_DBF_TEXT(trace, 2, "L2Dgmacb"); 168 QETH_DBF_TEXT(TRACE, 2, "L2Dgmacb");
178 cmd = (struct qeth_ipa_cmd *) data; 169 cmd = (struct qeth_ipa_cmd *) data;
179 mac = &cmd->data.setdelmac.mac[0]; 170 mac = &cmd->data.setdelmac.mac[0];
180 if (cmd->hdr.return_code) 171 if (cmd->hdr.return_code)
@@ -187,7 +178,7 @@ static int qeth_l2_send_delgroupmac_cb(struct qeth_card *card,
187 178
188static int qeth_l2_send_delgroupmac(struct qeth_card *card, __u8 *mac) 179static int qeth_l2_send_delgroupmac(struct qeth_card *card, __u8 *mac)
189{ 180{
190 QETH_DBF_TEXT(trace, 2, "L2Dgmac"); 181 QETH_DBF_TEXT(TRACE, 2, "L2Dgmac");
191 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_DELGMAC, 182 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_DELGMAC,
192 qeth_l2_send_delgroupmac_cb); 183 qeth_l2_send_delgroupmac_cb);
193} 184}
@@ -289,15 +280,15 @@ static int qeth_l2_send_setdelvlan_cb(struct qeth_card *card,
289{ 280{
290 struct qeth_ipa_cmd *cmd; 281 struct qeth_ipa_cmd *cmd;
291 282
292 QETH_DBF_TEXT(trace, 2, "L2sdvcb"); 283 QETH_DBF_TEXT(TRACE, 2, "L2sdvcb");
293 cmd = (struct qeth_ipa_cmd *) data; 284 cmd = (struct qeth_ipa_cmd *) data;
294 if (cmd->hdr.return_code) { 285 if (cmd->hdr.return_code) {
295 PRINT_ERR("Error in processing VLAN %i on %s: 0x%x. " 286 PRINT_ERR("Error in processing VLAN %i on %s: 0x%x. "
296 "Continuing\n", cmd->data.setdelvlan.vlan_id, 287 "Continuing\n", cmd->data.setdelvlan.vlan_id,
297 QETH_CARD_IFNAME(card), cmd->hdr.return_code); 288 QETH_CARD_IFNAME(card), cmd->hdr.return_code);
298 QETH_DBF_TEXT_(trace, 2, "L2VL%4x", cmd->hdr.command); 289 QETH_DBF_TEXT_(TRACE, 2, "L2VL%4x", cmd->hdr.command);
299 QETH_DBF_TEXT_(trace, 2, "L2%s", CARD_BUS_ID(card)); 290 QETH_DBF_TEXT_(TRACE, 2, "L2%s", CARD_BUS_ID(card));
300 QETH_DBF_TEXT_(trace, 2, "err%d", cmd->hdr.return_code); 291 QETH_DBF_TEXT_(TRACE, 2, "err%d", cmd->hdr.return_code);
301 } 292 }
302 return 0; 293 return 0;
303} 294}
@@ -308,7 +299,7 @@ static int qeth_l2_send_setdelvlan(struct qeth_card *card, __u16 i,
308 struct qeth_ipa_cmd *cmd; 299 struct qeth_ipa_cmd *cmd;
309 struct qeth_cmd_buffer *iob; 300 struct qeth_cmd_buffer *iob;
310 301
311 QETH_DBF_TEXT_(trace, 4, "L2sdv%x", ipacmd); 302 QETH_DBF_TEXT_(TRACE, 4, "L2sdv%x", ipacmd);
312 iob = qeth_get_ipacmd_buffer(card, ipacmd, QETH_PROT_IPV4); 303 iob = qeth_get_ipacmd_buffer(card, ipacmd, QETH_PROT_IPV4);
313 cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE); 304 cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
314 cmd->data.setdelvlan.vlan_id = i; 305 cmd->data.setdelvlan.vlan_id = i;
@@ -319,7 +310,7 @@ static int qeth_l2_send_setdelvlan(struct qeth_card *card, __u16 i,
319static void qeth_l2_process_vlans(struct qeth_card *card, int clear) 310static void qeth_l2_process_vlans(struct qeth_card *card, int clear)
320{ 311{
321 struct qeth_vlan_vid *id; 312 struct qeth_vlan_vid *id;
322 QETH_DBF_TEXT(trace, 3, "L2prcvln"); 313 QETH_DBF_TEXT(TRACE, 3, "L2prcvln");
323 spin_lock_bh(&card->vlanlock); 314 spin_lock_bh(&card->vlanlock);
324 list_for_each_entry(id, &card->vid_list, list) { 315 list_for_each_entry(id, &card->vid_list, list) {
325 if (clear) 316 if (clear)
@@ -337,7 +328,7 @@ static void qeth_l2_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
337 struct qeth_card *card = netdev_priv(dev); 328 struct qeth_card *card = netdev_priv(dev);
338 struct qeth_vlan_vid *id; 329 struct qeth_vlan_vid *id;
339 330
340 QETH_DBF_TEXT_(trace, 4, "aid:%d", vid); 331 QETH_DBF_TEXT_(TRACE, 4, "aid:%d", vid);
341 id = kmalloc(sizeof(struct qeth_vlan_vid), GFP_ATOMIC); 332 id = kmalloc(sizeof(struct qeth_vlan_vid), GFP_ATOMIC);
342 if (id) { 333 if (id) {
343 id->vid = vid; 334 id->vid = vid;
@@ -355,7 +346,7 @@ static void qeth_l2_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
355 struct qeth_vlan_vid *id, *tmpid = NULL; 346 struct qeth_vlan_vid *id, *tmpid = NULL;
356 struct qeth_card *card = netdev_priv(dev); 347 struct qeth_card *card = netdev_priv(dev);
357 348
358 QETH_DBF_TEXT_(trace, 4, "kid:%d", vid); 349 QETH_DBF_TEXT_(TRACE, 4, "kid:%d", vid);
359 spin_lock_bh(&card->vlanlock); 350 spin_lock_bh(&card->vlanlock);
360 list_for_each_entry(id, &card->vid_list, list) { 351 list_for_each_entry(id, &card->vid_list, list) {
361 if (id->vid == vid) { 352 if (id->vid == vid) {
@@ -376,8 +367,8 @@ static int qeth_l2_stop_card(struct qeth_card *card, int recovery_mode)
376{ 367{
377 int rc = 0; 368 int rc = 0;
378 369
379 QETH_DBF_TEXT(setup , 2, "stopcard"); 370 QETH_DBF_TEXT(SETUP , 2, "stopcard");
380 QETH_DBF_HEX(setup, 2, &card, sizeof(void *)); 371 QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
381 372
382 qeth_set_allowed_threads(card, 0, 1); 373 qeth_set_allowed_threads(card, 0, 1);
383 if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD)) 374 if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD))
@@ -396,7 +387,7 @@ static int qeth_l2_stop_card(struct qeth_card *card, int recovery_mode)
396 if (!card->use_hard_stop) { 387 if (!card->use_hard_stop) {
397 __u8 *mac = &card->dev->dev_addr[0]; 388 __u8 *mac = &card->dev->dev_addr[0];
398 rc = qeth_l2_send_delmac(card, mac); 389 rc = qeth_l2_send_delmac(card, mac);
399 QETH_DBF_TEXT_(setup, 2, "Lerr%d", rc); 390 QETH_DBF_TEXT_(SETUP, 2, "Lerr%d", rc);
400 } 391 }
401 card->state = CARD_STATE_SOFTSETUP; 392 card->state = CARD_STATE_SOFTSETUP;
402 } 393 }
@@ -451,7 +442,8 @@ static void qeth_l2_process_inbound_buffer(struct qeth_card *card,
451 skb->ip_summed = CHECKSUM_UNNECESSARY; 442 skb->ip_summed = CHECKSUM_UNNECESSARY;
452 else 443 else
453 skb->ip_summed = CHECKSUM_NONE; 444 skb->ip_summed = CHECKSUM_NONE;
454 *((__u32 *)skb->cb) = ++card->seqno.pkt_seqno; 445 if (skb->protocol == htons(ETH_P_802_2))
446 *((__u32 *)skb->cb) = ++card->seqno.pkt_seqno;
455 len = skb->len; 447 len = skb->len;
456 netif_rx(skb); 448 netif_rx(skb);
457 break; 449 break;
@@ -464,8 +456,8 @@ static void qeth_l2_process_inbound_buffer(struct qeth_card *card,
464 break; 456 break;
465 default: 457 default:
466 dev_kfree_skb_any(skb); 458 dev_kfree_skb_any(skb);
467 QETH_DBF_TEXT(trace, 3, "inbunkno"); 459 QETH_DBF_TEXT(TRACE, 3, "inbunkno");
468 QETH_DBF_HEX(control, 3, hdr, QETH_DBF_CONTROL_LEN); 460 QETH_DBF_HEX(CTRL, 3, hdr, QETH_DBF_CTRL_LEN);
469 continue; 461 continue;
470 } 462 }
471 card->dev->last_rx = jiffies; 463 card->dev->last_rx = jiffies;
@@ -483,7 +475,7 @@ static int qeth_l2_send_setdelmac(struct qeth_card *card, __u8 *mac,
483 struct qeth_ipa_cmd *cmd; 475 struct qeth_ipa_cmd *cmd;
484 struct qeth_cmd_buffer *iob; 476 struct qeth_cmd_buffer *iob;
485 477
486 QETH_DBF_TEXT(trace, 2, "L2sdmac"); 478 QETH_DBF_TEXT(TRACE, 2, "L2sdmac");
487 iob = qeth_get_ipacmd_buffer(card, ipacmd, QETH_PROT_IPV4); 479 iob = qeth_get_ipacmd_buffer(card, ipacmd, QETH_PROT_IPV4);
488 cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE); 480 cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
489 cmd->data.setdelmac.mac_length = OSA_ADDR_LEN; 481 cmd->data.setdelmac.mac_length = OSA_ADDR_LEN;
@@ -497,10 +489,10 @@ static int qeth_l2_send_setmac_cb(struct qeth_card *card,
497{ 489{
498 struct qeth_ipa_cmd *cmd; 490 struct qeth_ipa_cmd *cmd;
499 491
500 QETH_DBF_TEXT(trace, 2, "L2Smaccb"); 492 QETH_DBF_TEXT(TRACE, 2, "L2Smaccb");
501 cmd = (struct qeth_ipa_cmd *) data; 493 cmd = (struct qeth_ipa_cmd *) data;
502 if (cmd->hdr.return_code) { 494 if (cmd->hdr.return_code) {
503 QETH_DBF_TEXT_(trace, 2, "L2er%x", cmd->hdr.return_code); 495 QETH_DBF_TEXT_(TRACE, 2, "L2er%x", cmd->hdr.return_code);
504 card->info.mac_bits &= ~QETH_LAYER2_MAC_REGISTERED; 496 card->info.mac_bits &= ~QETH_LAYER2_MAC_REGISTERED;
505 cmd->hdr.return_code = -EIO; 497 cmd->hdr.return_code = -EIO;
506 } else { 498 } else {
@@ -519,7 +511,7 @@ static int qeth_l2_send_setmac_cb(struct qeth_card *card,
519 511
520static int qeth_l2_send_setmac(struct qeth_card *card, __u8 *mac) 512static int qeth_l2_send_setmac(struct qeth_card *card, __u8 *mac)
521{ 513{
522 QETH_DBF_TEXT(trace, 2, "L2Setmac"); 514 QETH_DBF_TEXT(TRACE, 2, "L2Setmac");
523 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETVMAC, 515 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETVMAC,
524 qeth_l2_send_setmac_cb); 516 qeth_l2_send_setmac_cb);
525} 517}
@@ -530,10 +522,10 @@ static int qeth_l2_send_delmac_cb(struct qeth_card *card,
530{ 522{
531 struct qeth_ipa_cmd *cmd; 523 struct qeth_ipa_cmd *cmd;
532 524
533 QETH_DBF_TEXT(trace, 2, "L2Dmaccb"); 525 QETH_DBF_TEXT(TRACE, 2, "L2Dmaccb");
534 cmd = (struct qeth_ipa_cmd *) data; 526 cmd = (struct qeth_ipa_cmd *) data;
535 if (cmd->hdr.return_code) { 527 if (cmd->hdr.return_code) {
536 QETH_DBF_TEXT_(trace, 2, "err%d", cmd->hdr.return_code); 528 QETH_DBF_TEXT_(TRACE, 2, "err%d", cmd->hdr.return_code);
537 cmd->hdr.return_code = -EIO; 529 cmd->hdr.return_code = -EIO;
538 return 0; 530 return 0;
539 } 531 }
@@ -544,7 +536,7 @@ static int qeth_l2_send_delmac_cb(struct qeth_card *card,
544 536
545static int qeth_l2_send_delmac(struct qeth_card *card, __u8 *mac) 537static int qeth_l2_send_delmac(struct qeth_card *card, __u8 *mac)
546{ 538{
547 QETH_DBF_TEXT(trace, 2, "L2Delmac"); 539 QETH_DBF_TEXT(TRACE, 2, "L2Delmac");
548 if (!(card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED)) 540 if (!(card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED))
549 return 0; 541 return 0;
550 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_DELVMAC, 542 return qeth_l2_send_setdelmac(card, mac, IPA_CMD_DELVMAC,
@@ -556,8 +548,8 @@ static int qeth_l2_request_initial_mac(struct qeth_card *card)
556 int rc = 0; 548 int rc = 0;
557 char vendor_pre[] = {0x02, 0x00, 0x00}; 549 char vendor_pre[] = {0x02, 0x00, 0x00};
558 550
559 QETH_DBF_TEXT(setup, 2, "doL2init"); 551 QETH_DBF_TEXT(SETUP, 2, "doL2init");
560 QETH_DBF_TEXT_(setup, 2, "doL2%s", CARD_BUS_ID(card)); 552 QETH_DBF_TEXT_(SETUP, 2, "doL2%s", CARD_BUS_ID(card));
561 553
562 rc = qeth_query_setadapterparms(card); 554 rc = qeth_query_setadapterparms(card);
563 if (rc) { 555 if (rc) {
@@ -571,10 +563,10 @@ static int qeth_l2_request_initial_mac(struct qeth_card *card)
571 PRINT_WARN("couldn't get MAC address on " 563 PRINT_WARN("couldn't get MAC address on "
572 "device %s: x%x\n", 564 "device %s: x%x\n",
573 CARD_BUS_ID(card), rc); 565 CARD_BUS_ID(card), rc);
574 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 566 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
575 return rc; 567 return rc;
576 } 568 }
577 QETH_DBF_HEX(setup, 2, card->dev->dev_addr, OSA_ADDR_LEN); 569 QETH_DBF_HEX(SETUP, 2, card->dev->dev_addr, OSA_ADDR_LEN);
578 } else { 570 } else {
579 random_ether_addr(card->dev->dev_addr); 571 random_ether_addr(card->dev->dev_addr);
580 memcpy(card->dev->dev_addr, vendor_pre, 3); 572 memcpy(card->dev->dev_addr, vendor_pre, 3);
@@ -588,21 +580,21 @@ static int qeth_l2_set_mac_address(struct net_device *dev, void *p)
588 struct qeth_card *card = netdev_priv(dev); 580 struct qeth_card *card = netdev_priv(dev);
589 int rc = 0; 581 int rc = 0;
590 582
591 QETH_DBF_TEXT(trace, 3, "setmac"); 583 QETH_DBF_TEXT(TRACE, 3, "setmac");
592 584
593 if (qeth_l2_verify_dev(dev) != QETH_REAL_CARD) { 585 if (qeth_l2_verify_dev(dev) != QETH_REAL_CARD) {
594 QETH_DBF_TEXT(trace, 3, "setmcINV"); 586 QETH_DBF_TEXT(TRACE, 3, "setmcINV");
595 return -EOPNOTSUPP; 587 return -EOPNOTSUPP;
596 } 588 }
597 589
598 if (card->info.type == QETH_CARD_TYPE_OSN) { 590 if (card->info.type == QETH_CARD_TYPE_OSN) {
599 PRINT_WARN("Setting MAC address on %s is not supported.\n", 591 PRINT_WARN("Setting MAC address on %s is not supported.\n",
600 dev->name); 592 dev->name);
601 QETH_DBF_TEXT(trace, 3, "setmcOSN"); 593 QETH_DBF_TEXT(TRACE, 3, "setmcOSN");
602 return -EOPNOTSUPP; 594 return -EOPNOTSUPP;
603 } 595 }
604 QETH_DBF_TEXT_(trace, 3, "%s", CARD_BUS_ID(card)); 596 QETH_DBF_TEXT_(TRACE, 3, "%s", CARD_BUS_ID(card));
605 QETH_DBF_HEX(trace, 3, addr->sa_data, OSA_ADDR_LEN); 597 QETH_DBF_HEX(TRACE, 3, addr->sa_data, OSA_ADDR_LEN);
606 rc = qeth_l2_send_delmac(card, &card->dev->dev_addr[0]); 598 rc = qeth_l2_send_delmac(card, &card->dev->dev_addr[0]);
607 if (!rc) 599 if (!rc)
608 rc = qeth_l2_send_setmac(card, addr->sa_data); 600 rc = qeth_l2_send_setmac(card, addr->sa_data);
@@ -617,7 +609,7 @@ static void qeth_l2_set_multicast_list(struct net_device *dev)
617 if (card->info.type == QETH_CARD_TYPE_OSN) 609 if (card->info.type == QETH_CARD_TYPE_OSN)
618 return ; 610 return ;
619 611
620 QETH_DBF_TEXT(trace, 3, "setmulti"); 612 QETH_DBF_TEXT(TRACE, 3, "setmulti");
621 qeth_l2_del_all_mc(card); 613 qeth_l2_del_all_mc(card);
622 spin_lock_bh(&card->mclock); 614 spin_lock_bh(&card->mclock);
623 for (dm = dev->mc_list; dm; dm = dm->next) 615 for (dm = dev->mc_list; dm; dm = dm->next)
@@ -643,7 +635,7 @@ static int qeth_l2_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
643 enum qeth_large_send_types large_send = QETH_LARGE_SEND_NO; 635 enum qeth_large_send_types large_send = QETH_LARGE_SEND_NO;
644 struct qeth_eddp_context *ctx = NULL; 636 struct qeth_eddp_context *ctx = NULL;
645 637
646 QETH_DBF_TEXT(trace, 6, "l2xmit"); 638 QETH_DBF_TEXT(TRACE, 6, "l2xmit");
647 639
648 if ((card->state != CARD_STATE_UP) || !card->lan_online) { 640 if ((card->state != CARD_STATE_UP) || !card->lan_online) {
649 card->stats.tx_carrier_errors++; 641 card->stats.tx_carrier_errors++;
@@ -755,7 +747,7 @@ static void qeth_l2_qdio_input_handler(struct ccw_device *ccwdev,
755 int index; 747 int index;
756 int i; 748 int i;
757 749
758 QETH_DBF_TEXT(trace, 6, "qdinput"); 750 QETH_DBF_TEXT(TRACE, 6, "qdinput");
759 card = (struct qeth_card *) card_ptr; 751 card = (struct qeth_card *) card_ptr;
760 net_dev = card->dev; 752 net_dev = card->dev;
761 if (card->options.performance_stats) { 753 if (card->options.performance_stats) {
@@ -764,11 +756,11 @@ static void qeth_l2_qdio_input_handler(struct ccw_device *ccwdev,
764 } 756 }
765 if (status & QDIO_STATUS_LOOK_FOR_ERROR) { 757 if (status & QDIO_STATUS_LOOK_FOR_ERROR) {
766 if (status & QDIO_STATUS_ACTIVATE_CHECK_CONDITION) { 758 if (status & QDIO_STATUS_ACTIVATE_CHECK_CONDITION) {
767 QETH_DBF_TEXT(trace, 1, "qdinchk"); 759 QETH_DBF_TEXT(TRACE, 1, "qdinchk");
768 QETH_DBF_TEXT_(trace, 1, "%s", CARD_BUS_ID(card)); 760 QETH_DBF_TEXT_(TRACE, 1, "%s", CARD_BUS_ID(card));
769 QETH_DBF_TEXT_(trace, 1, "%04X%04X", first_element, 761 QETH_DBF_TEXT_(TRACE, 1, "%04X%04X", first_element,
770 count); 762 count);
771 QETH_DBF_TEXT_(trace, 1, "%04X%04X", queue, status); 763 QETH_DBF_TEXT_(TRACE, 1, "%04X%04X", queue, status);
772 qeth_schedule_recovery(card); 764 qeth_schedule_recovery(card);
773 return; 765 return;
774 } 766 }
@@ -793,13 +785,13 @@ static int qeth_l2_open(struct net_device *dev)
793{ 785{
794 struct qeth_card *card = netdev_priv(dev); 786 struct qeth_card *card = netdev_priv(dev);
795 787
796 QETH_DBF_TEXT(trace, 4, "qethopen"); 788 QETH_DBF_TEXT(TRACE, 4, "qethopen");
797 if (card->state != CARD_STATE_SOFTSETUP) 789 if (card->state != CARD_STATE_SOFTSETUP)
798 return -ENODEV; 790 return -ENODEV;
799 791
800 if ((card->info.type != QETH_CARD_TYPE_OSN) && 792 if ((card->info.type != QETH_CARD_TYPE_OSN) &&
801 (!(card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED))) { 793 (!(card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED))) {
802 QETH_DBF_TEXT(trace, 4, "nomacadr"); 794 QETH_DBF_TEXT(TRACE, 4, "nomacadr");
803 return -EPERM; 795 return -EPERM;
804 } 796 }
805 card->data.state = CH_STATE_UP; 797 card->data.state = CH_STATE_UP;
@@ -817,7 +809,7 @@ static int qeth_l2_stop(struct net_device *dev)
817{ 809{
818 struct qeth_card *card = netdev_priv(dev); 810 struct qeth_card *card = netdev_priv(dev);
819 811
820 QETH_DBF_TEXT(trace, 4, "qethstop"); 812 QETH_DBF_TEXT(TRACE, 4, "qethstop");
821 netif_tx_disable(dev); 813 netif_tx_disable(dev);
822 card->dev->flags &= ~IFF_UP; 814 card->dev->flags &= ~IFF_UP;
823 if (card->state == CARD_STATE_UP) 815 if (card->state == CARD_STATE_UP)
@@ -933,8 +925,8 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
933 enum qeth_card_states recover_flag; 925 enum qeth_card_states recover_flag;
934 926
935 BUG_ON(!card); 927 BUG_ON(!card);
936 QETH_DBF_TEXT(setup, 2, "setonlin"); 928 QETH_DBF_TEXT(SETUP, 2, "setonlin");
937 QETH_DBF_HEX(setup, 2, &card, sizeof(void *)); 929 QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
938 930
939 qeth_set_allowed_threads(card, QETH_RECOVER_THREAD, 1); 931 qeth_set_allowed_threads(card, QETH_RECOVER_THREAD, 1);
940 if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD)) { 932 if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD)) {
@@ -946,23 +938,23 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
946 recover_flag = card->state; 938 recover_flag = card->state;
947 rc = ccw_device_set_online(CARD_RDEV(card)); 939 rc = ccw_device_set_online(CARD_RDEV(card));
948 if (rc) { 940 if (rc) {
949 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 941 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
950 return -EIO; 942 return -EIO;
951 } 943 }
952 rc = ccw_device_set_online(CARD_WDEV(card)); 944 rc = ccw_device_set_online(CARD_WDEV(card));
953 if (rc) { 945 if (rc) {
954 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 946 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
955 return -EIO; 947 return -EIO;
956 } 948 }
957 rc = ccw_device_set_online(CARD_DDEV(card)); 949 rc = ccw_device_set_online(CARD_DDEV(card));
958 if (rc) { 950 if (rc) {
959 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 951 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
960 return -EIO; 952 return -EIO;
961 } 953 }
962 954
963 rc = qeth_core_hardsetup_card(card); 955 rc = qeth_core_hardsetup_card(card);
964 if (rc) { 956 if (rc) {
965 QETH_DBF_TEXT_(setup, 2, "2err%d", rc); 957 QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc);
966 goto out_remove; 958 goto out_remove;
967 } 959 }
968 960
@@ -976,11 +968,11 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
976 qeth_print_status_message(card); 968 qeth_print_status_message(card);
977 969
978 /* softsetup */ 970 /* softsetup */
979 QETH_DBF_TEXT(setup, 2, "softsetp"); 971 QETH_DBF_TEXT(SETUP, 2, "softsetp");
980 972
981 rc = qeth_send_startlan(card); 973 rc = qeth_send_startlan(card);
982 if (rc) { 974 if (rc) {
983 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 975 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
984 if (rc == 0xe080) { 976 if (rc == 0xe080) {
985 PRINT_WARN("LAN on card %s if offline! " 977 PRINT_WARN("LAN on card %s if offline! "
986 "Waiting for STARTLAN from card.\n", 978 "Waiting for STARTLAN from card.\n",
@@ -1000,7 +992,7 @@ static int __qeth_l2_set_online(struct ccwgroup_device *gdev, int recovery_mode)
1000 992
1001 rc = qeth_init_qdio_queues(card); 993 rc = qeth_init_qdio_queues(card);
1002 if (rc) { 994 if (rc) {
1003 QETH_DBF_TEXT_(setup, 2, "6err%d", rc); 995 QETH_DBF_TEXT_(SETUP, 2, "6err%d", rc);
1004 goto out_remove; 996 goto out_remove;
1005 } 997 }
1006 card->state = CARD_STATE_SOFTSETUP; 998 card->state = CARD_STATE_SOFTSETUP;
@@ -1047,8 +1039,8 @@ static int __qeth_l2_set_offline(struct ccwgroup_device *cgdev,
1047 int rc = 0, rc2 = 0, rc3 = 0; 1039 int rc = 0, rc2 = 0, rc3 = 0;
1048 enum qeth_card_states recover_flag; 1040 enum qeth_card_states recover_flag;
1049 1041
1050 QETH_DBF_TEXT(setup, 3, "setoffl"); 1042 QETH_DBF_TEXT(SETUP, 3, "setoffl");
1051 QETH_DBF_HEX(setup, 3, &card, sizeof(void *)); 1043 QETH_DBF_HEX(SETUP, 3, &card, sizeof(void *));
1052 1044
1053 if (card->dev && netif_carrier_ok(card->dev)) 1045 if (card->dev && netif_carrier_ok(card->dev))
1054 netif_carrier_off(card->dev); 1046 netif_carrier_off(card->dev);
@@ -1064,7 +1056,7 @@ static int __qeth_l2_set_offline(struct ccwgroup_device *cgdev,
1064 if (!rc) 1056 if (!rc)
1065 rc = (rc2) ? rc2 : rc3; 1057 rc = (rc2) ? rc2 : rc3;
1066 if (rc) 1058 if (rc)
1067 QETH_DBF_TEXT_(setup, 2, "1err%d", rc); 1059 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
1068 if (recover_flag == CARD_STATE_UP) 1060 if (recover_flag == CARD_STATE_UP)
1069 card->state = CARD_STATE_RECOVER; 1061 card->state = CARD_STATE_RECOVER;
1070 /* let user_space know that device is offline */ 1062 /* let user_space know that device is offline */
@@ -1083,11 +1075,11 @@ static int qeth_l2_recover(void *ptr)
1083 int rc = 0; 1075 int rc = 0;
1084 1076
1085 card = (struct qeth_card *) ptr; 1077 card = (struct qeth_card *) ptr;
1086 QETH_DBF_TEXT(trace, 2, "recover1"); 1078 QETH_DBF_TEXT(TRACE, 2, "recover1");
1087 QETH_DBF_HEX(trace, 2, &card, sizeof(void *)); 1079 QETH_DBF_HEX(TRACE, 2, &card, sizeof(void *));
1088 if (!qeth_do_run_thread(card, QETH_RECOVER_THREAD)) 1080 if (!qeth_do_run_thread(card, QETH_RECOVER_THREAD))
1089 return 0; 1081 return 0;
1090 QETH_DBF_TEXT(trace, 2, "recover2"); 1082 QETH_DBF_TEXT(TRACE, 2, "recover2");
1091 PRINT_WARN("Recovery of device %s started ...\n", 1083 PRINT_WARN("Recovery of device %s started ...\n",
1092 CARD_BUS_ID(card)); 1084 CARD_BUS_ID(card));
1093 card->use_hard_stop = 1; 1085 card->use_hard_stop = 1;
@@ -1138,12 +1130,12 @@ static int qeth_osn_send_control_data(struct qeth_card *card, int len,
1138 unsigned long flags; 1130 unsigned long flags;
1139 int rc = 0; 1131 int rc = 0;
1140 1132
1141 QETH_DBF_TEXT(trace, 5, "osndctrd"); 1133 QETH_DBF_TEXT(TRACE, 5, "osndctrd");
1142 1134
1143 wait_event(card->wait_q, 1135 wait_event(card->wait_q,
1144 atomic_cmpxchg(&card->write.irq_pending, 0, 1) == 0); 1136 atomic_cmpxchg(&card->write.irq_pending, 0, 1) == 0);
1145 qeth_prepare_control_data(card, len, iob); 1137 qeth_prepare_control_data(card, len, iob);
1146 QETH_DBF_TEXT(trace, 6, "osnoirqp"); 1138 QETH_DBF_TEXT(TRACE, 6, "osnoirqp");
1147 spin_lock_irqsave(get_ccwdev_lock(card->write.ccwdev), flags); 1139 spin_lock_irqsave(get_ccwdev_lock(card->write.ccwdev), flags);
1148 rc = ccw_device_start(card->write.ccwdev, &card->write.ccw, 1140 rc = ccw_device_start(card->write.ccwdev, &card->write.ccw,
1149 (addr_t) iob, 0, 0); 1141 (addr_t) iob, 0, 0);
@@ -1151,7 +1143,7 @@ static int qeth_osn_send_control_data(struct qeth_card *card, int len,
1151 if (rc) { 1143 if (rc) {
1152 PRINT_WARN("qeth_osn_send_control_data: " 1144 PRINT_WARN("qeth_osn_send_control_data: "
1153 "ccw_device_start rc = %i\n", rc); 1145 "ccw_device_start rc = %i\n", rc);
1154 QETH_DBF_TEXT_(trace, 2, " err%d", rc); 1146 QETH_DBF_TEXT_(TRACE, 2, " err%d", rc);
1155 qeth_release_buffer(iob->channel, iob); 1147 qeth_release_buffer(iob->channel, iob);
1156 atomic_set(&card->write.irq_pending, 0); 1148 atomic_set(&card->write.irq_pending, 0);
1157 wake_up(&card->wait_q); 1149 wake_up(&card->wait_q);
@@ -1164,7 +1156,7 @@ static int qeth_osn_send_ipa_cmd(struct qeth_card *card,
1164{ 1156{
1165 u16 s1, s2; 1157 u16 s1, s2;
1166 1158
1167 QETH_DBF_TEXT(trace, 4, "osndipa"); 1159 QETH_DBF_TEXT(TRACE, 4, "osndipa");
1168 1160
1169 qeth_prepare_ipa_cmd(card, iob, QETH_PROT_OSN2); 1161 qeth_prepare_ipa_cmd(card, iob, QETH_PROT_OSN2);
1170 s1 = (u16)(IPA_PDU_HEADER_SIZE + data_len); 1162 s1 = (u16)(IPA_PDU_HEADER_SIZE + data_len);
@@ -1182,7 +1174,7 @@ int qeth_osn_assist(struct net_device *dev, void *data, int data_len)
1182 struct qeth_card *card; 1174 struct qeth_card *card;
1183 int rc; 1175 int rc;
1184 1176
1185 QETH_DBF_TEXT(trace, 2, "osnsdmc"); 1177 QETH_DBF_TEXT(TRACE, 2, "osnsdmc");
1186 if (!dev) 1178 if (!dev)
1187 return -ENODEV; 1179 return -ENODEV;
1188 card = netdev_priv(dev); 1180 card = netdev_priv(dev);
@@ -1204,7 +1196,7 @@ int qeth_osn_register(unsigned char *read_dev_no, struct net_device **dev,
1204{ 1196{
1205 struct qeth_card *card; 1197 struct qeth_card *card;
1206 1198
1207 QETH_DBF_TEXT(trace, 2, "osnreg"); 1199 QETH_DBF_TEXT(TRACE, 2, "osnreg");
1208 *dev = qeth_l2_netdev_by_devno(read_dev_no); 1200 *dev = qeth_l2_netdev_by_devno(read_dev_no);
1209 if (*dev == NULL) 1201 if (*dev == NULL)
1210 return -ENODEV; 1202 return -ENODEV;
@@ -1223,7 +1215,7 @@ void qeth_osn_deregister(struct net_device *dev)
1223{ 1215{
1224 struct qeth_card *card; 1216 struct qeth_card *card;
1225 1217
1226 QETH_DBF_TEXT(trace, 2, "osndereg"); 1218 QETH_DBF_TEXT(TRACE, 2, "osndereg");
1227 if (!dev) 1219 if (!dev)
1228 return; 1220 return;
1229 card = netdev_priv(dev); 1221 card = netdev_priv(dev);