summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-05-29 14:17:47 +0000
committerrrs <rrs@FreeBSD.org>2007-05-29 14:17:47 +0000
commite0e3597bea6b9c3c42c4e8326cfabacf3829cba9 (patch)
treebda3c1b843c9dcad5f2bd68d77041d89148c477b
parent80a596eeced750d312f2c869efeafd2f8f2ac397 (diff)
downloadFreeBSD-src-e0e3597bea6b9c3c42c4e8326cfabacf3829cba9.zip
FreeBSD-src-e0e3597bea6b9c3c42c4e8326cfabacf3829cba9.tar.gz
Adds gcc attribute to prevent inlining of a function. If
it goes inline we may well blow the stack if witness and such are enabled.
-rw-r--r--sys/netinet/sctp_input.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c
index 935a90d..bf4b292 100644
--- a/sys/netinet/sctp_input.c
+++ b/sys/netinet/sctp_input.c
@@ -3435,11 +3435,14 @@ sctp_handle_packet_dropped(struct sctp_pktdrop_chunk *cp,
* cookie-echo processing - return NULL to discard the packet (ie. no asoc,
* bad packet,...) otherwise return the tcb for this packet
*/
-static struct sctp_tcb *
-sctp_process_control(struct mbuf *m, int iphlen, int *offset, int length,
- struct sctphdr *sh, struct sctp_chunkhdr *ch, struct sctp_inpcb *inp,
- struct sctp_tcb *stcb, struct sctp_nets **netp, int *fwd_tsn_seen,
- uint32_t vrf_id, uint32_t table_id)
+#ifdef __GNUC__
+__attribute__((noinline))
+#endif
+ static struct sctp_tcb *
+ sctp_process_control(struct mbuf *m, int iphlen, int *offset, int length,
+ struct sctphdr *sh, struct sctp_chunkhdr *ch, struct sctp_inpcb *inp,
+ struct sctp_tcb *stcb, struct sctp_nets **netp, int *fwd_tsn_seen,
+ uint32_t vrf_id, uint32_t table_id)
{
struct sctp_association *asoc;
uint32_t vtag_in;
OpenPOWER on IntegriCloud