mirror of
https://github.com/torvalds/linux.git
synced 2026-03-07 23:04:33 +01:00
mm.git review status for linus..mm-nonmm-stable
Total patches: 107 Reviews/patch: 1.07 Reviewed rate: 67% - The 2 patch series "ocfs2: give ocfs2 the ability to reclaim suballocator free bg" from Heming Zhao saves disk space by teaching ocfs2 to reclaim suballocator block group space. - The 4 patch series "Add ARRAY_END(), and use it to fix off-by-one bugs" from Alejandro Colomar adds the ARRAY_END() macro and uses it in various places. - The 2 patch series "vmcoreinfo: support VMCOREINFO_BYTES larger than PAGE_SIZE" from Pnina Feder makes the vmcore code future-safe, if VMCOREINFO_BYTES ever exceeds the page size. - The 7 patch series "kallsyms: Prevent invalid access when showing module buildid" from Petr Mladek cleans up kallsyms code related to module buildid and fixes an invalid access crash when printing backtraces. - The 3 patch series "Address page fault in ima_restore_measurement_list()" from Harshit Mogalapalli fixes a kexec-related crash that can occur when booting the second-stage kernel on x86. - The 6 patch series "kho: ABI headers and Documentation updates" from Mike Rapoport updates the kexec handover ABI documentation. - The 4 patch series "Align atomic storage" from Finn Thain adds the __aligned attribute to atomic_t and atomic64_t definitions to get natural alignment of both types on csky, m68k, microblaze, nios2, openrisc and sh. - The 2 patch series "kho: clean up page initialization logic" from Pratyush Yadav simplifies the page initialization logic in kho_restore_page(). - The 6 patch series "Unload linux/kernel.h" from Yury Norov moves several things out of kernel.h and into more appropriate places. - The 7 patch series "don't abuse task_struct.group_leader" from Oleg Nesterov removes the usage of ->group_leader when it is "obviously unnecessary". - The 5 patch series "list private v2 & luo flb" from Pasha Tatashin adds some infrastructure improvements to the live update orchestrator. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCaY4giAAKCRDdBJ7gKXxA jgusAQDnKkP8UWTqXPC1jI+OrDJGU5ciAx8lzLeBVqMKzoYk9AD/TlhT2Nlx+Ef6 0HCUHUD0FMvAw/7/Dfc6ZKxwBEIxyww= =mmsH -----END PGP SIGNATURE----- Merge tag 'mm-nonmm-stable-2026-02-12-10-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull non-MM updates from Andrew Morton: - "ocfs2: give ocfs2 the ability to reclaim suballocator free bg" saves disk space by teaching ocfs2 to reclaim suballocator block group space (Heming Zhao) - "Add ARRAY_END(), and use it to fix off-by-one bugs" adds the ARRAY_END() macro and uses it in various places (Alejandro Colomar) - "vmcoreinfo: support VMCOREINFO_BYTES larger than PAGE_SIZE" makes the vmcore code future-safe, if VMCOREINFO_BYTES ever exceeds the page size (Pnina Feder) - "kallsyms: Prevent invalid access when showing module buildid" cleans up kallsyms code related to module buildid and fixes an invalid access crash when printing backtraces (Petr Mladek) - "Address page fault in ima_restore_measurement_list()" fixes a kexec-related crash that can occur when booting the second-stage kernel on x86 (Harshit Mogalapalli) - "kho: ABI headers and Documentation updates" updates the kexec handover ABI documentation (Mike Rapoport) - "Align atomic storage" adds the __aligned attribute to atomic_t and atomic64_t definitions to get natural alignment of both types on csky, m68k, microblaze, nios2, openrisc and sh (Finn Thain) - "kho: clean up page initialization logic" simplifies the page initialization logic in kho_restore_page() (Pratyush Yadav) - "Unload linux/kernel.h" moves several things out of kernel.h and into more appropriate places (Yury Norov) - "don't abuse task_struct.group_leader" removes the usage of ->group_leader when it is "obviously unnecessary" (Oleg Nesterov) - "list private v2 & luo flb" adds some infrastructure improvements to the live update orchestrator (Pasha Tatashin) * tag 'mm-nonmm-stable-2026-02-12-10-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (107 commits) watchdog/hardlockup: simplify perf event probe and remove per-cpu dependency procfs: fix missing RCU protection when reading real_parent in do_task_stat() watchdog/softlockup: fix sample ring index wrap in need_counting_irqs() kcsan, compiler_types: avoid duplicate type issues in BPF Type Format kho: fix doc for kho_restore_pages() tests/liveupdate: add in-kernel liveupdate test liveupdate: luo_flb: introduce File-Lifecycle-Bound global state liveupdate: luo_file: Use private list list: add kunit test for private list primitives list: add primitives for private list manipulations delayacct: fix uapi timespec64 definition panic: add panic_force_cpu= parameter to redirect panic to a specific CPU netclassid: use thread_group_leader(p) in update_classid_task() RDMA/umem: don't abuse current->group_leader drm/pan*: don't abuse current->group_leader drm/amd: kill the outdated "Only the pthreads threading model is supported" checks drm/amdgpu: don't abuse current->group_leader android/binder: use same_thread_group(proc->tsk, current) in binder_mmap() android/binder: don't abuse current->group_leader kho: skip memoryless NUMA nodes when reserving scratch areas ...
This commit is contained in:
commit
136114e0ab
285 changed files with 4133 additions and 1554 deletions
|
|
@ -1,8 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
root = true
|
||||
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
[{*.{awk,c,dts,dtsi,dtso,h,mk,rst,s,S},Kconfig,Makefile,Makefile.*}]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
|
|
|||
|
|
@ -107,22 +107,22 @@ Get sum and peak of delays, since system boot, for all pids with tgid 242::
|
|||
TGID 242
|
||||
|
||||
|
||||
CPU count real total virtual total delay total delay average delay max delay min
|
||||
39 156000000 156576579 2111069 0.054ms 0.212296ms 0.031307ms
|
||||
IO count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
SWAP count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
RECLAIM count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
THRASHING count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
COMPACT count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
WPCOPY count delay total delay average delay max delay min
|
||||
156 11215873 0.072ms 0.207403ms 0.033913ms
|
||||
IRQ count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
CPU count real total virtual total delay total delay average delay max delay min delay max timestamp
|
||||
46 188000000 192348334 4098012 0.089ms 0.429260ms 0.051205ms 2026-01-15T15:06:58
|
||||
IO count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
SWAP count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
RECLAIM count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
THRASHING count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
COMPACT count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
WPCOPY count delay total delay average delay max delay min delay max timestamp
|
||||
182 19413338 0.107ms 0.547353ms 0.022462ms 2026-01-15T15:05:24
|
||||
IRQ count delay total delay average delay max delay min delay max timestamp
|
||||
0 0 0.000ms 0.000000ms 0.000000ms N/A
|
||||
|
||||
Get IO accounting for pid 1, it works only with -p::
|
||||
|
||||
|
|
|
|||
|
|
@ -4815,6 +4815,21 @@ Kernel parameters
|
|||
panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump
|
||||
on a WARN().
|
||||
|
||||
panic_force_cpu=
|
||||
[KNL,SMP] Force panic handling to execute on a specific CPU.
|
||||
Format: <cpu number>
|
||||
Some platforms require panic handling to occur on a
|
||||
specific CPU for the crash kernel to function correctly.
|
||||
This can be due to firmware limitations, interrupt routing
|
||||
constraints, or platform-specific requirements where only
|
||||
a particular CPU can safely enter the crash kernel.
|
||||
When set, panic() will redirect execution to the specified
|
||||
CPU before proceeding with the normal panic and kexec flow.
|
||||
If the target CPU is offline or unavailable, panic proceeds
|
||||
on the current CPU.
|
||||
This option should only be used for systems with the above
|
||||
constraints as it might cause the panic operation to be less reliable.
|
||||
|
||||
panic_print= Bitmask for printing system info when panic happens.
|
||||
User can chose combination of the following bits:
|
||||
bit 0: print all tasks info
|
||||
|
|
@ -6989,12 +7004,12 @@ Kernel parameters
|
|||
|
||||
softlockup_panic=
|
||||
[KNL] Should the soft-lockup detector generate panics.
|
||||
Format: 0 | 1
|
||||
Format: <int>
|
||||
|
||||
A value of 1 instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup occurs. It is
|
||||
also controlled by the kernel.softlockup_panic sysctl
|
||||
and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
A value of non-zero instructs the soft-lockup detector
|
||||
to panic the machine when a soft-lockup duration exceeds
|
||||
N thresholds. It is also controlled by the kernel.softlockup_panic
|
||||
sysctl and CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC, which is the
|
||||
respective build-time switch to that functionality.
|
||||
|
||||
softlockup_all_cpu_backtrace=
|
||||
|
|
|
|||
28
Documentation/core-api/kho/abi.rst
Normal file
28
Documentation/core-api/kho/abi.rst
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
==================
|
||||
Kexec Handover ABI
|
||||
==================
|
||||
|
||||
Core Kexec Handover ABI
|
||||
========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/kexec_handover.h
|
||||
:doc: Kexec Handover ABI
|
||||
|
||||
vmalloc preservation ABI
|
||||
========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/kexec_handover.h
|
||||
:doc: Kexec Handover ABI for vmalloc Preservation
|
||||
|
||||
memblock preservation ABI
|
||||
=========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/memblock.h
|
||||
:doc: memblock kexec handover ABI
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`/admin-guide/mm/kho`
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Kexec HandOver (KHO) root tree
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
- Changyuan Lyu <changyuanl@google.com>
|
||||
|
||||
description: |
|
||||
System memory preserved by KHO across kexec.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- kho-v1
|
||||
|
||||
preserved-memory-map:
|
||||
description: |
|
||||
physical address (u64) of an in-memory structure describing all preserved
|
||||
folios and memory ranges.
|
||||
|
||||
patternProperties:
|
||||
"$[0-9a-f_]+^":
|
||||
$ref: sub-fdt.yaml#
|
||||
description: physical address of a KHO user's own FDT.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- preserved-memory-map
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
kho {
|
||||
compatible = "kho-v1";
|
||||
preserved-memory-map = <0xf0be16 0x1000000>;
|
||||
|
||||
memblock {
|
||||
fdt = <0x80cc16 0x1000000>;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
Memblock can serialize its current memory reservations created with
|
||||
reserve_mem command line option across kexec through KHO.
|
||||
The post-KHO kernel can then consume these reservations and they are
|
||||
guaranteed to have the same physical address.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
patternProperties:
|
||||
"$[0-9a-f_]+^":
|
||||
$ref: reserve-mem.yaml#
|
||||
description: reserved memory regions
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memblock {
|
||||
compatible = "memblock-v1";
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory regions
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
Memblock can serialize its current memory reservations created with
|
||||
reserve_mem command line option across kexec through KHO.
|
||||
This object describes each such region.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
start:
|
||||
description: |
|
||||
physical address (u64) of the reserved memory region.
|
||||
|
||||
size:
|
||||
description: |
|
||||
size (u64) of the reserved memory region.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- start
|
||||
- size
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: KHO users' FDT address
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
- Changyuan Lyu <changyuanl@google.com>
|
||||
|
||||
description: |
|
||||
Physical address of an FDT blob registered by a KHO user.
|
||||
|
||||
properties:
|
||||
fdt:
|
||||
description: |
|
||||
physical address (u64) of an FDT blob.
|
||||
|
||||
required:
|
||||
- fdt
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memblock {
|
||||
fdt = <0x80cc16 0x1000000>;
|
||||
};
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
.. _kho-concepts:
|
||||
|
||||
=======================
|
||||
Kexec Handover Concepts
|
||||
=======================
|
||||
|
||||
Kexec HandOver (KHO) is a mechanism that allows Linux to preserve memory
|
||||
regions, which could contain serialized system states, across kexec.
|
||||
|
||||
It introduces multiple concepts:
|
||||
|
||||
KHO FDT
|
||||
=======
|
||||
|
||||
Every KHO kexec carries a KHO specific flattened device tree (FDT) blob
|
||||
that describes preserved memory regions. These regions contain either
|
||||
serialized subsystem states, or in-memory data that shall not be touched
|
||||
across kexec. After KHO, subsystems can retrieve and restore preserved
|
||||
memory regions from KHO FDT.
|
||||
|
||||
KHO only uses the FDT container format and libfdt library, but does not
|
||||
adhere to the same property semantics that normal device trees do: Properties
|
||||
are passed in native endianness and standardized properties like ``regs`` and
|
||||
``ranges`` do not exist, hence there are no ``#...-cells`` properties.
|
||||
|
||||
KHO is still under development. The FDT schema is unstable and would change
|
||||
in the future.
|
||||
|
||||
Scratch Regions
|
||||
===============
|
||||
|
||||
To boot into kexec, we need to have a physically contiguous memory range that
|
||||
contains no handed over memory. Kexec then places the target kernel and initrd
|
||||
into that region. The new kernel exclusively uses this region for memory
|
||||
allocations before during boot up to the initialization of the page allocator.
|
||||
|
||||
We guarantee that we always have such regions through the scratch regions: On
|
||||
first boot KHO allocates several physically contiguous memory regions. Since
|
||||
after kexec these regions will be used by early memory allocations, there is a
|
||||
scratch region per NUMA node plus a scratch region to satisfy allocations
|
||||
requests that do not require particular NUMA node assignment.
|
||||
By default, size of the scratch region is calculated based on amount of memory
|
||||
allocated during boot. The ``kho_scratch`` kernel command line option may be
|
||||
used to explicitly define size of the scratch regions.
|
||||
The scratch regions are declared as CMA when page allocator is initialized so
|
||||
that their memory can be used during system lifetime. CMA gives us the
|
||||
guarantee that no handover pages land in that region, because handover pages
|
||||
must be at a static physical memory location and CMA enforces that only
|
||||
movable pages can be located inside.
|
||||
|
||||
After KHO kexec, we ignore the ``kho_scratch`` kernel command line option and
|
||||
instead reuse the exact same region that was originally allocated. This allows
|
||||
us to recursively execute any amount of KHO kexecs. Because we used this region
|
||||
for boot memory allocations and as target memory for kexec blobs, some parts
|
||||
of that memory region may be reserved. These reservations are irrelevant for
|
||||
the next KHO, because kexec can overwrite even the original kernel.
|
||||
|
||||
.. _kho-finalization-phase:
|
||||
|
||||
KHO finalization phase
|
||||
======================
|
||||
|
||||
To enable user space based kexec file loader, the kernel needs to be able to
|
||||
provide the FDT that describes the current kernel's state before
|
||||
performing the actual kexec. The process of generating that FDT is
|
||||
called serialization. When the FDT is generated, some properties
|
||||
of the system may become immutable because they are already written down
|
||||
in the FDT. That state is called the KHO finalization phase.
|
||||
|
||||
Public API
|
||||
==========
|
||||
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
|
||||
:export:
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
=======
|
||||
KHO FDT
|
||||
=======
|
||||
|
||||
KHO uses the flattened device tree (FDT) container format and libfdt
|
||||
library to create and parse the data that is passed between the
|
||||
kernels. The properties in KHO FDT are stored in native format.
|
||||
It includes the physical address of an in-memory structure describing
|
||||
all preserved memory regions, as well as physical addresses of KHO users'
|
||||
own FDTs. Interpreting those sub FDTs is the responsibility of KHO users.
|
||||
|
||||
KHO nodes and properties
|
||||
========================
|
||||
|
||||
Property ``preserved-memory-map``
|
||||
---------------------------------
|
||||
|
||||
KHO saves a special property named ``preserved-memory-map`` under the root node.
|
||||
This node contains the physical address of an in-memory structure for KHO to
|
||||
preserve memory regions across kexec.
|
||||
|
||||
Property ``compatible``
|
||||
-----------------------
|
||||
|
||||
The ``compatible`` property determines compatibility between the kernel
|
||||
that created the KHO FDT and the kernel that attempts to load it.
|
||||
If the kernel that loads the KHO FDT is not compatible with it, the entire
|
||||
KHO process will be bypassed.
|
||||
|
||||
Property ``fdt``
|
||||
----------------
|
||||
|
||||
Generally, a KHO user serialize its state into its own FDT and instructs
|
||||
KHO to preserve the underlying memory, such that after kexec, the new kernel
|
||||
can recover its state from the preserved FDT.
|
||||
|
||||
A KHO user thus can create a node in KHO root tree and save the physical address
|
||||
of its own FDT in that node's property ``fdt`` .
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
The following example demonstrates KHO FDT that preserves two memory
|
||||
regions created with ``reserve_mem`` kernel command line parameter::
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
compatible = "kho-v1";
|
||||
|
||||
preserved-memory-map = <0x40be16 0x1000000>;
|
||||
|
||||
memblock {
|
||||
fdt = <0x1517 0x1000000>;
|
||||
};
|
||||
};
|
||||
|
||||
where the ``memblock`` node contains an FDT that is requested by the
|
||||
subsystem memblock for preservation. The FDT contains the following
|
||||
serialized data::
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
compatible = "memblock-v1";
|
||||
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
|
||||
n2 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc067 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
};
|
||||
|
|
@ -1,11 +1,89 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
.. _kho-concepts:
|
||||
|
||||
========================
|
||||
Kexec Handover Subsystem
|
||||
========================
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Kexec HandOver (KHO) is a mechanism that allows Linux to preserve memory
|
||||
regions, which could contain serialized system states, across kexec.
|
||||
|
||||
KHO uses :ref:`flattened device tree (FDT) <kho_fdt>` to pass information about
|
||||
the preserved state from pre-exec kernel to post-kexec kernel and :ref:`scratch
|
||||
memory regions <kho_scratch>` to ensure integrity of the preserved memory.
|
||||
|
||||
.. _kho_fdt:
|
||||
|
||||
KHO FDT
|
||||
=======
|
||||
Every KHO kexec carries a KHO specific flattened device tree (FDT) blob that
|
||||
describes the preserved state. The FDT includes properties describing preserved
|
||||
memory regions and nodes that hold subsystem specific state.
|
||||
|
||||
The preserved memory regions contain either serialized subsystem states, or
|
||||
in-memory data that shall not be touched across kexec. After KHO, subsystems
|
||||
can retrieve and restore the preserved state from KHO FDT.
|
||||
|
||||
Subsystems participating in KHO can define their own format for state
|
||||
serialization and preservation.
|
||||
|
||||
KHO FDT and structures defined by the subsystems form an ABI between pre-kexec
|
||||
and post-kexec kernels. This ABI is defined by header files in
|
||||
``include/linux/kho/abi`` directory.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
concepts
|
||||
fdt
|
||||
abi.rst
|
||||
|
||||
.. _kho_scratch:
|
||||
|
||||
Scratch Regions
|
||||
===============
|
||||
|
||||
To boot into kexec, we need to have a physically contiguous memory range that
|
||||
contains no handed over memory. Kexec then places the target kernel and initrd
|
||||
into that region. The new kernel exclusively uses this region for memory
|
||||
allocations before during boot up to the initialization of the page allocator.
|
||||
|
||||
We guarantee that we always have such regions through the scratch regions: On
|
||||
first boot KHO allocates several physically contiguous memory regions. Since
|
||||
after kexec these regions will be used by early memory allocations, there is a
|
||||
scratch region per NUMA node plus a scratch region to satisfy allocations
|
||||
requests that do not require particular NUMA node assignment.
|
||||
By default, size of the scratch region is calculated based on amount of memory
|
||||
allocated during boot. The ``kho_scratch`` kernel command line option may be
|
||||
used to explicitly define size of the scratch regions.
|
||||
The scratch regions are declared as CMA when page allocator is initialized so
|
||||
that their memory can be used during system lifetime. CMA gives us the
|
||||
guarantee that no handover pages land in that region, because handover pages
|
||||
must be at a static physical memory location and CMA enforces that only
|
||||
movable pages can be located inside.
|
||||
|
||||
After KHO kexec, we ignore the ``kho_scratch`` kernel command line option and
|
||||
instead reuse the exact same region that was originally allocated. This allows
|
||||
us to recursively execute any amount of KHO kexecs. Because we used this region
|
||||
for boot memory allocations and as target memory for kexec blobs, some parts
|
||||
of that memory region may be reserved. These reservations are irrelevant for
|
||||
the next KHO, because kexec can overwrite even the original kernel.
|
||||
|
||||
.. _kho-finalization-phase:
|
||||
|
||||
KHO finalization phase
|
||||
======================
|
||||
|
||||
To enable user space based kexec file loader, the kernel needs to be able to
|
||||
provide the FDT that describes the current kernel's state before
|
||||
performing the actual kexec. The process of generating that FDT is
|
||||
called serialization. When the FDT is generated, some properties
|
||||
of the system may become immutable because they are already written down
|
||||
in the FDT. That state is called the KHO finalization phase.
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
- :doc:`/admin-guide/mm/kho`
|
||||
|
|
|
|||
|
|
@ -774,3 +774,12 @@ Full List API
|
|||
|
||||
.. kernel-doc:: include/linux/list.h
|
||||
:internal:
|
||||
|
||||
Private List API
|
||||
================
|
||||
|
||||
.. kernel-doc:: include/linux/list_private.h
|
||||
:doc: Private List Primitives
|
||||
|
||||
.. kernel-doc:: include/linux/list_private.h
|
||||
:internal:
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@ LUO Preserving File Descriptors
|
|||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:doc: LUO File Descriptors
|
||||
|
||||
LUO File Lifecycle Bound Global Data
|
||||
====================================
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:doc: LUO File Lifecycle Bound Global Data
|
||||
|
||||
Live Update Orchestrator ABI
|
||||
============================
|
||||
.. kernel-doc:: include/linux/kho/abi/luo.h
|
||||
|
|
@ -40,6 +45,9 @@ Public API
|
|||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:export:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_file.c
|
||||
:export:
|
||||
|
||||
|
|
@ -48,6 +56,9 @@ Internal API
|
|||
.. kernel-doc:: kernel/liveupdate/luo_core.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_flb.c
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/luo_session.c
|
||||
:internal:
|
||||
|
||||
|
|
@ -58,4 +69,4 @@ See Also
|
|||
========
|
||||
|
||||
- :doc:`Live Update uAPI </userspace-api/liveupdate>`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
- :doc:`/core-api/kho/index`
|
||||
|
|
|
|||
|
|
@ -601,6 +601,11 @@ Commit message
|
|||
|
||||
See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes
|
||||
|
||||
**BAD_COMMIT_SEPARATOR**
|
||||
The commit separator is a single line with 3 dashes.
|
||||
The regex match is '^---$'
|
||||
Lines that start with 3 dashes and have more content on the same line
|
||||
may confuse tools that apply patches.
|
||||
|
||||
Comparison style
|
||||
----------------
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ is equivalent to doing::
|
|||
.store = store_foo,
|
||||
};
|
||||
|
||||
Note as stated in include/linux/kernel.h "OTHER_WRITABLE? Generally
|
||||
Note as stated in include/linux/sysfs.h "OTHER_WRITABLE? Generally
|
||||
considered a bad idea." so trying to set a sysfs file writable for
|
||||
everyone will fail reverting to RO mode for "Others".
|
||||
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@ See Also
|
|||
========
|
||||
|
||||
- :doc:`/core-api/liveupdate`
|
||||
- :doc:`/core-api/kho/concepts`
|
||||
- :doc:`/core-api/kho/index`
|
||||
|
|
|
|||
|
|
@ -14076,6 +14076,7 @@ F: Documentation/admin-guide/mm/kho.rst
|
|||
F: Documentation/core-api/kho/*
|
||||
F: include/linux/kexec_handover.h
|
||||
F: include/linux/kho/
|
||||
F: include/linux/kho/abi/
|
||||
F: kernel/liveupdate/kexec_handover*
|
||||
F: lib/test_kho.c
|
||||
F: tools/testing/selftests/kho/
|
||||
|
|
@ -14768,6 +14769,7 @@ F: include/linux/liveupdate.h
|
|||
F: include/linux/liveupdate/
|
||||
F: include/uapi/linux/liveupdate.h
|
||||
F: kernel/liveupdate/
|
||||
F: lib/tests/liveupdate.c
|
||||
F: mm/memfd_luo.c
|
||||
F: tools/testing/selftests/liveupdate/
|
||||
|
||||
|
|
@ -16520,7 +16522,7 @@ S: Maintained
|
|||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git for-next
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
|
||||
F: Documentation/core-api/boot-time-mm.rst
|
||||
F: Documentation/core-api/kho/bindings/memblock/*
|
||||
F: include/linux/kho/abi/memblock.h
|
||||
F: include/linux/memblock.h
|
||||
F: mm/bootmem_info.c
|
||||
F: mm/memblock.c
|
||||
|
|
@ -17591,7 +17593,7 @@ S: Maintained
|
|||
F: Documentation/core-api/min_heap.rst
|
||||
F: include/linux/min_heap.h
|
||||
F: lib/min_heap.c
|
||||
F: lib/test_min_heap.c
|
||||
F: lib/tests/min_heap_kunit.c
|
||||
|
||||
MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
|
||||
M: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||
|
|
@ -27499,7 +27501,7 @@ R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
|||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
F: include/linux/uuid.h
|
||||
F: lib/test_uuid.c
|
||||
F: lib/tests/uuid_kunit.c
|
||||
F: lib/uuid.c
|
||||
|
||||
UV SYSFS DRIVER
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ CONFIG_SCHED_STACK_END_CHECK=y
|
|||
CONFIG_PANIC_ON_OOPS=y
|
||||
CONFIG_PANIC_TIMEOUT=-1
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=1
|
||||
CONFIG_WQ_WATCHDOG=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ CONFIG_PRINTK_TIME=y
|
|||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_SHIRQ=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_DEBUG_SPINLOCK_SLEEP=y
|
||||
|
|
|
|||
|
|
@ -2997,7 +2997,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type old_t,
|
|||
u64 plt_target = 0ULL;
|
||||
bool poking_bpf_entry;
|
||||
|
||||
if (!__bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
if (!bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
/* Only poking bpf text is supported. Since kernel function
|
||||
* entry is set up by ftrace, we reply on ftrace to poke kernel
|
||||
* functions.
|
||||
|
|
|
|||
|
|
@ -1319,7 +1319,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type old_t,
|
|||
/* Only poking bpf text is supported. Since kernel function entry
|
||||
* is set up by ftrace, we rely on ftrace to poke kernel functions.
|
||||
*/
|
||||
if (!__bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
if (!bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
|
||||
return -ENOTSUPP;
|
||||
|
||||
image = ip - offset;
|
||||
|
|
|
|||
|
|
@ -599,7 +599,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -608,7 +607,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -617,7 +615,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -556,7 +556,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -565,7 +564,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -574,7 +572,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -576,7 +576,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -585,7 +584,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -594,7 +592,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -548,7 +548,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -557,7 +556,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -566,7 +564,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -558,7 +558,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -567,7 +566,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -576,7 +574,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -575,7 +575,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -584,7 +583,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -593,7 +591,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -662,7 +662,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -671,7 +670,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -680,7 +678,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -548,7 +548,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -557,7 +556,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -566,7 +564,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -549,7 +549,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -558,7 +557,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -567,7 +565,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -565,7 +565,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -574,7 +573,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -583,7 +581,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -546,7 +546,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -554,7 +553,6 @@ CONFIG_WW_MUTEX_SELFTEST=m
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -563,7 +561,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -546,7 +546,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m
|
|||
CONFIG_PRIME_NUMBERS=m
|
||||
CONFIG_CRC_BENCHMARK=y
|
||||
CONFIG_XZ_DEC_TEST=m
|
||||
CONFIG_GLOB_SELFTEST=m
|
||||
# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_TEST_LOCKUP=m
|
||||
|
|
@ -555,7 +554,6 @@ CONFIG_EARLY_PRINTK=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_TEST_DHRY=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_TEST_MULDIV64=m
|
||||
CONFIG_REED_SOLOMON_TEST=m
|
||||
|
|
@ -564,7 +562,6 @@ CONFIG_ASYNC_RAID6_TEST=m
|
|||
CONFIG_TEST_HEXDUMP=m
|
||||
CONFIG_TEST_KSTRTOX=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/memblock.h>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/string.h>
|
||||
|
|
|
|||
|
|
@ -52,5 +52,5 @@ CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf"
|
|||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_PANIC_ON_OOPS=y
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
CONFIG_BUG_ON_DATA_CORRUPTION=y
|
||||
|
|
|
|||
|
|
@ -425,7 +425,6 @@ CONFIG_BOOTX_TEXT=y
|
|||
CONFIG_KUNIT=m
|
||||
CONFIG_KUNIT_ALL_TESTS=m
|
||||
CONFIG_LKDTM=m
|
||||
CONFIG_TEST_MIN_HEAP=m
|
||||
CONFIG_TEST_DIV64=m
|
||||
CONFIG_BACKTRACE_SELF_TEST=m
|
||||
CONFIG_TEST_REF_TRACKER=m
|
||||
|
|
@ -442,7 +441,6 @@ CONFIG_TEST_KSTRTOX=m
|
|||
CONFIG_TEST_PRINTF=m
|
||||
CONFIG_TEST_SCANF=m
|
||||
CONFIG_TEST_BITMAP=m
|
||||
CONFIG_TEST_UUID=m
|
||||
CONFIG_TEST_XARRAY=m
|
||||
CONFIG_TEST_MAPLE_TREE=m
|
||||
CONFIG_TEST_RHASHTABLE=m
|
||||
|
|
|
|||
|
|
@ -288,7 +288,7 @@ CONFIG_SCHED_STACK_END_CHECK=y
|
|||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
CONFIG_PANIC_ON_OOPS=y
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
CONFIG_HARDLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
|
||||
CONFIG_WQ_WATCHDOG=y
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/font.h>
|
||||
|
|
|
|||
|
|
@ -1194,7 +1194,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type old_t,
|
|||
bpf_func = (unsigned long)ip;
|
||||
|
||||
/* We currently only support poking bpf programs */
|
||||
if (!__bpf_address_lookup(bpf_func, &size, &offset, name)) {
|
||||
if (!bpf_address_lookup(bpf_func, &size, &offset, name)) {
|
||||
pr_err("%s (0x%lx): kernel/modules are not supported\n", __func__, bpf_func);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -921,7 +921,7 @@ CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
|||
CONFIG_FAULT_INJECTION_CONFIGFS=y
|
||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
||||
CONFIG_LKDTM=m
|
||||
CONFIG_TEST_MIN_HEAP=y
|
||||
CONFIG_MIN_HEAP_KUNIT_TEST=m
|
||||
CONFIG_KPROBES_SANITY_TEST=m
|
||||
CONFIG_RBTREE_TEST=y
|
||||
CONFIG_INTERVAL_TREE_TEST=m
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/cpumask.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/irqflags.h>
|
||||
#include <linux/instruction_pointer.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <asm/fpu-types.h>
|
||||
#include <asm/cpu.h>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#define pr_fmt(fmt) "alt: " fmt
|
||||
#endif
|
||||
|
||||
#include <linux/hex.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/printk.h>
|
||||
#include <asm/nospec-branch.h>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#endif
|
||||
|
||||
#include <linux/export.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/printk.h>
|
||||
#include <asm/abs_lowcore.h>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/memblock.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/inetdevice.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/list.h>
|
||||
|
|
|
|||
|
|
@ -437,9 +437,15 @@ int __init ima_free_kexec_buffer(void)
|
|||
|
||||
int __init ima_get_kexec_buffer(void **addr, size_t *size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!ima_kexec_buffer_size)
|
||||
return -ENOENT;
|
||||
|
||||
ret = ima_validate_range(ima_kexec_buffer_phys, ima_kexec_buffer_size);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
*addr = __va(ima_kexec_buffer_phys);
|
||||
*size = ima_kexec_buffer_size;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#define pr_fmt(fmt) "%s: " fmt, __func__
|
||||
|
||||
#include <linux/hex.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/sched.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/uidgid.h>
|
||||
#include <keys/asymmetric-type.h>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include <keys/asymmetric-subtype.h>
|
||||
#include <keys/asymmetric-parser.h>
|
||||
#include <crypto/public_key.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/overflow.h>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include <keys/asymmetric-parser.h>
|
||||
#include <keys/asymmetric-subtype.h>
|
||||
#include <keys/system_keyring.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/hex.h>
|
||||
#include <linux/slab.h>
|
||||
#include <crypto/skcipher.h>
|
||||
#include <crypto/hash.h>
|
||||
|
|
|
|||
|
|
@ -6028,7 +6028,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
|
|||
{
|
||||
struct binder_proc *proc = filp->private_data;
|
||||
|
||||
if (proc->tsk != current->group_leader)
|
||||
if (!same_thread_group(proc->tsk, current))
|
||||
return -EINVAL;
|
||||
|
||||
binder_debug(BINDER_DEBUG_OPEN_CLOSE,
|
||||
|
|
@ -6059,7 +6059,7 @@ static int binder_open(struct inode *nodp, struct file *filp)
|
|||
bool existing_pid = false;
|
||||
|
||||
binder_debug(BINDER_DEBUG_OPEN_CLOSE, "%s: %d:%d\n", __func__,
|
||||
current->group_leader->pid, current->pid);
|
||||
current->tgid, current->pid);
|
||||
|
||||
proc = kzalloc(sizeof(*proc), GFP_KERNEL);
|
||||
if (proc == NULL)
|
||||
|
|
@ -6068,8 +6068,8 @@ static int binder_open(struct inode *nodp, struct file *filp)
|
|||
dbitmap_init(&proc->dmap);
|
||||
spin_lock_init(&proc->inner_lock);
|
||||
spin_lock_init(&proc->outer_lock);
|
||||
get_task_struct(current->group_leader);
|
||||
proc->tsk = current->group_leader;
|
||||
proc->tsk = get_task_struct(current->group_leader);
|
||||
proc->pid = current->tgid;
|
||||
proc->cred = get_cred(filp->f_cred);
|
||||
INIT_LIST_HEAD(&proc->todo);
|
||||
init_waitqueue_head(&proc->freeze_wait);
|
||||
|
|
@ -6088,7 +6088,6 @@ static int binder_open(struct inode *nodp, struct file *filp)
|
|||
binder_alloc_init(&proc->alloc);
|
||||
|
||||
binder_stats_created(BINDER_STAT_PROC);
|
||||
proc->pid = current->group_leader->pid;
|
||||
INIT_LIST_HEAD(&proc->delivered_death);
|
||||
INIT_LIST_HEAD(&proc->delivered_freeze);
|
||||
INIT_LIST_HEAD(&proc->waiting_threads);
|
||||
|
|
|
|||
|
|
@ -1233,7 +1233,7 @@ static struct shrinker *binder_shrinker;
|
|||
VISIBLE_IF_KUNIT void __binder_alloc_init(struct binder_alloc *alloc,
|
||||
struct list_lru *freelist)
|
||||
{
|
||||
alloc->pid = current->group_leader->pid;
|
||||
alloc->pid = current->tgid;
|
||||
alloc->mm = current->mm;
|
||||
mmgrab(alloc->mm);
|
||||
mutex_init(&alloc->mutex);
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/timer.h>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include <linux/hex.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
* Author: Lars Pöschel <poeschel@lemonage.de>
|
||||
* All rights reserved.
|
||||
*/
|
||||
#include <linux/hex.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
|||
|
|
@ -4802,8 +4802,6 @@ static void floppy_release_allocated_regions(int fdc, const struct io_region *p)
|
|||
}
|
||||
}
|
||||
|
||||
#define ARRAY_END(X) (&((X)[ARRAY_SIZE(X)]))
|
||||
|
||||
static int floppy_request_regions(int fdc)
|
||||
{
|
||||
const struct io_region *p;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include <dt-bindings/bus/moxtet.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/moxtet.h>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <linux/module.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/timer.h>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include <linux/bcm47xx_sprom.h>
|
||||
#include <linux/bcma/bcma.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/ssb/ssb.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include <linux/bitmap.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/gpio/driver.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/mfd/macsmc.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -1423,7 +1423,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,
|
|||
goto create_evict_fence_fail;
|
||||
}
|
||||
|
||||
info->pid = get_task_pid(current->group_leader, PIDTYPE_PID);
|
||||
info->pid = get_task_pid(current, PIDTYPE_TGID);
|
||||
INIT_DELAYED_WORK(&info->restore_userptr_work,
|
||||
amdgpu_amdkfd_restore_userptr_worker);
|
||||
|
||||
|
|
|
|||
|
|
@ -2571,10 +2571,7 @@ void amdgpu_vm_set_task_info(struct amdgpu_vm *vm)
|
|||
vm->task_info->task.pid = current->pid;
|
||||
get_task_comm(vm->task_info->task.comm, current);
|
||||
|
||||
if (current->group_leader->mm != current->mm)
|
||||
return;
|
||||
|
||||
vm->task_info->tgid = current->group_leader->pid;
|
||||
vm->task_info->tgid = current->tgid;
|
||||
get_task_comm(vm->task_info->process_name, current->group_leader);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -928,12 +928,6 @@ struct kfd_process *kfd_create_process(struct task_struct *thread)
|
|||
if (!(thread->mm && mmget_not_zero(thread->mm)))
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
/* Only the pthreads threading model is supported. */
|
||||
if (thread->group_leader->mm != thread->mm) {
|
||||
mmput(thread->mm);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
/* If the process just called exec(3), it is possible that the
|
||||
* cleanup of the kfd_process (following the release of the mm
|
||||
* of the old process image) is still in the cleanup work queue.
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ CONFIG_TMPFS=y
|
|||
CONFIG_PROVE_LOCKING=n
|
||||
CONFIG_DEBUG_LOCKDEP=n
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=n
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=0
|
||||
|
||||
CONFIG_FW_LOADER_COMPRESS=y
|
||||
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ CONFIG_TMPFS=y
|
|||
CONFIG_PROVE_LOCKING=n
|
||||
CONFIG_DEBUG_LOCKDEP=n
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ CONFIG_TMPFS=y
|
|||
CONFIG_PROVE_LOCKING=n
|
||||
CONFIG_DEBUG_LOCKDEP=n
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=1
|
||||
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
* Copyright © 2020 Intel Corporation
|
||||
*/
|
||||
|
||||
#include "i915_selftest.h"
|
||||
#include "intel_engine_pm.h"
|
||||
#include "selftests/igt_flush_test.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define STACK_MAGIC 0xdeadbeef
|
||||
|
||||
struct pci_dev;
|
||||
struct drm_i915_private;
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ void panfrost_gem_init(struct panfrost_device *pfdev)
|
|||
static void panfrost_gem_debugfs_bo_add(struct panfrost_device *pfdev,
|
||||
struct panfrost_gem_object *bo)
|
||||
{
|
||||
bo->debugfs.creator.tgid = current->group_leader->pid;
|
||||
bo->debugfs.creator.tgid = current->tgid;
|
||||
get_task_comm(bo->debugfs.creator.process_name, current->group_leader);
|
||||
|
||||
mutex_lock(&pfdev->debugfs.gems_lock);
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ static void panthor_gem_debugfs_bo_add(struct panthor_gem_object *bo)
|
|||
struct panthor_device *ptdev = container_of(bo->base.base.dev,
|
||||
struct panthor_device, base);
|
||||
|
||||
bo->debugfs.creator.tgid = current->group_leader->pid;
|
||||
bo->debugfs.creator.tgid = current->tgid;
|
||||
get_task_comm(bo->debugfs.creator.process_name, current->group_leader);
|
||||
|
||||
mutex_lock(&ptdev->gems.lock);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/hid-debug.h>
|
||||
|
||||
#include <linux/fb.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/debugfs.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/kstrtox.h>
|
||||
#include <linux/module.h>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ struct ib_umem_odp *ib_umem_odp_alloc_implicit(struct ib_device *device,
|
|||
umem->owning_mm = current->mm;
|
||||
umem_odp->page_shift = PAGE_SHIFT;
|
||||
|
||||
umem_odp->tgid = get_task_pid(current->group_leader, PIDTYPE_PID);
|
||||
umem_odp->tgid = get_task_pid(current, PIDTYPE_TGID);
|
||||
ib_init_umem_implicit_odp(umem_odp);
|
||||
return umem_odp;
|
||||
}
|
||||
|
|
@ -258,7 +258,7 @@ struct ib_umem_odp *ib_umem_odp_get(struct ib_device *device,
|
|||
umem_odp->page_shift = HPAGE_SHIFT;
|
||||
#endif
|
||||
|
||||
umem_odp->tgid = get_task_pid(current->group_leader, PIDTYPE_PID);
|
||||
umem_odp->tgid = get_task_pid(current, PIDTYPE_TGID);
|
||||
ret = ib_init_umem_odp(umem_odp, ops);
|
||||
if (ret)
|
||||
goto err_put_pid;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/err.h>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/err.h>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/err.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/input/mt.h>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/completion.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/key.h>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/sort.h>
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <crypto/hash.h>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "dm-verity-fec.h"
|
||||
#include "dm-verity-verify-sig.h"
|
||||
#include "dm-audit.h"
|
||||
#include <linux/hex.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/string.h>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/completion.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include <linux/completion.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include <linux/unaligned.h>
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/i2c.h>
|
||||
|
||||
#include "ccs.h"
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
* Copyright (C) 2005 Mike Isely <isely@pobox.com>
|
||||
*/
|
||||
|
||||
#include <linux/hex.h>
|
||||
#include <linux/string.h>
|
||||
#include "pvrusb2-debugifc.h"
|
||||
#include "pvrusb2-hdw.h"
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@
|
|||
#include <linux/syscalls.h>
|
||||
#include <linux/nmi.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sched/task.h>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/pci.h>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/lockdep.h>
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include <linux/netdevice.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/mdio.h>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/version.h>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/proc_fs.h>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/dmaengine.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/of_mdio.h>
|
||||
#include <linux/etherdevice.h>
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include <linux/inet.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/u64_stats_sync.h>
|
||||
#include <linux/utsname.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include <linux/debugfs.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/inet.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#include <linux/etherdevice.h>
|
||||
#include <linux/mii.h>
|
||||
#include <linux/ethtool.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/crc32.h>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/hex.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/export.h>
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue