Print this page
11787 Kernel needs to be built with retpolines
11788 Kernel needs to generally use RSB stuffing
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: John Levon <john.levon@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/i86pc/ml/interrupt.s
          +++ new/usr/src/uts/i86pc/ml/interrupt.s
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  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) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
       23 + * Copyright 2019 Joyent, Inc.
  23   24   */
  24   25  
  25   26  /*      Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
  26   27  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T   */
  27   28  /*        All Rights Reserved                                   */
  28   29  
  29   30  /*      Copyright (c) 1987, 1988 Microsoft Corporation          */
  30   31  /*        All Rights Reserved                                   */
  31   32  
  32   33  #include <sys/asm_linkage.h>
↓ open down ↓ 59 lines elided ↑ open up ↑
  92   93          movl    $255, TTR_IPL(%r12)
  93   94          movl    %r14d, %edi
  94   95          movb    %dil, TTR_PRI(%r12)
  95   96          movl    CPU_BASE_SPL(%rbx), %edi
  96   97          movb    %dil, TTR_SPL(%r12)
  97   98          movb    $255, TTR_VECTOR(%r12)
  98   99          movq    %r12, %rsi              /* pass traptrace record pointer */
  99  100  #endif
 100  101  
 101  102          movq    %rsp, %rdi              /* pass struct regs pointer */
 102      -        call    *do_interrupt_common
      103 +        movq    do_interrupt_common, %rax
      104 +        INDIRECT_CALL_REG(rax)
 103  105  
 104  106          jmp     _sys_rtt_ints_disabled
 105  107          /*NOTREACHED*/
 106  108  
 107  109          SET_SIZE(cmnint)
 108  110          SET_SIZE(_interrupt)
 109  111  
 110  112  #elif defined(__i386)
 111  113  
 112  114          ENTRY_NP2(cmnint, _interrupt)
↓ open down ↓ 109 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX