|
@@ -2105,6 +2105,7 @@ static ssize_t rfcomm_dlc_sysfs_show(struct class *dev,
|
|
|
struct rfcomm_session *s;
|
|
|
struct list_head *pp, *p;
|
|
|
char *str = buf;
|
|
|
+ int size = PAGE_SIZE;
|
|
|
|
|
|
rfcomm_lock();
|
|
|
|
|
@@ -2113,11 +2114,21 @@ static ssize_t rfcomm_dlc_sysfs_show(struct class *dev,
|
|
|
list_for_each(pp, &s->dlcs) {
|
|
|
struct sock *sk = s->sock->sk;
|
|
|
struct rfcomm_dlc *d = list_entry(pp, struct rfcomm_dlc, list);
|
|
|
+ int len;
|
|
|
|
|
|
- str += sprintf(str, "%s %s %ld %d %d %d %d\n",
|
|
|
+ len = snprintf(str, size, "%s %s %ld %d %d %d %d\n",
|
|
|
batostr(&bt_sk(sk)->src), batostr(&bt_sk(sk)->dst),
|
|
|
d->state, d->dlci, d->mtu, d->rx_credits, d->tx_credits);
|
|
|
+
|
|
|
+ size -= len;
|
|
|
+ if (size <= 0)
|
|
|
+ break;
|
|
|
+
|
|
|
+ str += len;
|
|
|
}
|
|
|
+
|
|
|
+ if (size <= 0)
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
rfcomm_unlock();
|