Hyper-Thread attacks are possible.
 
 Deeper technical information is available in the MDS specific x86
-architecture section: :ref:`Documentation/x86/mds.rst <mds>`.
+architecture section: :ref:`Documentation/arch/x86/mds.rst <mds>`.
 
 
 Attack scenarios
 
 which in turn potentially leaks data stored in the buffers.
 
 More detailed technical information is available in the TAA specific x86
-architecture section: :ref:`Documentation/x86/tsx_async_abort.rst <tsx_async_abort>`.
+architecture section: :ref:`Documentation/arch/x86/tsx_async_abort.rst <tsx_async_abort>`.
 
 
 Attack scenarios
 
        X86-32  X86-32, aka i386 architecture is enabled.
        X86-64  X86-64 architecture is enabled.
                        More X86-64 boot options can be found in
-                       Documentation/x86/x86_64/boot-options.rst.
+                       Documentation/arch/x86/x86_64/boot-options.rst.
        X86     Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
        X86_UV  SGI UV support is enabled.
        XEN     Xen support is enabled
 Parameters denoted with BOOT are actually interpreted by the boot
 loader, and have no meaning to the kernel directly.
 Do not modify the syntax of boot loader parameters without extreme
-need or coordination with <Documentation/x86/boot.rst>.
+need or coordination with <Documentation/arch/x86/boot.rst>.
 
 There are also arch-specific kernel-parameters not documented here.
-See for example <Documentation/x86/x86_64/boot-options.rst>.
+See for example <Documentation/arch/x86/x86_64/boot-options.rst>.
 
 Note that ALL kernel parameters listed below are CASE SENSITIVE, and that
 a trailing = on the name of any parameter states that that parameter will
 
 
        mce             [X86-32] Machine Check Exception
 
