Skip to content
View medelkadiri's full-sized avatar

Block or report medelkadiri

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
medelkadiri/README.md

Mohammed EL Kadiri

Systems Software Engineer · Linux Kernel Contributor · Security & Reliability Engineering



Systems software engineer focused on Linux kernel development, operating-system internals, security hardening, and low-level reliability engineering.
I have patches merged into the mainline Linux kernel across key management, process credentials, media drivers, and networking, with fixes backported to long-term support (LTS) kernels running in production worldwide. My work centers on correctness, memory safety, synchronization, and failure handling in C/C++17.



LinkedIn Medium Linux Kernel

What This GitHub Contains

This is my systems-engineering workspace: software that operates close to operating-system infrastructure, hardware interfaces, and runtime-critical services.

The projects and kernel work here focus on software that must remain correct under stress and failure: memory ownership, file-descriptor lifetime, concurrent execution, process control, IPC, binary-parser correctness, kernel locking, and security boundaries. My approach emphasizes explicit invariants, defensive design, measurable performance, and maintainable low-level code.


What I Build

systems-engineering

Production-oriented C++17 systems components designed around explicit ownership, secure resource management, concurrency safety, benchmarking, and cross-platform portability.

RAII fd wrapper · lock-free stack · memory pool · thread pool · ring buffer

C++17 Linux macOS

jakashell

Linux shell and process-management project exploring zero-copy IPC, memory-mapped communication, CPU-affinity-aware execution, and eBPF-based runtime telemetry.

mmap IPC · CPU affinity · eBPF tracing · process management

C Linux eBPF

Linux Kernel Contributions

Mainline-merged Linux kernel work across driver correctness, memory-safety hardening, key-management reliability, allocator isolation, and filesystem-encryption debugging — with fixes carried into stable and LTS kernels.

Kernel


Linux Kernel Contributions

Upstream Linux kernel patches and credited reports — tracked through lore.kernel.org, subsystem maintainer trees, and stable-kernel notifications


How upstream work reaches users:
Every patch below followed the standard Linux contribution path — public review on the kernel mailing lists, acceptance into a subsystem maintainer tree, automated integration testing in linux-next, merge into mainline by Linus Torvalds during a merge window, and finally backporting to stable/LTS kernels where a user-visible bug was fixed.


Status guide:
Mainline — merged into the official Linux kernel released by Linus Torvalds.
Stable backport — additionally carried into long-term support kernels used in production.
Reviewed — formally reviewed by a subsystem maintainer or domain expert.
Submitted — posted to the relevant upstream mailing list for review.
Credited fix — the issue report was attributed in an upstream fix; the implementation was authored by another kernel developer.


