Rethinking RX Mode config in the Linux Kernel

As I mentioned in my last article, I found this particular reply intriguing and decided to work on it. This series will document my thought process as I work on that idea. If you just want to look at the latest version of the patch, you can use the lore url linked here. As of the time of writing this article, the patch series is at v8. The Problem I found the original message very dense. This section is about breaking it down into digestible chunks. ...

18/01/2026 · 9 min · 1771 words

Linux Kernel Mentorship Program

Background Inroduction I learnt about the Linux Kernel Mentorship program from a good friend of mine, Shiv Karthik. At that point, I had just upstreamed my first patch, which took me 6 months. I did not want this to be the case for every single kernel patch I submitted (especially the simple ones), so I decided to try my chances at the Linux Kernel Mentorship program. If you just want to look at my patches, click here ...

03/12/2025 · 8 min · 1531 words

Fixing a Syzkaller Bug in an Ancient Driver

Introduction As a participant of the Linux Kernel Mentorship (Fall) program, I was incentivized to find and fix kernel bugs reported by Google’s kernel fuzzer, syzkaller. I picked net as one of my subsystems and decided to tackle the first bug I saw on the syzkaller dashboard. This naturally turned out to be a async-race monster. The silver lining was that this forced me to learn a lot about the networking stack and a refactoring opportunity in net/core. ...

20/11/2025 · 11 min · 2160 words

How I Upstreamed My First Linux Kernel Patch

Everything and Everyone wants in on open source these days — maybe you do too. This article is my attempt at articulating how I upstreamed my first kernel patch. Let’s get started with a bit of background. Background I was writing a driver for work and I wanted to use i2c_transfer in a function to write some data on an I2C bus. In brief, that function gets a handle to an I2C bus and executes the commands specified in msgs. Therefore, the struct i2c_msg struct should specify if the command is a read or a write. ...

17/11/2025 · 8 min · 1688 words

A Basic Introduction to Git

If you have ever dreaded ‘breaking the build,’ Git is the safety net you never knew you needed — or another version control system (VCS), but this article is written with Git in mind. While many Git tutorials exist, I try to do something a bit different - so I hope this article offers a fresh perspective. It may not be intuitive why version control systems are important, so let’s start with that. ...

10/09/2025 · 8 min · 1626 words