-       mce=option      [X86-64] See Documentation/x86/x86_64/boot-options.rst
+       mce=option      [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
 
        md=             [HW] RAID subsystems devices and level
                        See Documentation/admin-guide/md.rst.
                        and performance comparison.
 
        pirq=           [SMP,APIC] Manual mp-table setup
-                       See Documentation/x86/i386/IO-APIC.rst.
+                       See Documentation/arch/x86/i386/IO-APIC.rst.
 
        plip=           [PPT,NET] Parallel port network link
                        Format: { parport<nr> | timid | 0 }
 
        serialnumber    [BUGS=X86-32]
 
-       sev=option[,option...] [X86-64] See Documentation/x86/x86_64/boot-options.rst
+       sev=option[,option...] [X86-64] See Documentation/arch/x86/x86_64/boot-options.rst
 
        shapers=        [NET]
                        Maximal number of shapers.
                        Can be used multiple times for multiple devices.
 
        vga=            [BOOT,X86-32] Select a particular video mode
-                       See Documentation/x86/boot.rst and
+                       See Documentation/arch/x86/boot.rst and
                        Documentation/admin-guide/svga.rst.
                        Use vga=ask for menu.
                        This is actually a boot loader parameter; the value is
 
   mode).
 
 .. [#f3] For more details about the Machine Check Architecture (MCA),
-  please read Documentation/x86/x86_64/machinecheck.rst at the Kernel tree.
+  please read Documentation/arch/x86/x86_64/machinecheck.rst at the Kernel tree.
 
 EDAC - Error Detection And Correction
 *************************************
 
 the value 340 = 0x154.
 
 See the ``type_of_loader`` and ``ext_loader_type`` fields in
-Documentation/x86/boot.rst for additional information.
+Documentation/arch/x86/boot.rst for additional information.
 
 
 bootloader_version (x86 only)
 file will contain the value 564 = 0x234.
 
 See the ``type_of_loader`` and ``ext_loader_ver`` fields in
-Documentation/x86/boot.rst for additional information.
+Documentation/arch/x86/boot.rst for additional information.
 
 
 bpf_stats_enabled
 
    ../s390/index
    ../sh/index
    ../sparc/index
-   ../x86/index
+   x86/index
    ../xtensa/index
 
 In addition to read/modify/write the setup header of the struct
 boot_params as that of 16-bit boot protocol, the boot loader should
 also fill the additional fields of the struct boot_params as
-described in chapter Documentation/x86/zero-page.rst.
+described in chapter Documentation/arch/x86/zero-page.rst.
 
 After setting up the struct boot_params, the boot loader can load the
 32/64-bit kernel in the same way as that of 16-bit boot protocol.
 In addition to read/modify/write the setup header of the struct
 boot_params as that of 16-bit boot protocol, the boot loader should
 also fill the additional fields of the struct boot_params as described
-in chapter Documentation/x86/zero-page.rst.
+in chapter Documentation/arch/x86/zero-page.rst.
 
 After setting up the struct boot_params, the boot loader can load
 64-bit kernel in the same way as that of 16-bit boot protocol, but
 
   the decompressor (the real mode entry point goes to the same  32bit
   entry point once it switched into protected mode). That entry point
   supports one calling convention which is documented in
-  Documentation/x86/boot.rst
+  Documentation/arch/x86/boot.rst
   The physical pointer to the device-tree block is passed via setup_data
   which requires at least boot protocol 2.09.
   The type filed is defined as
 
 firmware code though and the OS does not make any specific MTRR mapping
 requests mtrr_type_lookup() should always return MTRR_TYPE_INVALID.
 
-For details refer to Documentation/x86/pat.rst.
+For details refer to Documentation/arch/x86/pat.rst.
 
 .. tip::
   On Intel P6 family processors (Pentium Pro, Pentium II and later)
 
 QEMU 2.9 and later support 5-level paging.
 
 Virtual memory layout for 5-level paging is described in
-Documentation/x86/x86_64/mm.rst
+Documentation/arch/x86/x86_64/mm.rst
 
 
 Enabling 5-level paging
 
 
 Machine check
 =============
-Please see Documentation/x86/x86_64/machinecheck.rst for sysfs runtime tunables.
+Please see Documentation/arch/x86/x86_64/machinecheck.rst for sysfs runtime tunables.
 
    mce=off
                Disable machine check
      Don't use the local APIC (alias for i386 compatibility)
 
    pirq=...
-       See Documentation/x86/i386/IO-APIC.rst
+       See Documentation/arch/x86/i386/IO-APIC.rst
 
    noapictimer
        Don't set up the APIC timer
 
 Documentation/admin-guide/cgroup-v1/cpusets.rst.
 There are a number of different configurations you can use for your needs.  For
 more information on the numa=fake command line option and its various ways of
-configuring fake nodes, see Documentation/x86/x86_64/boot-options.rst.
+configuring fake nodes, see Documentation/arch/x86/x86_64/boot-options.rst.
 
 For the purposes of this introduction, we'll assume a very primitive NUMA
 emulation setup of "numa=fake=4*512,".  This will split our system memory into
 
 run to check and fix the object if needed. Currently, ``objtool`` can report
 missing frame pointer setup/destruction in functions. It can also
 automatically generate annotations for the ORC unwinder
-(Documentation/x86/orc-unwinder.rst)
+(Documentation/arch/x86/orc-unwinder.rst)
 for most code. Both of these are especially important to support reliable
 stack traces which are in turn necessary for kernel live patching
 (Documentation/livepatch/livepatch.rst).
 
 
 ioremap_uc() behaves like ioremap() except that on the x86 architecture without
 'PAT' mode, it marks memory as uncached even when the MTRR has designated
-it as cacheable, see Documentation/x86/pat.rst.
+it as cacheable, see Documentation/arch/x86/pat.rst.
 
 Portable drivers should avoid the use of ioremap_uc().
 
 
 by running an enclave in a VM, KVM prevents access to privileged attributes by
 default.
 
-See Documentation/x86/sgx.rst for more details.
+See Documentation/arch/x86/sgx.rst for more details.
 
 7.26 KVM_CAP_PPC_RPT_INVALIDATE
 -------------------------------
 
 R:     Carlos Bilbao <carlos.bilbao@amd.com>
 L:     platform-driver-x86@vger.kernel.org
 S:     Maintained
-F:     Documentation/x86/amd_hsmp.rst
+F:     Documentation/arch/x86/amd_hsmp.rst
 F:     arch/x86/include/asm/amd_hsmp.h
 F:     arch/x86/include/uapi/asm/amd_hsmp.h
 F:     drivers/platform/x86/amd/hsmp.c
 S:     Supported
 W:     http://tboot.sourceforge.net
 T:     hg http://tboot.hg.sourceforge.net:8000/hgroot/tboot/tboot
-F:     Documentation/x86/intel_txt.rst
+F:     Documentation/arch/x86/intel_txt.rst
 F:     arch/x86/kernel/tboot.c
 F:     include/linux/tboot.h
 
 S:     Supported
 Q:     https://patchwork.kernel.org/project/intel-sgx/list/
 T:     git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sgx
-F:     Documentation/x86/sgx.rst
+F:     Documentation/arch/x86/sgx.rst
 F:     arch/x86/entry/vdso/vsgx.S
 F:     arch/x86/include/asm/sgx.h
 F:     arch/x86/include/uapi/asm/sgx.h
 M:     Reinette Chatre <reinette.chatre@intel.com>
 L:     linux-kernel@vger.kernel.org
 S:     Supported
-F:     Documentation/x86/resctrl*
+F:     Documentation/arch/x86/resctrl*
 F:     arch/x86/include/asm/resctrl.h
 F:     arch/x86/kernel/cpu/resctrl/
 F:     tools/testing/selftests/resctrl/
 S:     Maintained
 T:     git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
 F:     Documentation/devicetree/bindings/x86/
-F:     Documentation/x86/
+F:     Documentation/arch/x86/
 F:     arch/x86/
 
 X86 ENTRY CODE
 L:     linux-edac@vger.kernel.org
 S:     Maintained
 F:     Documentation/ABI/testing/sysfs-mce
-F:     Documentation/x86/x86_64/machinecheck.rst
+F:     Documentation/arch/x86/x86_64/machinecheck.rst
 F:     arch/x86/kernel/cpu/mce/*
 
 X86 MICROCODE UPDATE SUPPORT
 
          uniprocessor machines. On a uniprocessor machine, the kernel
          will run faster if you say N here.
 
-         See also <file:Documentation/x86/i386/IO-APIC.rst>,
+         See also <file:Documentation/arch/x86/i386/IO-APIC.rst>,
          <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
          <http://tldp.org/HOWTO/SMP-HOWTO.html>.
 
 
          Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
          Management" code will be disabled if you say Y here.
 
-         See also <file:Documentation/x86/i386/IO-APIC.rst>,
+         See also <file:Documentation/arch/x86/i386/IO-APIC.rst>,
          <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
          <http://www.tldp.org/docs.html#howto>.
 
          the Linux kernel.
 
          The preferred method to load microcode from a detached initrd is described
-         in Documentation/x86/microcode.rst. For that you need to enable
+         in Documentation/arch/x86/microcode.rst. For that you need to enable
          CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
          initrd for microcode blobs.
 
          A kernel with the option enabled can be booted on machines that
          support 4- or 5-level paging.
 
-         See Documentation/x86/x86_64/5level-paging.rst for more
+         See Documentation/arch/x86/x86_64/5level-paging.rst for more
          information.
 
          Say N if unsure.
          You can safely say Y even if your machine doesn't have MTRRs, you'll
          just add about 9 KB to your kernel.
 
-         See <file:Documentation/x86/mtrr.rst> for more information.
+         See <file:Documentation/arch/x86/mtrr.rst> for more information.
 
 config MTRR_SANITIZER
        def_bool y
          ensuring that the majority of kernel addresses are not mapped
          into userspace.
 
-         See Documentation/x86/pti.rst for more details.
+         See Documentation/arch/x86/pti.rst for more details.
 
 config RETPOLINE
        bool "Avoid speculative indirect branches in kernel"
 
          code. When you use it make sure you have a big enough
          IOMMU/AGP aperture.  Most of the options enabled by this can
          be set more finegrained using the iommu= command line
-         options. See Documentation/x86/x86_64/boot-options.rst for more
+         options. See Documentation/arch/x86/x86_64/boot-options.rst for more
          details.
 
 config IOMMU_LEAK
 
 
 type_of_loader:        .byte   0               # 0 means ancient bootloader, newer
                                        # bootloaders know to change this.
-                                       # See Documentation/x86/boot.rst for
+                                       # See Documentation/arch/x86/boot.rst for
                                        # assigned ids
 
 # flags, unused bits must be zero (RFU) bit within loadflags
 
  *
  * entry.S contains the system-call and fault low-level handling routines.
  *
- * Some of this is documented in Documentation/x86/entry_64.rst
+ * Some of this is documented in Documentation/arch/x86/entry_64.rst
  *
  * A note on terminology:
  * - iret frame:       Architecture defined interrupt frame from SS to RIP
 
         * IMPORTANT NOTE TO BOOTLOADER AUTHORS: do not simply clear
         * this field.  The purpose of this field is to guarantee
         * compliance with the x86 boot spec located in
-        * Documentation/x86/boot.rst .  That spec says that the
+        * Documentation/arch/x86/boot.rst .  That spec says that the
         * *whole* structure should be cleared, after which only the
         * portion defined by struct setup_header (boot_params->hdr)
         * should be copied in.
 
 
 #define __START_KERNEL_map     _AC(0xffffffff80000000, UL)
 
-/* See Documentation/x86/x86_64/mm.rst for a description of the memory map. */
+/* See Documentation/arch/x86/x86_64/mm.rst for a description of the memory map. */
 
 #define __PHYSICAL_MASK_SHIFT  52
 
 
 #define PGDIR_MASK     (~(PGDIR_SIZE - 1))
 
 /*
- * See Documentation/x86/x86_64/mm.rst for a description of the memory map.
+ * See Documentation/arch/x86/x86_64/mm.rst for a description of the memory map.
  *
  * Be very careful vs. KASLR when changing anything here. The KASLR address
  * range must not overlap with anything except the KASAN shadow area, which
 
 
 /*
  * Microcode patch container file is prepended to the initrd in cpio
- * format. See Documentation/x86/microcode.rst
+ * format. See Documentation/arch/x86/microcode.rst
  */
 static const char
 ucode_path[] __maybe_unused = "kernel/x86/microcode/AuthenticAMD.bin";
 
 #define CF(cf) ((unsigned long)(1048576 * (cf) + 0.5))
 
 /*
- * The correction factor table is documented in Documentation/x86/resctrl.rst.
+ * The correction factor table is documented in Documentation/arch/x86/resctrl.rst.
  * If rmid > rmid threshold, MBM total and local values should be multiplied
  * by the correction factor.
  *
 
 
 #define EREMOVE_ERROR_MESSAGE \
        "EREMOVE returned %d (0x%x) and an EPC page was leaked. SGX may become unusable. " \
-       "Refer to Documentation/x86/sgx.rst for more information."
+       "Refer to Documentation/arch/x86/sgx.rst for more information."
 
 #define SGX_MAX_EPC_SECTIONS           8
 #define SGX_EEXTEND_BLOCK_SIZE         256
 
        efi_map_offset = params_cmdline_sz;
        efi_setup_data_offset = efi_map_offset + ALIGN(efi_map_sz, 16);
 
-       /* Copy setup header onto bootparams. Documentation/x86/boot.rst */
+       /* Copy setup header onto bootparams. Documentation/arch/x86/boot.rst */
        setup_header_size = 0x0202 + kernel[0x0201] - setup_hdr_offset;
 
        /* Is there a limit on setup header size? */
 
 }
 
 /*
- * See <Documentation/x86/x86_64/boot-options.rst> for the iommu kernel
+ * See <Documentation/arch/x86/x86_64/boot-options.rst> for the iommu kernel
  * parameter documentation.
  */
 static __init int iommu_setup(char *p)
 
  * take full advantage of the the limited (s32) immediate addressing range (2G)
  * of x86_64.
  *