# Contribution Subsystem Status Date
11 fscrypt keyring / filesystem-reclaim lockdep issue
Investigated and reported a locking bug in filesystem encryption (fscrypt). The kernel could deadlock-warn because the key-management lock and the memory-reclaim path could be taken in conflicting orders — a class of bug that is hard to reproduce and can hang a machine under memory pressure. The upstream fix removed the risky design entirely by replacing an internal keyring with a simple linked list, while keeping per-user quota accounting intact.
Reported-by credit in upstream commit 696c030e1e34 · Fix authored by Eric Biggers · Backported to the 6.12 and 7.1 stable/LTS trees.
fs/crypto
security/keys
Credited fix
Stable backport
14/06/2026
10 KEYS: avoid filesystem reclaim while holding keyring->sem
Proposed a targeted fix for the lock-ordering problem above, using memalloc_nofs_save() / memalloc_nofs_restore() to block filesystem reclaim while the kernel updates a keyring, so the same lock cannot be re-entered from an allocation path.
Superseded by the broader upstream fscrypt redesign, which this analysis directly contributed to.
security/keys Submitted 14/06/2026
9 keys: keyctl_pkey: replace BUG with return -EOPNOTSUPP
Removed a crash path from the public-key operation interface. Previously, an unsupported request could trigger a fatal kernel assertion (BUG()) and take down the entire machine. The patch returns a normal -EOPNOTSUPP error to the calling application instead.
Impact: an unprivileged, unsupported request can no longer bring down a running system — availability is preserved and the code now follows standard kernel error handling.
Reviewed-by: Jarkko Sakkinen · Merged via the keys tree into mainline Linux 7.2
security/keys Mainline 13/06/2026
8 keys: request_key: replace BUG with return -EINVAL
Removed a second fatal assertion, this time in the key-request path. Invalid or not-yet-implemented keyring destinations now return -EINVAL to userspace rather than panicking the kernel.
Impact: hardens a user-facing entry point of the credential and secret-management subsystem by treating unexpected state as a recoverable error.
Reviewed-by: Jarkko Sakkinen · Merged via the keys tree into mainline Linux 7.2
security/keys Mainline 13/06/2026
7 media: venus: fix payload size calculation in parse_raw_formats()
Fixed how Qualcomm's Venus video-codec driver reads binary messages coming back from the hardware firmware. The old code sized the whole payload using the plane count of the last record only, so mixed records made the parser jump to the wrong offset and read the wrong data.
Impact: the parser now advances by exactly the number of bytes it consumed, eliminating a source of misparsed firmware data on Qualcomm mobile and embedded devices.
Reviewed-by: Dmitry Baryshkov, Qualcomm · Merged via the media tree into mainline
media/venus Mainline 10/06/2026
6 media: venus: fix payload size returned by parse_caps() and parse_alloc_mode()
Corrected byte accounting in two variable-length firmware-message parsers in the same driver. Both reported only the fixed header size and ignored the trailing variable-length data, so when messages were packed back-to-back the driver lost track of where the next message began.
Impact: each parser now reports its true consumed size (header + entries), preventing parser desynchronization on real firmware responses.
Fixes: 9edaaa8e3e15 · Cc: stable@vger.kernel.org · Reviewed-by: Dmitry Baryshkov, Qualcomm · Merged into mainline and backported to stable kernels
media/venus Mainline
Stable backport
10/06/2026
5 cred: prevent slab cache merging for cred_jar
Applied SLAB_NO_MERGE to the memory cache that holds Linux process credentials (struct cred) — the objects that store user IDs, group IDs, capabilities and privilege state. By default the kernel merges same-sized allocation caches together; this change keeps credentials in their own dedicated cache.
Impact: makes "cross-cache" exploitation techniques significantly harder against one of the most security-sensitive object types in the kernel.
Reviewed-by: Kees Cook · Merged via the LSM (security) tree into mainline
kernel/cred Mainline 11/06/2026
4 keys: prevent slab cache merging for key_jar
The same hardening applied to struct key, the object behind every kernel-managed secret: passwords, certificates, disk-encryption keys and authentication tokens. These objects no longer share an allocation cache with unrelated kernel data.
Impact: isolates cryptographic key material at the allocator level, reducing the attack surface for heap-grooming exploits.
Acked-by: Vlastimil Babka, SUSE · Merged via the keys tree into mainline Linux 7.2
security/keys Mainline 04/06/2026
3 media: venus: Annotate flex arrays with __counted_by()
Annotated the variable-length arrays in the Venus firmware-protocol structures with __counted_by(), which tells the compiler which field holds each array's element count.
Impact: enables automatic run-time bounds checking (CONFIG_UBSAN_BOUNDS) and better compiler object-size analysis, so out-of-bounds accesses on firmware-supplied data are caught instead of silently corrupting memory.
Reviewed-by: Dmitry Baryshkov, Qualcomm · Reviewed-by: Konrad Dybcio, Qualcomm · Merged via the media tree into mainline
media/venus Mainline 07/06/2026
2 sfc: fix spelling mistake
Corrected documentation and source comments in the Solarflare high-performance network driver's firmware interface — first upstream contribution, completed end-to-end through the full kernel workflow: submission, maintainer review, and inclusion in a generated firmware-header update.
Forwarded upstream by maintainer Edward Cree · Merged into mainline
net/sfc Mainline 22/03/2026
1 staging: media: atomisp: fix spelling mistakes
Readability cleanup in the Intel Atom ISP camera driver, fixing spelling errors in comments and strings. Small in scope, but a genuine maintainer-reviewed patch that shipped through the staging/media tree.
Merged via the staging/media tree into mainline
staging/atomisp Mainline 03/2026

Upstream Submissions
10
Patches posted to public kernel mailing lists
Merged in Mainline
9
Shipped in the official Linux kernel (incl. Linux 7.2)
Maintainer Review
7
Carrying Reviewed-by or Acked-by tags from kernel maintainers
Stable / LTS Backports
2
Fixes propagated to long-term support kernels in production

Contribution route: subsystem maintainer tree → linux-next integration testing → mainline merge window → stable/LTS backports.
Last updated: 15/09/2026


Technical Focus

Area Details
Kernel / OS Internals Linux kernel internals, syscall interfaces, VFS, keyrings, credentials, filesystem encryption, memory management, driver parsing
Security Hardening Slab-cache isolation, cross-cache attack mitigation, bounds checking, flexible-array safety, secure error handling
Reliability Engineering Root-cause analysis, parser invariants, memory lifetime, fault handling, lockdep analysis, syzbot-driven debugging
Concurrency Lock-free structures, atomics, memory ordering, spinlocks, RCU, lock hierarchy and deadlock analysis
Upstream Workflow Patch series and cover letters, mailing-list review cycles, Fixes/Cc-stable tagging, maintainer trees, linux-next, stable backports
Performance perf, flamegraphs, strace, eBPF, Google Benchmark, CPU-affinity-aware execution
Cross-platform Linux, macOS, FreeBSD, POSIX interfaces, compile-time platform abstraction

Tools

C C++ Linux macOS Bash Git

C · C++17 · POSIX · x86_64/ARM64 · CMake · Make/Kbuild · GDB/LLDB · perf · strace · eBPF · Git · Linux · macOS/XNU


Activity

Kernel contributions tracked on lore.kernel.org · Projects on GitHub

Pinned Loading

  1. jakashell jakashell Public

  2. linux linux Public

    Forked from torvalds/linux

    Linux kernel source tree

    C

  3. stm32-F401re-basic-concepts stm32-F401re-basic-concepts Public

    C

  4. systems-engineering systems-engineering Public

    I explain these implementations in articles on Medium.

    C++

  5. CrashAnalyzer CrashAnalyzer Public

    CrashAnalyzer: C++23 crash analysis workflow (segfault, core dumps, Valgrind, GDB) with CI/CD automation, validated on Linux and designed for cross‑platform portability (Windows/macOS/Linux).

    CMake