diff options
author | rrs <rrs@FreeBSD.org> | 2007-05-29 14:17:47 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2007-05-29 14:17:47 +0000 |
commit | e0e3597bea6b9c3c42c4e8326cfabacf3829cba9 (patch) | |
tree | bda3c1b843c9dcad5f2bd68d77041d89148c477b | |
parent | 80a596eeced750d312f2c869efeafd2f8f2ac397 (diff) | |
download | FreeBSD-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.c | 13 |
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; |