diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /net/ax25 | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'net/ax25')
-rw-r--r-- | net/ax25/Kconfig | 8 | ||||
-rw-r--r-- | net/ax25/af_ax25.c | 20 | ||||
-rw-r--r-- | net/ax25/ax25_iface.c | 3 | ||||
-rw-r--r-- | net/ax25/ax25_route.c | 4 |
4 files changed, 10 insertions, 25 deletions
diff --git a/net/ax25/Kconfig b/net/ax25/Kconfig index 2a72aa96a568..705e53ef4af0 100644 --- a/net/ax25/Kconfig +++ b/net/ax25/Kconfig | |||
@@ -7,7 +7,7 @@ menuconfig HAMRADIO | |||
7 | bool "Amateur Radio support" | 7 | bool "Amateur Radio support" |
8 | help | 8 | help |
9 | If you want to connect your Linux box to an amateur radio, answer Y | 9 | If you want to connect your Linux box to an amateur radio, answer Y |
10 | here. You want to read <http://www.tapr.org/tapr/html/pkthome.html> | 10 | here. You want to read <http://www.tapr.org/> |
11 | and more specifically about AX.25 on Linux | 11 | and more specifically about AX.25 on Linux |
12 | <http://www.linux-ax25.org/>. | 12 | <http://www.linux-ax25.org/>. |
13 | 13 | ||
@@ -42,7 +42,7 @@ config AX25 | |||
42 | check out the file <file:Documentation/networking/ax25.txt> in the | 42 | check out the file <file:Documentation/networking/ax25.txt> in the |
43 | kernel source. More information about digital amateur radio in | 43 | kernel source. More information about digital amateur radio in |
44 | general is on the WWW at | 44 | general is on the WWW at |
45 | <http://www.tapr.org/tapr/html/pkthome.html>. | 45 | <http://www.tapr.org/>. |
46 | 46 | ||
47 | To compile this driver as a module, choose M here: the | 47 | To compile this driver as a module, choose M here: the |
48 | module will be called ax25. | 48 | module will be called ax25. |
@@ -89,7 +89,7 @@ config NETROM | |||
89 | <http://www.linux-ax25.org>. You also might want to check out the | 89 | <http://www.linux-ax25.org>. You also might want to check out the |
90 | file <file:Documentation/networking/ax25.txt>. More information about | 90 | file <file:Documentation/networking/ax25.txt>. More information about |
91 | digital amateur radio in general is on the WWW at | 91 | digital amateur radio in general is on the WWW at |
92 | <http://www.tapr.org/tapr/html/pkthome.html>. | 92 | <http://www.tapr.org/>. |
93 | 93 | ||
94 | To compile this driver as a module, choose M here: the | 94 | To compile this driver as a module, choose M here: the |
95 | module will be called netrom. | 95 | module will be called netrom. |
@@ -108,7 +108,7 @@ config ROSE | |||
108 | <http://www.linux-ax25.org>. You also might want to check out the | 108 | <http://www.linux-ax25.org>. You also might want to check out the |
109 | file <file:Documentation/networking/ax25.txt>. More information about | 109 | file <file:Documentation/networking/ax25.txt>. More information about |
110 | digital amateur radio in general is on the WWW at | 110 | digital amateur radio in general is on the WWW at |
111 | <http://www.tapr.org/tapr/html/pkthome.html>. | 111 | <http://www.tapr.org/>. |
112 | 112 | ||
113 | To compile this driver as a module, choose M here: the | 113 | To compile this driver as a module, choose M here: the |
114 | module will be called rose. | 114 | module will be called rose. |
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index cfdfd7e2a172..e7c69f4619ec 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c | |||
@@ -1103,7 +1103,7 @@ done: | |||
1103 | out: | 1103 | out: |
1104 | release_sock(sk); | 1104 | release_sock(sk); |
1105 | 1105 | ||
1106 | return 0; | 1106 | return err; |
1107 | } | 1107 | } |
1108 | 1108 | ||
1109 | /* | 1109 | /* |
@@ -1392,6 +1392,7 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr, | |||
1392 | ax25_cb *ax25; | 1392 | ax25_cb *ax25; |
1393 | int err = 0; | 1393 | int err = 0; |
1394 | 1394 | ||
1395 | memset(fsa, 0, sizeof(*fsa)); | ||
1395 | lock_sock(sk); | 1396 | lock_sock(sk); |
1396 | ax25 = ax25_sk(sk); | 1397 | ax25 = ax25_sk(sk); |
1397 | 1398 | ||
@@ -1403,7 +1404,6 @@ static int ax25_getname(struct socket *sock, struct sockaddr *uaddr, | |||
1403 | 1404 | ||
1404 | fsa->fsa_ax25.sax25_family = AF_AX25; | 1405 | fsa->fsa_ax25.sax25_family = AF_AX25; |
1405 | fsa->fsa_ax25.sax25_call = ax25->dest_addr; | 1406 | fsa->fsa_ax25.sax25_call = ax25->dest_addr; |
1406 | fsa->fsa_ax25.sax25_ndigis = 0; | ||
1407 | 1407 | ||
1408 | if (ax25->digipeat != NULL) { | 1408 | if (ax25->digipeat != NULL) { |
1409 | ndigi = ax25->digipeat->ndigi; | 1409 | ndigi = ax25->digipeat->ndigi; |
@@ -1538,8 +1538,6 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1538 | } | 1538 | } |
1539 | 1539 | ||
1540 | /* Build a packet */ | 1540 | /* Build a packet */ |
1541 | SOCK_DEBUG(sk, "AX.25: sendto: Addresses built. Building packet.\n"); | ||
1542 | |||
1543 | /* Assume the worst case */ | 1541 | /* Assume the worst case */ |
1544 | size = len + ax25->ax25_dev->dev->hard_header_len; | 1542 | size = len + ax25->ax25_dev->dev->hard_header_len; |
1545 | 1543 | ||
@@ -1549,8 +1547,6 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1549 | 1547 | ||
1550 | skb_reserve(skb, size - len); | 1548 | skb_reserve(skb, size - len); |
1551 | 1549 | ||
1552 | SOCK_DEBUG(sk, "AX.25: Appending user data\n"); | ||
1553 | |||
1554 | /* User data follows immediately after the AX.25 data */ | 1550 | /* User data follows immediately after the AX.25 data */ |
1555 | if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { | 1551 | if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { |
1556 | err = -EFAULT; | 1552 | err = -EFAULT; |
@@ -1564,8 +1560,6 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1564 | if (!ax25->pidincl) | 1560 | if (!ax25->pidincl) |
1565 | *skb_push(skb, 1) = sk->sk_protocol; | 1561 | *skb_push(skb, 1) = sk->sk_protocol; |
1566 | 1562 | ||
1567 | SOCK_DEBUG(sk, "AX.25: Transmitting buffer\n"); | ||
1568 | |||
1569 | if (sk->sk_type == SOCK_SEQPACKET) { | 1563 | if (sk->sk_type == SOCK_SEQPACKET) { |
1570 | /* Connected mode sockets go via the LAPB machine */ | 1564 | /* Connected mode sockets go via the LAPB machine */ |
1571 | if (sk->sk_state != TCP_ESTABLISHED) { | 1565 | if (sk->sk_state != TCP_ESTABLISHED) { |
@@ -1583,22 +1577,14 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
1583 | 1577 | ||
1584 | skb_push(skb, 1 + ax25_addr_size(dp)); | 1578 | skb_push(skb, 1 + ax25_addr_size(dp)); |
1585 | 1579 | ||
1586 | SOCK_DEBUG(sk, "Building AX.25 Header (dp=%p).\n", dp); | 1580 | /* Building AX.25 Header */ |
1587 | |||
1588 | if (dp != NULL) | ||
1589 | SOCK_DEBUG(sk, "Num digipeaters=%d\n", dp->ndigi); | ||
1590 | 1581 | ||
1591 | /* Build an AX.25 header */ | 1582 | /* Build an AX.25 header */ |
1592 | lv = ax25_addr_build(skb->data, &ax25->source_addr, &sax.sax25_call, | 1583 | lv = ax25_addr_build(skb->data, &ax25->source_addr, &sax.sax25_call, |
1593 | dp, AX25_COMMAND, AX25_MODULUS); | 1584 | dp, AX25_COMMAND, AX25_MODULUS); |
1594 | 1585 | ||
1595 | SOCK_DEBUG(sk, "Built header (%d bytes)\n",lv); | ||
1596 | |||
1597 | skb_set_transport_header(skb, lv); | 1586 | skb_set_transport_header(skb, lv); |
1598 | 1587 | ||
1599 | SOCK_DEBUG(sk, "base=%p pos=%p\n", | ||
1600 | skb->data, skb_transport_header(skb)); | ||
1601 | |||
1602 | *skb_transport_header(skb) = AX25_UI; | 1588 | *skb_transport_header(skb) = AX25_UI; |
1603 | 1589 | ||
1604 | /* Datagram frames go straight out of the door as UI */ | 1590 | /* Datagram frames go straight out of the door as UI */ |
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c index 5a0dda8df492..60b545e2822a 100644 --- a/net/ax25/ax25_iface.c +++ b/net/ax25/ax25_iface.c | |||
@@ -58,7 +58,7 @@ EXPORT_SYMBOL_GPL(ax25_register_pid); | |||
58 | 58 | ||
59 | void ax25_protocol_release(unsigned int pid) | 59 | void ax25_protocol_release(unsigned int pid) |
60 | { | 60 | { |
61 | struct ax25_protocol *s, *protocol; | 61 | struct ax25_protocol *protocol; |
62 | 62 | ||
63 | write_lock_bh(&protocol_list_lock); | 63 | write_lock_bh(&protocol_list_lock); |
64 | protocol = protocol_list; | 64 | protocol = protocol_list; |
@@ -72,7 +72,6 @@ void ax25_protocol_release(unsigned int pid) | |||
72 | 72 | ||
73 | while (protocol != NULL && protocol->next != NULL) { | 73 | while (protocol != NULL && protocol->next != NULL) { |
74 | if (protocol->next->pid == pid) { | 74 | if (protocol->next->pid == pid) { |
75 | s = protocol->next; | ||
76 | protocol->next = protocol->next->next; | 75 | protocol->next = protocol->next->next; |
77 | goto out; | 76 | goto out; |
78 | } | 77 | } |
diff --git a/net/ax25/ax25_route.c b/net/ax25/ax25_route.c index 7805945a5fd6..a1690845dc6e 100644 --- a/net/ax25/ax25_route.c +++ b/net/ax25/ax25_route.c | |||
@@ -412,7 +412,7 @@ int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) | |||
412 | { | 412 | { |
413 | ax25_uid_assoc *user; | 413 | ax25_uid_assoc *user; |
414 | ax25_route *ax25_rt; | 414 | ax25_route *ax25_rt; |
415 | int err; | 415 | int err = 0; |
416 | 416 | ||
417 | if ((ax25_rt = ax25_get_route(addr, NULL)) == NULL) | 417 | if ((ax25_rt = ax25_get_route(addr, NULL)) == NULL) |
418 | return -EHOSTUNREACH; | 418 | return -EHOSTUNREACH; |
@@ -453,7 +453,7 @@ int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr) | |||
453 | put: | 453 | put: |
454 | ax25_put_route(ax25_rt); | 454 | ax25_put_route(ax25_rt); |
455 | 455 | ||
456 | return 0; | 456 | return err; |
457 | } | 457 | } |
458 | 458 | ||
459 | struct sk_buff *ax25_rt_build_path(struct sk_buff *skb, ax25_address *src, | 459 | struct sk_buff *ax25_rt_build_path(struct sk_buff *skb, ax25_address *src, |