diff options
-rw-r--r-- | net/bluetooth/l2cap.c | 10 | ||||
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 13 | ||||
-rw-r--r-- | net/bluetooth/rfcomm/sock.c | 11 | ||||
-rw-r--r-- | net/bluetooth/sco.c | 11 |
4 files changed, 41 insertions, 4 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 4db7ae2fe07d..27551820741e 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c | |||
@@ -3944,16 +3944,24 @@ static ssize_t l2cap_sysfs_show(struct class *dev, | |||
3944 | struct sock *sk; | 3944 | struct sock *sk; |
3945 | struct hlist_node *node; | 3945 | struct hlist_node *node; |
3946 | char *str = buf; | 3946 | char *str = buf; |
3947 | int size = PAGE_SIZE; | ||
3947 | 3948 | ||
3948 | read_lock_bh(&l2cap_sk_list.lock); | 3949 | read_lock_bh(&l2cap_sk_list.lock); |
3949 | 3950 | ||
3950 | sk_for_each(sk, node, &l2cap_sk_list.head) { | 3951 | sk_for_each(sk, node, &l2cap_sk_list.head) { |
3951 | struct l2cap_pinfo *pi = l2cap_pi(sk); | 3952 | struct l2cap_pinfo *pi = l2cap_pi(sk); |
3953 | int len; | ||
3952 | 3954 | ||
3953 | str += sprintf(str, "%s %s %d %d 0x%4.4x 0x%4.4x %d %d %d\n", | 3955 | len = snprintf(str, size, "%s %s %d %d 0x%4.4x 0x%4.4x %d %d %d\n", |
3954 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), | 3956 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), |
3955 | sk->sk_state, __le16_to_cpu(pi->psm), pi->scid, | 3957 | sk->sk_state, __le16_to_cpu(pi->psm), pi->scid, |
3956 | pi->dcid, pi->imtu, pi->omtu, pi->sec_level); | 3958 | pi->dcid, pi->imtu, pi->omtu, pi->sec_level); |
3959 | |||
3960 | size -= len; | ||
3961 | if (size <= 0) | ||
3962 | break; | ||
3963 | |||
3964 | str += len; | ||
3957 | } | 3965 | } |
3958 | 3966 | ||
3959 | read_unlock_bh(&l2cap_sk_list.lock); | 3967 | read_unlock_bh(&l2cap_sk_list.lock); |
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index db8a68e1a5ba..cf164073269d 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c | |||
@@ -2105,6 +2105,7 @@ static ssize_t rfcomm_dlc_sysfs_show(struct class *dev, | |||
2105 | struct rfcomm_session *s; | 2105 | struct rfcomm_session *s; |
2106 | struct list_head *pp, *p; | 2106 | struct list_head *pp, *p; |
2107 | char *str = buf; | 2107 | char *str = buf; |
2108 | int size = PAGE_SIZE; | ||
2108 | 2109 | ||
2109 | rfcomm_lock(); | 2110 | rfcomm_lock(); |
2110 | 2111 | ||
@@ -2113,11 +2114,21 @@ static ssize_t rfcomm_dlc_sysfs_show(struct class *dev, | |||
2113 | list_for_each(pp, &s->dlcs) { | 2114 | list_for_each(pp, &s->dlcs) { |
2114 | struct sock *sk = s->sock->sk; | 2115 | struct sock *sk = s->sock->sk; |
2115 | struct rfcomm_dlc *d = list_entry(pp, struct rfcomm_dlc, list); | 2116 | struct rfcomm_dlc *d = list_entry(pp, struct rfcomm_dlc, list); |
2117 | int len; | ||
2116 | 2118 | ||
2117 | str += sprintf(str, "%s %s %ld %d %d %d %d\n", | 2119 | len = snprintf(str, size, "%s %s %ld %d %d %d %d\n", |
2118 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), | 2120 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), |
2119 | d->state, d->dlci, d->mtu, d->rx_credits, d->tx_credits); | 2121 | d->state, d->dlci, d->mtu, d->rx_credits, d->tx_credits); |
2122 | |||
2123 | size -= len; | ||
2124 | if (size <= 0) | ||
2125 | break; | ||
2126 | |||
2127 | str += len; | ||
2120 | } | 2128 | } |
2129 | |||
2130 | if (size <= 0) | ||
2131 | break; | ||
2121 | } | 2132 | } |
2122 | 2133 | ||
2123 | rfcomm_unlock(); | 2134 | rfcomm_unlock(); |
diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c index ca87d6ac6a20..8d0ee0b8a6b6 100644 --- a/net/bluetooth/rfcomm/sock.c +++ b/net/bluetooth/rfcomm/sock.c | |||
@@ -1068,13 +1068,22 @@ static ssize_t rfcomm_sock_sysfs_show(struct class *dev, | |||
1068 | struct sock *sk; | 1068 | struct sock *sk; |
1069 | struct hlist_node *node; | 1069 | struct hlist_node *node; |
1070 | char *str = buf; | 1070 | char *str = buf; |
1071 | int size = PAGE_SIZE; | ||
1071 | 1072 | ||
1072 | read_lock_bh(&rfcomm_sk_list.lock); | 1073 | read_lock_bh(&rfcomm_sk_list.lock); |
1073 | 1074 | ||
1074 | sk_for_each(sk, node, &rfcomm_sk_list.head) { | 1075 | sk_for_each(sk, node, &rfcomm_sk_list.head) { |
1075 | str += sprintf(str, "%s %s %d %d\n", | 1076 | int len; |
1077 | |||
1078 | len = snprintf(str, size, "%s %s %d %d\n", | ||
1076 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), | 1079 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), |
1077 | sk->sk_state, rfcomm_pi(sk)->channel); | 1080 | sk->sk_state, rfcomm_pi(sk)->channel); |
1081 | |||
1082 | size -= len; | ||
1083 | if (size <= 0) | ||
1084 | break; | ||
1085 | |||
1086 | str += len; | ||
1078 | } | 1087 | } |
1079 | 1088 | ||
1080 | read_unlock_bh(&rfcomm_sk_list.lock); | 1089 | read_unlock_bh(&rfcomm_sk_list.lock); |
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index f93b939539bc..967a75175c66 100644 --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c | |||
@@ -960,13 +960,22 @@ static ssize_t sco_sysfs_show(struct class *dev, | |||
960 | struct sock *sk; | 960 | struct sock *sk; |
961 | struct hlist_node *node; | 961 | struct hlist_node *node; |
962 | char *str = buf; | 962 | char *str = buf; |
963 | int size = PAGE_SIZE; | ||
963 | 964 | ||
964 | read_lock_bh(&sco_sk_list.lock); | 965 | read_lock_bh(&sco_sk_list.lock); |
965 | 966 | ||
966 | sk_for_each(sk, node, &sco_sk_list.head) { | 967 | sk_for_each(sk, node, &sco_sk_list.head) { |
967 | str += sprintf(str, "%s %s %d\n", | 968 | int len; |
969 | |||
970 | len = snprintf(str, size, "%s %s %d\n", | ||
968 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), | 971 | batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst), |
969 | sk->sk_state); | 972 | sk->sk_state); |
973 | |||
974 | size -= len; | ||
975 | if (size <= 0) | ||
976 | break; | ||
977 | |||
978 | str += len; | ||
970 | } | 979 | } |
971 | 980 | ||
972 | read_unlock_bh(&sco_sk_list.lock); | 981 | read_unlock_bh(&sco_sk_list.lock); |