Print this page
12976 system panics with error in IP module
Reviewed by: Andy Fiddaman <andy@omniosce.org>
Reviewed by: Paul Winder <p.winder@me.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/socket_proto.h
          +++ new/usr/src/uts/common/sys/socket_proto.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   * Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
       24 + * Copyright 2020 Joyent, Inc.
  24   25   */
  25   26  
  26   27  #ifndef _SYS_SOCKET_PROTO_H_
  27   28  #define _SYS_SOCKET_PROTO_H_
  28   29  
  29   30  #ifdef  __cplusplus
  30   31  extern "C" {
  31   32  #endif
  32   33  
  33   34  #include <sys/socket.h>
↓ open down ↓ 161 lines elided ↑ open up ↑
 195  196          void    (*su_opctl)(sock_upper_handle_t, sock_opctl_action_t,
 196  197              uintptr_t);
 197  198          ssize_t (*su_recv)(sock_upper_handle_t, mblk_t *, size_t, int,
 198  199                      int *, boolean_t *);
 199  200          void    (*su_set_proto_props)(sock_upper_handle_t,
 200  201                      struct sock_proto_props *);
 201  202          void    (*su_txq_full)(sock_upper_handle_t, boolean_t);
 202  203          void    (*su_signal_oob)(sock_upper_handle_t, ssize_t);
 203  204          void    (*su_zcopy_notify)(sock_upper_handle_t);
 204  205          void    (*su_set_error)(sock_upper_handle_t, int);
      206 +        /*
      207 +         * NOTE: This function frees upper handle items. Caller cannot
      208 +         * rely on them after this upcall.
      209 +         */
 205  210          void    (*su_closed)(sock_upper_handle_t);
      211 +        /*
      212 +         * NOTE: This function MUST be implemented without using lower-level
      213 +         * downcalls or accesses. This allows callers to ensure su_closed()
      214 +         * upcalls can happen indepdently or concurrently.
      215 +         */
 206  216          vnode_t *(*su_get_vnode)(sock_upper_handle_t);
 207  217  };
 208  218  
 209  219  #define SOCK_UC_VERSION         sizeof (sock_upcalls_t)
 210  220  #define SOCK_DC_VERSION         sizeof (sock_downcalls_t)
 211  221  
 212  222  #define SOCKET_RECVHIWATER      (48 * 1024)
 213  223  #define SOCKET_RECVLOWATER      1024
 214  224  
 215  225  #define SOCKET_NO_RCVTIMER      0
 216  226  #define SOCKET_TIMER_INTERVAL   50
 217  227  
 218  228  #endif /* _KERNEL */
 219  229  
 220  230  #ifdef  __cplusplus
 221  231  }
 222  232  #endif
 223  233  
 224  234  #endif /* _SYS_SOCKET_PROTO_H_ */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX