linux_chromiumos_3_18: init at 3.18.0

Co-authored-by: Nikolay Amiantov <ab@fmap.me>
This commit is contained in:
Al Zohali 2016-01-10 22:07:45 +03:00
parent 9237faadbe
commit ee9e7b7224
7 changed files with 193 additions and 1 deletions

View File

@ -0,0 +1,48 @@
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 48398b4..0e37f7d 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -198,30 +198,6 @@ config DEV_COREDUMP
default y if WANT_DEV_COREDUMP
depends on ALLOW_DEV_COREDUMP
-config WANT_DEV_COREDUMP
- bool
- help
- Drivers should "select" this option if they desire to use the
- device coredump mechanism.
-
-config ALLOW_DEV_COREDUMP
- bool "Allow device coredump" if EXPERT
- default y
- help
- This option controls if the device coredump mechanism is available or
- not; if disabled, the mechanism will be omitted even if drivers that
- can use it are enabled.
- Say 'N' for more sensitive systems or systems that don't want
- to ever access the information to not have the code, nor keep any
- data.
-
- If unsure, say Y.
-
-config DEV_COREDUMP
- bool
- default y if WANT_DEV_COREDUMP
- depends on ALLOW_DEV_COREDUMP
-
config DEBUG_DRIVER
bool "Driver Core verbose debug messages"
depends on DEBUG_KERNEL
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 58154a9..53a0d73 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -81,7 +81,7 @@ config MFD_AXP20X
config MFD_CROS_EC
tristate "Support ChromeOS Embedded Controller"
- depends on MFD_CORE
+ select MFD_CORE
help
If you say Y here you get support for the ChromeOS Embedded
Controller (EC) providing keyboard, battery and power services.

View File

