diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-28 15:33:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-28 15:33:21 -0500 |
commit | 1db2a5c11e495366bff35cf7445d494703f7febe (patch) | |
tree | 3347dd1cab0a2a96a4333524298a62132eb22336 /drivers/s390/net/netiucv.c | |
parent | a39b863342b8aba52390092be95db58f6ed56061 (diff) | |
parent | cef7125def4dd104769f400c941199614da0aca1 (diff) |
Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (85 commits)
[S390] provide documentation for hvc_iucv kernel parameter.
[S390] convert ctcm printks to dev_xxx and pr_xxx macros.
[S390] convert zfcp printks to pr_xxx macros.
[S390] convert vmlogrdr printks to pr_xxx macros.
[S390] convert zfcp dumper printks to pr_xxx macros.
[S390] convert cpu related printks to pr_xxx macros.
[S390] convert qeth printks to dev_xxx and pr_xxx macros.
[S390] convert sclp printks to pr_xxx macros.
[S390] convert iucv printks to dev_xxx and pr_xxx macros.
[S390] convert ap_bus printks to pr_xxx macros.
[S390] convert dcssblk and extmem printks messages to pr_xxx macros.
[S390] convert monwriter printks to pr_xxx macros.
[S390] convert s390 debug feature printks to pr_xxx macros.
[S390] convert monreader printks to pr_xxx macros.
[S390] convert appldata printks to pr_xxx macros.
[S390] convert setup printks to pr_xxx macros.
[S390] convert hypfs printks to pr_xxx macros.
[S390] convert time printks to pr_xxx macros.
[S390] convert cpacf printks to pr_xxx macros.
[S390] convert cio printks to pr_xxx macros.
...
Diffstat (limited to 'drivers/s390/net/netiucv.c')
-rw-r--r-- | drivers/s390/net/netiucv.c | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c index 0fea51e34b57..930e2fc2a011 100644 --- a/drivers/s390/net/netiucv.c +++ b/drivers/s390/net/netiucv.c | |||
@@ -31,6 +31,9 @@ | |||
31 | * | 31 | * |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #define KMSG_COMPONENT "netiucv" | ||
35 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | ||
36 | |||
34 | #undef DEBUG | 37 | #undef DEBUG |
35 | 38 | ||
36 | #include <linux/module.h> | 39 | #include <linux/module.h> |
@@ -846,7 +849,8 @@ static void conn_action_connsever(fsm_instance *fi, int event, void *arg) | |||
846 | 849 | ||
847 | fsm_deltimer(&conn->timer); | 850 | fsm_deltimer(&conn->timer); |
848 | iucv_path_sever(conn->path, NULL); | 851 | iucv_path_sever(conn->path, NULL); |
849 | PRINT_INFO("%s: Remote dropped connection\n", netdev->name); | 852 | dev_info(privptr->dev, "The peer interface of the IUCV device" |
853 | " has closed the connection\n"); | ||
850 | IUCV_DBF_TEXT(data, 2, | 854 | IUCV_DBF_TEXT(data, 2, |
851 | "conn_action_connsever: Remote dropped connection\n"); | 855 | "conn_action_connsever: Remote dropped connection\n"); |
852 | fsm_newstate(fi, CONN_STATE_STARTWAIT); | 856 | fsm_newstate(fi, CONN_STATE_STARTWAIT); |
@@ -856,13 +860,15 @@ static void conn_action_connsever(fsm_instance *fi, int event, void *arg) | |||
856 | static void conn_action_start(fsm_instance *fi, int event, void *arg) | 860 | static void conn_action_start(fsm_instance *fi, int event, void *arg) |
857 | { | 861 | { |
858 | struct iucv_connection *conn = arg; | 862 | struct iucv_connection *conn = arg; |
863 | struct net_device *netdev = conn->netdev; | ||
864 | struct netiucv_priv *privptr = netdev_priv(netdev); | ||
859 | int rc; | 865 | int rc; |
860 | 866 | ||
861 | IUCV_DBF_TEXT(trace, 3, __func__); | 867 | IUCV_DBF_TEXT(trace, 3, __func__); |
862 | 868 | ||
863 | fsm_newstate(fi, CONN_STATE_STARTWAIT); | 869 | fsm_newstate(fi, CONN_STATE_STARTWAIT); |
864 | IUCV_DBF_TEXT_(setup, 2, "%s('%s'): connecting ...\n", | 870 | IUCV_DBF_TEXT_(setup, 2, "%s('%s'): connecting ...\n", |
865 | conn->netdev->name, conn->userid); | 871 | netdev->name, conn->userid); |
866 | 872 | ||
867 | /* | 873 | /* |
868 | * We must set the state before calling iucv_connect because the | 874 | * We must set the state before calling iucv_connect because the |
@@ -876,41 +882,45 @@ static void conn_action_start(fsm_instance *fi, int event, void *arg) | |||
876 | NULL, iucvMagic, conn); | 882 | NULL, iucvMagic, conn); |
877 | switch (rc) { | 883 | switch (rc) { |
878 | case 0: | 884 | case 0: |
879 | conn->netdev->tx_queue_len = conn->path->msglim; | 885 | netdev->tx_queue_len = conn->path->msglim; |
880 | fsm_addtimer(&conn->timer, NETIUCV_TIMEOUT_5SEC, | 886 | fsm_addtimer(&conn->timer, NETIUCV_TIMEOUT_5SEC, |
881 | CONN_EVENT_TIMER, conn); | 887 | CONN_EVENT_TIMER, conn); |
882 | return; | 888 | return; |
883 | case 11: | 889 | case 11: |
884 | PRINT_INFO("%s: User %s is currently not available.\n", | 890 | dev_warn(privptr->dev, |
885 | conn->netdev->name, | 891 | "The IUCV device failed to connect to z/VM guest %s\n", |
886 | netiucv_printname(conn->userid)); | 892 | netiucv_printname(conn->userid)); |
887 | fsm_newstate(fi, CONN_STATE_STARTWAIT); | 893 | fsm_newstate(fi, CONN_STATE_STARTWAIT); |
888 | break; | 894 | break; |
889 | case 12: | 895 | case 12: |
890 | PRINT_INFO("%s: User %s is currently not ready.\n", | 896 | dev_warn(privptr->dev, |
891 | conn->netdev->name, | 897 | "The IUCV device failed to connect to the peer on z/VM" |
892 | netiucv_printname(conn->userid)); | 898 | " guest %s\n", netiucv_printname(conn->userid)); |
893 | fsm_newstate(fi, CONN_STATE_STARTWAIT); | 899 | fsm_newstate(fi, CONN_STATE_STARTWAIT); |
894 | break; | 900 | break; |
895 | case 13: | 901 | case 13: |
896 | PRINT_WARN("%s: Too many IUCV connections.\n", | 902 | dev_err(privptr->dev, |
897 | conn->netdev->name); | 903 | "Connecting the IUCV device would exceed the maximum" |
904 | " number of IUCV connections\n"); | ||
898 | fsm_newstate(fi, CONN_STATE_CONNERR); | 905 | fsm_newstate(fi, CONN_STATE_CONNERR); |
899 | break; | 906 | break; |
900 | case 14: | 907 | case 14: |
901 | PRINT_WARN("%s: User %s has too many IUCV connections.\n", | 908 | dev_err(privptr->dev, |
902 | conn->netdev->name, | 909 | "z/VM guest %s has too many IUCV connections" |
903 | netiucv_printname(conn->userid)); | 910 | " to connect with the IUCV device\n", |
911 | netiucv_printname(conn->userid)); | ||
904 | fsm_newstate(fi, CONN_STATE_CONNERR); | 912 | fsm_newstate(fi, CONN_STATE_CONNERR); |
905 | break; | 913 | break; |
906 | case 15: | 914 | case 15: |
907 | PRINT_WARN("%s: No IUCV authorization in CP directory.\n", | 915 | dev_err(privptr->dev, |
908 | conn->netdev->name); | 916 | "The IUCV device cannot connect to a z/VM guest with no" |
917 | " IUCV authorization\n"); | ||
909 | fsm_newstate(fi, CONN_STATE_CONNERR); | 918 | fsm_newstate(fi, CONN_STATE_CONNERR); |
910 | break; | 919 | break; |
911 | default: | 920 | default: |
912 | PRINT_WARN("%s: iucv_connect returned error %d\n", | 921 | dev_err(privptr->dev, |
913 | conn->netdev->name, rc); | 922 | "Connecting the IUCV device failed with error %d\n", |
923 | rc); | ||
914 | fsm_newstate(fi, CONN_STATE_CONNERR); | 924 | fsm_newstate(fi, CONN_STATE_CONNERR); |
915 | break; | 925 | break; |
916 | } | 926 | } |
@@ -1059,8 +1069,9 @@ dev_action_connup(fsm_instance *fi, int event, void *arg) | |||
1059 | switch (fsm_getstate(fi)) { | 1069 | switch (fsm_getstate(fi)) { |
1060 | case DEV_STATE_STARTWAIT: | 1070 | case DEV_STATE_STARTWAIT: |
1061 | fsm_newstate(fi, DEV_STATE_RUNNING); | 1071 | fsm_newstate(fi, DEV_STATE_RUNNING); |
1062 | PRINT_INFO("%s: connected with remote side %s\n", | 1072 | dev_info(privptr->dev, |
1063 | dev->name, privptr->conn->userid); | 1073 | "The IUCV device has been connected" |
1074 | " successfully to %s\n", privptr->conn->userid); | ||
1064 | IUCV_DBF_TEXT(setup, 3, | 1075 | IUCV_DBF_TEXT(setup, 3, |
1065 | "connection is up and running\n"); | 1076 | "connection is up and running\n"); |
1066 | break; | 1077 | break; |
@@ -1982,6 +1993,8 @@ static ssize_t conn_write(struct device_driver *drv, | |||
1982 | if (rc) | 1993 | if (rc) |
1983 | goto out_unreg; | 1994 | goto out_unreg; |
1984 | 1995 | ||
1996 | dev_info(priv->dev, "The IUCV interface to %s has been" | ||
1997 | " established successfully\n", netiucv_printname(username)); | ||
1985 | 1998 | ||
1986 | return count; | 1999 | return count; |
1987 | 2000 | ||
@@ -2027,10 +2040,9 @@ static ssize_t remove_write (struct device_driver *drv, | |||
2027 | continue; | 2040 | continue; |
2028 | read_unlock_bh(&iucv_connection_rwlock); | 2041 | read_unlock_bh(&iucv_connection_rwlock); |
2029 | if (ndev->flags & (IFF_UP | IFF_RUNNING)) { | 2042 | if (ndev->flags & (IFF_UP | IFF_RUNNING)) { |
2030 | PRINT_WARN("netiucv: net device %s active with peer " | 2043 | dev_warn(dev, "The IUCV device is connected" |
2031 | "%s\n", ndev->name, priv->conn->userid); | 2044 | " to %s and cannot be removed\n", |
2032 | PRINT_WARN("netiucv: %s cannot be removed\n", | 2045 | priv->conn->userid); |
2033 | ndev->name); | ||
2034 | IUCV_DBF_TEXT(data, 2, "remove_write: still active\n"); | 2046 | IUCV_DBF_TEXT(data, 2, "remove_write: still active\n"); |
2035 | return -EPERM; | 2047 | return -EPERM; |
2036 | } | 2048 | } |
@@ -2062,7 +2074,7 @@ static struct attribute_group *netiucv_drv_attr_groups[] = { | |||
2062 | 2074 | ||
2063 | static void netiucv_banner(void) | 2075 | static void netiucv_banner(void) |
2064 | { | 2076 | { |
2065 | PRINT_INFO("NETIUCV driver initialized\n"); | 2077 | pr_info("driver initialized\n"); |
2066 | } | 2078 | } |
2067 | 2079 | ||
2068 | static void __exit netiucv_exit(void) | 2080 | static void __exit netiucv_exit(void) |
@@ -2088,7 +2100,7 @@ static void __exit netiucv_exit(void) | |||
2088 | iucv_unregister(&netiucv_handler, 1); | 2100 | iucv_unregister(&netiucv_handler, 1); |
2089 | iucv_unregister_dbf_views(); | 2101 | iucv_unregister_dbf_views(); |
2090 | 2102 | ||
2091 | PRINT_INFO("NETIUCV driver unloaded\n"); | 2103 | pr_info("driver unloaded\n"); |
2092 | return; | 2104 | return; |
2093 | } | 2105 | } |
2094 | 2106 | ||