diff options
| -rw-r--r-- | drivers/s390/net/netiucv.c | 61 |
1 files changed, 9 insertions, 52 deletions
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index e4ba6a0372ac..9242b5acc66b 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c | |||
| @@ -625,9 +625,6 @@ static void netiucv_unpack_skb(struct iucv_connection *conn, | |||
| 625 | offset += header->next; | 625 | offset += header->next; |
| 626 | header->next -= NETIUCV_HDRLEN; | 626 | header->next -= NETIUCV_HDRLEN; |
| 627 | if (skb_tailroom(pskb) < header->next) { | 627 | if (skb_tailroom(pskb) < header->next) { |
| 628 | PRINT_WARN("%s: Illegal next field in iucv header: " | ||
| 629 | "%d > %d\n", | ||
| 630 | dev->name, header->next, skb_tailroom(pskb)); | ||
| 631 | IUCV_DBF_TEXT_(data, 2, "Illegal next field: %d > %d\n", | 628 | IUCV_DBF_TEXT_(data, 2, "Illegal next field: %d > %d\n", |
| 632 | header->next, skb_tailroom(pskb)); | 629 | header->next, skb_tailroom(pskb)); |
| 633 | return; | 630 | return; |
| @@ -636,8 +633,6 @@ static void netiucv_unpack_skb(struct iucv_connection *conn, | |||
| 636 | skb_reset_mac_header(pskb); | 633 | skb_reset_mac_header(pskb); |
| 637 | skb = dev_alloc_skb(pskb->len); | 634 | skb = dev_alloc_skb(pskb->len); |
| 638 | if (!skb) { | 635 | if (!skb) { |
| 639 | PRINT_WARN("%s Out of memory in netiucv_unpack_skb\n", | ||
| 640 | dev->name); | ||
| 641 | IUCV_DBF_TEXT(data, 2, | 636 | IUCV_DBF_TEXT(data, 2, |
| 642 | "Out of memory in netiucv_unpack_skb\n"); | 637 | "Out of memory in netiucv_unpack_skb\n"); |
| 643 | privptr->stats.rx_dropped++; | 638 | privptr->stats.rx_dropped++; |
| @@ -674,7 +669,6 @@ static void conn_action_rx(fsm_instance *fi, int event, void *arg) | |||
| 674 | 669 | ||
| 675 | if (!conn->netdev) { | 670 | if (!conn->netdev) { |
| 676 | iucv_message_reject(conn->path, msg); | 671 | iucv_message_reject(conn->path, msg); |
| 677 | PRINT_WARN("Received data for unlinked connection\n"); | ||
| 678 | IUCV_DBF_TEXT(data, 2, | 672 | IUCV_DBF_TEXT(data, 2, |
| 679 | "Received data for unlinked connection\n"); | 673 | "Received data for unlinked connection\n"); |
| 680 | return; | 674 | return; |
| @@ -682,8 +676,6 @@ static void conn_action_rx(fsm_instance *fi, int event, void *arg) | |||
| 682 | if (msg->length > conn->max_buffsize) { | 676 | if (msg->length > conn->max_buffsize) { |
| 683 | iucv_message_reject(conn->path, msg); | 677 | iucv_message_reject(conn->path, msg); |
| 684 | privptr->stats.rx_dropped++; | 678 | privptr->stats.rx_dropped++; |
| 685 | PRINT_WARN("msglen %d > max_buffsize %d\n", | ||
| 686 | msg->length, conn->max_buffsize); | ||
| 687 | IUCV_DBF_TEXT_(data, 2, "msglen %d > max_buffsize %d\n", | 679 | IUCV_DBF_TEXT_(data, 2, "msglen %d > max_buffsize %d\n", |
| 688 | msg->length, conn->max_buffsize); | 680 | msg->length, conn->max_buffsize); |
| 689 | return; | 681 | return; |
| @@ -695,7 +687,6 @@ static void conn_action_rx(fsm_instance *fi, int event, void *arg) | |||
| 695 | msg->length, NULL); | 687 | msg->length, NULL); |
| 696 | if (rc || msg->length < 5) { | 688 | if (rc || msg->length < 5) { |
| 697 | privptr->stats.rx_errors++; | 689 | privptr->stats.rx_errors++; |
| 698 | PRINT_WARN("iucv_receive returned %08x\n", rc); | ||
| 699 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_receive\n", rc); | 690 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_receive\n", rc); |
| 700 | return; | 691 | return; |
| 701 | } | 692 | } |
| @@ -778,7 +769,6 @@ static void conn_action_txdone(fsm_instance *fi, int event, void *arg) | |||
| 778 | fsm_newstate(fi, CONN_STATE_IDLE); | 769 | fsm_newstate(fi, CONN_STATE_IDLE); |
| 779 | if (privptr) | 770 | if (privptr) |
| 780 | privptr->stats.tx_errors += txpackets; | 771 | privptr->stats.tx_errors += txpackets; |
| 781 | PRINT_WARN("iucv_send returned %08x\n", rc); | ||
| 782 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_send\n", rc); | 772 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_send\n", rc); |
| 783 | } else { | 773 | } else { |
| 784 | if (privptr) { | 774 | if (privptr) { |
| @@ -806,8 +796,6 @@ static void conn_action_connaccept(fsm_instance *fi, int event, void *arg) | |||
| 806 | path->flags = 0; | 796 | path->flags = 0; |
| 807 | rc = iucv_path_accept(path, &netiucv_handler, NULL, conn); | 797 | rc = iucv_path_accept(path, &netiucv_handler, NULL, conn); |
| 808 | if (rc) { | 798 | if (rc) { |
| 809 | PRINT_WARN("%s: IUCV accept failed with error %d\n", | ||
| 810 | netdev->name, rc); | ||
| 811 | IUCV_DBF_TEXT_(setup, 2, "rc %d from iucv_accept", rc); | 799 | IUCV_DBF_TEXT_(setup, 2, "rc %d from iucv_accept", rc); |
| 812 | return; | 800 | return; |
| 813 | } | 801 | } |
| @@ -873,7 +861,7 @@ static void conn_action_start(fsm_instance *fi, int event, void *arg) | |||
| 873 | IUCV_DBF_TEXT(trace, 3, __func__); | 861 | IUCV_DBF_TEXT(trace, 3, __func__); |
| 874 | 862 | ||
| 875 | fsm_newstate(fi, CONN_STATE_STARTWAIT); | 863 | fsm_newstate(fi, CONN_STATE_STARTWAIT); |
| 876 | PRINT_DEBUG("%s('%s'): connecting ...\n", | 864 | IUCV_DBF_TEXT_(setup, 2, "%s('%s'): connecting ...\n", |
| 877 | conn->netdev->name, conn->userid); | 865 | conn->netdev->name, conn->userid); |
| 878 | 866 | ||
| 879 | /* | 867 | /* |
| @@ -968,8 +956,8 @@ static void conn_action_inval(fsm_instance *fi, int event, void *arg) | |||
| 968 | struct iucv_connection *conn = arg; | 956 | struct iucv_connection *conn = arg; |
| 969 | struct net_device *netdev = conn->netdev; | 957 | struct net_device *netdev = conn->netdev; |
| 970 | 958 | ||
| 971 | PRINT_WARN("%s: Cannot connect without username\n", netdev->name); | 959 | IUCV_DBF_TEXT_(data, 2, "%s('%s'): conn_action_inval called\n", |
| 972 | IUCV_DBF_TEXT(data, 2, "conn_action_inval called\n"); | 960 | netdev->name, conn->userid); |
| 973 | } | 961 | } |
| 974 | 962 | ||
| 975 | static const fsm_node conn_fsm[] = { | 963 | static const fsm_node conn_fsm[] = { |
| @@ -1077,9 +1065,6 @@ dev_action_connup(fsm_instance *fi, int event, void *arg) | |||
| 1077 | "connection is up and running\n"); | 1065 | "connection is up and running\n"); |
| 1078 | break; | 1066 | break; |
| 1079 | case DEV_STATE_STOPWAIT: | 1067 | case DEV_STATE_STOPWAIT: |
| 1080 | PRINT_INFO( | ||
| 1081 | "%s: got connection UP event during shutdown!\n", | ||
| 1082 | dev->name); | ||
| 1083 | IUCV_DBF_TEXT(data, 2, | 1068 | IUCV_DBF_TEXT(data, 2, |
| 1084 | "dev_action_connup: in DEV_STATE_STOPWAIT\n"); | 1069 | "dev_action_connup: in DEV_STATE_STOPWAIT\n"); |
| 1085 | break; | 1070 | break; |
| @@ -1174,8 +1159,6 @@ static int netiucv_transmit_skb(struct iucv_connection *conn, | |||
| 1174 | nskb = alloc_skb(skb->len + NETIUCV_HDRLEN + | 1159 | nskb = alloc_skb(skb->len + NETIUCV_HDRLEN + |
| 1175 | NETIUCV_HDRLEN, GFP_ATOMIC | GFP_DMA); | 1160 | NETIUCV_HDRLEN, GFP_ATOMIC | GFP_DMA); |
| 1176 | if (!nskb) { | 1161 | if (!nskb) { |
| 1177 | PRINT_WARN("%s: Could not allocate tx_skb\n", | ||
| 1178 | conn->netdev->name); | ||
| 1179 | IUCV_DBF_TEXT(data, 2, "alloc_skb failed\n"); | 1162 | IUCV_DBF_TEXT(data, 2, "alloc_skb failed\n"); |
| 1180 | rc = -ENOMEM; | 1163 | rc = -ENOMEM; |
| 1181 | return rc; | 1164 | return rc; |
| @@ -1223,7 +1206,6 @@ static int netiucv_transmit_skb(struct iucv_connection *conn, | |||
| 1223 | skb_pull(skb, NETIUCV_HDRLEN); | 1206 | skb_pull(skb, NETIUCV_HDRLEN); |
| 1224 | skb_trim(skb, skb->len - NETIUCV_HDRLEN); | 1207 | skb_trim(skb, skb->len - NETIUCV_HDRLEN); |
| 1225 | } | 1208 | } |
| 1226 | PRINT_WARN("iucv_send returned %08x\n", rc); | ||
| 1227 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_send\n", rc); | 1209 | IUCV_DBF_TEXT_(data, 2, "rc %d from iucv_send\n", rc); |
| 1228 | } else { | 1210 | } else { |
| 1229 | if (copied) | 1211 | if (copied) |
| @@ -1293,14 +1275,11 @@ static int netiucv_tx(struct sk_buff *skb, struct net_device *dev) | |||
| 1293 | * Some sanity checks ... | 1275 | * Some sanity checks ... |
| 1294 | */ | 1276 | */ |
| 1295 | if (skb == NULL) { | 1277 | if (skb == NULL) { |
| 1296 | PRINT_WARN("%s: NULL sk_buff passed\n", dev->name); | ||
| 1297 | IUCV_DBF_TEXT(data, 2, "netiucv_tx: skb is NULL\n"); | 1278 | IUCV_DBF_TEXT(data, 2, "netiucv_tx: skb is NULL\n"); |
| 1298 | privptr->stats.tx_dropped++; | 1279 | privptr->stats.tx_dropped++; |
| 1299 | return 0; | 1280 | return 0; |
| 1300 | } | 1281 | } |
| 1301 | if (skb_headroom(skb) < NETIUCV_HDRLEN) { | 1282 | if (skb_headroom(skb) < NETIUCV_HDRLEN) { |
| 1302 | PRINT_WARN("%s: Got sk_buff with head room < %ld bytes\n", | ||
| 1303 | dev->name, NETIUCV_HDRLEN); | ||
| 1304 | IUCV_DBF_TEXT(data, 2, | 1283 | IUCV_DBF_TEXT(data, 2, |
| 1305 | "netiucv_tx: skb_headroom < NETIUCV_HDRLEN\n"); | 1284 | "netiucv_tx: skb_headroom < NETIUCV_HDRLEN\n"); |
| 1306 | dev_kfree_skb(skb); | 1285 | dev_kfree_skb(skb); |
| @@ -1393,7 +1372,6 @@ static ssize_t user_write(struct device *dev, struct device_attribute *attr, | |||
| 1393 | 1372 | ||
| 1394 | IUCV_DBF_TEXT(trace, 3, __func__); | 1373 | IUCV_DBF_TEXT(trace, 3, __func__); |
| 1395 | if (count > 9) { | 1374 | if (count > 9) { |
| 1396 | PRINT_WARN("netiucv: username too long (%d)!\n", (int) count); | ||
| 1397 | IUCV_DBF_TEXT_(setup, 2, | 1375 | IUCV_DBF_TEXT_(setup, 2, |
| 1398 | "%d is length of username\n", (int) count); | 1376 | "%d is length of username\n", (int) count); |
| 1399 | return -EINVAL; | 1377 | return -EINVAL; |
| @@ -1409,7 +1387,6 @@ static ssize_t user_write(struct device *dev, struct device_attribute *attr, | |||
| 1409 | /* trailing lf, grr */ | 1387 | /* trailing lf, grr */ |
| 1410 | break; | 1388 | break; |
| 1411 | } | 1389 | } |
| 1412 | PRINT_WARN("netiucv: Invalid char %c in username!\n", *p); | ||
| 1413 | IUCV_DBF_TEXT_(setup, 2, | 1390 | IUCV_DBF_TEXT_(setup, 2, |
| 1414 | "username: invalid character %c\n", *p); | 1391 | "username: invalid character %c\n", *p); |
| 1415 | return -EINVAL; | 1392 | return -EINVAL; |
| @@ -1421,18 +1398,15 @@ static ssize_t user_write(struct device *dev, struct device_attribute *attr, | |||
| 1421 | if (memcmp(username, priv->conn->userid, 9) && | 1398 | if (memcmp(username, priv->conn->userid, 9) && |
| 1422 | (ndev->flags & (IFF_UP | IFF_RUNNING))) { | 1399 | (ndev->flags & (IFF_UP | IFF_RUNNING))) { |
| 1423 | /* username changed while the interface is active. */ | 1400 | /* username changed while the interface is active. */ |
| 1424 | PRINT_WARN("netiucv: device %s active, connected to %s\n", | ||
| 1425 | dev->bus_id, priv->conn->userid); | ||
| 1426 | PRINT_WARN("netiucv: user cannot be updated\n"); | ||
| 1427 | IUCV_DBF_TEXT(setup, 2, "user_write: device active\n"); | 1401 | IUCV_DBF_TEXT(setup, 2, "user_write: device active\n"); |
| 1428 | return -EBUSY; | 1402 | return -EPERM; |
| 1429 | } | 1403 | } |
| 1430 | read_lock_bh(&iucv_connection_rwlock); | 1404 | read_lock_bh(&iucv_connection_rwlock); |
| 1431 | list_for_each_entry(cp, &iucv_connection_list, list) { | 1405 | list_for_each_entry(cp, &iucv_connection_list, list) { |
| 1432 | if (!strncmp(username, cp->userid, 9) && cp->netdev != ndev) { | 1406 | if (!strncmp(username, cp->userid, 9) && cp->netdev != ndev) { |
| 1433 | read_unlock_bh(&iucv_connection_rwlock); | 1407 | read_unlock_bh(&iucv_connection_rwlock); |
| 1434 | PRINT_WARN("netiucv: Connection to %s already " | 1408 | IUCV_DBF_TEXT_(setup, 2, "user_write: Connection " |
| 1435 | "exists\n", username); | 1409 | "to %s already exists\n", username); |
| 1436 | return -EEXIST; | 1410 | return -EEXIST; |
| 1437 | } | 1411 | } |
| 1438 | } | 1412 | } |
| @@ -1466,13 +1440,10 @@ static ssize_t buffer_write (struct device *dev, struct device_attribute *attr, | |||
| 1466 | bs1 = simple_strtoul(buf, &e, 0); | 1440 | bs1 = simple_strtoul(buf, &e, 0); |
| 1467 | 1441 | ||
| 1468 | if (e && (!isspace(*e))) { | 1442 | if (e && (!isspace(*e))) { |
| 1469 | PRINT_WARN("netiucv: Invalid character in buffer!\n"); | ||
| 1470 | IUCV_DBF_TEXT_(setup, 2, "buffer_write: invalid char %c\n", *e); | 1443 | IUCV_DBF_TEXT_(setup, 2, "buffer_write: invalid char %c\n", *e); |
| 1471 | return -EINVAL; | 1444 | return -EINVAL; |
| 1472 | } | 1445 | } |
| 1473 | if (bs1 > NETIUCV_BUFSIZE_MAX) { | 1446 | if (bs1 > NETIUCV_BUFSIZE_MAX) { |
| 1474 | PRINT_WARN("netiucv: Given buffer size %d too large.\n", | ||
| 1475 | bs1); | ||
| 1476 | IUCV_DBF_TEXT_(setup, 2, | 1447 | IUCV_DBF_TEXT_(setup, 2, |
| 1477 | "buffer_write: buffer size %d too large\n", | 1448 | "buffer_write: buffer size %d too large\n", |
| 1478 | bs1); | 1449 | bs1); |
| @@ -1480,16 +1451,12 @@ static ssize_t buffer_write (struct device *dev, struct device_attribute *attr, | |||
| 1480 | } | 1451 | } |
| 1481 | if ((ndev->flags & IFF_RUNNING) && | 1452 | if ((ndev->flags & IFF_RUNNING) && |
| 1482 | (bs1 < (ndev->mtu + NETIUCV_HDRLEN + 2))) { | 1453 | (bs1 < (ndev->mtu + NETIUCV_HDRLEN + 2))) { |
| 1483 | PRINT_WARN("netiucv: Given buffer size %d too small.\n", | ||
| 1484 | bs1); | ||
| 1485 | IUCV_DBF_TEXT_(setup, 2, | 1454 | IUCV_DBF_TEXT_(setup, 2, |
| 1486 | "buffer_write: buffer size %d too small\n", | 1455 | "buffer_write: buffer size %d too small\n", |
| 1487 | bs1); | 1456 | bs1); |
| 1488 | return -EINVAL; | 1457 | return -EINVAL; |
| 1489 | } | 1458 | } |
| 1490 | if (bs1 < (576 + NETIUCV_HDRLEN + NETIUCV_HDRLEN)) { | 1459 | if (bs1 < (576 + NETIUCV_HDRLEN + NETIUCV_HDRLEN)) { |
| 1491 | PRINT_WARN("netiucv: Given buffer size %d too small.\n", | ||
| 1492 | bs1); | ||
| 1493 | IUCV_DBF_TEXT_(setup, 2, | 1460 | IUCV_DBF_TEXT_(setup, 2, |
| 1494 | "buffer_write: buffer size %d too small\n", | 1461 | "buffer_write: buffer size %d too small\n", |
| 1495 | bs1); | 1462 | bs1); |
| @@ -1963,7 +1930,6 @@ static ssize_t conn_write(struct device_driver *drv, | |||
| 1963 | 1930 | ||
| 1964 | IUCV_DBF_TEXT(trace, 3, __func__); | 1931 | IUCV_DBF_TEXT(trace, 3, __func__); |
| 1965 | if (count>9) { | 1932 | if (count>9) { |
| 1966 | PRINT_WARN("netiucv: username too long (%d)!\n", (int)count); | ||
| 1967 | IUCV_DBF_TEXT(setup, 2, "conn_write: too long\n"); | 1933 | IUCV_DBF_TEXT(setup, 2, "conn_write: too long\n"); |
| 1968 | return -EINVAL; | 1934 | return -EINVAL; |
| 1969 | } | 1935 | } |
| @@ -1976,7 +1942,6 @@ static ssize_t conn_write(struct device_driver *drv, | |||
| 1976 | if (*p == '\n') | 1942 | if (*p == '\n') |
| 1977 | /* trailing lf, grr */ | 1943 | /* trailing lf, grr */ |
| 1978 | break; | 1944 | break; |
| 1979 | PRINT_WARN("netiucv: Invalid character in username!\n"); | ||
| 1980 | IUCV_DBF_TEXT_(setup, 2, | 1945 | IUCV_DBF_TEXT_(setup, 2, |
| 1981 | "conn_write: invalid character %c\n", *p); | 1946 | "conn_write: invalid character %c\n", *p); |
| 1982 | return -EINVAL; | 1947 | return -EINVAL; |
| @@ -1989,8 +1954,8 @@ static ssize_t conn_write(struct device_driver *drv, | |||
| 1989 | list_for_each_entry(cp, &iucv_connection_list, list) { | 1954 | list_for_each_entry(cp, &iucv_connection_list, list) { |
| 1990 | if (!strncmp(username, cp->userid, 9)) { | 1955 | if (!strncmp(username, cp->userid, 9)) { |
| 1991 | read_unlock_bh(&iucv_connection_rwlock); | 1956 | read_unlock_bh(&iucv_connection_rwlock); |
| 1992 | PRINT_WARN("netiucv: Connection to %s already " | 1957 | IUCV_DBF_TEXT_(setup, 2, "conn_write: Connection " |
| 1993 | "exists\n", username); | 1958 | "to %s already exists\n", username); |
| 1994 | return -EEXIST; | 1959 | return -EEXIST; |
| 1995 | } | 1960 | } |
| 1996 | } | 1961 | } |
| @@ -1998,9 +1963,6 @@ static ssize_t conn_write(struct device_driver *drv, | |||
| 1998 | 1963 | ||
| 1999 | dev = netiucv_init_netdevice(username); | 1964 | dev = netiucv_init_netdevice(username); |
| 2000 | if (!dev) { | 1965 | if (!dev) { |
| 2001 | PRINT_WARN("netiucv: Could not allocate network device " | ||
| 2002 | "structure for user '%s'\n", | ||
| 2003 | netiucv_printname(username)); | ||
| 2004 | IUCV_DBF_TEXT(setup, 2, "NULL from netiucv_init_netdevice\n"); | 1966 | IUCV_DBF_TEXT(setup, 2, "NULL from netiucv_init_netdevice\n"); |
| 2005 | return -ENODEV; | 1967 | return -ENODEV; |
| 2006 | } | 1968 | } |
| @@ -2020,15 +1982,12 @@ static ssize_t conn_write(struct device_driver *drv, | |||
| 2020 | if (rc) | 1982 | if (rc) |
| 2021 | goto out_unreg; | 1983 | goto out_unreg; |
| 2022 | 1984 | ||
| 2023 | PRINT_INFO("%s: '%s'\n", dev->name, netiucv_printname(username)); | ||
| 2024 | 1985 | ||
| 2025 | return count; | 1986 | return count; |
| 2026 | 1987 | ||
| 2027 | out_unreg: | 1988 | out_unreg: |
| 2028 | netiucv_unregister_device(priv->dev); | 1989 | netiucv_unregister_device(priv->dev); |
| 2029 | out_free_ndev: | 1990 | out_free_ndev: |
| 2030 | PRINT_WARN("netiucv: Could not register '%s'\n", dev->name); | ||
| 2031 | IUCV_DBF_TEXT(setup, 2, "conn_write: could not register\n"); | ||
| 2032 | netiucv_free_netdevice(dev); | 1991 | netiucv_free_netdevice(dev); |
| 2033 | return rc; | 1992 | return rc; |
| 2034 | } | 1993 | } |
| @@ -2073,14 +2032,13 @@ static ssize_t remove_write (struct device_driver *drv, | |||
| 2073 | PRINT_WARN("netiucv: %s cannot be removed\n", | 2032 | PRINT_WARN("netiucv: %s cannot be removed\n", |
| 2074 | ndev->name); | 2033 | ndev->name); |
| 2075 | IUCV_DBF_TEXT(data, 2, "remove_write: still active\n"); | 2034 | IUCV_DBF_TEXT(data, 2, "remove_write: still active\n"); |
| 2076 | return -EBUSY; | 2035 | return -EPERM; |
| 2077 | } | 2036 | } |
| 2078 | unregister_netdev(ndev); | 2037 | unregister_netdev(ndev); |
| 2079 | netiucv_unregister_device(dev); | 2038 | netiucv_unregister_device(dev); |
| 2080 | return count; | 2039 | return count; |
| 2081 | } | 2040 | } |
| 2082 | read_unlock_bh(&iucv_connection_rwlock); | 2041 | read_unlock_bh(&iucv_connection_rwlock); |
| 2083 | PRINT_WARN("netiucv: net device %s unknown\n", name); | ||
| 2084 | IUCV_DBF_TEXT(data, 2, "remove_write: unknown device\n"); | 2042 | IUCV_DBF_TEXT(data, 2, "remove_write: unknown device\n"); |
| 2085 | return -EINVAL; | 2043 | return -EINVAL; |
| 2086 | } | 2044 | } |
| @@ -2148,7 +2106,6 @@ static int __init netiucv_init(void) | |||
| 2148 | netiucv_driver.groups = netiucv_drv_attr_groups; | 2106 | netiucv_driver.groups = netiucv_drv_attr_groups; |
| 2149 | rc = driver_register(&netiucv_driver); | 2107 | rc = driver_register(&netiucv_driver); |
| 2150 | if (rc) { | 2108 | if (rc) { |
| 2151 | PRINT_ERR("NETIUCV: failed to register driver.\n"); | ||
| 2152 | IUCV_DBF_TEXT_(setup, 2, "ret %d from driver_register\n", rc); | 2109 | IUCV_DBF_TEXT_(setup, 2, "ret %d from driver_register\n", rc); |
| 2153 | goto out_iucv; | 2110 | goto out_iucv; |
| 2154 | } | 2111 | } |
