Linus keresetlen szavakkal illette a Linux 7.0 kernelhez benyújtott MMC alrendszer kódjának minőségét: „Szemét, teszteletlen sz*r”

A Linux 7.0 kernel fejlesztési ciklusára készülő MMC (MultiMediaCard) alrendszer-frissítések elsőre egy nagyobb, hardvertámogatást és driveroldali javításokat is hozó csomagnak tűntek, a beküldött pull request azonban elbukott Linus Torvaldsnál. A kód gyakorlatilag használhatatlan volt, nem fordult le a kernelen így Linus a tőle megszokott hangnemben minősítette a beküldött kód minőségét, mely így természetesen nem kerülhet be a Linux 7.0 kernel fő ágába.

Linus keresetlen szavakkal illette a Linux 7.0 kernelhez benyújtott MMC alrendszer kódjának minőségét: „Szemét, teszteletlen sz*r”

Mit kínált volna az MMC fejlesztései csomag ha bekerül?

A tervezett módosítások több irányból erősítették volna az MMC alrendszert. Érkeztek volna új NXP IW61x eszközazonosítók SDIO-n csatlakozó Wi-Fi chipekhez, bővült volna a 2025 utáni gyártási dátumok kezelése, és napirenden volt néhány Kingston eMMC esetén a secure erase és TRIM műveletek célzott optimalizálása is. Emellett szerepelt a csomagban a DW_MMC kód rendbetétele, a MediaTek MT8189 támogatása az mtk-sd ágon, valamint több SDHCI driverhez kapcsolódó frissítés.

Linus keményen beleállt a kód minőségébe, a Linux 7.0 kernelbe nem kerülhet be a kód

Linus Torvalds azért utasította el a pull requestet, mert szerinte még az alapkövetelményeket sem teljesítette: a kód nem fordult le, és semmi nem utalt arra, hogy a csomagot linux-next alatt rendesen tesztelték volna. Linus reakciója a tőle megszokott nyers és kemény hangvételű volt, a kód minőségét „használhatatlan szemétnek” és „teszteletlen szarnak” minősítette.

A konkrét technikai kifogás egy konfigurációs csapda volt. Ha a CONFIG_MULTIPLEXER=m, akkor a build rendszer lefordítja a mux-core.o-t, viszont a fejlécben olyan feltétel szerepelt, amely csak akkor igaz, ha a CONFIG_MULTIPLEXER közvetlenül be van kapcsolva, modul esetén viszont más makró lesz definiálva. Emiatt a fejlécben aktiválódott egy dummy wrapper, ami később ütközött a valódi definíciókkal, és újradefiniálásos fordítási hibát okozott. Linus ezt egy külön commitra is ráhúzta, amit „hamisítatlan, tesztelés nélküli szemét”-nek jelölt meg, majd világossá tette, hogy ebben a merge windowban nem kér javított újraküldést sem. A legkorábbi következő próbálkozási pontként a Linux 7.1-et jelölte meg, azzal a feltétellel, hogy a soron következő beküldésnek ténylegesen linux-next alatt kell futnia, és rendes tesztelést kell kapnia.