<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/next/linux-next.git/arch/arm64/include/asm, branch master</title>
<subtitle>The linux-next integration testing tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/'/>
<updated>2026-09-15T16:54:27+00:00</updated>
<entry>
<title>Merge branch 'headers' of git://git.infradead.org/users/willy/pagecache.git</title>
<updated>2026-09-15T16:54:27+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-15T16:54:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=cf317582d211a21ea9e300573add7ac0903a4e4e'/>
<id>urn:sha1:cf317582d211a21ea9e300573add7ac0903a4e4e</id>
<content type='text'>
# Conflicts:
#	net/ceph/osd_client.c
</content>
</entry>
<entry>
<title>Merge branch 'next' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git</title>
<updated>2026-09-15T16:37:21+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-15T16:37:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=49dc289de52b72ecf4db267c008996266f0bc331'/>
<id>urn:sha1:49dc289de52b72ecf4db267c008996266f0bc331</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git</title>
<updated>2026-09-15T16:37:05+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-15T16:37:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=75db0e52591684b95953129e637c64b0f507d55e'/>
<id>urn:sha1:75db0e52591684b95953129e637c64b0f507d55e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/mm/linux.git</title>
<updated>2026-09-15T13:06:55+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-15T13:06:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ce0b1ddc94cb964ea473367fc6d9fa73fa334169'/>
<id>urn:sha1:ce0b1ddc94cb964ea473367fc6d9fa73fa334169</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch into tip/master: 'sched/core'</title>
<updated>2026-09-15T07:23:48+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@kernel.org</email>
</author>
<published>2026-09-15T07:23:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c2f0b5ef50c10feb70e020720a09b8d9ddbb128e'/>
<id>urn:sha1:c2f0b5ef50c10feb70e020720a09b8d9ddbb128e</id>
<content type='text'>
 # New commits in sched/core:
    e81ee0630837 ("sched/fair: Reset NUMA fault locality after scan period update")
    ef9293b3b797 ("sched: dynamic: Fix preemption model strings")
    879eaa76e608 ("sched: Remove unneeded function type cast in do_balance_callbacks()")
    f549101187c8 ("sched/deadline: check start_dl_timer expiry with ktime_before()")
    2a672daa4b27 ("sched/feat: Use the new static key API for sched_feat")
    a5576ebce920 ("sched: Convert paravirt_steal to new static key APIs")
    9650ce11f2e3 ("sched: dynamic: Simplify preempt model accessors")
    5b9a28eeed37 ("sched: dynamic: Remove HAVE_PREEMPT_DYNAMIC_{CALL,KEY}")
    aa4178f63847 ("sched: dynamic: Simplify irqentry_exit_cond_resched()")
    b9d267b9d632 ("sched: dynamic: Simplify preempt_schedule{,_notrace}()")
    88e0b3bb9930 ("sched: dynamic: Simplify {cond,might}_resched()")
    d3d16750693b ("sched: dynamic: Make PREEMPT_DYNAMIC depend on ARCH_HAS_PREEMPT_LAZY")
    772d9ffbfd26 ("sched: Migrate whole chain in proxy_migrate_task()")
    6b73a09e943f ("sched: Break out core of attach_tasks() helper into sched.h")
    1f8805138593 ("sched: Switch rq-&gt;next_class in proxy_reset_donor()")
    09351db90a28 ("sched/core: Don't proxy-exec unmatched cookie lock owners")
    9be817f991e2 ("sched/core: Avoid migrating blocked_on tasks")
    3dd95f077371 ("sched/core: Don't steal a proxy-exec donor")

Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch kvm-arm64/hyp-type-checking-7.4 into kvmarm-master/next</title>
<updated>2026-09-14T10:52:09+00:00</updated>
<author>
<name>Marc Zyngier</name>
<email>maz@kernel.org</email>
</author>
<published>2026-09-14T10:52:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=892fc33977cf8b2cf98065e5ae532e4ddbbe09cc'/>
<id>urn:sha1:892fc33977cf8b2cf98065e5ae532e4ddbbe09cc</id>
<content type='text'>
* kvm-arm64/hyp-type-checking-7.4:
  : \
  : Restore some sanity in the EL2 department by enforcing the type
  : checking that was lost when converting the KVM internal
  : interface to SMCCC. Patches courtesy of Fuad Tabba.
  :
  : From the cover letter:
  :
  : "This series implements that, in plain preprocessor macros rather than
  : an external generator, in the mold of the syscall wrappers. Each
  : hypercall's signature is declared once, in kvm_hcall.h:
  : kvm_call_hyp_nvhe() resolves to a typed nvhe_hvc_##f() stub generated
  : from the declaration, and the hyp-main.c handlers unmarshal their
  : arguments through glue that is type-checked against the same
  : declaration. A mistyped or stale call, or a handler that drifts from
  : its caller, now fails to compile. On top of that shared declaration,
  : host-VA parameters gain a __kern sparse address space, so
  : dereferencing one at EL2 without kern_hyp_va_host() translation is
  : flagged by sparse. The address space is KVM-private and lives with the
  : interface it annotates rather than in compiler_types.h, like x86's
  : __seg_gs in asm/percpu.h. The deeper instances of that bug class, host
  : VAs reached through struct fields after the boundary, are follow-up
  : work."
  : /
  KVM: arm64: Tag host-VA hypercall parameters __kern
  KVM: arm64: nVHE: Check hypercall handlers against the declared ABI
  KVM: arm64: Type-check hypercall arguments at the caller
  KVM: arm64: Move the host hypercall interface to its own header
  KVM: arm64: nVHE: Pass host VA arguments as pointers
  arm64: pi: Run the source checker on the libfdt objects under C=2
  KVM: arm64: nVHE: Run the source checker under C=2
  KVM: arm64: nVHE: Use NULL to reset the trace buffer backing pointer
  KVM: arm64: nVHE: Declare the hyp event IDs before defining them
  KVM: arm64: nVHE: Share the stacktrace per-CPU declarations with EL2
  tracing: Include linux/types.h in trace_remote_event.h

Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Tag host-VA hypercall parameters __kern</title>
<updated>2026-09-14T10:26:51+00:00</updated>
<author>
<name>Fuad Tabba</name>
<email>fuad.tabba@linux.dev</email>
</author>
<published>2026-09-01T14:03:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=8bd0e6812a1be71d50620f00445940ded0df897c'/>
<id>urn:sha1:8bd0e6812a1be71d50620f00445940ded0df897c</id>
<content type='text'>
The nVHE hypervisor takes host virtual addresses as hypercall arguments
and translates each with kern_hyp_va() before use. Nothing marks them as
host-owned, so dereferencing one untranslated at EL2 - a recurring bug
class - is invisible to the compiler.

