ktext: update AppleIGB to Tahoe-compatible fork (v5.11.5)#495
Open
ayushere wants to merge 1 commit into
Open
Conversation
The donatengit/AppleIGB repo is deprecated (last commit Nov 2022) and v5.11.4 causes kernel panics on macOS Tahoe 26.x due to two bugs in the Apple-specific code: 1. tcp6_hdr() and igb_tx_csum() used ip6++ (stride=40) to walk IPv6 extension headers — wrong stride, no bounds check. Tahoe's Probabilistic GZAlloc places guard pages after mbuf zone elements, turning the silent OOB read into a hard page fault panic. 2. igb_add_rx_frag() called mbuf_copyback(MBUF_WAITOK) in interrupt context and silently passed corrupted mbufs to the stack on failure. Tahoe's stricter mbuf validity check catches this as 'len -3' panic. ayushere/AppleIGB v5.11.5 fixes both bugs, built against macOS 26.5 SDK.
There was a problem hiding this comment.
Pull request overview
Updates the main kext documentation to recommend the Tahoe-compatible AppleIGB fork and clarify I210/I211 support for Monterey and newer macOS versions.
Changes:
- Repoints the AppleIGB releases link from
donatengittoayushere. - Updates supported NIC wording from I211 to I210/I211.
- Adds a Tahoe 26.x note about using v5.11.5+ to avoid kernel panics.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * [AppleIGB](https://github.com/donatengit/AppleIGB/releases) | ||
| * Required for I211 NICs running on macOS Monterey and above | ||
| * Might have instability issues on some NICs, recommended to stay on Big Sur and use SmallTree | ||
| * [AppleIGB](https://github.com/ayushere/AppleIGB/releases) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Updates the AppleIGB link from the deprecated
donatengit/AppleIGB(last commit Nov 2022) toayushere/AppleIGBv5.11.5, which fixes two kernel panic bugs that affect macOS Tahoe 26.x.Also updates the description to remove the outdated "might have instability issues / stay on Big Sur" note and adds a Tahoe-specific callout.
Why
donatengit/AppleIGBis self-described as deprecated. The upstreamShaneee/AppleIGB(v5.11.4) causes repeated kernel panics on macOS Tahoe 26.x due to two bugs in the Apple-specific driver code:Bug 1 — TX path mbuf out-of-bounds (panics on Tahoe 26.4 and 26.5)
tcp6_hdr()andigb_tx_csum()walked IPv6 extension headers usingip6++— a stride ofsizeof(struct ip6_hdr) = 40 bytes. Real extension headers have variable lengths; correct stride is(cursor[1] + 1) * 8. No bounds check existed.macOS Tahoe introduced Probabilistic GZAlloc (PGZ) which places guard pages after mbuf zone elements. The wrong-stride read hits the guard page →
type=14 page faultpanic:Bug 2 — RX path silent mbuf corruption (panic:
mbuf len -3)igb_add_rx_frag()calledmbuf_copyback(MBUF_WAITOK)in interrupt context and silently passed a partially-written, corrupted mbuf to the network stack on failure. Tahoe's stricter mbuf validity check panics on it.Fix
Both bugs are fixed in
ayushere/AppleIGBv5.11.5, built against the macOS 26.5 SDK. Pre-built kext available in releases — drop-in replacement, noconfig.plistchanges needed.Changes