tcp_usrreq.c (e7381521aa755682f42e7b2d1a435ce7768aa708) tcp_usrreq.c (86c9325d341fc3f39543bcfaf7c3bb3ceeacbe5d)
1/*-
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright (c) 1982, 1986, 1988, 1993
5 * The Regents of the University of California.
6 * Copyright (c) 2006-2007 Robert N. M. Watson
7 * Copyright (c) 2010-2011 Juniper Networks, Inc.
8 * All rights reserved.

--- 1717 unchanged lines hidden (view full) ---

1726 return (ENOENT);
1727 }
1728 if (tp->t_fb == blk) {
1729 /* You already have this */
1730 refcount_release(&blk->tfb_refcnt);
1731 INP_WUNLOCK(inp);
1732 return (0);
1733 }
1/*-
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright (c) 1982, 1986, 1988, 1993
5 * The Regents of the University of California.
6 * Copyright (c) 2006-2007 Robert N. M. Watson
7 * Copyright (c) 2010-2011 Juniper Networks, Inc.
8 * All rights reserved.

--- 1717 unchanged lines hidden (view full) ---

1726 return (ENOENT);
1727 }
1728 if (tp->t_fb == blk) {
1729 /* You already have this */
1730 refcount_release(&blk->tfb_refcnt);
1731 INP_WUNLOCK(inp);
1732 return (0);
1733 }
1734 if (tp->t_state != TCPS_CLOSED) {
1735 /*
1736 * The user has advanced the state
1737 * past the initial point, we may not
1738 * be able to switch.
1739 */
1740 if (blk->tfb_tcp_handoff_ok != NULL) {
1741 /*
1742 * Does the stack provide a
1743 * query mechanism, if so it may
1744 * still be possible?
1745 */
1746 error = (*blk->tfb_tcp_handoff_ok)(tp);
1747 } else
1748 error = EINVAL;
1749 if (error) {
1750 refcount_release(&blk->tfb_refcnt);
1751 INP_WUNLOCK(inp);
1752 return(error);
1753 }
1754 }
1755 if (blk->tfb_flags & TCP_FUNC_BEING_REMOVED) {
1756 refcount_release(&blk->tfb_refcnt);
1757 INP_WUNLOCK(inp);
1758 return (ENOENT);
1759 }
1734 if (blk->tfb_flags & TCP_FUNC_BEING_REMOVED) {
1735 refcount_release(&blk->tfb_refcnt);
1736 INP_WUNLOCK(inp);
1737 return (ENOENT);
1738 }
1739 error = (*blk->tfb_tcp_handoff_ok)(tp);
1740 if (error) {
1741 refcount_release(&blk->tfb_refcnt);
1742 INP_WUNLOCK(inp);
1743 return (error);
1744 }
1760 /*
1761 * Ensure the new stack takes ownership with a
1762 * clean slate on peak rate threshold.
1763 */
1764 if (tp->t_fb->tfb_tcp_timer_stop_all != NULL)
1765 tp->t_fb->tfb_tcp_timer_stop_all(tp);
1766 if (blk->tfb_tcp_fb_init) {
1767 error = (*blk->tfb_tcp_fb_init)(tp, &ptr);

--- 1366 unchanged lines hidden ---
1745 /*
1746 * Ensure the new stack takes ownership with a
1747 * clean slate on peak rate threshold.
1748 */
1749 if (tp->t_fb->tfb_tcp_timer_stop_all != NULL)
1750 tp->t_fb->tfb_tcp_timer_stop_all(tp);
1751 if (blk->tfb_tcp_fb_init) {
1752 error = (*blk->tfb_tcp_fb_init)(tp, &ptr);

--- 1366 unchanged lines hidden ---