@ -0,0 +1,15 @@
diff --git a/fs/namei.c b/fs/namei.c
index d999a86..eb6e530 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -703,8 +703,8 @@ static inline void put_link(struct nameidata *nd, struct path *link, void *cooki
path_put(link);
}
-int sysctl_protected_symlinks __read_mostly = 1;
-int sysctl_protected_hardlinks __read_mostly = 1;
+int sysctl_protected_symlinks __read_mostly = 0;
+int sysctl_protected_hardlinks __read_mostly = 0;
/**
* may_follow_link - Check symlink following for unsafe situations

View File

@ -147,7 +147,7 @@ with stdenv.lib;
# Video configuration.
# Enable KMS for devices whose X.org driver supports it.
${optionalString (versionOlder version "4.3") ''
${optionalString (versionOlder version "4.3" && !(features.chromiumos or false)) ''
DRM_I915_KMS y
''}
# Allow specifying custom EDID on the kernel command line
@ -503,6 +503,67 @@ with stdenv.lib;
# Disable the firmware helper fallback, udev doesn't implement it any more
FW_LOADER_USER_HELPER_FALLBACK? n
# ChromiumOS support
${optionalString (features.chromiumos or false) ''
CHROME_PLATFORMS y
VGA_SWITCHEROO n
MMC_SDHCI_PXAV2 n
NET_IPVTI n
IPV6_VTI n
REGULATOR_FIXED_VOLTAGE n
TPS6105X n
CPU_FREQ_STAT y
IPV6 y
MFD_CROS_EC y
MFD_CROS_EC_LPC y
MFD_CROS_EC_DEV y
CHARGER_CROS_USB_PD y
I2C y
MEDIA_SUBDRV_AUTOSELECT n
VIDEO_IR_I2C n
BLK_DEV_DM y
ANDROID_PARANOID_NETWORK n
DM_VERITY n
DRM_VGEM n
CPU_FREQ_GOV_INTERACTIVE n
INPUT_KEYRESET n
DM_BOOTCACHE n
UID_CPUTIME n
${optionalString (versionAtLeast version "3.18") ''
CPUFREQ_DT n
EXTCON_CROS_EC n
DRM_POWERVR_ROGUE n
CHROMEOS_OF_FIRMWARE y
TEST_RHASHTABLE n
BCMDHD n
TRUSTY n
''}
${optionalString (versionOlder version "3.18") ''
MALI_MIDGARD n
DVB_USB_DIB0700 n
DVB_USB_DW2102 n
DVB_USB_PCTV452E n
DVB_USB_TTUSB2 n
DVB_USB_AF9015 n
DVB_USB_AF9035 n
DVB_USB_ANYSEE n
DVB_USB_AZ6007 n
DVB_USB_IT913X n
DVB_USB_LME2510 n
DVB_USB_RTL28XXU n
USB_S2255 n
VIDEO_EM28XX n
VIDEO_TM6000 n
USB_DWC2 n
USB_GSPCA n
SPEAKUP n
XO15_EBOOK n
USB_GADGET n
''}
''}
${kernelPlatform.kernelExtraConfig or ""}
${extraConfig}
''

View File

@ -0,0 +1,19 @@
diff --git a/scripts/genksyms/genksyms.c b/scripts/genksyms/genksyms.c
index 88632df..ba6cfa9 100644
--- a/scripts/genksyms/genksyms.c
+++ b/scripts/genksyms/genksyms.c
@@ -233,11 +233,11 @@ static struct symbol *__add_symbol(const char *name, enum symbol_type type,
free_list(last_enum_expr, NULL);
last_enum_expr = NULL;
enum_counter = 0;
- if (!name)
- /* Anonymous enum definition, nothing more to do */
- return NULL;
}
+ if (!name)
+ return NULL;
+
h = crc32(name) % HASH_BUCKETS;
for (sym = symtab[h]; sym; sym = sym->hash_next) {
if (map_to_ns(sym->type) == map_to_ns(type) &&

View File

@ -0,0 +1,21 @@
{ stdenv, fetchgit, perl, buildLinux, ncurses, ... } @ args:
import ./generic.nix (args // rec {
version = "3.18.0";
extraMeta.branch = "3.18";
src = fetchgit {
url = "https://chromium.googlesource.com/chromiumos/third_party/kernel";
rev = "3179ec7e3f07fcc3ca35817174c5fc6584030ab3";
sha256 = "0hfa97fs216x8q20fsmw02kvf6mw6c6zczfjk2bpym6v7zxdzj28";
};
features.iwlwifi = true;
features.efiBootStub = true;
features.needsCifsUtils = true;
features.canDisableNetfilterConntrackHelpers = true;
features.netfilterRPFilter = true;
features.chromiumos = true;
extraMeta.hydraPlatforms = [];
} // (args.argsOverride or {}))

View File

@ -103,4 +103,19 @@ rec {
patch = ./crc-regression.patch;
};
genksyms_fix_segfault =
{ name = "genksyms-fix-segfault";
patch = ./genksyms-fix-segfault.patch;
};
chromiumos_Kconfig_fix_entries_3_18 =
{ name = "Kconfig_fix_entries_3_18";
patch = ./chromiumos-patches/fix-double-Kconfig-entry-3.18.patch;
};
chromiumos_no_link_restrictions =
{ name = "chromium-no-link-restrictions";
patch = ./chromiumos-patches/no-link-restrictions.patch;
};
}

View File

@ -10057,6 +10057,15 @@ let
];
};
linux_chromiumos_3_18 = callPackage ../os-specific/linux/kernel/linux-chromiumos-3.18.nix {
kernelPatches = [ kernelPatches.chromiumos_Kconfig_fix_entries_3_18
kernelPatches.chromiumos_no_link_restrictions
kernelPatches.genksyms_fix_segfault
];
};
linux_chromiumos_latest = linux_chromiumos_3_18;
/* grsec configuration
We build several flavors of 'default' grsec kernels. These are
@ -10244,6 +10253,10 @@ let
linuxPackages_grsec_testing_server = grPackage grFlavors.linux_grsec_testing_server;
linuxPackages_grsec_testing_server_xen = grPackage grFlavors.linux_grsec_testing_server_xen;
# ChromiumOS kernels
linuxPackages_chromiumos_3_18 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_chromiumos_3_18 linuxPackages_chromiumos_3_18);
linuxPackages_chromiumos_latest = recurseIntoAttrs (linuxPackagesFor pkgs.linux_chromiumos_latest linuxPackages_chromiumos_latest);
# A function to build a manually-configured kernel
linuxManualConfig = pkgs.buildLinux;
buildLinux = callPackage ../os-specific/linux/kernel/manual-config.nix {};