summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/kernel/generic.nix')
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix32
1 files changed, 21 insertions, 11 deletions
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 379d3cad970..3912d9d10f5 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -36,6 +36,22 @@ let
 
   lib = stdenv.lib;
 
+  # Combine the `features' attribute sets of all the kernel patches.
+  kernelFeatures = lib.fold (x: y: (x.features or {}) // y) ({
+    iwlwifi = true;
+    efiBootStub = true;
+    needsCifsUtils = true;
+    netfilterRPFilter = true;
+  } // features) kernelPatches;
+
+  configWithPlatform = kernelPlatform: import ./common-config.nix {
+    inherit stdenv version kernelPlatform extraConfig;
+    features = kernelFeatures; # Ensure we know of all extra patches, etc.
+  };
+
+  config = configWithPlatform stdenv.platform;
+  configCross = configWithPlatform hostPlatform.platform;
+
   kernelConfigFun = baseConfig:
     let
       configFromPatches =
@@ -115,23 +131,17 @@ let
   };
 
   passthru = {
-    # Combine the `features' attribute sets of all the kernel patches.
-    features = lib.fold (x: y: (x.features or {}) // y) features kernelPatches;
+    features = kernelFeatures;
 
     meta = kernel.meta // extraMeta;
 
     passthru = kernel.passthru // (removeAttrs passthru [ "passthru" "meta" ]);
   };
 
-  configWithPlatform = kernelPlatform: import ./common-config.nix
-    { inherit stdenv version kernelPlatform extraConfig;
-      features = passthru.features; # Ensure we know of all extra patches, etc.
-    };
-
-  config = configWithPlatform stdenv.platform;
-  configCross = configWithPlatform hostPlatform.platform;
-
   nativeDrv = lib.addPassthru kernel.nativeDrv passthru;
 
   crossDrv = lib.addPassthru kernel.crossDrv passthru;
-in if kernel ? crossDrv then nativeDrv // { inherit nativeDrv crossDrv; } else lib.addPassthru kernel passthru
+
+in if kernel ? crossDrv
+   then nativeDrv // { inherit nativeDrv crossDrv; }
+   else lib.addPassthru kernel passthru