Add a __kern sparse address space, active only for EL2 code, and tag the
host-VA parameters in the hypercall declarations. kern_hyp_va_host() is
the only sanctioned unwrap: it translates the address, preserves the
pointee type (stripped of qualifiers, as with the percpu accessors) and
drops the tag with a __force cast, so an untranslated host VA fails
sparse. The tag flows from the shared declaration into the generated
handler and on into the donated-memory and tracing-descriptor helpers,
so a handler cannot extract a host VA without it. Host code sees plain
pointers, and the tag is checker-only: no code is generated.

container_of() casts through void * and drops the address space, so
__get_host_hyp_vcpus() now takes an already translated vCPU and its
callers unwrap. Translating a vgic_v3_cpu_if before taking its container
is equivalent, since va_mask spans every bit in which two linear-map
addresses differ.

Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Signed-off-by: Fuad Tabba &lt;fuad.tabba@linux.dev&gt;
Link: https://patch.msgid.link/20260901140326.3812068-12-fuad.tabba@linux.dev
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: nVHE: Check hypercall handlers against the declared ABI</title>
<updated>2026-09-14T10:26:51+00:00</updated>
<author>
<name>Fuad Tabba</name>
<email>fuad.tabba@linux.dev</email>
</author>
<published>2026-09-01T14:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ab31289483f54892dc6204a6ce2015420d0d5213'/>
<id>urn:sha1:ab31289483f54892dc6204a6ce2015420d0d5213</id>
<content type='text'>
Each hypercall handler unmarshals its arguments from the host context
with hand-written DECLARE_REG() casts that nothing ties to what the
caller passed: a handler can disagree with its caller in argument type,
count or register index without a diagnostic.