- * See Documentation/x86/x86_64/mm.rst for more detail.
+ * See Documentation/arch/x86/x86_64/mm.rst for more detail.
  */
 
 static inline unsigned long highmap_start_pfn(void)
 
 }
 
 /*
- * See Documentation/x86/tlb.rst for details.  We choose 33
+ * See Documentation/arch/x86/tlb.rst for details.  We choose 33
  * because it is large enough to cover the vast majority (at
  * least 95%) of allocations, and is small enough that we are
  * confident it will not cause too much overhead.  Each single
 
        }
 
        /*
-        * See Documentation/x86/boot.rst.
+        * See Documentation/arch/x86/boot.rst.
         *
         * Version 2.12 supports Xen entry point but we will use default x86/PC
         * environment (i.e. hardware_subarch 0).
 
 
 /* TODO: This is really inefficient.  We need something like get_user()
  * (instruction directly accesses the data, with an exception table entry
- * returning -EFAULT). See Documentation/x86/exception-tables.rst.
+ * returning -EFAULT). See Documentation/arch/x86/exception-tables.rst.
  */
 static int set_bit_to_user(int nr, void __user *addr)
 {
 
          See <https://www.intel.com/technology/security/> for more information
          about Intel(R) TXT.
          See <http://tboot.sourceforge.net> for more information about tboot.
-         See Documentation/x86/intel_txt.rst for a description of how to enable
+         See Documentation/arch/x86/intel_txt.rst for a description of how to enable
          Intel TXT support in a kernel boot.
 
          If you are unsure as to whether this is required, answer N.
 
  * Userspace note:
  * The same principle works for userspace, because 'error' pointers
  * fall down to the unused hole far from user space, as described
- * in Documentation/x86/x86_64/mm.rst for x86_64 arch:
+ * in Documentation/arch/x86/x86_64/mm.rst for x86_64 arch:
  *
  * 0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm hole caused by [48:63] sign extension
  * ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole
 
    band.  So it doesn't affect runtime performance and it can be
    reliable even when interrupts or exceptions are involved.
 
-   For more details, see Documentation/x86/orc-unwinder.rst.
+   For more details, see Documentation/arch/x86/orc-unwinder.rst.
 
 c) Higher live patching compatibility rate