diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-23 14:47:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-23 14:47:02 -0400 |
commit | 5f05647dd81c11a6a165ccc8f0c1370b16f3bcb0 (patch) | |
tree | 7851ef1c93aa1aba7ef327ca4b75fd35e6d10f29 /net/sctp | |
parent | 02f36038c568111ad4fc433f6fa760ff5e38fab4 (diff) | |
parent | ec37a48d1d16c30b655ac5280209edf52a6775d4 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
vlan: Calling vlan_hwaccel_do_receive() is always valid.
tproxy: use the interface primary IP address as a default value for --on-ip
tproxy: added IPv6 support to the socket match
cxgb3: function namespace cleanup
tproxy: added IPv6 support to the TPROXY target
tproxy: added IPv6 socket lookup function to nf_tproxy_core
be2net: Changes to use only priority codes allowed by f/w
tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
tproxy: added tproxy sockopt interface in the IPV6 layer
tproxy: added udp6_lib_lookup function
tproxy: added const specifiers to udp lookup functions
tproxy: split off ipv6 defragmentation to a separate module
l2tp: small cleanup
nf_nat: restrict ICMP translation for embedded header
can: mcp251x: fix generation of error frames
can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
can-raw: add msg_flags to distinguish local traffic
9p: client code cleanup
rds: make local functions/variables static
...
Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
drivers/net/wireless/ath/ath9k/debug.c as per David
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/associola.c | 2 | ||||
-rw-r--r-- | net/sctp/chunk.c | 2 | ||||
-rw-r--r-- | net/sctp/inqueue.c | 2 | ||||
-rw-r--r-- | net/sctp/ipv6.c | 4 | ||||
-rw-r--r-- | net/sctp/objcnt.c | 5 | ||||
-rw-r--r-- | net/sctp/output.c | 2 | ||||
-rw-r--r-- | net/sctp/outqueue.c | 34 | ||||
-rw-r--r-- | net/sctp/probe.c | 4 | ||||
-rw-r--r-- | net/sctp/protocol.c | 19 | ||||
-rw-r--r-- | net/sctp/sm_make_chunk.c | 2 | ||||
-rw-r--r-- | net/sctp/sm_sideeffect.c | 21 | ||||
-rw-r--r-- | net/sctp/sm_statefuns.c | 20 | ||||
-rw-r--r-- | net/sctp/sm_statetable.c | 42 | ||||
-rw-r--r-- | net/sctp/socket.c | 85 | ||||
-rw-r--r-- | net/sctp/transport.c | 9 |
15 files changed, 146 insertions, 107 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 0b85e5256434..5f1fb8bd862d 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -48,6 +48,8 @@ | |||
48 | * be incorporated into the next SCTP release. | 48 | * be incorporated into the next SCTP release. |
49 | */ | 49 | */ |
50 | 50 | ||
51 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
52 | |||
51 | #include <linux/types.h> | 53 | #include <linux/types.h> |
52 | #include <linux/fcntl.h> | 54 | #include <linux/fcntl.h> |
53 | #include <linux/poll.h> | 55 | #include <linux/poll.h> |
diff --git a/net/sctp/chunk.c b/net/sctp/chunk.c index 476caaf100ed..6c8556459a75 100644 --- a/net/sctp/chunk.c +++ b/net/sctp/chunk.c | |||
@@ -37,6 +37,8 @@ | |||
37 | * be incorporated into the next SCTP release. | 37 | * be incorporated into the next SCTP release. |
38 | */ | 38 | */ |
39 | 39 | ||
40 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
41 | |||
40 | #include <linux/types.h> | 42 | #include <linux/types.h> |
41 | #include <linux/kernel.h> | 43 | #include <linux/kernel.h> |
42 | #include <linux/net.h> | 44 | #include <linux/net.h> |
diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c index ccb6dc48d15b..397296fb156f 100644 --- a/net/sctp/inqueue.c +++ b/net/sctp/inqueue.c | |||
@@ -43,6 +43,8 @@ | |||
43 | * be incorporated into the next SCTP release. | 43 | * be incorporated into the next SCTP release. |
44 | */ | 44 | */ |
45 | 45 | ||
46 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
47 | |||
46 | #include <net/sctp/sctp.h> | 48 | #include <net/sctp/sctp.h> |
47 | #include <net/sctp/sm.h> | 49 | #include <net/sctp/sm.h> |
48 | #include <linux/interrupt.h> | 50 | #include <linux/interrupt.h> |
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 732689140fb8..95e0c8eda1a0 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -47,6 +47,8 @@ | |||
47 | * be incorporated into the next SCTP release. | 47 | * be incorporated into the next SCTP release. |
48 | */ | 48 | */ |
49 | 49 | ||
50 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
51 | |||
50 | #include <linux/module.h> | 52 | #include <linux/module.h> |
51 | #include <linux/errno.h> | 53 | #include <linux/errno.h> |
52 | #include <linux/types.h> | 54 | #include <linux/types.h> |
@@ -336,7 +338,7 @@ static void sctp_v6_get_saddr(struct sctp_sock *sk, | |||
336 | memcpy(saddr, baddr, sizeof(union sctp_addr)); | 338 | memcpy(saddr, baddr, sizeof(union sctp_addr)); |
337 | SCTP_DEBUG_PRINTK("saddr: %pI6\n", &saddr->v6.sin6_addr); | 339 | SCTP_DEBUG_PRINTK("saddr: %pI6\n", &saddr->v6.sin6_addr); |
338 | } else { | 340 | } else { |
339 | printk(KERN_ERR "%s: asoc:%p Could not find a valid source " | 341 | pr_err("%s: asoc:%p Could not find a valid source " |
340 | "address for the dest:%pI6\n", | 342 | "address for the dest:%pI6\n", |
341 | __func__, asoc, &daddr->v6.sin6_addr); | 343 | __func__, asoc, &daddr->v6.sin6_addr); |
342 | } | 344 | } |
diff --git a/net/sctp/objcnt.c b/net/sctp/objcnt.c index f73ec0ea93ba..8ef8e7d9eb61 100644 --- a/net/sctp/objcnt.c +++ b/net/sctp/objcnt.c | |||
@@ -38,6 +38,8 @@ | |||
38 | * be incorporated into the next SCTP release. | 38 | * be incorporated into the next SCTP release. |
39 | */ | 39 | */ |
40 | 40 | ||
41 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
42 | |||
41 | #include <linux/kernel.h> | 43 | #include <linux/kernel.h> |
42 | #include <net/sctp/sctp.h> | 44 | #include <net/sctp/sctp.h> |
43 | 45 | ||
@@ -134,8 +136,7 @@ void sctp_dbg_objcnt_init(void) | |||
134 | ent = proc_create("sctp_dbg_objcnt", 0, | 136 | ent = proc_create("sctp_dbg_objcnt", 0, |
135 | proc_net_sctp, &sctp_objcnt_ops); | 137 | proc_net_sctp, &sctp_objcnt_ops); |
136 | if (!ent) | 138 | if (!ent) |
137 | printk(KERN_WARNING | 139 | pr_warn("sctp_dbg_objcnt: Unable to create /proc entry.\n"); |
138 | "sctp_dbg_objcnt: Unable to create /proc entry.\n"); | ||
139 | } | 140 | } |
140 | 141 | ||
141 | /* Cleanup the objcount entry in the proc filesystem. */ | 142 | /* Cleanup the objcount entry in the proc filesystem. */ |
diff --git a/net/sctp/output.c b/net/sctp/output.c index bcc4590ccaf2..60600d337a3a 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c | |||
@@ -41,6 +41,8 @@ | |||
41 | * be incorporated into the next SCTP release. | 41 | * be incorporated into the next SCTP release. |
42 | */ | 42 | */ |
43 | 43 | ||
44 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
45 | |||
44 | #include <linux/types.h> | 46 | #include <linux/types.h> |
45 | #include <linux/kernel.h> | 47 | #include <linux/kernel.h> |
46 | #include <linux/wait.h> | 48 | #include <linux/wait.h> |
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index c04b2eb59186..8c6d379b4bb6 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c | |||
@@ -46,6 +46,8 @@ | |||
46 | * be incorporated into the next SCTP release. | 46 | * be incorporated into the next SCTP release. |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
50 | |||
49 | #include <linux/types.h> | 51 | #include <linux/types.h> |
50 | #include <linux/list.h> /* For struct list_head */ | 52 | #include <linux/list.h> /* For struct list_head */ |
51 | #include <linux/socket.h> | 53 | #include <linux/socket.h> |
@@ -1463,23 +1465,23 @@ static void sctp_check_transmitted(struct sctp_outq *q, | |||
1463 | /* Display the end of the | 1465 | /* Display the end of the |
1464 | * current range. | 1466 | * current range. |
1465 | */ | 1467 | */ |
1466 | SCTP_DEBUG_PRINTK("-%08x", | 1468 | SCTP_DEBUG_PRINTK_CONT("-%08x", |
1467 | dbg_last_ack_tsn); | 1469 | dbg_last_ack_tsn); |
1468 | } | 1470 | } |
1469 | 1471 | ||
1470 | /* Start a new range. */ | 1472 | /* Start a new range. */ |
1471 | SCTP_DEBUG_PRINTK(",%08x", tsn); | 1473 | SCTP_DEBUG_PRINTK_CONT(",%08x", tsn); |
1472 | dbg_ack_tsn = tsn; | 1474 | dbg_ack_tsn = tsn; |
1473 | break; | 1475 | break; |
1474 | 1476 | ||
1475 | case 1: /* The last TSN was NOT ACKed. */ | 1477 | case 1: /* The last TSN was NOT ACKed. */ |
1476 | if (dbg_last_kept_tsn != dbg_kept_tsn) { | 1478 | if (dbg_last_kept_tsn != dbg_kept_tsn) { |
1477 | /* Display the end of current range. */ | 1479 | /* Display the end of current range. */ |
1478 | SCTP_DEBUG_PRINTK("-%08x", | 1480 | SCTP_DEBUG_PRINTK_CONT("-%08x", |
1479 | dbg_last_kept_tsn); | 1481 | dbg_last_kept_tsn); |
1480 | } | 1482 | } |
1481 | 1483 | ||
1482 | SCTP_DEBUG_PRINTK("\n"); | 1484 | SCTP_DEBUG_PRINTK_CONT("\n"); |
1483 | 1485 | ||
1484 | /* FALL THROUGH... */ | 1486 | /* FALL THROUGH... */ |
1485 | default: | 1487 | default: |
@@ -1526,18 +1528,18 @@ static void sctp_check_transmitted(struct sctp_outq *q, | |||
1526 | break; | 1528 | break; |
1527 | 1529 | ||
1528 | if (dbg_last_kept_tsn != dbg_kept_tsn) | 1530 | if (dbg_last_kept_tsn != dbg_kept_tsn) |
1529 | SCTP_DEBUG_PRINTK("-%08x", | 1531 | SCTP_DEBUG_PRINTK_CONT("-%08x", |
1530 | dbg_last_kept_tsn); | 1532 | dbg_last_kept_tsn); |
1531 | 1533 | ||
1532 | SCTP_DEBUG_PRINTK(",%08x", tsn); | 1534 | SCTP_DEBUG_PRINTK_CONT(",%08x", tsn); |
1533 | dbg_kept_tsn = tsn; | 1535 | dbg_kept_tsn = tsn; |
1534 | break; | 1536 | break; |
1535 | 1537 | ||
1536 | case 0: | 1538 | case 0: |
1537 | if (dbg_last_ack_tsn != dbg_ack_tsn) | 1539 | if (dbg_last_ack_tsn != dbg_ack_tsn) |
1538 | SCTP_DEBUG_PRINTK("-%08x", | 1540 | SCTP_DEBUG_PRINTK_CONT("-%08x", |
1539 | dbg_last_ack_tsn); | 1541 | dbg_last_ack_tsn); |
1540 | SCTP_DEBUG_PRINTK("\n"); | 1542 | SCTP_DEBUG_PRINTK_CONT("\n"); |
1541 | 1543 | ||
1542 | /* FALL THROUGH... */ | 1544 | /* FALL THROUGH... */ |
1543 | default: | 1545 | default: |
@@ -1556,17 +1558,17 @@ static void sctp_check_transmitted(struct sctp_outq *q, | |||
1556 | switch (dbg_prt_state) { | 1558 | switch (dbg_prt_state) { |
1557 | case 0: | 1559 | case 0: |
1558 | if (dbg_last_ack_tsn != dbg_ack_tsn) { | 1560 | if (dbg_last_ack_tsn != dbg_ack_tsn) { |
1559 | SCTP_DEBUG_PRINTK("-%08x\n", dbg_last_ack_tsn); | 1561 | SCTP_DEBUG_PRINTK_CONT("-%08x\n", dbg_last_ack_tsn); |
1560 | } else { | 1562 | } else { |
1561 | SCTP_DEBUG_PRINTK("\n"); | 1563 | SCTP_DEBUG_PRINTK_CONT("\n"); |
1562 | } | 1564 | } |
1563 | break; | 1565 | break; |
1564 | 1566 | ||
1565 | case 1: | 1567 | case 1: |
1566 | if (dbg_last_kept_tsn != dbg_kept_tsn) { | 1568 | if (dbg_last_kept_tsn != dbg_kept_tsn) { |
1567 | SCTP_DEBUG_PRINTK("-%08x\n", dbg_last_kept_tsn); | 1569 | SCTP_DEBUG_PRINTK_CONT("-%08x\n", dbg_last_kept_tsn); |
1568 | } else { | 1570 | } else { |
1569 | SCTP_DEBUG_PRINTK("\n"); | 1571 | SCTP_DEBUG_PRINTK_CONT("\n"); |
1570 | } | 1572 | } |
1571 | } | 1573 | } |
1572 | #endif /* SCTP_DEBUG */ | 1574 | #endif /* SCTP_DEBUG */ |
diff --git a/net/sctp/probe.c b/net/sctp/probe.c index 289b1ba62cac..bc6cd75cc1dc 100644 --- a/net/sctp/probe.c +++ b/net/sctp/probe.c | |||
@@ -22,6 +22,8 @@ | |||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
26 | |||
25 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
26 | #include <linux/kprobes.h> | 28 | #include <linux/kprobes.h> |
27 | #include <linux/socket.h> | 29 | #include <linux/socket.h> |
@@ -193,7 +195,7 @@ static __init int sctpprobe_init(void) | |||
193 | if (ret) | 195 | if (ret) |
194 | goto remove_proc; | 196 | goto remove_proc; |
195 | 197 | ||
196 | pr_info("SCTP probe registered (port=%d)\n", port); | 198 | pr_info("probe registered (port=%d)\n", port); |
197 | 199 | ||
198 | return 0; | 200 | return 0; |
199 | 201 | ||
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index 5027b83f1cc0..1ef29c74d85e 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -46,6 +46,8 @@ | |||
46 | * be incorporated into the next SCTP release. | 46 | * be incorporated into the next SCTP release. |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
50 | |||
49 | #include <linux/module.h> | 51 | #include <linux/module.h> |
50 | #include <linux/init.h> | 52 | #include <linux/init.h> |
51 | #include <linux/netdevice.h> | 53 | #include <linux/netdevice.h> |
@@ -707,8 +709,7 @@ static int sctp_ctl_sock_init(void) | |||
707 | &init_net); | 709 | &init_net); |
708 | 710 | ||
709 | if (err < 0) { | 711 | if (err < 0) { |
710 | printk(KERN_ERR | 712 | pr_err("Failed to create the SCTP control socket\n"); |
711 | "SCTP: Failed to create the SCTP control socket.\n"); | ||
712 | return err; | 713 | return err; |
713 | } | 714 | } |
714 | return 0; | 715 | return 0; |
@@ -798,7 +799,7 @@ static void sctp_inet_skb_msgname(struct sk_buff *skb, char *msgname, int *len) | |||
798 | static int sctp_inet_af_supported(sa_family_t family, struct sctp_sock *sp) | 799 | static int sctp_inet_af_supported(sa_family_t family, struct sctp_sock *sp) |
799 | { | 800 | { |
800 | /* PF_INET only supports AF_INET addresses. */ | 801 | /* PF_INET only supports AF_INET addresses. */ |
801 | return (AF_INET == family); | 802 | return AF_INET == family; |
802 | } | 803 | } |
803 | 804 | ||
804 | /* Address matching with wildcards allowed. */ | 805 | /* Address matching with wildcards allowed. */ |
@@ -1206,7 +1207,7 @@ SCTP_STATIC __init int sctp_init(void) | |||
1206 | __get_free_pages(GFP_ATOMIC, order); | 1207 | __get_free_pages(GFP_ATOMIC, order); |
1207 | } while (!sctp_assoc_hashtable && --order > 0); | 1208 | } while (!sctp_assoc_hashtable && --order > 0); |
1208 | if (!sctp_assoc_hashtable) { | 1209 | if (!sctp_assoc_hashtable) { |
1209 | printk(KERN_ERR "SCTP: Failed association hash alloc.\n"); | 1210 | pr_err("Failed association hash alloc\n"); |
1210 | status = -ENOMEM; | 1211 | status = -ENOMEM; |
1211 | goto err_ahash_alloc; | 1212 | goto err_ahash_alloc; |
1212 | } | 1213 | } |
@@ -1220,7 +1221,7 @@ SCTP_STATIC __init int sctp_init(void) | |||
1220 | sctp_ep_hashtable = (struct sctp_hashbucket *) | 1221 | sctp_ep_hashtable = (struct sctp_hashbucket *) |
1221 | kmalloc(64 * sizeof(struct sctp_hashbucket), GFP_KERNEL); | 1222 | kmalloc(64 * sizeof(struct sctp_hashbucket), GFP_KERNEL); |
1222 | if (!sctp_ep_hashtable) { | 1223 | if (!sctp_ep_hashtable) { |
1223 | printk(KERN_ERR "SCTP: Failed endpoint_hash alloc.\n"); | 1224 | pr_err("Failed endpoint_hash alloc\n"); |
1224 | status = -ENOMEM; | 1225 | status = -ENOMEM; |
1225 | goto err_ehash_alloc; | 1226 | goto err_ehash_alloc; |
1226 | } | 1227 | } |
@@ -1239,7 +1240,7 @@ SCTP_STATIC __init int sctp_init(void) | |||
1239 | __get_free_pages(GFP_ATOMIC, order); | 1240 | __get_free_pages(GFP_ATOMIC, order); |
1240 | } while (!sctp_port_hashtable && --order > 0); | 1241 | } while (!sctp_port_hashtable && --order > 0); |
1241 | if (!sctp_port_hashtable) { | 1242 | if (!sctp_port_hashtable) { |
1242 | printk(KERN_ERR "SCTP: Failed bind hash alloc."); | 1243 | pr_err("Failed bind hash alloc\n"); |
1243 | status = -ENOMEM; | 1244 | status = -ENOMEM; |
1244 | goto err_bhash_alloc; | 1245 | goto err_bhash_alloc; |
1245 | } | 1246 | } |
@@ -1248,8 +1249,7 @@ SCTP_STATIC __init int sctp_init(void) | |||
1248 | INIT_HLIST_HEAD(&sctp_port_hashtable[i].chain); | 1249 | INIT_HLIST_HEAD(&sctp_port_hashtable[i].chain); |
1249 | } | 1250 | } |
1250 | 1251 | ||
1251 | printk(KERN_INFO "SCTP: Hash tables configured " | 1252 | pr_info("Hash tables configured (established %d bind %d)\n", |
1252 | "(established %d bind %d)\n", | ||
1253 | sctp_assoc_hashsize, sctp_port_hashsize); | 1253 | sctp_assoc_hashsize, sctp_port_hashsize); |
1254 | 1254 | ||
1255 | /* Disable ADDIP by default. */ | 1255 | /* Disable ADDIP by default. */ |
@@ -1290,8 +1290,7 @@ SCTP_STATIC __init int sctp_init(void) | |||
1290 | 1290 | ||
1291 | /* Initialize the control inode/socket for handling OOTB packets. */ | 1291 | /* Initialize the control inode/socket for handling OOTB packets. */ |
1292 | if ((status = sctp_ctl_sock_init())) { | 1292 | if ((status = sctp_ctl_sock_init())) { |
1293 | printk (KERN_ERR | 1293 | pr_err("Failed to initialize the SCTP control sock\n"); |
1294 | "SCTP: Failed to initialize the SCTP control sock.\n"); | ||
1295 | goto err_ctl_sock_init; | 1294 | goto err_ctl_sock_init; |
1296 | } | 1295 | } |
1297 | 1296 | ||
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 246f92924658..2cc46f0962ca 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c | |||
@@ -50,6 +50,8 @@ | |||
50 | * be incorporated into the next SCTP release. | 50 | * be incorporated into the next SCTP release. |
51 | */ | 51 | */ |
52 | 52 | ||
53 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
54 | |||
53 | #include <linux/types.h> | 55 | #include <linux/types.h> |
54 | #include <linux/kernel.h> | 56 | #include <linux/kernel.h> |
55 | #include <linux/ip.h> | 57 | #include <linux/ip.h> |
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index f5e5e27cac5e..b21b218d564f 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c | |||
@@ -47,6 +47,8 @@ | |||
47 | * be incorporated into the next SCTP release. | 47 | * be incorporated into the next SCTP release. |
48 | */ | 48 | */ |
49 | 49 | ||
50 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
51 | |||
50 | #include <linux/skbuff.h> | 52 | #include <linux/skbuff.h> |
51 | #include <linux/types.h> | 53 | #include <linux/types.h> |
52 | #include <linux/socket.h> | 54 | #include <linux/socket.h> |
@@ -1146,26 +1148,23 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype, | |||
1146 | 1148 | ||
1147 | case SCTP_DISPOSITION_VIOLATION: | 1149 | case SCTP_DISPOSITION_VIOLATION: |
1148 | if (net_ratelimit()) | 1150 | if (net_ratelimit()) |
1149 | printk(KERN_ERR "sctp protocol violation state %d " | 1151 | pr_err("protocol violation state %d chunkid %d\n", |
1150 | "chunkid %d\n", state, subtype.chunk); | 1152 | state, subtype.chunk); |
1151 | break; | 1153 | break; |
1152 | 1154 | ||
1153 | case SCTP_DISPOSITION_NOT_IMPL: | 1155 | case SCTP_DISPOSITION_NOT_IMPL: |
1154 | printk(KERN_WARNING "sctp unimplemented feature in state %d, " | 1156 | pr_warn("unimplemented feature in state %d, event_type %d, event_id %d\n", |
1155 | "event_type %d, event_id %d\n", | 1157 | state, event_type, subtype.chunk); |
1156 | state, event_type, subtype.chunk); | ||
1157 | break; | 1158 | break; |
1158 | 1159 | ||
1159 | case SCTP_DISPOSITION_BUG: | 1160 | case SCTP_DISPOSITION_BUG: |
1160 | printk(KERN_ERR "sctp bug in state %d, " | 1161 | pr_err("bug in state %d, event_type %d, event_id %d\n", |
1161 | "event_type %d, event_id %d\n", | ||
1162 | state, event_type, subtype.chunk); | 1162 | state, event_type, subtype.chunk); |
1163 | BUG(); | 1163 | BUG(); |
1164 | break; | 1164 | break; |
1165 | 1165 | ||
1166 | default: | 1166 | default: |
1167 | printk(KERN_ERR "sctp impossible disposition %d " | 1167 | pr_err("impossible disposition %d in state %d, event_type %d, event_id %d\n", |
1168 | "in state %d, event_type %d, event_id %d\n", | ||
1169 | status, state, event_type, subtype.chunk); | 1168 | status, state, event_type, subtype.chunk); |
1170 | BUG(); | 1169 | BUG(); |
1171 | break; | 1170 | break; |
@@ -1679,8 +1678,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, | |||
1679 | sctp_cmd_send_asconf(asoc); | 1678 | sctp_cmd_send_asconf(asoc); |
1680 | break; | 1679 | break; |
1681 | default: | 1680 | default: |
1682 | printk(KERN_WARNING "Impossible command: %u, %p\n", | 1681 | pr_warn("Impossible command: %u, %p\n", |
1683 | cmd->verb, cmd->obj.ptr); | 1682 | cmd->verb, cmd->obj.ptr); |
1684 | break; | 1683 | break; |
1685 | } | 1684 | } |
1686 | 1685 | ||
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c index d344dc481ccc..4b4eb7c96bbd 100644 --- a/net/sctp/sm_statefuns.c +++ b/net/sctp/sm_statefuns.c | |||
@@ -50,6 +50,8 @@ | |||
50 | * be incorporated into the next SCTP release. | 50 | * be incorporated into the next SCTP release. |
51 | */ | 51 | */ |
52 | 52 | ||
53 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
54 | |||
53 | #include <linux/types.h> | 55 | #include <linux/types.h> |
54 | #include <linux/kernel.h> | 56 | #include <linux/kernel.h> |
55 | #include <linux/ip.h> | 57 | #include <linux/ip.h> |
@@ -1138,18 +1140,16 @@ sctp_disposition_t sctp_sf_backbeat_8_3(const struct sctp_endpoint *ep, | |||
1138 | if (unlikely(!link)) { | 1140 | if (unlikely(!link)) { |
1139 | if (from_addr.sa.sa_family == AF_INET6) { | 1141 | if (from_addr.sa.sa_family == AF_INET6) { |
1140 | if (net_ratelimit()) | 1142 | if (net_ratelimit()) |
1141 | printk(KERN_WARNING | 1143 | pr_warn("%s association %p could not find address %pI6\n", |
1142 | "%s association %p could not find address %pI6\n", | 1144 | __func__, |
1143 | __func__, | 1145 | asoc, |
1144 | asoc, | 1146 | &from_addr.v6.sin6_addr); |
1145 | &from_addr.v6.sin6_addr); | ||
1146 | } else { | 1147 | } else { |
1147 | if (net_ratelimit()) | 1148 | if (net_ratelimit()) |
1148 | printk(KERN_WARNING | 1149 | pr_warn("%s association %p could not find address %pI4\n", |
1149 | "%s association %p could not find address %pI4\n", | 1150 | __func__, |
1150 | __func__, | 1151 | asoc, |
1151 | asoc, | 1152 | &from_addr.v4.sin_addr.s_addr); |
1152 | &from_addr.v4.sin_addr.s_addr); | ||
1153 | } | 1153 | } |
1154 | return SCTP_DISPOSITION_DISCARD; | 1154 | return SCTP_DISPOSITION_DISCARD; |
1155 | } | 1155 | } |
diff --git a/net/sctp/sm_statetable.c b/net/sctp/sm_statetable.c index 6d9b3aafcc5d..546d4387fb3c 100644 --- a/net/sctp/sm_statetable.c +++ b/net/sctp/sm_statetable.c | |||
@@ -46,6 +46,8 @@ | |||
46 | * be incorporated into the next SCTP release. | 46 | * be incorporated into the next SCTP release. |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
50 | |||
49 | #include <linux/skbuff.h> | 51 | #include <linux/skbuff.h> |
50 | #include <net/sctp/sctp.h> | 52 | #include <net/sctp/sctp.h> |
51 | #include <net/sctp/sm.h> | 53 | #include <net/sctp/sm.h> |
@@ -66,15 +68,19 @@ static const sctp_sm_table_entry_t bug = { | |||
66 | .name = "sctp_sf_bug" | 68 | .name = "sctp_sf_bug" |
67 | }; | 69 | }; |
68 | 70 | ||
69 | #define DO_LOOKUP(_max, _type, _table) \ | 71 | #define DO_LOOKUP(_max, _type, _table) \ |
70 | if ((event_subtype._type > (_max))) { \ | 72 | ({ \ |
71 | printk(KERN_WARNING \ | 73 | const sctp_sm_table_entry_t *rtn; \ |
72 | "sctp table %p possible attack:" \ | 74 | \ |
73 | " event %d exceeds max %d\n", \ | 75 | if ((event_subtype._type > (_max))) { \ |
74 | _table, event_subtype._type, _max); \ | 76 | pr_warn("table %p possible attack: event %d exceeds max %d\n", \ |
75 | return &bug; \ | 77 | _table, event_subtype._type, _max); \ |
76 | } \ | 78 | rtn = &bug; \ |
77 | return &_table[event_subtype._type][(int)state]; | 79 | } else \ |
80 | rtn = &_table[event_subtype._type][(int)state]; \ | ||
81 | \ | ||
82 | rtn; \ | ||
83 | }) | ||
78 | 84 | ||
79 | const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t event_type, | 85 | const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t event_type, |
80 | sctp_state_t state, | 86 | sctp_state_t state, |
@@ -83,21 +89,15 @@ const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t event_type, | |||
83 | switch (event_type) { | 89 | switch (event_type) { |
84 | case SCTP_EVENT_T_CHUNK: | 90 | case SCTP_EVENT_T_CHUNK: |
85 | return sctp_chunk_event_lookup(event_subtype.chunk, state); | 91 | return sctp_chunk_event_lookup(event_subtype.chunk, state); |
86 | break; | ||
87 | case SCTP_EVENT_T_TIMEOUT: | 92 | case SCTP_EVENT_T_TIMEOUT: |
88 | DO_LOOKUP(SCTP_EVENT_TIMEOUT_MAX, timeout, | 93 | return DO_LOOKUP(SCTP_EVENT_TIMEOUT_MAX, timeout, |
89 | timeout_event_table); | 94 | timeout_event_table); |
90 | break; | ||
91 | |||
92 | case SCTP_EVENT_T_OTHER: | 95 | case SCTP_EVENT_T_OTHER: |
93 | DO_LOOKUP(SCTP_EVENT_OTHER_MAX, other, other_event_table); | 96 | return DO_LOOKUP(SCTP_EVENT_OTHER_MAX, other, |
94 | break; | 97 | other_event_table); |
95 | |||
96 | case SCTP_EVENT_T_PRIMITIVE: | 98 | case SCTP_EVENT_T_PRIMITIVE: |
97 | DO_LOOKUP(SCTP_EVENT_PRIMITIVE_MAX, primitive, | 99 | return DO_LOOKUP(SCTP_EVENT_PRIMITIVE_MAX, primitive, |
98 | primitive_event_table); | 100 | primitive_event_table); |
99 | break; | ||
100 | |||
101 | default: | 101 | default: |
102 | /* Yikes! We got an illegal event type. */ | 102 | /* Yikes! We got an illegal event type. */ |
103 | return &bug; | 103 | return &bug; |
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index fbb70770ad05..e34ca9cc1167 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -57,6 +57,8 @@ | |||
57 | * be incorporated into the next SCTP release. | 57 | * be incorporated into the next SCTP release. |
58 | */ | 58 | */ |
59 | 59 | ||
60 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
61 | |||
60 | #include <linux/types.h> | 62 | #include <linux/types.h> |
61 | #include <linux/kernel.h> | 63 | #include <linux/kernel.h> |
62 | #include <linux/wait.h> | 64 | #include <linux/wait.h> |
@@ -2469,9 +2471,8 @@ static int sctp_setsockopt_delayed_ack(struct sock *sk, | |||
2469 | if (params.sack_delay == 0 && params.sack_freq == 0) | 2471 | if (params.sack_delay == 0 && params.sack_freq == 0) |
2470 | return 0; | 2472 | return 0; |
2471 | } else if (optlen == sizeof(struct sctp_assoc_value)) { | 2473 | } else if (optlen == sizeof(struct sctp_assoc_value)) { |
2472 | printk(KERN_WARNING "SCTP: Use of struct sctp_assoc_value " | 2474 | pr_warn("Use of struct sctp_assoc_value in delayed_ack socket option deprecated\n"); |
2473 | "in delayed_ack socket option deprecated\n"); | 2475 | pr_warn("Use struct sctp_sack_info instead\n"); |
2474 | printk(KERN_WARNING "SCTP: Use struct sctp_sack_info instead\n"); | ||
2475 | if (copy_from_user(¶ms, optval, optlen)) | 2476 | if (copy_from_user(¶ms, optval, optlen)) |
2476 | return -EFAULT; | 2477 | return -EFAULT; |
2477 | 2478 | ||
@@ -2879,10 +2880,8 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, unsigned | |||
2879 | int val; | 2880 | int val; |
2880 | 2881 | ||
2881 | if (optlen == sizeof(int)) { | 2882 | if (optlen == sizeof(int)) { |
2882 | printk(KERN_WARNING | 2883 | pr_warn("Use of int in maxseg socket option deprecated\n"); |
2883 | "SCTP: Use of int in maxseg socket option deprecated\n"); | 2884 | pr_warn("Use struct sctp_assoc_value instead\n"); |
2884 | printk(KERN_WARNING | ||
2885 | "SCTP: Use struct sctp_assoc_value instead\n"); | ||
2886 | if (copy_from_user(&val, optval, optlen)) | 2885 | if (copy_from_user(&val, optval, optlen)) |
2887 | return -EFAULT; | 2886 | return -EFAULT; |
2888 | params.assoc_id = 0; | 2887 | params.assoc_id = 0; |
@@ -3132,10 +3131,8 @@ static int sctp_setsockopt_maxburst(struct sock *sk, | |||
3132 | int assoc_id = 0; | 3131 | int assoc_id = 0; |
3133 | 3132 | ||
3134 | if (optlen == sizeof(int)) { | 3133 | if (optlen == sizeof(int)) { |
3135 | printk(KERN_WARNING | 3134 | pr_warn("Use of int in max_burst socket option deprecated\n"); |
3136 | "SCTP: Use of int in max_burst socket option deprecated\n"); | 3135 | pr_warn("Use struct sctp_assoc_value instead\n"); |
3137 | printk(KERN_WARNING | ||
3138 | "SCTP: Use struct sctp_assoc_value instead\n"); | ||
3139 | if (copy_from_user(&val, optval, optlen)) | 3136 | if (copy_from_user(&val, optval, optlen)) |
3140 | return -EFAULT; | 3137 | return -EFAULT; |
3141 | } else if (optlen == sizeof(struct sctp_assoc_value)) { | 3138 | } else if (optlen == sizeof(struct sctp_assoc_value)) { |
@@ -3606,7 +3603,40 @@ out: | |||
3606 | /* The SCTP ioctl handler. */ | 3603 | /* The SCTP ioctl handler. */ |
3607 | SCTP_STATIC int sctp_ioctl(struct sock *sk, int cmd, unsigned long arg) | 3604 | SCTP_STATIC int sctp_ioctl(struct sock *sk, int cmd, unsigned long arg) |
3608 | { | 3605 | { |
3609 | return -ENOIOCTLCMD; | 3606 | int rc = -ENOTCONN; |
3607 | |||
3608 | sctp_lock_sock(sk); | ||
3609 | |||
3610 | /* | ||
3611 | * SEQPACKET-style sockets in LISTENING state are valid, for | ||
3612 | * SCTP, so only discard TCP-style sockets in LISTENING state. | ||
3613 | */ | ||
3614 | if (sctp_style(sk, TCP) && sctp_sstate(sk, LISTENING)) | ||
3615 | goto out; | ||
3616 | |||
3617 | switch (cmd) { | ||
3618 | case SIOCINQ: { | ||
3619 | struct sk_buff *skb; | ||
3620 | unsigned int amount = 0; | ||
3621 | |||
3622 | skb = skb_peek(&sk->sk_receive_queue); | ||
3623 | if (skb != NULL) { | ||
3624 | /* | ||
3625 | * We will only return the amount of this packet since | ||
3626 | * that is all that will be read. | ||
3627 | */ | ||
3628 | amount = skb->len; | ||
3629 | } | ||
3630 | rc = put_user(amount, (int __user *)arg); | ||
3631 | break; | ||
3632 | } | ||
3633 | default: | ||
3634 | rc = -ENOIOCTLCMD; | ||
3635 | break; | ||
3636 | } | ||
3637 | out: | ||
3638 | sctp_release_sock(sk); | ||
3639 | return rc; | ||
3610 | } | 3640 | } |
3611 | 3641 | ||
3612 | /* This is the function which gets called during socket creation to | 3642 | /* This is the function which gets called during socket creation to |
@@ -3865,7 +3895,7 @@ static int sctp_getsockopt_sctp_status(struct sock *sk, int len, | |||
3865 | } | 3895 | } |
3866 | 3896 | ||
3867 | out: | 3897 | out: |
3868 | return (retval); | 3898 | return retval; |
3869 | } | 3899 | } |
3870 | 3900 | ||
3871 | 3901 | ||
@@ -3921,7 +3951,7 @@ static int sctp_getsockopt_peer_addr_info(struct sock *sk, int len, | |||
3921 | } | 3951 | } |
3922 | 3952 | ||
3923 | out: | 3953 | out: |
3924 | return (retval); | 3954 | return retval; |
3925 | } | 3955 | } |
3926 | 3956 | ||
3927 | /* 7.1.12 Enable/Disable message fragmentation (SCTP_DISABLE_FRAGMENTS) | 3957 | /* 7.1.12 Enable/Disable message fragmentation (SCTP_DISABLE_FRAGMENTS) |
@@ -4292,9 +4322,8 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len, | |||
4292 | if (copy_from_user(¶ms, optval, len)) | 4322 | if (copy_from_user(¶ms, optval, len)) |
4293 | return -EFAULT; | 4323 | return -EFAULT; |
4294 | } else if (len == sizeof(struct sctp_assoc_value)) { | 4324 | } else if (len == sizeof(struct sctp_assoc_value)) { |
4295 | printk(KERN_WARNING "SCTP: Use of struct sctp_assoc_value " | 4325 | pr_warn("Use of struct sctp_assoc_value in delayed_ack socket option deprecated\n"); |
4296 | "in delayed_ack socket option deprecated\n"); | 4326 | pr_warn("Use struct sctp_sack_info instead\n"); |
4297 | printk(KERN_WARNING "SCTP: Use struct sctp_sack_info instead\n"); | ||
4298 | if (copy_from_user(¶ms, optval, len)) | 4327 | if (copy_from_user(¶ms, optval, len)) |
4299 | return -EFAULT; | 4328 | return -EFAULT; |
4300 | } else | 4329 | } else |
@@ -4940,10 +4969,8 @@ static int sctp_getsockopt_maxseg(struct sock *sk, int len, | |||
4940 | struct sctp_association *asoc; | 4969 | struct sctp_association *asoc; |
4941 | 4970 | ||
4942 | if (len == sizeof(int)) { | 4971 | if (len == sizeof(int)) { |
4943 | printk(KERN_WARNING | 4972 | pr_warn("Use of int in maxseg socket option deprecated\n"); |
4944 | "SCTP: Use of int in maxseg socket option deprecated\n"); | 4973 | pr_warn("Use struct sctp_assoc_value instead\n"); |
4945 | printk(KERN_WARNING | ||
4946 | "SCTP: Use struct sctp_assoc_value instead\n"); | ||
4947 | params.assoc_id = 0; | 4974 | params.assoc_id = 0; |
4948 | } else if (len >= sizeof(struct sctp_assoc_value)) { | 4975 | } else if (len >= sizeof(struct sctp_assoc_value)) { |
4949 | len = sizeof(struct sctp_assoc_value); | 4976 | len = sizeof(struct sctp_assoc_value); |
@@ -5034,10 +5061,8 @@ static int sctp_getsockopt_maxburst(struct sock *sk, int len, | |||
5034 | struct sctp_association *asoc; | 5061 | struct sctp_association *asoc; |
5035 | 5062 | ||
5036 | if (len == sizeof(int)) { | 5063 | if (len == sizeof(int)) { |
5037 | printk(KERN_WARNING | 5064 | pr_warn("Use of int in max_burst socket option deprecated\n"); |
5038 | "SCTP: Use of int in max_burst socket option deprecated\n"); | 5065 | pr_warn("Use struct sctp_assoc_value instead\n"); |
5039 | printk(KERN_WARNING | ||
5040 | "SCTP: Use struct sctp_assoc_value instead\n"); | ||
5041 | params.assoc_id = 0; | 5066 | params.assoc_id = 0; |
5042 | } else if (len >= sizeof(struct sctp_assoc_value)) { | 5067 | } else if (len >= sizeof(struct sctp_assoc_value)) { |
5043 | len = sizeof(struct sctp_assoc_value); | 5068 | len = sizeof(struct sctp_assoc_value); |
@@ -5580,7 +5605,7 @@ static int sctp_get_port(struct sock *sk, unsigned short snum) | |||
5580 | /* Note: sk->sk_num gets filled in if ephemeral port request. */ | 5605 | /* Note: sk->sk_num gets filled in if ephemeral port request. */ |
5581 | ret = sctp_get_port_local(sk, &addr); | 5606 | ret = sctp_get_port_local(sk, &addr); |
5582 | 5607 | ||
5583 | return (ret ? 1 : 0); | 5608 | return ret ? 1 : 0; |
5584 | } | 5609 | } |
5585 | 5610 | ||
5586 | /* | 5611 | /* |
@@ -5597,8 +5622,7 @@ SCTP_STATIC int sctp_listen_start(struct sock *sk, int backlog) | |||
5597 | tfm = crypto_alloc_hash(sctp_hmac_alg, 0, CRYPTO_ALG_ASYNC); | 5622 | tfm = crypto_alloc_hash(sctp_hmac_alg, 0, CRYPTO_ALG_ASYNC); |
5598 | if (IS_ERR(tfm)) { | 5623 | if (IS_ERR(tfm)) { |
5599 | if (net_ratelimit()) { | 5624 | if (net_ratelimit()) { |
5600 | printk(KERN_INFO | 5625 | pr_info("failed to load transform for %s: %ld\n", |
5601 | "SCTP: failed to load transform for %s: %ld\n", | ||
5602 | sctp_hmac_alg, PTR_ERR(tfm)); | 5626 | sctp_hmac_alg, PTR_ERR(tfm)); |
5603 | } | 5627 | } |
5604 | return -ENOSYS; | 5628 | return -ENOSYS; |
@@ -5727,13 +5751,12 @@ unsigned int sctp_poll(struct file *file, struct socket *sock, poll_table *wait) | |||
5727 | if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) | 5751 | if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) |
5728 | mask |= POLLERR; | 5752 | mask |= POLLERR; |
5729 | if (sk->sk_shutdown & RCV_SHUTDOWN) | 5753 | if (sk->sk_shutdown & RCV_SHUTDOWN) |
5730 | mask |= POLLRDHUP; | 5754 | mask |= POLLRDHUP | POLLIN | POLLRDNORM; |
5731 | if (sk->sk_shutdown == SHUTDOWN_MASK) | 5755 | if (sk->sk_shutdown == SHUTDOWN_MASK) |
5732 | mask |= POLLHUP; | 5756 | mask |= POLLHUP; |
5733 | 5757 | ||
5734 | /* Is it readable? Reconsider this code with TCP-style support. */ | 5758 | /* Is it readable? Reconsider this code with TCP-style support. */ |
5735 | if (!skb_queue_empty(&sk->sk_receive_queue) || | 5759 | if (!skb_queue_empty(&sk->sk_receive_queue)) |
5736 | (sk->sk_shutdown & RCV_SHUTDOWN)) | ||
5737 | mask |= POLLIN | POLLRDNORM; | 5760 | mask |= POLLIN | POLLRDNORM; |
5738 | 5761 | ||
5739 | /* The association is either gone or not ready. */ | 5762 | /* The association is either gone or not ready. */ |
diff --git a/net/sctp/transport.c b/net/sctp/transport.c index 132046cb82fc..d3ae493d234a 100644 --- a/net/sctp/transport.c +++ b/net/sctp/transport.c | |||
@@ -48,6 +48,8 @@ | |||
48 | * be incorporated into the next SCTP release. | 48 | * be incorporated into the next SCTP release. |
49 | */ | 49 | */ |
50 | 50 | ||
51 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
52 | |||
51 | #include <linux/slab.h> | 53 | #include <linux/slab.h> |
52 | #include <linux/types.h> | 54 | #include <linux/types.h> |
53 | #include <linux/random.h> | 55 | #include <linux/random.h> |
@@ -244,10 +246,9 @@ void sctp_transport_update_pmtu(struct sctp_transport *t, u32 pmtu) | |||
244 | struct dst_entry *dst; | 246 | struct dst_entry *dst; |
245 | 247 | ||
246 | if (unlikely(pmtu < SCTP_DEFAULT_MINSEGMENT)) { | 248 | if (unlikely(pmtu < SCTP_DEFAULT_MINSEGMENT)) { |
247 | printk(KERN_WARNING "%s: Reported pmtu %d too low, " | 249 | pr_warn("%s: Reported pmtu %d too low, using default minimum of %d\n", |
248 | "using default minimum of %d\n", | 250 | __func__, pmtu, |
249 | __func__, pmtu, | 251 | SCTP_DEFAULT_MINSEGMENT); |
250 | SCTP_DEFAULT_MINSEGMENT); | ||
251 | /* Use default minimum segment size and disable | 252 | /* Use default minimum segment size and disable |
252 | * pmtu discovery on this transport. | 253 | * pmtu discovery on this transport. |
253 | */ | 254 | */ |