mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-14 01:33:10 +00:00
4e2079b96d
Some Equinix Metal instances, such as a3.large.x86, m3.large.x86 (specific hardware revisions), and n3.large.x86, use the `ice` kernel driver for their network cards, in conjunction with bonded devices. However, this commit caused a regression where these bonded devices would deadlock. This was initially reported by Jaroslav Pulchart on the netdev mailing list[1], and there were follow-up patches from Dave Ertman[2][3] that attempted to fix this but were not up to snuff for various reasons[4]. Specifically, v2 of the patch ([3]) appears to fix the issue on some devices (tested with 8086:159B network cards), while it is still broken on others (such as an 8086:1593 network card). We revert the patch exposing the issue until upstream has a working solution in order to make Equinix Metal instances work reliably again. [1]: https://lore.kernel.org/netdev/CAK8fFZ6A_Gphw_3-QMGKEFQk=sfCw1Qmq0TVZK3rtAi7vb621A@mail.gmail.com/ [2]: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20230111183145.1497367-1-david.m.ertman@intel.com/ [3]: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20230215191757.1826508-1-david.m.ertman@intel.com/ [4]: https://lore.kernel.org/netdev/cb31a911-ba80-e2dc-231f-851757cfd0b8@intel.com/T/#m6e53f8c43093693c10268140126abe99e082dc1c
66 lines
1.8 KiB
Nix
66 lines
1.8 KiB
Nix
{ lib, fetchpatch, fetchurl }:
|
|
|
|
{
|
|
ath_regd_optional = rec {
|
|
name = "ath_regd_optional";
|
|
patch = fetchpatch {
|
|
name = name + ".patch";
|
|
url = "https://github.com/openwrt/openwrt/raw/ed2015c38617ed6624471e77f27fbb0c58c8c660/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch";
|
|
sha256 = "1ssDXSweHhF+pMZyd6kSrzeW60eb6MO6tlf0il17RC0=";
|
|
postFetch = ''
|
|
sed -i 's/CPTCFG_/CONFIG_/g' $out
|
|
sed -i '/--- a\/local-symbols/,$d' $out
|
|
'';
|
|
};
|
|
};
|
|
|
|
bridge_stp_helper =
|
|
{ name = "bridge-stp-helper";
|
|
patch = ./bridge-stp-helper.patch;
|
|
};
|
|
|
|
request_key_helper =
|
|
{ name = "request-key-helper";
|
|
patch = ./request-key-helper.patch;
|
|
};
|
|
|
|
request_key_helper_updated =
|
|
{ name = "request-key-helper-updated";
|
|
patch = ./request-key-helper-updated.patch;
|
|
};
|
|
|
|
modinst_arg_list_too_long =
|
|
{ name = "modinst-arglist-too-long";
|
|
patch = ./modinst-arg-list-too-long.patch;
|
|
};
|
|
|
|
cpu-cgroup-v2 = import ./cpu-cgroup-v2-patches;
|
|
|
|
hardened = let
|
|
mkPatch = kernelVersion: { version, sha256, patch }: let src = patch; in {
|
|
name = lib.removeSuffix ".patch" src.name;
|
|
patch = fetchurl (lib.filterAttrs (k: v: k != "extra") src);
|
|
extra = src.extra;
|
|
inherit version sha256;
|
|
};
|
|
patches = lib.importJSON ./hardened/patches.json;
|
|
in lib.mapAttrs mkPatch patches;
|
|
|
|
# Adapted for Linux 5.4 from:
|
|
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04896832c94aae4842100cafb8d3a73e1bed3a45
|
|
rtl8761b_support =
|
|
{ name = "rtl8761b-support";
|
|
patch = ./rtl8761b-support.patch;
|
|
};
|
|
|
|
export-rt-sched-migrate = {
|
|
name = "export-rt-sched-migrate";
|
|
patch = ./export-rt-sched-migrate.patch;
|
|
};
|
|
|
|
fix-em-ice-bonding = {
|
|
name = "fix-em-ice-bonding";
|
|
patch = ./fix-em-ice-bonding.patch;
|
|
};
|
|
}
|