Linaro On Air
Kernel maintainers will aggressively reject substandard corporate code to protect system stability, leaving hardware vendors at risk of multi-month product delays unless they submit drivers during chip simulation.
AI-assisted summary of Keynote: Greg Kroah-Hartman (Linux Foundation) - "I Don't Want Your Code" — original source. Check the original for full context.
Source published:
Key ideas
- Linux kernel development velocity has accelerated to nearly seven changes accepted every hour around the clock, drawing contributions from over 3,000 developers across 420 companies. (0:01)
- Hardware manufacturers are urged to adopt an upstream-first development model during chip simulation to avoid 12-to-18-month feedback delays and ensure day-one hardware support. (6:58)
- Maintainers act strictly as editors tasked with rejecting substandard code, holding paid corporate developers to uncompromising standards to prevent long-term technical debt. (11:12)
- Corporate email servers appending automated legal confidentiality footers prevent maintainers from reviewing or accepting patches due to open-source licensing and legal constraints. (12:45)
Detailed notes
## Background Published on YouTube by Linaro On Air on March 7, 2013, this video captures a keynote by Linux Foundation fellow Greg Kroah-Hartman titled "I Don't Want Your Code." The original upload does not provide any additional show notes or description.
## TL;DR Greg Kroah-Hartman outlines the immense scale and velocity of Linux kernel development to illustrate why subsystem maintainers must enforce uncompromising standards on incoming submissions. Drawing on an audit of inbox blunders as well as real-world patch disasters from Linaro and Intel, he warns against common submission failures like broken builds, monolithic diffs, and corporate legal footers. He champions an "upstream-first" business model to prevent costly out-of-tree technical debt and details the mutual social contract between contributors and maintainers. In closing, he emphasizes that public accountability and rigorous skepticism are essential to protect the long-term stability and health of the operating system.
## Atmosphere & style The presentation carries a frank, humorous, and authoritative tone, blending sharp developer comedy with an uncompromising "tough love" lecture. Kroah-Hartman's delivery is animated and self-deprecating, using dry wit to demystify why maintainers seem perpetually grumpy while holding the room's attention with relatable war stories. The audience frequently chuckles at candid anecdotes and accidental slip-ups, yet the atmosphere remains grounded in the serious professional stakes of maintaining mission-critical infrastructure.
## Bulletin - [00:01](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1s) Linux kernel development velocity has accelerated to nearly seven changes accepted every hour around the clock, drawing contributions from over 3,000 developers across 420 companies. - [06:58](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=418s) Hardware manufacturers are urged to adopt an upstream-first development model during chip simulation to avoid 12-to-18-month feedback delays and ensure day-one hardware support. - [11:12](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=672s) Maintainers act strictly as editors tasked with rejecting substandard code, holding paid corporate developers to uncompromising standards to prevent long-term technical debt. - [12:45](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=765s) Corporate email servers appending automated legal confidentiality footers prevent maintainers from reviewing or accepting patches due to open-source licensing and legal constraints.
## Key takeaways - [00:01](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1s) The Linux kernel represents the largest software development effort in human history, accepting nearly seven patches per hour, 24 hours a day, 365 days a year. - [02:05](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=125s) A structured development hierarchy of roughly 700 file maintainers and 86 subsystem maintainers feeds daily into the linux-next branch for automated integration testing. - [04:10](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=250s) Approximately 80% of all kernel contributions are funded by corporate employers, while only 20% come from independent, unpaid developers. - [06:58](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=418s) Submitting hardware support patches only after physical OS bring-up creates a year-and-a-half lag, stranding customers on outdated, broken downstream vendor kernels. - [06:58](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=418s) Upstream-first development during the simulation phase allows companies like Intel to ship silicon with fully functional, mainline kernel support on day one. - [10:36](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=636s) Upstream community collaboration is a proven commercial necessity that reduces technical debt and speeds delivery, rather than an act of engineering charity. - [11:12](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=672s) Maintainers serve as gatekeeping book editors rather than adversaries, protecting the operating system by rejecting flawed ideas and demanding clear code structure. - [11:12](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=672s) Maintainers offer patient mentoring to unpaid hobbyists but enforce zero tolerance for careless workflow mistakes made by paid corporate engineers. - [12:45](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=765s) Automated legal confidentiality disclaimers appended by enterprise mail systems legally forbid maintainers from opening, answering, or accepting patch emails. - [15:09](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=909s) Adherence to canonical kernel coding style is mandatory because human review depends on visual pattern recognition to efficiently spot defects and bugs. - [15:09](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=909s) Compiling kernel trees as the root superuser is an active operational hazard that has previously masked build bugs that silently wiped developer filesystems. - [18:07](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1087s) Every commit in a patch series must compile cleanly and remain independently bisectable to prevent future regression tracking with git bisect from breaking. - [18:07](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1087s) Maintainers cannot merge incomplete work based on promises of future cleanups because contributors routinely vanish or change jobs, leaving behind unfixable technical debt. - [20:44](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1244s) Patch submissions must explicitly articulate why a change is necessary, rather than merely summarizing what lines of code were modified. - [26:24](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1584s) A catastrophic Linaro USB submission and an Intel TTY patch containing deliberate crash code illustrate why maintainers require senior co-signers after severe quality breaches. - [28:51](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1731s) The maintainer social contract requires responding to patches within two weeks and keeping submitters clearly informed of whether their code is accepted or rejected. - [31:16](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1876s) Public development enforces personal and corporate accountability, preventing engineers from hiding fragile hacks behind internal company deadlines. - [32:19](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1939s) Patch authors bear full responsibility for build-testing across architectures, as maintainers will immediately reject patches that break builds on x86, ARM, or PowerPC.
## Detailed walkthrough ### [00:01](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1s) Introduction and the Mind-Boggling Scale of Linux Development
Greg Kroah-Hartman introduces himself and outlines his extensive responsibilities within the Linux kernel ecosystem. While Linus Torvalds manages the main development kernels on a three-month cycle, Greg maintains the stable branches, releasing updates roughly once a week. He also maintains the driver core, USB, debugfs, tty, and serial subsystems—noting with a laugh that serial has been his responsibility for 25 years, starting from his very first paid job. Greg jokes that his ultimate goal for the keynote is to make the audience understand why kernel maintainers are so notoriously obnoxious and why no one in their right mind would ever want his job.
To set the stage, Greg presents the staggering development statistics from the previous year, spanning kernel releases 3.4 to 3.8. Over this period, more than 3,000 individual developers representing approximately 420 different companies contributed to the codebase. Greg describes this collective effort as the largest software development process in human history. The sheer velocity of the project is accelerating at an alarming rate; last year, the kernel averaged nearly seven changes accepted every single hour, 24 hours a day, 365 days a year. This is a significant jump from 5.9 changes per hour the year before, and 5.0 the year before that. Greg warns that trying to keep code out-of-tree with the intent of catching up later is a losing battle because the upstream community is moving too fast.
“My goal at the end of this talk is for you to understand why we are as obnoxious as we are and why you would never want to do this job.”
- **Development Velocity:** 3,000 individual developers and ~420 companies contributing. - **Pace of Change:** ~7 changes accepted per hour, 24/7, up from 5.9 and 5.0 in previous years. - **Kernel Versions Covered:** 3.4 to 3.8 over the course of the analyzed year.
[02:05](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=125s) The Kernel Development Pipeline and Key Contributors
Greg explains the highly structured, tiered development model that makes this massive scale possible. The process begins with the 3,000 developers who write patches and submit them to file maintainers, of whom there are about 700 listed in the `MAINTAINERS` file. These maintainers review, sign off on, and accept the patches, routing them up to one of the 86 subsystem maintainers who manage roughly 160 different development trees. Every single business day, Stephen Rothwell merges all of these active trees into the `linux-next` branch for integration testing. When Linus Torvalds opens the two-week merge window, the subsystem maintainers push their accumulated changes to him, while Andrew Morton acts as a safety net, picking up any remaining patches that slipped through the cracks.
To illustrate where the heaviest development activity occurs, Greg highlights some of the top individual contributors by patch volume. He points out H. Hartley Sweeten, who does massive work on the Comedi data acquisition subsystem, and Mark Brown, who dominates embedded sound (ALSA). He praises Al Viro for his relentless work on file systems, and Alexey Dobriyan for his extensive janitorial cleanups. Greg also highlights Daniel Vetter (Intel Graphics) and Johannes Berg (Intel Wireless) to show how much churn occurs within single driver subsystems. He gives a special nod to Sachin Kamat from Linaro, who has been doing excellent cleanup work all over the kernel tree.
“If you want to keep code out of the kernel and think, 'Ah, I will just catch up to them later,' well, they're going faster, and you're going to have to do more work to try and catch up.”
- **Pipeline Infrastructure:** ~700 file maintainers, 86 subsystem maintainers, and ~160 distinct Git trees. - **Integration Testing:** Daily merges of all trees into `linux-next` by Stephen Rothwell. - **Key Subsystems with High Churn:** Intel Graphics (Daniel Vetter), Wireless (Johannes Berg), Embedded Sound (Mark Brown), and Comedi (H. Hartley Sweeten).
[04:10](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=250s) Maintainer Workloads and Corporate Backing
The workload of a top-tier maintainer is incredibly intense. Greg shares that he and David Miller (the networking maintainer) accept the highest volume of patches in the entire project. Over the past year, David Miller interacted with 470 unique developers, while Greg interacted with 450. Greg jokes that when developers approach him at conferences to thank him for accepting their patches, he has to give a generic "you're welcome" because the sheer volume makes it impossible to remember individual submissions. The staging subsystem, which Greg manages, is a major source of this churn, alongside networking, embedded sound, and video (managed by Mauro Carvalho Chehab).
Greg then addresses who actually pays for all of this development. He congratulates Linaro for cracking the top 10 corporate contributors list for the first time, though he notes they are still pulling themselves out of their "own little gravity well" compared to the top contributors. Interestingly, about 20% of the kernel is written by independent individuals, whom Greg jokingly describes as "people that haven't been hired yet." The remaining 80% is funded by corporations. He highlights H. Hartley Sweeten's employer, Vision Engraving Systems, which cracked the top seven corporate contributors solely because of Hartley's prolific output. Meanwhile, companies like Google are rising in the ranks, IBM is sliding down, and Qualcomm is called out for actively hiding their patches behind legal teams.
“Qualcomm's the only company that hides their patches... they're really good at that, they have good lawyers.”
- **Maintainer Outreach:** David Miller accepted patches from 470 unique people; Greg accepted patches from 450 unique people. - **Corporate Contribution Split:** 80% of kernel development is corporate-sponsored; 20% is done by independent developers. - **Corporate Standings:** Google is moving up, IBM is moving down, and Linaro has entered the top 10. Qualcomm is noted for keeping its patches proprietary.
[06:58](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=418s) The Business Case for Upstream-First Development
Greg transitions to a critical critique of how hardware and system-on-chip (SoC) companies design and submit code. He shares a slide detailing a partner company's traditional chip design pipeline: design, emulation, simulation, tape-out, power-on, and finally OS bring-up. Historically, these companies only begin submitting their kernel patches *after* OS bring-up. Because the upstream review process takes three to eight months, their code is accepted long after the hardware team has already moved on to their next six-month design cycle. This creates a sluggish, year-and-a-half feedback loop, forcing customers to run outdated, broken kernels on newly purchased chips.
To solve this, Greg urges companies to adopt the "upstream-first" model, which Linaro successfully utilized for the ARM64 architecture. Under this model, companies submit kernel patches during the simulation phase, months before physical silicon exists. By the time the chip is manufactured and delivered to customers, the support code is already merged into the mainline kernel at kernel.org. Greg points to Intel as the gold standard of this approach; they are so far ahead that they upstream code for entire architectures early, sometimes even ripping out support for experimental chips that never make it to production. He warns the audience that if they do not adopt this proactive approach, Intel will continue to dominate the market. Greg also reveals a humorous anecdote: an anonymous company recently leaked that they had working ARM64 silicon in their labs by accidentally emailing him to ask for ARM64 patch backports to an ancient 3.4 kernel for an active device.
“Intel is that far ahead of you guys... if you don't catch up, they will win, they will beat you.”
```mermaid flowchart TD accTitle: Traditional vs Ideal Kernel Submission Timelines accDescr: A comparison showing how traditional hardware development delays kernel submission until after OS bring-up, whereas the ideal model submits code during simulation so it is ready at launch.
subgraph Traditional ["Traditional Model (Slow & Late)"] A1["Design & Emulation"] --> B1["Simulation & Tape Out"] B1 --> C1["Power On & OS Bring-up"] C1 -->|"Submit Patches"| D1["Accepted 3-8 Months Later"] D1 -->|"Feedback Loop"| E1["Hardware Team Already on Next Design"] end
subgraph Ideal ["Ideal Model (Upstream-First)"] A2["Design & Emulation"] -->|"Submit Patches"| B2["Simulation Phase"] B2 --> C2["Code Accepted in kernel.org"] C2 --> D2["Silicon Power On / Customer Delivery"] D2 --> E2["Working Out-of-the-Box Support"] end ```
- **The Feedback Loop:** Traditional post-silicon submission results in a 12-to-18-month delay for stable upstream support. - **The Intel Example:** Intel upstreams code so early that they occasionally delete entire chip architectures from the kernel before the hardware is even released. - **The Business Reality:** Upstreaming early is not just a community favor; executives at IBM and Intel have publicly stated it is a core business and financial necessity.
[10:36](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=636s) The Business Imperative of Upstream Engagement
Working with the upstream Linux community is not an act of charity or irrational engineering idealism; it is a calculated business practice. Engaging early and often saves companies money, shortens product delivery times, and wins customers by eliminating the crushing technical debt of carrying out-of-tree patches. Industry giants like IBM and Intel have recognized this dynamic for years and openly share their methodologies with the rest of the industry, yet many organizations still fail to heed their example. Greg Kroah-Hartman cautions that ignoring these hard-won lessons places companies in direct jeopardy, warning that engineering organizations must reform their development habits if they wish to survive in the ecosystem.
> “This is how businesses work: work with the community early, often, and you ignore this at your own peril.” — Greg Kroah-Hartman
[11:12](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=672s) Maintainers as Editors: Why Harsh Feedback Protects Linux
Borrowing an analogy originally framed by networking maintainer David S. Miller, Kroah-Hartman explains that kernel maintainers act not as gatekeeping adversaries, but as book editors working directly with authors. In this dynamic, the contributor writes the raw material while the maintainer scrutinizes grammar, suggests structural revisions, pushes back on weak ideas, and provides guidance. Maintainers often yearn to return to writing original code themselves, occasionally tuning out incoming traffic to work on personal side projects, but their editorial discipline is what preserves the integrity of the operating system. If maintainers were simply agreeable and accepted every submission uncritically, Linux would rapidly deteriorate and fail.
This editorial relationship also dictates how strictly maintainers treat different types of contributors. Kroah-Hartman highlights the contrast between independent hobbyists and paid corporate engineers:
- **Unaffiliated and volunteer developers:** These contributors write code purely out of personal passion and a desire to see Linux improve. Maintainers intentionally treat them with patience, offering gentle mentoring and encouragement. - **Corporate, paid developers:** Engineers who contribute on company time are held to an uncompromising standard. Because it is their professional responsibility to master the workflow, maintainers have little patience for careless mistakes or unread documentation.
> “If I am nice and take whatever you send me, Linux will not succeed.” — Greg Kroah-Hartman
```mermaid flowchart TD accTitle: Upstream Maintainer Editorial Filter accDescr: Maintainers evaluate contributors and either guide hobbyists or strictly reject substandard corporate patches to protect kernel health.
subgraph Authors["Patch Contributors"] Vol["Volunteers & Hobbyists<br/>(Motivated by passion)"] Corp["Corporate Developers<br/>(Paid professional role)"] end
subgraph Editorial["Maintainer Review Engine"] Filter{"Maintainer Assessment"} Patience["Patient mentoring & gentle guidance"] Strict["Strict enforcement of standards & pushback"] end
subgraph Outcome["Kernel Health"] Accept["High-quality upstream code"] Reject["Immediate rejection of low-effort patches"] end
Vol --> Filter Corp --> Filter Filter -->|"Unpaid author"| Patience Filter -->|"Paid professional"| Strict Patience --> Accept Strict --> Accept Strict --> Reject ```
[12:45](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=765s) The 487-Patch Audit: Trivial and Legal Submission Blunders
To demonstrate the sheer volume of substandard contributions received by upstream, Kroah-Hartman conducted an audit of his personal inbox over a quiet two-week merge window six months prior. Because experienced kernel developers know that new features are not accepted during the merge window, they hold their submissions; consequently, the 487 patches Kroah-Hartman received during those two weeks came almost entirely from developers unfamiliar with basic upstream etiquette. The submissions included baffling mistakes, such as patch sequences where the introductory cover email existed but the numbered patches were missing, or instances where patches had no context lines, forcing maintainers to guess where changes belonged.
A particularly severe problem involves corporate email configurations that automatically attach confidentiality disclaimers. When a company's mail server appends a legal footer warning that an email is privileged or confidential and must be deleted if received in error, maintainers face legal constraints. Legal counsel mandates that patches bearing these footers cannot be accepted, reviewed, or even answered, because kernel development is strictly an open, public process. While Microsoft and Huawei resolved these corporate Microsoft Exchange footer issues by documenting proper email-routing procedures, engineers at other firms must actively push their internal IT departments to stop adding legal footers to public mailing list traffic.
> “If your company is putting a footer on emails that you send out, I cannot respond to you because you just told me I couldn't.” — Greg Kroah-Hartman
- **Malformed Sign-offs:** Submissions arrived with the required `Signed-off-by:` tag buried inside a decorative email signature below the patch boundary, rendering automated git ingestion tools incapable of parsing it. - **Missing patches:** Developers sent out multi-part email series containing only partial sets (such as omitting patch 2 of 2 entirely) or emails claiming to have a patch with no code attached. - **Automated mailing list drops:** Several public kernel mailing lists run automated filters configured to discard any email containing corporate legal confidentiality notices immediately upon arrival.
[15:09](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=909s) Build and Formatting Failures: Root Builds, Style, and Non-Compiling Code
The audit revealed widespread disregard for standard development environments and coding practices. Submissions arrived using obsolete, non-unified diff formats that modern tooling cannot read, with leading indentation whitespace stripped by misconfigured email clients, and against entirely unrelated subsystem repositories—such as SCSI tree patches mistakenly emailed to Kroah-Hartman. One patch sent six months prior had been generated against an ancient kernel tree and originated from a file path proving the submitter compiled the kernel as the `root` superuser. Kroah-Hartman reminded the audience that building as root is hazardous, recalling an incident where an unnoticed kernel build bug silently erased `/` on developer machines for nearly three months without maintainers noticing, precisely because none of them ran builds with root privileges.
Formatting compliance remains a mandatory baseline. Human code review relies heavily on visual pattern recognition; when unfamiliar whitespace or inconsistent styles disrupt the visual rhythm of the code, maintainers cannot effectively parse the logic or spot defects. The kernel project provides automated linting scripts (such as `checkpatch.pl`) to fix styling errors before submission. Submitting code that violates the canonical Linux style implies that the author expects thousands of other developers to adapt to their individual preferences, which maintainers reject out of hand. Worse still are patches that do not compile at all—a failure easily caught if developers simply compiled their code prior to sending it out.
> “If I can't read your code, I'm not going to be able to fix your bugs, and I'm not going to take your code—it's as simple as that.” — Greg Kroah-Hartman
[18:07](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1087s) Broken Trust, Bisectability, and Why Maintainers Must Be Grumpy
Every patch in a multi-part series must compile cleanly and remain bisectable on its own. Authors occasionally introduce changes that break the build in early patches of a series, only to fix the compilation error in the final patch. Maintainers run automated scripts that apply and compile every single commit individually to detect build failures and compiler warnings at each step; breaking intermediate commits ruins `git bisect` for anyone trying to trace future regressions. Similarly unacceptable are submissions delivered with promises that known defects or incomplete implementations will be "fixed later" in follow-up patches. Once code enters the mainline tree, the subsystem maintainer inherits long-term maintenance of that code, and submitters frequently abandon their work the moment their patch merges.
Kroah-Hartman highlights the hazards of unearned trust by recounting a notorious incident in the networking subsystem, where a developer submitted an extensive core networking overhaul with promises to handle follow-up cleanups. The day after the maintainers merged the patch, the contributor's email address bounced, the submitter vanished entirely from the internet, and the networking team spent an entire year untangling and repairing the fallout. Maintainers must also deal with developers who submit monolithic 4,500-line diffs instead of breaking changes down into incremental steps. Unless a change is a completely self-contained new driver or filesystem, authors must show their work incrementally. Kroah-Hartman urges attendees to make use of Linaro's internal training materials and experienced engineers, reminding them that maintainer skepticism is necessary to prevent the kernel from degrading.
> “You want me to be grumpy, you want me to push back on this stuff, you don't want me accepting crap, because that'll hurt Linux.” — Greg Kroah-Hartman
- **The disappearance risk:** Unfinished code cannot be accepted based on trust, because contributors frequently leave projects, change employers, or pass away, leaving maintainers permanently saddled with the technical debt. - **Incremental commits:** Modifying core kernel subsystems requires small, logically discrete patches that clearly demonstrate the progression of the work, rather than massive single rewrites. - **Unverified documentation:** Multiple submissions included broken or unformatted kernel-doc entries that the authors had never attempted to build or validate before mailing.
[20:44](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1244s) The Anatomy of a Linaro Patch Trainwreck
```mermaid flowchart TD accTitle: Broken Patch Progression accDescr: Sequence showing how an eight-patch USB series was repeatedly mishandled, accepted late, and ultimately reverted.
subgraph Submission ["Patch Submission Issues"] A["8-patch USB series arrives<br/>(no rationale, 1-line notes)"] B["4 of 8 patches break the build<br/>(ignored by Greg; reviewed by TI)"] C["Resubmissions arrive out of order<br/>(labeled 'v2' on fourth attempt)"] A --> B --> C end
subgraph Merge ["Merge Window Violations"] D["Senior dev vouches for 2 patches<br/>(accepted past deadline into -rc1)"] E["Typo fix requires a 3rd patch"] C --> D --> E end
subgraph Fallout ["Hardware Breakage & Revert"] F["TI testing reveals hardware breakage<br/>across TI platforms"] G["Greg forced to revert all patches<br/>and explain delay to Linus"] H["Driver maintainer returns:<br/>all 8 patches functionally broken"] E --> F --> G --> H end ```
Illustrating how dangerous bad contributions can be, Greg Kroah-Hartman recounts a specific failure from January, right as the merge window was closing and Linus Torvalds was preparing to release Linux 3.9. Kroah-Hartman sets a strict rule that his subsystem tree closes one week before Torvalds's release so he can stabilize and test everything. Two weeks prior to that cutoff, an eight-patch USB series arrived from a Linaro email address. The submission was fundamentally flawed from the start: each patch contained only a single-line summary stating what code was changed, with zero explanation of *why* the change was needed. Kroah-Hartman remarks that while he can read code to see what it does, he cannot guess the rationale, so he initially ignored the series. To make matters worse, half of the eight patches completely broke the build, proving they had never even been compiled or tested.
Because the actual driver maintainer was on vacation in the Caribbean with no email access, Kroah-Hartman let the submission sit, but external reviewers—including engineers from Texas Instruments—stepped in. When revised patches were finally sent, the submitter neglected to explain what had changed between versions. Kroah-Hartman explains that he receives 200 to 400 patch emails every week and cannot be expected to remember prior feedback or unstated modifications. Subsequent replacement patches arrived out of order without indicating which original patches they were intended to replace. After a senior Linaro kernel team member intervened on the mailing list to publicly demonstrate the correct workflow, the author sent them out yet again, bizarrely labeling their fourth attempt as "version 2."
Past the merge deadline, Linaro developers insisted that two of the patches were urgent and had to make it into -rc1. Because the changes targeted ARM hardware he did not own, Kroah-Hartman relied on the recommendation of a trusted senior developer he had known for years and accepted the two cleaned-up patches. Immediately, configuration typos were discovered, forcing him to take a third patch past his cutoff. Shortly after, Texas Instruments tested the tree and discovered that the patches completely broke their hardware. Furious, TI reported the regression, forcing Kroah-Hartman to revert the changes and draft a changelog for Linus Torvalds explicitly explaining that his tree was delayed past the deadline because he had to rip out broken Linaro code. When the subsystem maintainer finally returned from vacation, he discovered that every single one of the original eight patches was logically flawed and broken. Kroah-Hartman recounts how this typically calm maintainer was pushed to public frustration:
> “This driver maintainer who is very nice, very calm, been around forever, no one would ever accuse him of being grumpy, said this publicly: ‘Uh, you guys got some work to do.’”
- Submissions must clearly explain *why* a patch is needed, not just *what* the code does. - Maintainers process hundreds of patches weekly; resubmissions must always include a changelog of what changed between versions. - Four of the eight original Linaro USB patches failed to compile, and all eight were ultimately found to be logically broken. - Texas Instruments engineers caught the build breakages and later verified that the patches broke all of TI's hardware. - As a consequence of the failure, Kroah-Hartman announced a strict sanction: “I will not take code from this developer again for about a year until so I forget them. I will now require a senior Linaro kernel developer to sign off on any patches from Linaro that I will accept.”
---
[26:24](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1584s) The Accidental Intel Slip and Testing Devices
To demonstrate that Linaro is not his sole target, Kroah-Hartman shares an equally egregious blunder committed by another major contributor ranked among the top five companies in kernel development. The submission involved a substantial patch series for the TTY layer that was already on its fifth revision. Kroah-Hartman was initially skeptical because the patch appeared to duplicate large amounts of existing code, but multiple reviewers insisted it was solid and urged him to take it. Upon careful inspection, he discovered that embedded inside the cleanup routine—the code executed whenever a device is detached or removed from the system—was debugging code containing an intentional bug that instantly hard-crashed the machine. The developer had left an explicit comment stating the line was meant to "test the code," yet had evidently never unplugged a device during testing.
Had this change merged, detaching any USB serial dongle, wireless modem, or embedded modem would have brought down the entire operating system. Kroah-Hartman was so outraged that he informed the submitter that their future patches would be rejected unless backed by a senior company engineer. In the middle of telling the story to the Linaro audience, he accidentally blurts out the company's identity:
> “I told this guy after that, I said, ‘I will not accept your code. I will require Intel’s—oh, whoops, sorry. I will require their senior developers to sign off on the code before I will accept it.’”
After the audience laughs at the accidental reveal, Kroah-Hartman emphasizes that even massive, highly sophisticated organizations like Intel make severe mistakes. His point is not to single out Linaro, but to hammer home the universal reality of maintenance: Linux already runs reliably today, meaning any incoming code represents an inherent risk to stability. It is entirely within a maintainer's self-interest to reject patches to protect the tree. Contributors must view it as their duty to submit flawless work that makes accepting it an obvious choice, leaving maintainers with zero technical reasons to say no.
- The faulty TTY patch had gone through five revisions and had been reviewed by multiple engineers before reaching Kroah-Hartman. - The debugging line triggered a hard kernel crash on device removal, threatening to break modems, embedded modems, and USB-to-serial adapters across the kernel. - The incident prompted Kroah-Hartman to enforce the same senior-signoff restriction on that developer as he did with the Linaro USB developer. - “You have to convince me that I am doing something extraordinarily foolish by not accepting your code.”
---
[28:51](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1731s) The Maintainer's Social Contract
Turning from developer responsibilities to maintainer obligations, Kroah-Hartman stresses that the upstream relationship is not a one-way street. If maintainers demand high-quality, properly tested patches, contributors are entitled to clear, reliable commitments in return. First, maintainers should review and respond to patch submissions within one to two weeks. While exceptions occur during the merge window or when maintainers are traveling, contributors have every right to ping a maintainer for an update after two weeks have elapsed—though he playfully pleads that developers should not email him a mere twelve hours after submission while he is asleep or on an airplane.
Second, Kroah-Hartman promises that maintainer feedback should provide semi-constructive criticism focused strictly on technical merits. He addresses recent mainstream press reports expressing shock that kernel hackers occasionally use colorful language in public discussions. While he admits that longtime friends and peers might occasionally curse at each other or call someone stupid, critique must target the code rather than the author. He urges developers to meet maintainers in person at conferences to demystify them, and advises developers to shed their personal egos:
> “I will respond to your code, but detach yourself from your code. My very first driver I submitted, within two minutes it was cut to shreds, and I lost my ego then 15 years ago.”
Third, maintainers have a duty to keep patch authors informed of their submission status. Kroah-Hartman voices his intense frustration with maintainers who let code vanish into a black hole for three months, only for it to silently appear in a release tree. Using public scripts originally authored by Andrew Morton and adapted for his own build systems, Kroah-Hartman sends automated email notifications whenever patches are accepted, rejected, or merged into subsystem branches. He insists that contributors should demand this level of transparency from all their subsystem maintainers, whether updates are delivered via email, automated trackers, or even Twitter bots, ensuring no engineer is left guessing about the fate of their work.
- Contributors should wait one to two weeks before pinging maintainers about unreviewed patches. - Maintainers must criticize the code, not the person, while contributors must cultivate thick skin and separate their identity from their pull requests. - Andrew Morton's publicly available maintenance scripts automate patch state tracking and sender notifications. - Maintainers owe submitters prompt, explicit notifications regarding whether a patch has been accepted or rejected.
[31:16](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1876s) Personal Responsibility, Doing Work in Public, and Why Maintainers Are Grumpy
Reflecting on a distressing kernel submission scenario, Greg Kroah-Hartman emphasizes how disheartening it is when an engineer is driven to produce subpar code. He observes that it is deeply sad when a developer feels that the work they are writing is so terrible that they know it should never even be submitted in the first place, pointing out that anyone caught in that position is doing something fundamentally wrong by letting someone else force them into compromising their standards. He stresses that the core strength of Linux comes directly from individual accountability: every patch is assigned to the author's name, personally tying their reputation and their company to that code in plain view of the entire world.
Working entirely in public prevents bad practices and prevents developers from burying sloppy work. Because kernel development does not operate under arbitrary corporate deadlines or have sudden mandates thrown at it, the community can afford to hold a high bar. Greg notes that this is precisely why Linux thrives, but it is also why kernel maintainers come across as irritable when poor code is submitted. As Greg Kroah-Hartman puts it: “And the only reason Linux works so well is because personally you're responsible for the code that you send off you are attached to it it's assigned to you and your company better not as those other patches were shown so do it in public and because of that it makes it us work really really well it's high for us to hide crappy hacks we don't have deadlines we don't have things thrown at us like this it works really really good.” Closing his talk, he jokes about delivering his obligatory lecture on the matter and directs attendees to the Linaro website to download his presentation slides.
- Personal accountability and public scrutiny ensure developers take ownership of their patches rather than quietly merging fragile workarounds. - Linus Torvalds and the broader maintainer community resist arbitrary schedule pressure in favor of code quality. - The keynote slides are publicly accessible via the Linaro website.
[32:19](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1939s) Q&A: Presenting from ARM and Build Testing Across Architectures
Opening the floor to questions, Greg Kroah-Hartman pauses before making a humorous remark about his presentation hardware, joking that while he is presenting from an ARM-based system, it certainly is not a Raspberry Pi, which he playfully disparages. An audience member then asks about cross-architecture expectations, noting that patch submissions often seem to carry an implicit question of whether the code was tested on x86, and asks whether maintainers are primarily testing on x86 machines.
```mermaid flowchart TD accTitle: Maintainer Patch Testing Flow accDescr: Diagram showing how a maintainer handles patch verification across hardware and cross-compilation architectures.
subgraph Receipt["Submission"] P["Incoming Patch"] end
subgraph Verification["Maintainer Verification"] H{"Hardware on hand?"} T["Test on physical hardware"] B["Build test on x86 / native rig"] C["Cross-compile checks (ARM, PowerPC)"] end
subgraph Outcome["Result"] F["Reject: Broke the build on other archs"] A["Accept if build & logic pass"] end
P --> H H -->|"Yes"| T H -->|"No"| B B --> C C -->|"Compile failure"| F C -->|"Clean build"| A ```
Greg clarifies that maintainers do not and cannot test patches on hardware they do not physically own. However, maintainers will unconditionally run build tests on their primary architecture—typically x86—and any patch that breaks a standard build will be rejected immediately. He recounts a recent patch he worked on with John that compiled cleanly on ARM but broke compilation on x86, as well as another submitted patch that broke builds on PowerPC. He reminds developers that cross-compilers exist and should be integrated into everyone's local build systems to catch architectural breakages before code ever reaches maintainers. Emphasizing the limits of his testing responsibilities, Greg Kroah-Hartman explains: “I can't test your code I don't test your code unless it happens to be for the hardware I have I will build it on 86 a better bill because if it didn't you just broke the bill you can't make the bill for other architect.” With that final warning to test builds thoroughly, Greg closes the session to audience applause.
- Maintainers generally do not possess every specialized development board or chip, making real-hardware runtime verification the patch author's responsibility. - A patch must never break the compilation of another supported architecture, regardless of where the author intended it to run. - Build systems should actively leverage cross-compilers to catch multi-architecture build failures across x86, ARM, and PowerPC prior to patch submission.
## Notable quotes > [26:24](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=1584s) You have to convince me that I am doing something extraordinarily foolish by not accepting your code. — Greg Kroah-Hartman
> [11:12](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=672s) If I am nice and take whatever you send me, Linux will not succeed. — Greg Kroah-Hartman
> [10:36](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=636s) This is how businesses work: work with the community early, often, and you ignore this at your own peril. — Greg Kroah-Hartman
> [15:09](https://www.youtube.com/watch?v=fMeH7wqOwXA&t=909s) If I can't read your code, I'm not going to be able to fix your bugs, and I'm not going to take your code—it's as simple as that. — Greg Kroah-Hartman
## Mentioned Greg Kroah-Hartman, Linus Torvalds, Stephen Rothwell, Andrew Morton, David S. Miller, Mauro Carvalho Chehab, H. Hartley Sweeten, Mark Brown, Al Viro, Alexey Dobriyan, Daniel Vetter, Johannes Berg, Sachin Kamat, Linaro, Intel, Google, IBM, Qualcomm, Texas Instruments, Vision Engraving Systems, Huawei, Microsoft, Linux Foundation, Linux kernel, ARM64, PowerPC, x86, Comedi, ALSA, TTY, USB, debugfs, checkpatch.pl, git bisect, linux-next, Raspberry Pi
[Source](https://www.youtube.com/watch?v=fMeH7wqOwXA)