diff options
Diffstat (limited to 'net/bluetooth/cmtp')
-rw-r--r-- | net/bluetooth/cmtp/capi.c | 37 | ||||
-rw-r--r-- | net/bluetooth/cmtp/sock.c | 7 |
2 files changed, 25 insertions, 19 deletions
diff --git a/net/bluetooth/cmtp/capi.c b/net/bluetooth/cmtp/capi.c index 97f8d68d574d..3487cfe74aec 100644 --- a/net/bluetooth/cmtp/capi.c +++ b/net/bluetooth/cmtp/capi.c | |||
@@ -21,7 +21,8 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | 24 | #include <linux/proc_fs.h> | |
25 | #include <linux/seq_file.h> | ||
25 | #include <linux/types.h> | 26 | #include <linux/types.h> |
26 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
27 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
@@ -516,33 +517,37 @@ static char *cmtp_procinfo(struct capi_ctr *ctrl) | |||
516 | return "CAPI Message Transport Protocol"; | 517 | return "CAPI Message Transport Protocol"; |
517 | } | 518 | } |
518 | 519 | ||
519 | static int cmtp_ctr_read_proc(char *page, char **start, off_t off, int count, int *eof, struct capi_ctr *ctrl) | 520 | static int cmtp_proc_show(struct seq_file *m, void *v) |
520 | { | 521 | { |
522 | struct capi_ctr *ctrl = m->private; | ||
521 | struct cmtp_session *session = ctrl->driverdata; | 523 | struct cmtp_session *session = ctrl->driverdata; |
522 | struct cmtp_application *app; | 524 | struct cmtp_application *app; |
523 | struct list_head *p, *n; | 525 | struct list_head *p, *n; |
524 | int len = 0; | ||
525 | 526 | ||
526 | len += sprintf(page + len, "%s\n\n", cmtp_procinfo(ctrl)); | 527 | seq_printf(m, "%s\n\n", cmtp_procinfo(ctrl)); |
527 | len += sprintf(page + len, "addr %s\n", session->name); | 528 | seq_printf(m, "addr %s\n", session->name); |
528 | len += sprintf(page + len, "ctrl %d\n", session->num); | 529 | seq_printf(m, "ctrl %d\n", session->num); |
529 | 530 | ||
530 | list_for_each_safe(p, n, &session->applications) { | 531 | list_for_each_safe(p, n, &session->applications) { |
531 | app = list_entry(p, struct cmtp_application, list); | 532 | app = list_entry(p, struct cmtp_application, list); |
532 | len += sprintf(page + len, "appl %d -> %d\n", app->appl, app->mapping); | 533 | seq_printf(m, "appl %d -> %d\n", app->appl, app->mapping); |
533 | } | 534 | } |
534 | 535 | ||
535 | if (off + count >= len) | 536 | return 0; |
536 | *eof = 1; | 537 | } |
537 | |||
538 | if (len < off) | ||
539 | return 0; | ||
540 | |||
541 | *start = page + off; | ||
542 | 538 | ||
543 | return ((count < len - off) ? count : len - off); | 539 | static int cmtp_proc_open(struct inode *inode, struct file *file) |
540 | { | ||
541 | return single_open(file, cmtp_proc_show, PDE(inode)->data); | ||
544 | } | 542 | } |
545 | 543 | ||
544 | static const struct file_operations cmtp_proc_fops = { | ||
545 | .owner = THIS_MODULE, | ||
546 | .open = cmtp_proc_open, | ||
547 | .read = seq_read, | ||
548 | .llseek = seq_lseek, | ||
549 | .release = single_release, | ||
550 | }; | ||
546 | 551 | ||
547 | int cmtp_attach_device(struct cmtp_session *session) | 552 | int cmtp_attach_device(struct cmtp_session *session) |
548 | { | 553 | { |
@@ -582,7 +587,7 @@ int cmtp_attach_device(struct cmtp_session *session) | |||
582 | session->ctrl.send_message = cmtp_send_message; | 587 | session->ctrl.send_message = cmtp_send_message; |
583 | 588 | ||
584 | session->ctrl.procinfo = cmtp_procinfo; | 589 | session->ctrl.procinfo = cmtp_procinfo; |
585 | session->ctrl.ctr_read_proc = cmtp_ctr_read_proc; | 590 | session->ctrl.proc_fops = &cmtp_proc_fops; |
586 | 591 | ||
587 | if (attach_capi_ctr(&session->ctrl) < 0) { | 592 | if (attach_capi_ctr(&session->ctrl) < 0) { |
588 | BT_ERR("Can't attach new controller"); | 593 | BT_ERR("Can't attach new controller"); |
diff --git a/net/bluetooth/cmtp/sock.c b/net/bluetooth/cmtp/sock.c index 16b0fad74f6e..7ea1979a8e4f 100644 --- a/net/bluetooth/cmtp/sock.c +++ b/net/bluetooth/cmtp/sock.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/capability.h> | 26 | #include <linux/capability.h> |
27 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
28 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
29 | #include <linux/slab.h> | ||
30 | #include <linux/poll.h> | 29 | #include <linux/poll.h> |
31 | #include <linux/fcntl.h> | 30 | #include <linux/fcntl.h> |
32 | #include <linux/skbuff.h> | 31 | #include <linux/skbuff.h> |
@@ -34,6 +33,7 @@ | |||
34 | #include <linux/ioctl.h> | 33 | #include <linux/ioctl.h> |
35 | #include <linux/file.h> | 34 | #include <linux/file.h> |
36 | #include <linux/compat.h> | 35 | #include <linux/compat.h> |
36 | #include <linux/gfp.h> | ||
37 | #include <net/sock.h> | 37 | #include <net/sock.h> |
38 | 38 | ||
39 | #include <linux/isdn/capilli.h> | 39 | #include <linux/isdn/capilli.h> |
@@ -190,7 +190,8 @@ static struct proto cmtp_proto = { | |||
190 | .obj_size = sizeof(struct bt_sock) | 190 | .obj_size = sizeof(struct bt_sock) |
191 | }; | 191 | }; |
192 | 192 | ||
193 | static int cmtp_sock_create(struct net *net, struct socket *sock, int protocol) | 193 | static int cmtp_sock_create(struct net *net, struct socket *sock, int protocol, |
194 | int kern) | ||
194 | { | 195 | { |
195 | struct sock *sk; | 196 | struct sock *sk; |
196 | 197 | ||
@@ -217,7 +218,7 @@ static int cmtp_sock_create(struct net *net, struct socket *sock, int protocol) | |||
217 | return 0; | 218 | return 0; |
218 | } | 219 | } |
219 | 220 | ||
220 | static struct net_proto_family cmtp_sock_family_ops = { | 221 | static const struct net_proto_family cmtp_sock_family_ops = { |
221 | .family = PF_BLUETOOTH, | 222 | .family = PF_BLUETOOTH, |
222 | .owner = THIS_MODULE, | 223 | .owner = THIS_MODULE, |
223 | .create = cmtp_sock_create | 224 | .create = cmtp_sock_create |