Generate the unmarshalling instead. DEFINE_KVM_HOST_HCALL() expands to
the handle_&lt;name&gt;() glue, modelled on the syscall wrappers, and checks
the handler's parameter list against the signature declared in
kvm_hcall.h, so both ends of every hypercall are now compiled against
the same declaration. Handler bodies keep their logic and lose the
DECLARE_REG() and return-register boilerplate. The two
get_host_hyp_vcpus() macros existed only to wrap DECLARE_REG(), so one
is dropped and the other becomes a function. The compiled handlers are
instruction-for-instruction identical, apart from flush_hyp_vcpu() and
sync_hyp_vcpu() now being inlined into their only caller.

The return-register store is picked by the declared return type, so a
void handler needs no macro of its own. The type is pasted into the
store's name, which has to be a single word, so
__pkvm_create_private_mapping is declared ulong.

Assisted-by: Antigravity:gemini-3.1-pro
Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Signed-off-by: Fuad Tabba &lt;fuad.tabba@linux.dev&gt;
Link: https://patch.msgid.link/20260901140326.3812068-11-fuad.tabba@linux.dev
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Type-check hypercall arguments at the caller</title>
<updated>2026-09-14T10:26:51+00:00</updated>
<author>
<name>Fuad Tabba</name>
<email>fuad.tabba@linux.dev</email>
</author>
<published>2026-09-01T14:03:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=db89e04ddbb7838b40f7d7b59b69220212678702'/>
<id>urn:sha1:db89e04ddbb7838b40f7d7b59b69220212678702</id>
<content type='text'>
kvm_call_hyp_nvhe() reduces its target to an SMCCC function number, so
the compiler never sees a callable: arguments that are wrong in number,
type or order are silently marshalled into registers. The kvm_call_hyp()
wrappers only catch this on the VHE branch, and the pKVM-only hypercalls
have no such branch.

Declare each hypercall's signature once in kvm_hcall.h and generate a
typed stub from it, in the mold of the syscall wrappers. Make
kvm_call_hyp_nvhe() resolve to the stub so every caller is checked
against the declared signature; a stale or mistyped call now fails to
compile. The stubs inline to the same SMCCC call the untyped macro used
to make: the compiled callers are unchanged, apart from hypercall
returns now being tested at their declared width.

The stage-2 protection arguments are declared u64 rather than
enum kvm_pgtable_prot, as kvm_pgtable.h includes linux/kvm_host.h and
the enum cannot be completed here.

Assisted-by: Antigravity:gemini-3.1-pro
Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Signed-off-by: Fuad Tabba &lt;fuad.tabba@linux.dev&gt;
Link: https://patch.msgid.link/20260901140326.3812068-10-fuad.tabba@linux.dev
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Move the host hypercall interface to its own header</title>
<updated>2026-09-14T10:26:50+00:00</updated>
<author>
<name>Fuad Tabba</name>
<email>fuad.tabba@linux.dev</email>
</author>
<published>2026-09-01T14:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3a189b358018d76020c65b5a52c90ea9353ef642'/>
<id>urn:sha1:3a189b358018d76020c65b5a52c90ea9353ef642</id>
<content type='text'>
Move the kvm_call_hyp() dispatch macros and pkvm_handle_t out of
kvm_host.h into a new kvm_hcall.h, giving the host&lt;-&gt;hyp hypercall
interface a single home that subsequent patches build on to restore
type-checking across the boundary. The only adjustment to the moved
code is the checkpatch-mandated space in "while (0)".

No functional change intended.

Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Signed-off-by: Fuad Tabba &lt;fuad.tabba@linux.dev&gt;
Link: https://patch.msgid.link/20260901140326.3812068-9-fuad.tabba@linux.dev
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
</feed>
