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/intel/amd64/krtld/kobj_crt.s
          +++ new/usr/src/uts/intel/amd64/krtld/kobj_crt.s
↓ 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 2007 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
       24 + * Copyright 2019 Joyent, Inc.
  24   25   */
  25   26  
  26      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  27      -
  28   27  /*
  29   28   * exit routine from linker/loader to kernel
  30   29   */
  31   30  
  32   31  #include <sys/asm_linkage.h>
  33   32  #include <sys/reboot.h>
  34   33  
  35   34  /*
  36   35   *  exitto is called from main() and does 1 things
  37   36   *      It then jumps directly to the just-loaded standalone.
↓ open down ↓ 19 lines elided ↑ open up ↑
  57   56          / $arg1
  58   57          movq    $romp, %rax
  59   58          movq    (%rax), %rdi
  60   59  
  61   60          /holds address of bootops structure
  62   61          / $arg2
  63   62          movq    $ops, %rax
  64   63          movq    (%rax), %rdx
  65   64  
  66   65          / Call destination
  67      -        call   *%r11
       66 +        INDIRECT_CALL_REG(r11)
  68   67  
  69   68          SET_SIZE(exitto)
  70   69  
  71   70  #endif
  72   71  
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX