parent
b6d9ece734
commit
e4114f4d01
@ -1 +0,0 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)=>5.10,5.11
|
File diff suppressed because it is too large
Load Diff
@ -1,24 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ACPI_ADXL=y
|
||||
# CONFIG_ACPI_EXTLOG is not set
|
||||
CONFIG_EDAC_AMD64_ERROR_INJECTION=y
|
||||
CONFIG_EDAC_AMD64=m
|
||||
# CONFIG_EDAC_DEBUG is not set
|
||||
CONFIG_EDAC_DECODE_MCE=m
|
||||
CONFIG_EDAC_E752X=m
|
||||
CONFIG_EDAC_I10NM=m
|
||||
CONFIG_EDAC_I3000=m
|
||||
CONFIG_EDAC_I3200=m
|
||||
CONFIG_EDAC_I5000=m
|
||||
CONFIG_EDAC_I5100=m
|
||||
CONFIG_EDAC_I5400=m
|
||||
CONFIG_EDAC_I7300=m
|
||||
CONFIG_EDAC_I7CORE=m
|
||||
CONFIG_EDAC_I82975X=m
|
||||
CONFIG_EDAC_IE31200=m
|
||||
CONFIG_EDAC_LEGACY_SYSFS=y
|
||||
CONFIG_EDAC=m
|
||||
CONFIG_EDAC_PND2=m
|
||||
CONFIG_EDAC_SBRIDGE=m
|
||||
CONFIG_EDAC_SKX=m
|
||||
CONFIG_EDAC_X38=m
|
@ -1,226 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ACPI_I2C_OPREGION=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
# CONFIG_HTC_I2CPLD is not set
|
||||
CONFIG_I2C=y
|
||||
# CONFIG_MFD_88PM860X is not set
|
||||
# CONFIG_MFD_AAT2870_CORE is not set
|
||||
# CONFIG_MFD_AS3711 is not set
|
||||
# CONFIG_MFD_DA9052_I2C is not set
|
||||
# CONFIG_MFD_DA9055 is not set
|
||||
# CONFIG_MFD_LP8788 is not set
|
||||
# CONFIG_MFD_MAX77843 is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_MAX8997 is not set
|
||||
# CONFIG_MFD_MAX8998 is not set
|
||||
# CONFIG_MFD_PALMAS is not set
|
||||
# CONFIG_MFD_RC5T583 is not set
|
||||
# CONFIG_MFD_SEC_CORE is not set
|
||||
# CONFIG_MFD_TPS65090 is not set
|
||||
# CONFIG_MFD_TPS6586X is not set
|
||||
# CONFIG_MFD_TPS65910 is not set
|
||||
# CONFIG_MFD_TPS80031 is not set
|
||||
# CONFIG_MFD_WM831X_I2C is not set
|
||||
# CONFIG_MFD_WM8350_I2C is not set
|
||||
# CONFIG_MFD_WM8400 is not set
|
||||
CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
|
||||
CONFIG_MOUSE_PS2_SMBUS=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
|
||||
CONFIG_PINCONF=y
|
||||
CONFIG_PINCTRL_ALDERLAKE=m
|
||||
CONFIG_PINCTRL_AMD=m
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
CONFIG_PINCTRL_BROXTON=m
|
||||
CONFIG_PINCTRL_CANNONLAKE=m
|
||||
CONFIG_PINCTRL_CEDARFORK=m
|
||||
CONFIG_PINCTRL_CHERRYVIEW=m
|
||||
CONFIG_PINCTRL_DA9062=m
|
||||
CONFIG_PINCTRL_DENVERTON=m
|
||||
CONFIG_PINCTRL_ELKHARTLAKE=m
|
||||
CONFIG_PINCTRL_EMMITSBURG=m
|
||||
CONFIG_PINCTRL_GEMINILAKE=m
|
||||
CONFIG_PINCTRL_ICELAKE=m
|
||||
CONFIG_PINCTRL_INTEL=y
|
||||
CONFIG_PINCTRL_JASPERLAKE=m
|
||||
CONFIG_PINCTRL_LAKEFIELD=m
|
||||
CONFIG_PINCTRL_LEWISBURG=m
|
||||
CONFIG_PINCTRL_LYNXPOINT=m
|
||||
CONFIG_PINCTRL_MCP23S08_I2C=m
|
||||
CONFIG_PINCTRL_MCP23S08=m
|
||||
CONFIG_PINCTRL_SUNRISEPOINT=m
|
||||
# CONFIG_PINCTRL_SX150X is not set
|
||||
CONFIG_PINCTRL_TIGERLAKE=m
|
||||
CONFIG_PINMUX=y
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
CONFIG_RTC_I2C_AND_SPI=y
|
||||
# CONFIG_TOUCHSCREEN_DMI is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_TWL6040_CORE is not set
|
||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||
CONFIG_ACPI_AC=y
|
||||
CONFIG_ACPI_BATTERY=y
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
|
||||
# CONFIG_SND_DESIGNWARE_I2S is not set
|
||||
# CONFIG_SND_I2S_HI6210_I2S is not set
|
||||
CONFIG_SND_PCM_ELD=y
|
||||
CONFIG_SND_PCM_IEC958=y
|
||||
# CONFIG_SND_SIMPLE_CARD is not set
|
||||
# CONFIG_SND_SOC_AC97_CODEC is not set
|
||||
# CONFIG_SND_SOC_ADAU1372_I2C is not set
|
||||
# CONFIG_SND_SOC_ADAU1701 is not set
|
||||
# CONFIG_SND_SOC_ADAU1761_I2C is not set
|
||||
# CONFIG_SND_SOC_ADAU7002 is not set
|
||||
# CONFIG_SND_SOC_ADAU7118_HW is not set
|
||||
# CONFIG_SND_SOC_ADAU7118_I2C is not set
|
||||
# CONFIG_SND_SOC_ADI is not set
|
||||
# CONFIG_SND_SOC_AK4118 is not set
|
||||
# CONFIG_SND_SOC_AK4458 is not set
|
||||
# CONFIG_SND_SOC_AK4554 is not set
|
||||
# CONFIG_SND_SOC_AK4613 is not set
|
||||
# CONFIG_SND_SOC_AK4642 is not set
|
||||
# CONFIG_SND_SOC_AK5386 is not set
|
||||
# CONFIG_SND_SOC_AK5558 is not set
|
||||
# CONFIG_SND_SOC_ALC5623 is not set
|
||||
# CONFIG_SND_SOC_AMD_ACP3x is not set
|
||||
# CONFIG_SND_SOC_AMD_ACP is not set
|
||||
CONFIG_SND_SOC_AMD_RENOIR=m
|
||||
CONFIG_SND_SOC_AMD_RENOIR_MACH=m
|
||||
# CONFIG_SND_SOC_BD28623 is not set
|
||||
# CONFIG_SND_SOC_BT_SCO is not set
|
||||
# CONFIG_SND_SOC_CS35L32 is not set
|
||||
# CONFIG_SND_SOC_CS35L33 is not set
|
||||
# CONFIG_SND_SOC_CS35L34 is not set
|
||||
# CONFIG_SND_SOC_CS35L35 is not set
|
||||
# CONFIG_SND_SOC_CS35L36 is not set
|
||||
# CONFIG_SND_SOC_CS4234 is not set
|
||||
# CONFIG_SND_SOC_CS4265 is not set
|
||||
# CONFIG_SND_SOC_CS4270 is not set
|
||||
# CONFIG_SND_SOC_CS4271_I2C is not set
|
||||
# CONFIG_SND_SOC_CS42L42 is not set
|
||||
# CONFIG_SND_SOC_CS42L51_I2C is not set
|
||||
# CONFIG_SND_SOC_CS42L52 is not set
|
||||
# CONFIG_SND_SOC_CS42L56 is not set
|
||||
# CONFIG_SND_SOC_CS42L73 is not set
|
||||
# CONFIG_SND_SOC_CS42XX8_I2C is not set
|
||||
# CONFIG_SND_SOC_CS43130 is not set
|
||||
# CONFIG_SND_SOC_CS4341 is not set
|
||||
# CONFIG_SND_SOC_CS4349 is not set
|
||||
# CONFIG_SND_SOC_CS53L30 is not set
|
||||
# CONFIG_SND_SOC_CX2072X is not set
|
||||
# CONFIG_SND_SOC_DA7213 is not set
|
||||
CONFIG_SND_SOC_DMIC=m
|
||||
# CONFIG_SND_SOC_ES7134 is not set
|
||||
# CONFIG_SND_SOC_ES7241 is not set
|
||||
# CONFIG_SND_SOC_ES8316 is not set
|
||||
# CONFIG_SND_SOC_ES8328_I2C is not set
|
||||
# CONFIG_SND_SOC_FSL_ASRC is not set
|
||||
# CONFIG_SND_SOC_FSL_AUDMIX is not set
|
||||
# CONFIG_SND_SOC_FSL_ESAI is not set
|
||||
# CONFIG_SND_SOC_FSL_MICFIL is not set
|
||||
# CONFIG_SND_SOC_FSL_SAI is not set
|
||||
# CONFIG_SND_SOC_FSL_SPDIF is not set
|
||||
# CONFIG_SND_SOC_FSL_SSI is not set
|
||||
# CONFIG_SND_SOC_FSL_XCVR is not set
|
||||
# CONFIG_SND_SOC_GTM601 is not set
|
||||
CONFIG_SND_SOC_HDMI_CODEC=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
# CONFIG_SND_SOC_IMG is not set
|
||||
# CONFIG_SND_SOC_IMX_AUDMUX is not set
|
||||
# CONFIG_SND_SOC_INNO_RK3036 is not set
|
||||
# CONFIG_SND_SOC_INTEL_SST_TOPLEVEL is not set
|
||||
# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
|
||||
# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
|
||||
CONFIG_SND_SOC=m
|
||||
# CONFIG_SND_SOC_MAX9759 is not set
|
||||
# CONFIG_SND_SOC_MAX98088 is not set
|
||||
# CONFIG_SND_SOC_MAX98357A is not set
|
||||
# CONFIG_SND_SOC_MAX98373_I2C is not set
|
||||
# CONFIG_SND_SOC_MAX98390 is not set
|
||||
# CONFIG_SND_SOC_MAX98504 is not set
|
||||
# CONFIG_SND_SOC_MAX9860 is not set
|
||||
# CONFIG_SND_SOC_MAX9867 is not set
|
||||
# CONFIG_SND_SOC_MAX98927 is not set
|
||||
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
|
||||
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
|
||||
# CONFIG_SND_SOC_MT6351 is not set
|
||||
# CONFIG_SND_SOC_MT6358 is not set
|
||||
# CONFIG_SND_SOC_MT6660 is not set
|
||||
# CONFIG_SND_SOC_MTK_BTCVSD is not set
|
||||
# CONFIG_SND_SOC_NAU8315 is not set
|
||||
# CONFIG_SND_SOC_NAU8540 is not set
|
||||
# CONFIG_SND_SOC_NAU8810 is not set
|
||||
# CONFIG_SND_SOC_NAU8822 is not set
|
||||
# CONFIG_SND_SOC_NAU8824 is not set
|
||||
# CONFIG_SND_SOC_PCM1681 is not set
|
||||
# CONFIG_SND_SOC_PCM1789_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM179X_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM186X_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM3060_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM3168A_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM5102A is not set
|
||||
# CONFIG_SND_SOC_PCM512x_I2C is not set
|
||||
# CONFIG_SND_SOC_RK3328 is not set
|
||||
# CONFIG_SND_SOC_RT5616 is not set
|
||||
# CONFIG_SND_SOC_RT5631 is not set
|
||||
# CONFIG_SND_SOC_SGTL5000 is not set
|
||||
# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
|
||||
# CONFIG_SND_SOC_SIMPLE_MUX is not set
|
||||
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
|
||||
# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
|
||||
# CONFIG_SND_SOC_SPDIF is not set
|
||||
# CONFIG_SND_SOC_SSM2305 is not set
|
||||
# CONFIG_SND_SOC_SSM2602_I2C is not set
|
||||
# CONFIG_SND_SOC_SSM4567 is not set
|
||||
# CONFIG_SND_SOC_STA32X is not set
|
||||
# CONFIG_SND_SOC_STA350 is not set
|
||||
# CONFIG_SND_SOC_STI_SAS is not set
|
||||
# CONFIG_SND_SOC_TAS2552 is not set
|
||||
# CONFIG_SND_SOC_TAS2562 is not set
|
||||
# CONFIG_SND_SOC_TAS2764 is not set
|
||||
# CONFIG_SND_SOC_TAS2770 is not set
|
||||
# CONFIG_SND_SOC_TAS5086 is not set
|
||||
# CONFIG_SND_SOC_TAS571X is not set
|
||||
# CONFIG_SND_SOC_TAS5720 is not set
|
||||
# CONFIG_SND_SOC_TAS6424 is not set
|
||||
# CONFIG_SND_SOC_TDA7419 is not set
|
||||
# CONFIG_SND_SOC_TFA9879 is not set
|
||||
# CONFIG_SND_SOC_TLV320ADCX140 is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC31XX is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC3X is not set
|
||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||
# CONFIG_SND_SOC_TS3A227E is not set
|
||||
# CONFIG_SND_SOC_TSCS42XX is not set
|
||||
# CONFIG_SND_SOC_TSCS454 is not set
|
||||
# CONFIG_SND_SOC_UDA1334 is not set
|
||||
# CONFIG_SND_SOC_WM8510 is not set
|
||||
# CONFIG_SND_SOC_WM8523 is not set
|
||||
# CONFIG_SND_SOC_WM8524 is not set
|
||||
# CONFIG_SND_SOC_WM8580 is not set
|
||||
# CONFIG_SND_SOC_WM8711 is not set
|
||||
# CONFIG_SND_SOC_WM8728 is not set
|
||||
# CONFIG_SND_SOC_WM8731 is not set
|
||||
# CONFIG_SND_SOC_WM8737 is not set
|
||||
# CONFIG_SND_SOC_WM8741 is not set
|
||||
# CONFIG_SND_SOC_WM8750 is not set
|
||||
# CONFIG_SND_SOC_WM8753 is not set
|
||||
# CONFIG_SND_SOC_WM8776 is not set
|
||||
# CONFIG_SND_SOC_WM8782 is not set
|
||||
# CONFIG_SND_SOC_WM8804_I2C is not set
|
||||
# CONFIG_SND_SOC_WM8903 is not set
|
||||
# CONFIG_SND_SOC_WM8904 is not set
|
||||
# CONFIG_SND_SOC_WM8960 is not set
|
||||
# CONFIG_SND_SOC_WM8962 is not set
|
||||
# CONFIG_SND_SOC_WM8974 is not set
|
||||
# CONFIG_SND_SOC_WM8978 is not set
|
||||
# CONFIG_SND_SOC_WM8985 is not set
|
||||
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
|
||||
# CONFIG_SND_SOC_XILINX_I2S is not set
|
||||
# CONFIG_SND_SOC_XILINX_SPDIF is not set
|
||||
# CONFIG_SND_SOC_XTFPGA_I2S is not set
|
||||
# CONFIG_SND_SOC_ZX_AUD96P22 is not set
|
||||
# CONFIG_VIDEO_TDA1997X is not set
|
||||
# CONFIG_ZX_TDM is not set
|
@ -1,12 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
!CONFIG_PINCTRL_ALDERLAKE=
|
||||
!CONFIG_PINCTRL_ELKHARTLAKE=
|
||||
!CONFIG_PINCTRL_LAKEFIELD=
|
||||
!CONFIG_SND_SOC_ADAU1372_I2C=
|
||||
!CONFIG_SND_SOC_ADI=
|
||||
!CONFIG_SND_SOC_FSL_XCVR=
|
||||
!CONFIG_SND_SOC_LPASS_VA_MACRO=
|
||||
!CONFIG_SND_SOC_LPASS_WSA_MACRO=
|
||||
!CONFIG_SND_SOC_NAU8315=
|
||||
!CONFIG_SND_SOC_PCM5102A=
|
||||
!CONFIG_SND_SOC_SIMPLE_MUX=
|
@ -1,3 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
!CONFIG_RESET_BRCMSTB_RESCAL=
|
||||
!CONFIG_XILINX_ZYNQMP_DPDMA=
|
@ -1,20 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ACPI_HOTPLUG_MEMORY=y
|
||||
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
|
||||
# CONFIG_ARCH_MEMORY_PROBE is not set
|
||||
# CONFIG_DEVICE_PRIVATE is not set
|
||||
CONFIG_DEV_PAGEMAP_OPS=y
|
||||
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
|
||||
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
|
||||
CONFIG_MEMORY_HOTPLUG_SPARSE=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
CONFIG_MEMORY_ISOLATION=y
|
||||
CONFIG_ND_PFN=m
|
||||
CONFIG_NVDIMM_DAX=y
|
||||
CONFIG_NVDIMM_PFN=y
|
||||
CONFIG_PCI_HYPERV_INTERFACE=m
|
||||
CONFIG_PCI_HYPERV=m
|
||||
# CONFIG_PCI_P2PDMA is not set
|
||||
CONFIG_XARRAY_MULTI=y
|
||||
CONFIG_ZONE_DEVICE=y
|
@ -1,14 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
|
||||
CONFIG_BALLOON_COMPACTION=y
|
||||
CONFIG_COMPACTION=y
|
||||
CONFIG_CONTIG_ALLOC=y
|
||||
# CONFIG_DEV_DAX is not set
|
||||
CONFIG_FS_DAX_PMD=y
|
||||
# CONFIG_READ_ONLY_THP_FOR_FS is not set
|
||||
CONFIG_THP_SWAP=y
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
|
||||
CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_VIRTIO_MEM=m
|
||||
!CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
|
@ -1,135 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_SND_COMPRESS_OFFLOAD=m
|
||||
CONFIG_SND_HDA_EXT_CORE=m
|
||||
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
|
||||
CONFIG_SND_SOC_ACPI=m
|
||||
CONFIG_SND_SOC_COMPRESS=y
|
||||
CONFIG_SND_SOC_CX2072X=m
|
||||
CONFIG_SND_SOC_DA7213=m
|
||||
CONFIG_SND_SOC_DA7219=m
|
||||
CONFIG_SND_SOC_ES8316=m
|
||||
CONFIG_SND_SOC_HDAC_HDA=m
|
||||
CONFIG_SND_SOC_HDAC_HDMI=m
|
||||
# CONFIG_SND_SOC_INTEL_APL is not set
|
||||
CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_CATPT is not set
|
||||
# CONFIG_SND_SOC_INTEL_CFL is not set
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_CML_H is not set
|
||||
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_CML_LP is not set
|
||||
# CONFIG_SND_SOC_INTEL_CNL is not set
|
||||
CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
|
||||
CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_GLK is not set
|
||||
CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_KBL is not set
|
||||
CONFIG_SND_SOC_INTEL_MACH=y
|
||||
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
|
||||
# CONFIG_SND_SOC_INTEL_SKL is not set
|
||||
# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
|
||||
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
|
||||
# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
|
||||
CONFIG_SND_SOC_MAX98090=m
|
||||
CONFIG_SND_SOC_MAX98357A=m
|
||||
CONFIG_SND_SOC_MAX98373_I2C=m
|
||||
CONFIG_SND_SOC_MAX98373=m
|
||||
# CONFIG_SND_SOC_MAX98373_SDW is not set
|
||||
CONFIG_SND_SOC_MAX98390=m
|
||||
CONFIG_SND_SOC_NAU8824=m
|
||||
CONFIG_SND_SOC_PCM512x_I2C=m
|
||||
CONFIG_SND_SOC_PCM512x=m
|
||||
CONFIG_SND_SOC_RL6231=m
|
||||
CONFIG_SND_SOC_RL6347A=m
|
||||
CONFIG_SND_SOC_RT1011=m
|
||||
CONFIG_SND_SOC_RT1015=m
|
||||
# CONFIG_SND_SOC_RT1308_SDW is not set
|
||||
CONFIG_SND_SOC_RT286=m
|
||||
CONFIG_SND_SOC_RT5640=m
|
||||
CONFIG_SND_SOC_RT5645=m
|
||||
CONFIG_SND_SOC_RT5651=m
|
||||
CONFIG_SND_SOC_RT5660=m
|
||||
CONFIG_SND_SOC_RT5670=m
|
||||
CONFIG_SND_SOC_RT5682_I2C=m
|
||||
CONFIG_SND_SOC_RT5682=m
|
||||
# CONFIG_SND_SOC_RT5682_SDW is not set
|
||||
# CONFIG_SND_SOC_RT700_SDW is not set
|
||||
# CONFIG_SND_SOC_RT711_SDW is not set
|
||||
# CONFIG_SND_SOC_RT715_SDW is not set
|
||||
CONFIG_SND_SOC_SOF_ACPI=m
|
||||
CONFIG_SND_SOC_SOF_APOLLOLAKE=m
|
||||
CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_BROADWELL=m
|
||||
CONFIG_SND_SOC_SOF_BROADWELL_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_CANNONLAKE=m
|
||||
CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_COFFEELAKE=m
|
||||
CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_COMETLAKE=m
|
||||
CONFIG_SND_SOC_SOF_COMETLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_DEBUG_PROBES=y
|
||||
# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set
|
||||
CONFIG_SND_SOC_SOF_ELKHARTLAKE=m
|
||||
CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_GEMINILAKE=m
|
||||
CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
|
||||
# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
|
||||
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
|
||||
CONFIG_SND_SOC_SOF_HDA_COMMON=m
|
||||
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
|
||||
CONFIG_SND_SOC_SOF_HDA_LINK=y
|
||||
CONFIG_SND_SOC_SOF_HDA=m
|
||||
CONFIG_SND_SOC_SOF_HDA_PROBES=y
|
||||
CONFIG_SND_SOC_SOF_ICELAKE=m
|
||||
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_INTEL_ACPI=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_COMMON=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_PCI=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
|
||||
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m
|
||||
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
|
||||
CONFIG_SND_SOC_SOF_JASPERLAKE=m
|
||||
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF=m
|
||||
CONFIG_SND_SOC_SOF_MERRIFIELD=m
|
||||
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_PCI=m
|
||||
CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y
|
||||
CONFIG_SND_SOC_SOF_TIGERLAKE=m
|
||||
CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
|
||||
CONFIG_SND_SOC_SOF_TOPLEVEL=y
|
||||
CONFIG_SND_SOC_SOF_XTENSA=m
|
||||
CONFIG_SND_SOC_TOPOLOGY=y
|
||||
CONFIG_SND_SOC_TS3A227E=m
|
||||
CONFIG_SND_SOC_WM8804_I2C=m
|
||||
CONFIG_SND_SOC_WM8804=m
|
||||
# CONFIG_SND_SOC_WSA881X is not set
|
||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
|
||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
|
||||
# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set
|
||||
CONFIG_SOUNDWIRE_CADENCE=m
|
||||
CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
|
||||
CONFIG_SOUNDWIRE_INTEL=m
|
||||
CONFIG_SOUNDWIRE=m
|
||||
# CONFIG_SOUNDWIRE_QCOM is not set
|
@ -1,4 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_DELL_RBU is not set
|
||||
# CONFIG_FW_LOADER_USER_HELPER is not set
|
||||
!CONFIG_FW_LOADER_USER_HELPER_FALLBACK=
|
@ -1,4 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ARCH_USE_MEMREMAP_PROT=y
|
||||
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
|
||||
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
@ -1,29 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
|
||||
# CONFIG_EVM is not set
|
||||
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
|
||||
# CONFIG_IMA is not set
|
||||
CONFIG_INTEGRITY_AUDIT=y
|
||||
# CONFIG_INTEGRITY_SIGNATURE is not set
|
||||
CONFIG_INTEGRITY=y
|
||||
# CONFIG_IP6_NF_SECURITY is not set
|
||||
# CONFIG_IP_NF_SECURITY is not set
|
||||
# CONFIG_NETLABEL is not set
|
||||
# CONFIG_NFSD_V4_SECURITY_LABEL is not set
|
||||
CONFIG_NFS_V4_SECURITY_LABEL=y
|
||||
# CONFIG_SECURITY_APPARMOR_DEBUG is not set
|
||||
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
|
||||
CONFIG_SECURITY_APPARMOR_HASH=y
|
||||
CONFIG_SECURITY_APPARMOR=y
|
||||
CONFIG_SECURITYFS=y
|
||||
# CONFIG_SECURITY_LOADPIN is not set
|
||||
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
CONFIG_SECURITY_PATH=y
|
||||
# CONFIG_SECURITY_SAFESETID is not set
|
||||
# CONFIG_SECURITY_SELINUX is not set
|
||||
# CONFIG_SECURITY_SMACK is not set
|
||||
# CONFIG_SECURITY_TOMOYO is not set
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_SECURITY_YAMA is not set
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
@ -1,14 +0,0 @@
|
||||
# Calculate format=kernel name=.config merge(sys-kernel/calculate-sources[-desktop])!=
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
# CONFIG_RC_CORE is not set
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_USB_GADGET is not set
|
@ -1,3 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_MODULE_COMPRESS_ZSTD=y
|
||||
# CONFIG_MODULE_COMPRESS_XZ is not set
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,567 +0,0 @@
|
||||
# Calculate format=diff merge(sys-kernel/calculate-sources[fsync])!=
|
||||
From adcc17d13cfe1dbc160ead834c632d46f9398d20 Mon Sep 17 00:00:00 2001
|
||||
From: Gabriel Krisman Bertazi <krisman@collabora.com>
|
||||
Date: Fri, 13 Dec 2019 11:08:02 -0300
|
||||
Subject: [PATCH 1/2] futex: Implement mechanism to wait on any of several
|
||||
futexes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This is a new futex operation, called FUTEX_WAIT_MULTIPLE, which allows
|
||||
a thread to wait on several futexes at the same time, and be awoken by
|
||||
any of them. In a sense, it implements one of the features that was
|
||||
supported by pooling on the old FUTEX_FD interface.
|
||||
|
||||
The use case lies in the Wine implementation of the Windows NT interface
|
||||
WaitMultipleObjects. This Windows API function allows a thread to sleep
|
||||
waiting on the first of a set of event sources (mutexes, timers, signal,
|
||||
console input, etc) to signal. Considering this is a primitive
|
||||
synchronization operation for Windows applications, being able to quickly
|
||||
signal events on the producer side, and quickly go to sleep on the
|
||||
consumer side is essential for good performance of those running over Wine.
|
||||
|
||||
Wine developers have an implementation that uses eventfd, but it suffers
|
||||
from FD exhaustion (there is applications that go to the order of
|
||||
multi-milion FDs), and higher CPU utilization than this new operation.
|
||||
|
||||
The futex list is passed as an array of `struct futex_wait_block`
|
||||
(pointer, value, bitset) to the kernel, which will enqueue all of them
|
||||
and sleep if none was already triggered. It returns a hint of which
|
||||
futex caused the wake up event to userspace, but the hint doesn't
|
||||
guarantee that is the only futex triggered. Before calling the syscall
|
||||
again, userspace should traverse the list, trying to re-acquire any of
|
||||
the other futexes, to prevent an immediate -EWOULDBLOCK return code from
|
||||
the kernel.
|
||||
|
||||
This was tested using three mechanisms:
|
||||
|
||||
1) By reimplementing FUTEX_WAIT in terms of FUTEX_WAIT_MULTIPLE and
|
||||
running the unmodified tools/testing/selftests/futex and a full linux
|
||||
distro on top of this kernel.
|
||||
|
||||
2) By an example code that exercises the FUTEX_WAIT_MULTIPLE path on a
|
||||
multi-threaded, event-handling setup.
|
||||
|
||||
3) By running the Wine fsync implementation and executing multi-threaded
|
||||
applications, in particular modern games, on top of this implementation.
|
||||
|
||||
Changes were tested for the following ABIs: x86_64, i386 and x32.
|
||||
Support for x32 applications is not implemented since it would
|
||||
take a major rework adding a new entry point and splitting the current
|
||||
futex 64 entry point in two and we can't change the current x32 syscall
|
||||
number without breaking user space compatibility.
|
||||
|
||||
CC: Steven Rostedt <rostedt@goodmis.org>
|
||||
Cc: Richard Yao <ryao@gentoo.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Co-developed-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
Co-developed-by: Steven Noonan <steven@valvesoftware.com>
|
||||
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
|
||||
Co-developed-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
|
||||
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
|
||||
Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
|
||||
[Added compatibility code]
|
||||
Co-developed-by: André Almeida <andrealmeid@collabora.com>
|
||||
Signed-off-by: André Almeida <andrealmeid@collabora.com>
|
||||
|
||||
Adjusted for v5.9: Removed `put_futex_key` calls.
|
||||
|
||||
From bf820ac8e4e4a42eec27be2aed28798dfda519ab Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
|
||||
Date: Fri, 7 Feb 2020 23:28:02 -0300
|
||||
Subject: [PATCH 2/2] futex: Add Proton compatibility code
|
||||
---
|
||||
include/uapi/linux/futex.h | 20 +++
|
||||
kernel/futex.c | 352 ++++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 370 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
|
||||
index a89eb0acc..a3e760886 100644
|
||||
--- a/include/uapi/linux/futex.h
|
||||
+++ b/include/uapi/linux/futex.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#define FUTEX_WAKE_BITSET 10
|
||||
#define FUTEX_WAIT_REQUEUE_PI 11
|
||||
#define FUTEX_CMP_REQUEUE_PI 12
|
||||
+#define FUTEX_WAIT_MULTIPLE 31
|
||||
|
||||
#define FUTEX_PRIVATE_FLAG 128
|
||||
#define FUTEX_CLOCK_REALTIME 256
|
||||
@@ -40,6 +41,8 @@
|
||||
FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \
|
||||
FUTEX_PRIVATE_FLAG)
|
||||
+#define FUTEX_WAIT_MULTIPLE_PRIVATE (FUTEX_WAIT_MULTIPLE | \
|
||||
+ FUTEX_PRIVATE_FLAG)
|
||||
|
||||
/*
|
||||
* Support for robust futexes: the kernel cleans up held futexes at
|
||||
@@ -150,4 +153,21 @@ struct robust_list_head {
|
||||
(((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
|
||||
| ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
|
||||
|
||||
+/*
|
||||
+ * Maximum number of multiple futexes to wait for
|
||||
+ */
|
||||
+#define FUTEX_MULTIPLE_MAX_COUNT 128
|
||||
+
|
||||
+/**
|
||||
+ * struct futex_wait_block - Block of futexes to be waited for
|
||||
+ * @uaddr: User address of the futex
|
||||
+ * @val: Futex value expected by userspace
|
||||
+ * @bitset: Bitset for the optional bitmasked wakeup
|
||||
+ */
|
||||
+struct futex_wait_block {
|
||||
+ __u32 __user *uaddr;
|
||||
+ __u32 val;
|
||||
+ __u32 bitset;
|
||||
+};
|
||||
+
|
||||
#endif /* _UAPI_LINUX_FUTEX_H */
|
||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
||||
index 00259c7e2..6cbbf06c9 100644
|
||||
--- a/kernel/futex.c
|
||||
+++ b/kernel/futex.c
|
||||
@@ -198,6 +198,8 @@ struct futex_pi_state {
|
||||
* @rt_waiter: rt_waiter storage for use with requeue_pi
|
||||
* @requeue_pi_key: the requeue_pi target futex key
|
||||
* @bitset: bitset for the optional bitmasked wakeup
|
||||
+ * @uaddr: userspace address of futex
|
||||
+ * @uval: expected futex's value
|
||||
*
|
||||
* We use this hashed waitqueue, instead of a normal wait_queue_entry_t, so
|
||||
* we can wake only the relevant ones (hashed queues may be shared).
|
||||
@@ -220,6 +222,8 @@ struct futex_q {
|
||||
struct rt_mutex_waiter *rt_waiter;
|
||||
union futex_key *requeue_pi_key;
|
||||
u32 bitset;
|
||||
+ u32 __user *uaddr;
|
||||
+ u32 uval;
|
||||
} __randomize_layout;
|
||||
|
||||
static const struct futex_q futex_q_init = {
|
||||
@@ -2308,6 +2312,29 @@ static int unqueue_me(struct futex_q *q)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * unqueue_multiple() - Remove several futexes from their futex_hash_bucket
|
||||
+ * @q: The list of futexes to unqueue
|
||||
+ * @count: Number of futexes in the list
|
||||
+ *
|
||||
+ * Helper to unqueue a list of futexes. This can't fail.
|
||||
+ *
|
||||
+ * Return:
|
||||
+ * - >=0 - Index of the last futex that was awoken;
|
||||
+ * - -1 - If no futex was awoken
|
||||
+ */
|
||||
+static int unqueue_multiple(struct futex_q *q, int count)
|
||||
+{
|
||||
+ int ret = -1;
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ if (!unqueue_me(&q[i]))
|
||||
+ ret = i;
|
||||
+ }
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* PI futexes can not be requeued and must remove themself from the
|
||||
* hash bucket. The hash bucket lock (i.e. lock_ptr) is held on entry
|
||||
@@ -2678,6 +2705,205 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * futex_wait_multiple_setup() - Prepare to wait and enqueue multiple futexes
|
||||
+ * @qs: The corresponding futex list
|
||||
+ * @count: The size of the lists
|
||||
+ * @flags: Futex flags (FLAGS_SHARED, etc.)
|
||||
+ * @awaken: Index of the last awoken futex
|
||||
+ *
|
||||
+ * Prepare multiple futexes in a single step and enqueue them. This may fail if
|
||||
+ * the futex list is invalid or if any futex was already awoken. On success the
|
||||
+ * task is ready to interruptible sleep.
|
||||
+ *
|
||||
+ * Return:
|
||||
+ * - 1 - One of the futexes was awaken by another thread
|
||||
+ * - 0 - Success
|
||||
+ * - <0 - -EFAULT, -EWOULDBLOCK or -EINVAL
|
||||
+ */
|
||||
+static int futex_wait_multiple_setup(struct futex_q *qs, int count,
|
||||
+ unsigned int flags, int *awaken)
|
||||
+{
|
||||
+ struct futex_hash_bucket *hb;
|
||||
+ int ret, i;
|
||||
+ u32 uval;
|
||||
+
|
||||
+ /*
|
||||
+ * Enqueuing multiple futexes is tricky, because we need to
|
||||
+ * enqueue each futex in the list before dealing with the next
|
||||
+ * one to avoid deadlocking on the hash bucket. But, before
|
||||
+ * enqueuing, we need to make sure that current->state is
|
||||
+ * TASK_INTERRUPTIBLE, so we don't absorb any awake events, which
|
||||
+ * cannot be done before the get_futex_key of the next key,
|
||||
+ * because it calls get_user_pages, which can sleep. Thus, we
|
||||
+ * fetch the list of futexes keys in two steps, by first pinning
|
||||
+ * all the memory keys in the futex key, and only then we read
|
||||
+ * each key and queue the corresponding futex.
|
||||
+ */
|
||||
+retry:
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ qs[i].key = FUTEX_KEY_INIT;
|
||||
+ ret = get_futex_key(qs[i].uaddr, flags & FLAGS_SHARED,
|
||||
+ &qs[i].key, FUTEX_READ);
|
||||
+ if (unlikely(ret)) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ set_current_state(TASK_INTERRUPTIBLE);
|
||||
+
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ struct futex_q *q = &qs[i];
|
||||
+
|
||||
+ hb = queue_lock(q);
|
||||
+
|
||||
+ ret = get_futex_value_locked(&uval, q->uaddr);
|
||||
+ if (ret) {
|
||||
+ /*
|
||||
+ * We need to try to handle the fault, which
|
||||
+ * cannot be done without sleep, so we need to
|
||||
+ * undo all the work already done, to make sure
|
||||
+ * we don't miss any wake ups. Therefore, clean
|
||||
+ * up, handle the fault and retry from the
|
||||
+ * beginning.
|
||||
+ */
|
||||
+ queue_unlock(hb);
|
||||
+
|
||||
+ /*
|
||||
+ * Keys 0..(i-1) are implicitly put
|
||||
+ * on unqueue_multiple.
|
||||
+ */
|
||||
+ *awaken = unqueue_multiple(qs, i);
|
||||
+
|
||||
+ __set_current_state(TASK_RUNNING);
|
||||
+
|
||||
+ /*
|
||||
+ * On a real fault, prioritize the error even if
|
||||
+ * some other futex was awoken. Userspace gave
|
||||
+ * us a bad address, -EFAULT them.
|
||||
+ */
|
||||
+ ret = get_user(uval, q->uaddr);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /*
|
||||
+ * Even if the page fault was handled, If
|
||||
+ * something was already awaken, we can safely
|
||||
+ * give up and succeed to give a hint for userspace to
|
||||
+ * acquire the right futex faster.
|
||||
+ */
|
||||
+ if (*awaken >= 0)
|
||||
+ return 1;
|
||||
+
|
||||
+ goto retry;
|
||||
+ }
|
||||
+
|
||||
+ if (uval != q->uval) {
|
||||
+ queue_unlock(hb);
|
||||
+
|
||||
+ /*
|
||||
+ * If something was already awaken, we can
|
||||
+ * safely ignore the error and succeed.
|
||||
+ */
|
||||
+ *awaken = unqueue_multiple(qs, i);
|
||||
+ __set_current_state(TASK_RUNNING);
|
||||
+ if (*awaken >= 0)
|
||||
+ return 1;
|
||||
+
|
||||
+ return -EWOULDBLOCK;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * The bucket lock can't be held while dealing with the
|
||||
+ * next futex. Queue each futex at this moment so hb can
|
||||
+ * be unlocked.
|
||||
+ */
|
||||
+ queue_me(&qs[i], hb);
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * futex_wait_multiple() - Prepare to wait on and enqueue several futexes
|
||||
+ * @qs: The list of futexes to wait on
|
||||
+ * @op: Operation code from futex's syscall
|
||||
+ * @count: The number of objects
|
||||
+ * @abs_time: Timeout before giving up and returning to userspace
|
||||
+ *
|
||||
+ * Entry point for the FUTEX_WAIT_MULTIPLE futex operation, this function
|
||||
+ * sleeps on a group of futexes and returns on the first futex that
|
||||
+ * triggered, or after the timeout has elapsed.
|
||||
+ *
|
||||
+ * Return:
|
||||
+ * - >=0 - Hint to the futex that was awoken
|
||||
+ * - <0 - On error
|
||||
+ */
|
||||
+static int futex_wait_multiple(struct futex_q *qs, int op,
|
||||
+ u32 count, ktime_t *abs_time)
|
||||
+{
|
||||
+ struct hrtimer_sleeper timeout, *to;
|
||||
+ int ret, flags = 0, hint = 0;
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ if (!(op & FUTEX_PRIVATE_FLAG))
|
||||
+ flags |= FLAGS_SHARED;
|
||||
+
|
||||
+ if (op & FUTEX_CLOCK_REALTIME)
|
||||
+ flags |= FLAGS_CLOCKRT;
|
||||
+
|
||||
+ to = futex_setup_timer(abs_time, &timeout, flags, 0);
|
||||
+ while (1) {
|
||||
+ ret = futex_wait_multiple_setup(qs, count, flags, &hint);
|
||||
+ if (ret) {
|
||||
+ if (ret > 0) {
|
||||
+ /* A futex was awaken during setup */
|
||||
+ ret = hint;
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (to)
|
||||
+ hrtimer_start_expires(&to->timer, HRTIMER_MODE_ABS);
|
||||
+
|
||||
+ /*
|
||||
+ * Avoid sleeping if another thread already tried to
|
||||
+ * wake us.
|
||||
+ */
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ if (plist_node_empty(&qs[i].list))
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (i == count && (!to || to->task))
|
||||
+ freezable_schedule();
|
||||
+
|
||||
+ ret = unqueue_multiple(qs, count);
|
||||
+
|
||||
+ __set_current_state(TASK_RUNNING);
|
||||
+
|
||||
+ if (ret >= 0)
|
||||
+ break;
|
||||
+ if (to && !to->task) {
|
||||
+ ret = -ETIMEDOUT;
|
||||
+ break;
|
||||
+ } else if (signal_pending(current)) {
|
||||
+ ret = -ERESTARTSYS;
|
||||
+ break;
|
||||
+ }
|
||||
+ /*
|
||||
+ * The final case is a spurious wakeup, for
|
||||
+ * which just retry.
|
||||
+ */
|
||||
+ }
|
||||
+
|
||||
+ if (to) {
|
||||
+ hrtimer_cancel(&to->timer);
|
||||
+ destroy_hrtimer_on_stack(&to->timer);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
|
||||
ktime_t *abs_time, u32 bitset)
|
||||
{
|
||||
@@ -3790,6 +4016,43 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * futex_read_wait_block - Read an array of futex_wait_block from userspace
|
||||
+ * @uaddr: Userspace address of the block
|
||||
+ * @count: Number of blocks to be read
|
||||
+ *
|
||||
+ * This function creates and allocate an array of futex_q (we zero it to
|
||||
+ * initialize the fields) and then, for each futex_wait_block element from
|
||||
+ * userspace, fill a futex_q element with proper values.
|
||||
+ */
|
||||
+inline struct futex_q *futex_read_wait_block(u32 __user *uaddr, u32 count)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ struct futex_q *qs;
|
||||
+ struct futex_wait_block fwb;
|
||||
+ struct futex_wait_block __user *entry =
|
||||
+ (struct futex_wait_block __user *)uaddr;
|
||||
+
|
||||
+ if (!count || count > FUTEX_MULTIPLE_MAX_COUNT)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
+
|
||||
+ qs = kcalloc(count, sizeof(*qs), GFP_KERNEL);
|
||||
+ if (!qs)
|
||||
+ return ERR_PTR(-ENOMEM);
|
||||
+
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ if (copy_from_user(&fwb, &entry[i], sizeof(fwb))) {
|
||||
+ kfree(qs);
|
||||
+ return ERR_PTR(-EFAULT);
|
||||
+ }
|
||||
+
|
||||
+ qs[i].uaddr = fwb.uaddr;
|
||||
+ qs[i].uval = fwb.val;
|
||||
+ qs[i].bitset = fwb.bitset;
|
||||
+ }
|
||||
+
|
||||
+ return qs;
|
||||
+}
|
||||
|
||||
SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||
struct __kernel_timespec __user *, utime, u32 __user *, uaddr2,
|
||||
@@ -3802,7 +4065,8 @@ SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||
|
||||
if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI ||
|
||||
cmd == FUTEX_WAIT_BITSET ||
|
||||
- cmd == FUTEX_WAIT_REQUEUE_PI)) {
|
||||
+ cmd == FUTEX_WAIT_REQUEUE_PI ||
|
||||
+ cmd == FUTEX_WAIT_MULTIPLE)) {
|
||||
if (unlikely(should_fail_futex(!(op & FUTEX_PRIVATE_FLAG))))
|
||||
return -EFAULT;
|
||||
if (get_timespec64(&ts, utime))
|
||||
@@ -3811,7 +4075,7 @@ SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||
return -EINVAL;
|
||||
|
||||
t = timespec64_to_ktime(ts);
|
||||
- if (cmd == FUTEX_WAIT)
|
||||
+ if (cmd == FUTEX_WAIT || cmd == FUTEX_WAIT_MULTIPLE)
|
||||
t = ktime_add_safe(ktime_get(), t);
|
||||
else if (!(op & FUTEX_CLOCK_REALTIME))
|
||||
t = timens_ktime_to_host(CLOCK_MONOTONIC, t);
|
||||
@@ -3825,6 +4089,25 @@ SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||
cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP)
|
||||
val2 = (u32) (unsigned long) utime;
|
||||
|
||||
+ if (cmd == FUTEX_WAIT_MULTIPLE) {
|
||||
+ int ret;
|
||||
+ struct futex_q *qs;
|
||||
+
|
||||
+#ifdef CONFIG_X86_X32
|
||||
+ if (unlikely(in_x32_syscall()))
|
||||
+ return -ENOSYS;
|
||||
+#endif
|
||||
+ qs = futex_read_wait_block(uaddr, val);
|
||||
+
|
||||
+ if (IS_ERR(qs))
|
||||
+ return PTR_ERR(qs);
|
||||
+
|
||||
+ ret = futex_wait_multiple(qs, op, val, tp);
|
||||
+ kfree(qs);
|
||||
+
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
return do_futex(uaddr, op, val, tp, uaddr2, val2, val3);
|
||||
}
|
||||
|
||||
@@ -3987,6 +4270,58 @@ COMPAT_SYSCALL_DEFINE3(get_robust_list, int, pid,
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
||||
+/**
|
||||
+ * struct compat_futex_wait_block - Block of futexes to be waited for
|
||||
+ * @uaddr: User address of the futex (compatible pointer)
|
||||
+ * @val: Futex value expected by userspace
|
||||
+ * @bitset: Bitset for the optional bitmasked wakeup
|
||||
+ */
|
||||
+struct compat_futex_wait_block {
|
||||
+ compat_uptr_t uaddr;
|
||||
+ __u32 pad;
|
||||
+ __u32 val;
|
||||
+ __u32 bitset;
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * compat_futex_read_wait_block - Read an array of futex_wait_block from
|
||||
+ * userspace
|
||||
+ * @uaddr: Userspace address of the block
|
||||
+ * @count: Number of blocks to be read
|
||||
+ *
|
||||
+ * This function does the same as futex_read_wait_block(), except that it
|
||||
+ * converts the pointer to the futex from the compat version to the regular one.
|
||||
+ */
|
||||
+inline struct futex_q *compat_futex_read_wait_block(u32 __user *uaddr,
|
||||
+ u32 count)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+ struct futex_q *qs;
|
||||
+ struct compat_futex_wait_block fwb;
|
||||
+ struct compat_futex_wait_block __user *entry =
|
||||
+ (struct compat_futex_wait_block __user *)uaddr;
|
||||
+
|
||||
+ if (!count || count > FUTEX_MULTIPLE_MAX_COUNT)
|
||||
+ return ERR_PTR(-EINVAL);
|
||||
+
|
||||
+ qs = kcalloc(count, sizeof(*qs), GFP_KERNEL);
|
||||
+ if (!qs)
|
||||
+ return ERR_PTR(-ENOMEM);
|
||||
+
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ if (copy_from_user(&fwb, &entry[i], sizeof(fwb))) {
|
||||
+ kfree(qs);
|
||||
+ return ERR_PTR(-EFAULT);
|
||||
+ }
|
||||
+
|
||||
+ qs[i].uaddr = compat_ptr(fwb.uaddr);
|
||||
+ qs[i].uval = fwb.val;
|
||||
+ qs[i].bitset = fwb.bitset;
|
||||
+ }
|
||||
+
|
||||
+ return qs;
|
||||
+}
|
||||
+
|
||||
SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
|
||||
struct old_timespec32 __user *, utime, u32 __user *, uaddr2,
|
||||
u32, val3)
|
||||
@@ -3998,14 +4333,15 @@ SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
|
||||
|
||||
if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI ||
|
||||
cmd == FUTEX_WAIT_BITSET ||
|
||||
- cmd == FUTEX_WAIT_REQUEUE_PI)) {
|
||||
+ cmd == FUTEX_WAIT_REQUEUE_PI ||
|
||||
+ cmd == FUTEX_WAIT_MULTIPLE)) {
|
||||
if (get_old_timespec32(&ts, utime))
|
||||
return -EFAULT;
|
||||
if (!timespec64_valid(&ts))
|
||||
return -EINVAL;
|
||||
|
||||
t = timespec64_to_ktime(ts);
|
||||
- if (cmd == FUTEX_WAIT)
|
||||
+ if (cmd == FUTEX_WAIT || cmd == FUTEX_WAIT_MULTIPLE)
|
||||
t = ktime_add_safe(ktime_get(), t);
|
||||
else if (!(op & FUTEX_CLOCK_REALTIME))
|
||||
t = timens_ktime_to_host(CLOCK_MONOTONIC, t);
|
||||
@@ -4015,6 +4351,19 @@ SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
|
||||
cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP)
|
||||
val2 = (int) (unsigned long) utime;
|
||||
|
||||
+ if (cmd == FUTEX_WAIT_MULTIPLE) {
|
||||
+ int ret;
|
||||
+ struct futex_q *qs = compat_futex_read_wait_block(uaddr, val);
|
||||
+
|
||||
+ if (IS_ERR(qs))
|
||||
+ return PTR_ERR(qs);
|
||||
+
|
||||
+ ret = futex_wait_multiple(qs, op, val, tp);
|
||||
+ kfree(qs);
|
||||
+
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
return do_futex(uaddr, op, val, tp, uaddr2, val2, val3);
|
||||
}
|
||||
#endif /* CONFIG_COMPAT_32BIT_TIME */
|
@ -1,74 +0,0 @@
|
||||
# Calculate format=diff
|
||||
From 7fdea2366b0c549f929fca64eb8a33c626c99e3c Mon Sep 17 00:00:00 2001
|
||||
From: Piotr Gorski <lucjan.lucjanov@gmail.com>
|
||||
Date: Wed, 5 Aug 2020 16:41:38 -0800
|
||||
Subject: [PATCH] init: add support for zstd compressed modules
|
||||
|
||||
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
|
||||
---
|
||||
Makefile | 7 +++++--
|
||||
init/Kconfig | 9 ++++++---
|
||||
2 files changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 2fce782..a87dbc8 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1050,8 +1050,8 @@ endif # INSTALL_MOD_STRIP
|
||||
export mod_strip_cmd
|
||||
|
||||
# CONFIG_MODULE_COMPRESS, if defined, will cause module to be compressed
|
||||
-# after they are installed in agreement with CONFIG_MODULE_COMPRESS_GZIP
|
||||
-# or CONFIG_MODULE_COMPRESS_XZ.
|
||||
+# after they are installed in agreement with CONFIG_MODULE_COMPRESS_GZIP,
|
||||
+# CONFIG_MODULE_COMPRESS_XZ, or CONFIG_MODULE_COMPRESS_ZSTD.
|
||||
|
||||
mod_compress_cmd = true
|
||||
ifdef CONFIG_MODULE_COMPRESS
|
||||
@@ -1061,6 +1061,9 @@ ifdef CONFIG_MODULE_COMPRESS
|
||||
ifdef CONFIG_MODULE_COMPRESS_XZ
|
||||
mod_compress_cmd = $(XZ) -f
|
||||
endif # CONFIG_MODULE_COMPRESS_XZ
|
||||
+ ifdef CONFIG_MODULE_COMPRESS_ZSTD
|
||||
+ mod_compress_cmd = $(ZSTD) -T0 -20 --ultra --rm -f
|
||||
+ endif # CONFIG_MODULE_COMPRESS_ZSTD
|
||||
endif # CONFIG_MODULE_COMPRESS
|
||||
export mod_compress_cmd
|
||||
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index c4de917..a17590c 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -2277,8 +2277,8 @@ config MODULE_COMPRESS
|
||||
bool "Compress modules on installation"
|
||||
help
|
||||
|
||||
- Compresses kernel modules when 'make modules_install' is run; gzip or
|
||||
- xz depending on "Compression algorithm" below.
|
||||
+ Compresses kernel modules when 'make modules_install' is run; gzip,
|
||||
+ xz, or zstd depending on "Compression algorithm" below.
|
||||
|
||||
module-init-tools MAY support gzip, and kmod MAY support gzip and xz.
|
||||
|
||||
@@ -2300,7 +2300,7 @@ choice
|
||||
This determines which sort of compression will be used during
|
||||
'make modules_install'.
|
||||
|
||||
- GZIP (default) and XZ are supported.
|
||||
+ GZIP (default), XZ, and ZSTD are supported.
|
||||
|
||||
config MODULE_COMPRESS_GZIP
|
||||
bool "GZIP"
|
||||
@@ -2308,6 +2308,9 @@ config MODULE_COMPRESS_GZIP
|
||||
config MODULE_COMPRESS_XZ
|
||||
bool "XZ"
|
||||
|
||||
+config MODULE_COMPRESS_ZSTD
|
||||
+ bool "ZSTD"
|
||||
+
|
||||
endchoice
|
||||
|
||||
config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
|
||||
--
|
||||
2.29.2.456.g3a0b884cab
|
||||
|
@ -1 +0,0 @@
|
||||
# Calculate append=skip merge(sys-kernel/calculate-sources)=>5.15,5.16
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_DELL_RBU is not set
|
||||
# CONFIG_FW_LOADER_USER_HELPER is not set
|
||||
!CONFIG_FW_LOADER_USER_HELPER_FALLBACK=
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_I2C_HID_ACPI=y
|
@ -1,8 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_I2C_HID_CORE=y
|
||||
# CONFIG_L2TP_DEBUGFS is not set
|
||||
CONFIG_L2TP_ETH=m
|
||||
CONFIG_L2TP_IP=m
|
||||
CONFIG_L2TP=m
|
||||
CONFIG_L2TP_V3=y
|
||||
CONFIG_PPPOL2TP=m
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_ARCH_USE_MEMREMAP_PROT=y
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_DRM_QXL=m
|
@ -1,30 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
|
||||
# CONFIG_EVM is not set
|
||||
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
|
||||
# CONFIG_IMA is not set
|
||||
CONFIG_INTEGRITY_AUDIT=y
|
||||
# CONFIG_INTEGRITY_SIGNATURE is not set
|
||||
CONFIG_INTEGRITY=y
|
||||
# CONFIG_IP6_NF_SECURITY is not set
|
||||
# CONFIG_IP_NF_SECURITY is not set
|
||||
# CONFIG_NETLABEL is not set
|
||||
# CONFIG_NFSD_V4_SECURITY_LABEL is not set
|
||||
CONFIG_NFS_V4_SECURITY_LABEL=y
|
||||
# CONFIG_SECURITY_APPARMOR_DEBUG is not set
|
||||
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
|
||||
CONFIG_SECURITY_APPARMOR_HASH=y
|
||||
CONFIG_SECURITY_APPARMOR=y
|
||||
CONFIG_SECURITYFS=y
|
||||
# CONFIG_SECURITY_LANDLOCK is not set
|
||||
# CONFIG_SECURITY_LOADPIN is not set
|
||||
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
CONFIG_SECURITY_PATH=y
|
||||
# CONFIG_SECURITY_SAFESETID is not set
|
||||
# CONFIG_SECURITY_SELINUX is not set
|
||||
# CONFIG_SECURITY_SMACK is not set
|
||||
# CONFIG_SECURITY_TOMOYO is not set
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_SECURITY_YAMA is not set
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
@ -1,2 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
|
@ -1,6 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_BLAKE2S_X86=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
!CONFIG_CRYPTO_BLAKE2S=
|
||||
!CONFIG_CRYPTO_LIB_BLAKE2S=
|
@ -1,4 +0,0 @@
|
||||
# Calculate format=kernel name=.config
|
||||
CONFIG_CRYPTO_DH=y
|
||||
CONFIG_CRYPTO_KPP=y
|
||||
CONFIG_KEY_DH_OPERATIONS=y
|
@ -1,14 +0,0 @@
|
||||
# Calculate format=kernel name=.config merge(sys-kernel/calculate-sources[-desktop])!=
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
# CONFIG_INPUT_JOYSTICK is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
# CONFIG_MEDIA_SUPPORT is not set
|
||||
# CONFIG_PREEMPT is not set
|
||||
# CONFIG_RC_CORE is not set
|
||||
# CONFIG_SOUND is not set
|
||||
# CONFIG_USB_GADGET is not set
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,24 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=7
|
||||
ETYPE="sources"
|
||||
|
||||
inherit calculate-kernel-8
|
||||
|
||||
DESCRIPTION="Calculate Linux kernel image"
|
||||
KEYWORDS="~amd64"
|
||||
HOMEPAGE="https://www.calculate-linux.org/"
|
||||
|
||||
SRC_URI="${KERNEL_URI} ${ARCH_URI}"
|
||||
|
||||
IUSE=""
|
||||
|
||||
src_unpack() {
|
||||
calculate-kernel-8_src_unpack
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
calculate-kernel-8_pkg_postinst
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=7
|
||||
ETYPE="sources"
|
||||
|
||||
inherit calculate-kernel-8
|
||||
|
||||
DESCRIPTION="Calculate Linux kernel image"
|
||||
KEYWORDS="~amd64"
|
||||
HOMEPAGE="https://www.calculate-linux.org/"
|
||||
|
||||
SRC_URI="${KERNEL_URI} ${ARCH_URI}"
|
||||
|
||||
IUSE=""
|
||||
|
||||
src_unpack() {
|
||||
calculate-kernel-8_src_unpack
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
calculate-kernel-8_pkg_postinst
|
||||
}
|
Loading…
Reference in new issue