KEXEC_VERIFY_SIG all=n
KVM_AMD_SEV all=y
KVM_DEBUG_FS all=n
+LOCK_EVENT_COUNTS all=n
+MICROCODE_OLD_INTERFACE all=n
PERF_EVENTS_AMD_POWER all=m
PERF_EVENTS_INTEL_CSTATE all=m
PERF_EVENTS_INTEL_RAPL all=m
#- *** FILE: block/Kconfig ***
#-
BLOCK all=y
-LBDAF i386=y ppc=y sparc=y sparc64=
BLK_DEV_BSG all=y
BLK_DEV_BSGLIB all=y
BLK_DEV_INTEGRITY all=y
CRYPTO_BLKCIPHER all=y
CRYPTO_HASH all=y
CRYPTO_AKCIPHER all=y
-CRYPTO_RSA all=y
-CRYPTO_DH all=y
-CRYPTO_ECDH all=m
CRYPTO_MANAGER all=y
CRYPTO_USER all=m
CRYPTO_MANAGER_DISABLE_TESTS all=y
CRYPTO_CRYPTD all=m
CRYPTO_AUTHENC all=m
CRYPTO_TEST all=m
+#- Public-key cryptography
+CRYPTO_RSA all=y
+CRYPTO_DH all=y
+CRYPTO_ECDH all=m
+CRYPTO_ECRDSA all=m
#- Authenticated Encryption with Associated Data
CRYPTO_CCM all=m
CRYPTO_GCM all=m
ACPI_CUSTOM_METHOD all=m
ACPI_BGRT all=y
#- file drivers/acpi/nfit/Kconfig goes here
+#- file drivers/acpi/hmat/Kconfig goes here
#- file drivers/acpi/apei/Kconfig goes here
#- file drivers/acpi/dptf/Kconfig goes here
ACPI_EXTLOG all=m
#-
DPTF_POWER all=m
+#-
+#- *** FILE: drivers/acpi/hmat/Kconfig ***
+#-
+ACPI_HMAT all=y
+
#-
#- *** FILE: drivers/acpi/nfit/Kconfig ***
#-
BT_MRVL_SDIO all=m
BT_ATH3K all=m
BT_WILINK all=m
+BT_MTKSDIO all=m
BT_MTKUART all=m
#-
COMMON_CLK_PWM all=m
COMMON_CLK_OXNAS all=n
#- file drivers/clk/actions/Kconfig goes here
+#- file drivers/clk/analogbits/Kconfig goes here
#- file drivers/clk/bcm/Kconfig goes here
#- file drivers/clk/hisilicon/Kconfig goes here
#- file drivers/clk/imgtec/Kconfig goes here
#- file drivers/clk/qcom/Kconfig goes here
#- file drivers/clk/renesas/Kconfig goes here
#- file drivers/clk/samsung/Kconfig goes here
+#- file drivers/clk/sifive/Kconfig goes here
#- file drivers/clk/sprd/Kconfig goes here
+#- file drivers/clk/sunxi/Kconfig goes here
#- file drivers/clk/sunxi-ng/Kconfig goes here
#- file drivers/clk/tegra/Kconfig goes here
#- file drivers/clk/ti/Kconfig goes here
CONNECTOR all=y
PROC_EVENTS all=y
+#-
+#- *** FILE: drivers/counter/Kconfig ***
+#-
+COUNTER all=m
+104_QUAD_8 all=m
+
#-
#- *** FILE: drivers/cpufreq/Kconfig ***
#-
ISCSI_IBFT all=m
FW_CFG_SYSFS all=m
FW_CFG_SYSFS_CMDLINE all=y
+#- file drivers/firmware/psci/Kconfig goes here
#- file drivers/firmware/broadcom/Kconfig goes here
#- file drivers/firmware/google/Kconfig goes here
#- file drivers/firmware/efi/Kconfig goes here
GPIO_LYNXPOINT all=y
GPIO_MB86S7X all=m
GPIO_MENZ127 all=m
-GPIO_MOCKUP all=m
GPIO_SIOX all=m
GPIO_STA2X11 all=y
GPIO_VX855 all=m
GPIO_PISOSR all=m
GPIO_XRA1403 all=m
GPIO_VIPERBOARD all=m
+GPIO_MOCKUP all=m
#-
#- *** FILE: drivers/gpu/drm/Kconfig ***
#- file drivers/gpu/drm/radeon/Kconfig goes here
DRM_AMDGPU all=m
#- file drivers/gpu/drm/amd/amdgpu/Kconfig goes here
-#- file drivers/gpu/drm/amd/lib/Kconfig goes here
#- file drivers/gpu/drm/nouveau/Kconfig goes here
#- file drivers/gpu/drm/i915/Kconfig goes here
DRM_VGEM all=m
#- file drivers/gpu/drm/pl111/Kconfig goes here
#- file drivers/gpu/drm/tve200/Kconfig goes here
#- file drivers/gpu/drm/xen/Kconfig goes here
+#- file drivers/gpu/drm/vboxvideo/Kconfig goes here
+#- file drivers/gpu/drm/lima/Kconfig goes here
+#- file drivers/gpu/drm/panfrost/Kconfig goes here
+#- file drivers/gpu/drm/aspeed/Kconfig goes here
DRM_LEGACY all=n
DRM_TDFX all=m
DRM_R128 all=m
DRM_AMD_DC_DCN1_0 all=y
DEBUG_KERNEL_DC all=n
-#-
-#- *** FILE: drivers/gpu/drm/amd/lib/Kconfig ***
-#-
-CHASH_STATS all=n
-CHASH_SELFTEST all=n
-
#-
#- *** FILE: drivers/gpu/drm/ast/Kconfig ***
#-
#- *** FILE: drivers/gpu/drm/nouveau/Kconfig ***
#-
DRM_NOUVEAU all=m
+NOUVEAU_LEGACY_CTX_SUPPORT all=y
NOUVEAU_DEBUG all=5
NOUVEAU_DEBUG_DEFAULT all=3
NOUVEAU_DEBUG_MMU all=n
DRM_NOUVEAU_BACKLIGHT all=y
DRM_NOUVEAU_SVM all=y
-NOUVEAU_LEGACY_CTX_SUPPORT all=y
#-
#- *** FILE: drivers/gpu/drm/panel/Kconfig ***
#-
DRM_UDL all=m
+#-
+#- *** FILE: drivers/gpu/drm/vboxvideo/Kconfig ***
+#-
+DRM_VBOXVIDEO all=m
+
#-
#- *** FILE: drivers/gpu/drm/virtio/Kconfig ***
#-
HID_CHICONY all=m
HID_CORSAIR all=m
HID_COUGAR all=m
+HID_MACALLY all=m
HID_PRODIKEYS all=m
HID_CMEDIA all=m
HID_CP2112 all=m
HID_THRUSTMASTER all=m
THRUSTMASTER_FF all=y
HID_UDRAW_PS3 all=m
+HID_U2FZERO all=m
HID_WACOM all=m
HID_WIIMOTE all=m
HID_XINMO all=m
#- *** FILE: drivers/hid/intel-ish-hid/Kconfig ***
#-
INTEL_ISH_HID all=m
+INTEL_ISH_FIRMWARE_DOWNLOADER all=m
#-
#- *** FILE: drivers/hid/usbhid/Kconfig ***
SENSORS_ADM1275 all=m
SENSORS_IBM_CFFPS all=m
SENSORS_IR35221 all=m
+SENSORS_IR38064 all=m
+SENSORS_ISL68137 all=m
SENSORS_LM25066 all=m
SENSORS_LTC2978 all=m
SENSORS_LTC2978_REGULATOR all=y
I2C_AMD756 all=m sparc=n
I2C_AMD756_S4882 all=m sparc=
I2C_AMD8111 all=m
+I2C_AMD_MP2 all=m
I2C_I801 all=m
I2C_ISCH all=m
I2C_ISMT all=m
#- file drivers/iio/amplifiers/Kconfig goes here
#- file drivers/iio/chemical/Kconfig goes here
#- file drivers/iio/common/Kconfig goes here
-#- file drivers/iio/counter/Kconfig goes here
#- file drivers/iio/dac/Kconfig goes here
#- file drivers/iio/dummy/Kconfig goes here
#- file drivers/iio/frequency/Kconfig goes here
AD7606_IFACE_SPI all=m
AD7766 all=m
AD7768_1 all=m
+AD7780 all=m
AD7791 all=m
AD7793 all=m
AD7887 all=m
IIO_SSP_SENSORS_COMMONS all=m
IIO_SSP_SENSORHUB all=m
-#-
-#- *** FILE: drivers/iio/counter/Kconfig ***
-#-
-104_QUAD_8 all=m
-
#-
#- *** FILE: drivers/iio/dac/Kconfig ***
#-
ADIS16260 all=m
ADXRS450 all=m
BMG160 all=m
+FXAS21002C all=m
HID_SENSOR_GYRO_3D all=m
MPU3050_I2C all=m
IIO_ST_GYRO_3AXIS all=m
AS3935 all=m
ISL29501 all=m
LIDAR_LITE_V2 all=m
+MB1232 all=m
RFD77402 all=m
SRF04 all=m
SX9500 all=m
TMP007 all=m
TSYS01 all=m
TSYS02D all=m
+MAX31856 all=m
#-
#- *** FILE: drivers/iio/trigger/Kconfig ***
#- file drivers/infiniband/hw/qib/Kconfig goes here
#- file drivers/infiniband/hw/cxgb3/Kconfig goes here
#- file drivers/infiniband/hw/cxgb4/Kconfig goes here
+#- file drivers/infiniband/hw/efa/Kconfig goes here
#- file drivers/infiniband/hw/i40iw/Kconfig goes here
#- file drivers/infiniband/hw/mlx4/Kconfig goes here
#- file drivers/infiniband/hw/mlx5/Kconfig goes here
#-
INFINIBAND_CXGB4 all=m
+#-
+#- *** FILE: drivers/infiniband/hw/efa/Kconfig ***
+#-
+INFINIBAND_EFA all=m
+
#-
#- *** FILE: drivers/infiniband/hw/hfi1/Kconfig ***
#-
KEYBOARD_ADP5588 all=m
KEYBOARD_ADP5589 all=m
KEYBOARD_ATKBD all=y sparc=m sparc64=m
+KEYBOARD_QT1050 all=m
KEYBOARD_QT1070 all=m
KEYBOARD_QT2160 all=m
KEYBOARD_DLINK_DIR685 all=m
INPUT_GP2A all=m
INPUT_GPIO_BEEPER all=m
INPUT_GPIO_DECODER all=m
+INPUT_GPIO_VIBRA all=m
INPUT_WISTRON_BTNS i386=m
INPUT_ATLAS_BTNS i386=m x86_64=m
INPUT_ATI_REMOTE2 all=m sparc=n
TOUCHSCREEN_ZET6223 all=m
TOUCHSCREEN_ZFORCE all=m
TOUCHSCREEN_ROHM_BU21023 all=m
+TOUCHSCREEN_IQS5XX all=m
#-
#- *** FILE: drivers/interconnect/Kconfig ***
LEDS_APU all=m
LEDS_AS3645A all=m
LEDS_LM3530 all=m
+LEDS_LM3532 all=m
LEDS_LM3533 all=m
LEDS_LM3642 all=m
LEDS_LM3601X all=m
DM_MULTIPATH_QL all=m
DM_MULTIPATH_ST all=m
DM_DELAY all=m
+DM_DUST all=m
DM_UEVENT all=y
DM_FLAKEY all=m
DM_VERITY all=m
#- file drivers/media/i2c/m5mols/Kconfig goes here
#- file drivers/media/i2c/smiapp/Kconfig goes here
#- file drivers/media/i2c/et8ek8/Kconfig goes here
+#- Lens drivers
#- Flash devices
#- Video improvement chips
VIDEO_UPD64031A all=m
INTEL_MEI all=m
INTEL_MEI_ME all=m
INTEL_MEI_TXE all=m
+#- file drivers/misc/mei/hdcp/Kconfig goes here
+
+#-
+#- *** FILE: drivers/misc/mei/hdcp/Kconfig ***
+#-
INTEL_MEI_HDCP all=m
#-
#-
#- *** FILE: drivers/mtd/nand/raw/Kconfig ***
#-
-MTD_NAND_ECC_SMC all=y
-MTD_NAND all=m
-MTD_NAND_BCH all=m
-MTD_NAND_ECC_BCH all=y
+MTD_NAND_ECC_SW_HAMMING_SMC all=y
+MTD_RAW_NAND all=m
+MTD_NAND_ECC_SW_BCH all=y
+#- Raw/parallel NAND flash controllers
MTD_NAND_DENALI all=m
MTD_NAND_DENALI_PCI all=m
MTD_NAND_DENALI_DT all=m
-MTD_NAND_GPIO all=m
-MTD_NAND_RICOH all=m
-MTD_NAND_DISKONCHIP all=m
-MTD_NAND_DISKONCHIP_PROBE_ADVANCED all=n
-MTD_NAND_DISKONCHIP_PROBE_ADDRESS all=0
-MTD_NAND_DISKONCHIP_BBTWRITE all=y
MTD_NAND_CAFE all=m ppc=n ppc64=n sparc=n
MTD_NAND_CS553X i386=m
MTD_NAND_PASEMI ppc64=m
-MTD_NAND_NANDSIM all=m ppc=n ppc64=n sparc=n
-MTD_NAND_PLATFORM all=m sparc=n
MTD_NAND_OXNAS all=m
MTD_NAND_FSL_ELBC ppc=m ppc64=m
+#- file drivers/mtd/nand/raw/ingenic/Kconfig goes here
MTD_NAND_HISI504 all=m
MTD_NAND_MTK all=m
+MTD_NAND_GPIO all=m
+MTD_NAND_PLATFORM all=m sparc=n
+#- Misc
+MTD_NAND_NANDSIM all=m ppc=n ppc64=n sparc=n
+MTD_NAND_RICOH all=m
+MTD_NAND_DISKONCHIP all=m
+MTD_NAND_DISKONCHIP_PROBE_ADVANCED all=n
+MTD_NAND_DISKONCHIP_PROBE_ADDRESS all=0
+MTD_NAND_DISKONCHIP_BBTWRITE all=y
#-
#- *** FILE: drivers/mtd/nand/spi/Kconfig ***
NET_DSA_MV88E6060 all=m
#- file drivers/net/dsa/microchip/Kconfig goes here
#- file drivers/net/dsa/mv88e6xxx/Kconfig goes here
+#- file drivers/net/dsa/sja1105/Kconfig goes here
NET_DSA_QCA8K all=m
NET_DSA_REALTEK_SMI all=m
NET_DSA_SMSC_LAN9303_I2C all=m
NET_DSA_MV88E6XXX_GLOBAL2 all=y
NET_DSA_MV88E6XXX_PTP all=y
+#-
+#- *** FILE: drivers/net/dsa/sja1105/Kconfig ***
+#-
+NET_DSA_SJA1105 all=m
+
#-
#- *** FILE: drivers/net/ethernet/3com/Kconfig ***
#-
#-
NET_VENDOR_TI all=y
TI_CPSW_PHY_SEL all=n
-TI_CPSW_ALE all=m
TLAN all=m sparc=n
#-
#-
#- *** FILE: drivers/net/ethernet/xilinx/Kconfig ***
#-
+NET_VENDOR_XILINX all=y
XILINX_EMACLITE powerpc=m
+XILINX_LL_TEMAC all=m
#-
#- *** FILE: drivers/net/ethernet/xircom/Kconfig ***
SFP all=m
AMD_PHY all=m
AQUANTIA_PHY all=m
-ASIX_PHY all=m
+AX88796B_PHY all=m
AT803X_PHY all=m
BCM63XX_PHY all=m
BCM7XXX_PHY all=m
#-
MT7603E all=m
+#-
+#- *** FILE: drivers/net/wireless/mediatek/mt76/mt7615/Kconfig ***
+#-
+MT7615E all=m
+
#-
#- *** FILE: drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig ***
#-
#- file drivers/net/wireless/realtek/rtl818x/Kconfig goes here
#- file drivers/net/wireless/realtek/rtlwifi/Kconfig goes here
#- file drivers/net/wireless/realtek/rtl8xxxu/Kconfig goes here
+#- file drivers/net/wireless/realtek/rtw88/Kconfig goes here
#-
#- *** FILE: drivers/net/wireless/realtek/rtl818x/Kconfig ***
RTLWIFI_DEBUG all=n
RTL8192C_COMMON all=m
+#-
+#- *** FILE: drivers/net/wireless/realtek/rtw88/Kconfig ***
+#-
+RTW88 all=m
+RTW88_8822BE all=n
+RTW88_8822CE all=n
+
#-
#- *** FILE: drivers/net/wireless/rsi/Kconfig ***
#-
#- *** FILE: drivers/nvmem/Kconfig ***
#-
NVMEM all=y
+NVMEM_SYSFS all=y
RAVE_SP_EEPROM all=m
#-
CROS_EC_LIGHTBAR all=m
CROS_EC_DEBUGFS all=m
CROS_EC_SYSFS all=m
+CROS_USBPD_LOGGER all=m
#- file drivers/platform/chrome/wilco_ec/Kconfig goes here
#-
CHARGER_LP8727 all=m
CHARGER_GPIO all=m
CHARGER_MANAGER all=y
-CHARGER_LTC3651 all=m
+CHARGER_LT3651 all=m
CHARGER_MAX14577 all=m
CHARGER_MAX77693 all=m
CHARGER_BQ2415X all=m
#-
SGI_IOC3 ia64=m
+#-
+#- *** FILE: drivers/soc/ixp4xx/Kconfig ***
+#-
+IXP4XX_QMGR all=m
+IXP4XX_NPE all=m
+
#-
#- *** FILE: drivers/soc/ti/Kconfig ***
#-
#- file drivers/staging/rtl8723bs/Kconfig goes here
#- file drivers/staging/rtl8712/Kconfig goes here
#- file drivers/staging/rtl8188eu/Kconfig goes here
-#- file drivers/staging/rtlwifi/Kconfig goes here
#- file drivers/staging/rts5208/Kconfig goes here
#- file drivers/staging/octeon/Kconfig goes here
#- file drivers/staging/octeon-usb/Kconfig goes here
#- file drivers/staging/ks7010/Kconfig goes here
#- file drivers/staging/greybus/Kconfig goes here
#- file drivers/staging/vc04_services/Kconfig goes here
-#- file drivers/staging/vboxvideo/Kconfig goes here
#- file drivers/staging/pi433/Kconfig goes here
#- file drivers/staging/mt7621-pci/Kconfig goes here
#- file drivers/staging/mt7621-pci-phy/Kconfig goes here
#- file drivers/staging/mt7621-pinctrl/Kconfig goes here
-#- file drivers/staging/mt7621-spi/Kconfig goes here
#- file drivers/staging/mt7621-dma/Kconfig goes here
#- file drivers/staging/ralink-gdma/Kconfig goes here
-#- file drivers/staging/mt7621-mmc/Kconfig goes here
#- file drivers/staging/mt7621-dts/Kconfig goes here
#- file drivers/staging/gasket/Kconfig goes here
#- file drivers/staging/axis-fifo/Kconfig goes here
#- file drivers/staging/erofs/Kconfig goes here
+#- file drivers/staging/fieldbus/Kconfig goes here
+#- file drivers/staging/kpc2000/Kconfig goes here
#-
#- *** FILE: drivers/staging/axis-fifo/Kconfig ***
FB_FLEX all=m
FB_TFT_FBTFT_DEVICE all=m
+#-
+#- *** FILE: drivers/staging/fieldbus/Kconfig ***
+#-
+FIELDBUS_DEV all=m
+#- file drivers/staging/fieldbus/anybuss/Kconfig goes here
+
#-
#- *** FILE: drivers/staging/fwserial/Kconfig ***
#-
#-
#- *** FILE: drivers/staging/iio/adc/Kconfig ***
#-
-AD7780 all=m
AD7816 all=m
AD7192 all=m
AD7280 all=m
#-
AD2S1210 all=m
+#-
+#- *** FILE: drivers/staging/kpc2000/Kconfig ***
+#-
+KPC2000 all=n
+
#-
#- *** FILE: drivers/staging/ks7010/Kconfig ***
#-
#- file drivers/staging/media/rockchip/vpu/Kconfig goes here
#- file drivers/staging/media/sunxi/Kconfig goes here
#- file drivers/staging/media/tegra-vde/Kconfig goes here
-#- file drivers/staging/media/zoran/Kconfig goes here
#- file drivers/staging/media/ipu3/Kconfig goes here
#- file drivers/staging/media/soc_camera/Kconfig goes here
#-
VIDEO_IPU3_IMGU all=m
-#-
-#- *** FILE: drivers/staging/media/mt9t031/Kconfig ***
-#-
-SOC_CAMERA_MT9T031 all=m
-
#-
#- *** FILE: drivers/staging/media/soc_camera/Kconfig ***
#-
SOC_CAMERA_OV5642 all=m
SOC_CAMERA_OV9740 all=m
SOC_CAMERA_IMX074 all=m
-
-#-
-#- *** FILE: drivers/staging/media/zoran/Kconfig ***
-#-
-VIDEO_ZORAN all=m ppc=n sparc=n
-VIDEO_ZORAN_DC30 all=m
-VIDEO_ZORAN_ZR36060 all=m
-VIDEO_ZORAN_BUZ all=m
-VIDEO_ZORAN_DC10 all=m
-VIDEO_ZORAN_LML33 all=m
-VIDEO_ZORAN_LML33R10 all=m
-VIDEO_ZORAN_AVS6EYES all=m
+SOC_CAMERA_MT9T031 all=m
#-
#- *** FILE: drivers/staging/most/Kconfig ***
#-
MOST_VIDEO all=m
-#-
-#- *** FILE: drivers/staging/mt7621-mmc/Kconfig ***
-#-
-MTK_MMC all=m
-MTK_AEE_KDUMP all=y
-MTK_MMC_CD_POLL all=y
-
#-
#- *** FILE: drivers/staging/pi433/Kconfig ***
#-
#-
RTL8723BS all=m
-#-
-#- *** FILE: drivers/staging/rtlwifi/Kconfig ***
-#-
-R8822BE all=m
-
#-
#- *** FILE: drivers/staging/rts5208/Kconfig ***
#-
#-
UNISYS_VISORNIC all=m
-#-
-#- *** FILE: drivers/staging/vboxvideo/Kconfig ***
-#-
-DRM_VBOXVIDEO all=m
-
#-
#- *** FILE: drivers/staging/vme/devices/Kconfig ***
#-
N_GSM all=m
TRACE_ROUTER all=m
TRACE_SINK all=m
+NULL_TTY all=m
GOLDFISH_TTY all=m
LDISC_AUTOLOAD all=y
#- *** FILE: drivers/usb/typec/altmodes/Kconfig ***
#-
TYPEC_DP_ALTMODE all=m
+TYPEC_NVIDIA_ALTMODE all=m
#-
#- *** FILE: drivers/usb/typec/mux/Kconfig ***
#-
#- *** FILE: drivers/video/backlight/Kconfig ***
#-
-BACKLIGHT_LCD_SUPPORT all=y
LCD_CLASS_DEVICE all=m
LCD_L4F00242T03 all=m
LCD_LMS283GF05 all=m
WATCHDOG_NOWAYOUT all=n
WATCHDOG_HANDLE_BOOT_ENABLED all=y
WATCHDOG_SYSFS all=y
+#- Watchdog Pretimeout Governors
+WATCHDOG_PRETIMEOUT_GOV all=y
+WATCHDOG_PRETIMEOUT_GOV_NOOP all=m
+WATCHDOG_PRETIMEOUT_GOV_PANIC all=y
+WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP all=n
+WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC all=y
#- Watchdog Device Drivers
SOFT_WATCHDOG all=m
SOFT_WATCHDOG_PRETIMEOUT all=y
IT8712F_WDT all=m
IT87_WDT all=m
HP_WATCHDOG all=m
-KEMPLD_WDT all=m
HPWDT_NMI_DECODING all=y
+KEMPLD_WDT all=m
SC1200_WDT i386=m x86_64=m
SCx200_WDT i386=m
PC87413_WDT i386=m x86_64=m
WDTPCI all=m
#- USB-based Watchdog Cards
USBPCWATCHDOG all=m
-#- Watchdog Pretimeout Governors
-WATCHDOG_PRETIMEOUT_GOV all=y
-WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP all=n
-WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC all=y
-WATCHDOG_PRETIMEOUT_GOV_NOOP all=m
#-
#- *** FILE: drivers/xen/Kconfig ***
#- file fs/9p/Kconfig goes here
#- file fs/nls/Kconfig goes here
#- file fs/dlm/Kconfig goes here
+#- file fs/unicode/Kconfig goes here
#-
#- *** FILE: fs/Kconfig.binfmt ***
UFS_FS_WRITE all=n
UFS_DEBUG all=n
+#-
+#- *** FILE: fs/unicode/Kconfig ***
+#-
+UNICODE all=y
+UNICODE_NORMALIZATION_SELFTEST all=m
+
#-
#- *** FILE: fs/xfs/Kconfig ***
#-
#- file kernel/rcu/Kconfig goes here
IKCONFIG all=m
IKCONFIG_PROC all=y
+IKHEADERS all=m
LOG_BUF_SHIFT all=18
LOG_CPU_MAX_BUF_SHIFT all=12
PRINTK_SAFE_LOG_BUF_SHIFT all=13
CC_OPTIMIZE_FOR_PERFORMANCE all=y
CC_OPTIMIZE_FOR_SIZE all=n
SYSCTL all=y
-ANON_INODES all=y
EXPERT all=n
UID16 all=y
FHANDLE all=y
SLAB_MERGE_DEFAULT all=y
SLAB_FREELIST_RANDOM all=y
SLAB_FREELIST_HARDENED all=y
+SHUFFLE_PAGE_ALLOCATOR all=y
SLUB_CPU_PARTIAL all=y
PROFILING all=y
#- file arch/Kconfig goes here
RING_BUFFER_STARTUP_TEST all=n
PREEMPTIRQ_DELAY_TEST all=m
TRACE_EVAL_MAP_FILE all=n
-TRACING_EVENTS_GPIO all=y
#-
#- *** FILE: lib/Kconfig ***
#-
RAID6_PQ_BENCHMARK all=y
BITREVERSE all=y
+#- file lib/math/Kconfig goes here
CRC_CCITT all=y
CRC16 all=m
CRC_T10DIF all=y
CHECK_SIGNATURE all=y
CPU_RMAP all=y
GLOB_SELFTEST all=n
-CORDIC all=m
DDR all=y
#- file lib/fonts/Kconfig goes here
STRING_SELFTEST all=n
DEBUG_INFO_REDUCED all=n
DEBUG_INFO_SPLIT all=y
DEBUG_INFO_DWARF4 all=y
+DEBUG_INFO_BTF all=n
GDB_SCRIPTS all=y
ENABLE_MUST_CHECK all=y
FRAME_WARN all=2048
MAGIC_SYSRQ_DEFAULT_ENABLE all=0x1
MAGIC_SYSRQ_SERIAL all=y
DEBUG_KERNEL all=y
+DEBUG_MISC all=y
#- file mm/Kconfig.debug goes here
DEBUG_OBJECTS all=n
DEBUG_SLAB all=n
DEBUG_KOBJECT_RELEASE all=n
DEBUG_BUGVERBOSE all=y
DEBUG_LIST all=n
-DEBUG_PI_LIST all=n
+DEBUG_PLIST all=n
DEBUG_SG all=n
DEBUG_NOTIFIERS all=n
DEBUG_CREDENTIALS all=n
ASYNC_RAID6_TEST all=m
TEST_HEXDUMP all=m
TEST_STRING_HELPERS all=m
+TEST_STRSCPY all=m
TEST_KSTRTOX all=m
TEST_PRINTF all=m
TEST_BITMAP all=m
FONT_SUN8x16 ppc=n ppc64=n sparc=y sparc64=y
FONT_SUN12x22 ppc=n ppc64=n sparc=y sparc64=y
+#-
+#- *** FILE: lib/math/Kconfig ***
+#-
+CORDIC all=m
+
#-
#- *** FILE: lib/xz/Kconfig ***
#-
BATMAN_ADV_MCAST all= all=y
BATMAN_ADV_DEBUGFS all=y
BATMAN_ADV_DEBUG all=n
+BATMAN_ADV_SYSFS all=y
BATMAN_ADV_TRACING all=n
#-
#- *** FILE: net/dsa/Kconfig ***
#-
NET_DSA all=m
-NET_DSA_LEGACY all=y
+NET_DSA_TAG_8021Q all=m
+NET_DSA_TAG_KSZ all=m
+NET_DSA_TAG_SJA1105 all=m
#-
#- *** FILE: net/hsr/Kconfig ***
INET_IPCOMP all=m
INET_XFRM_TUNNEL all=m
INET_TUNNEL all=m
-INET_XFRM_MODE_TRANSPORT all=m
-INET_XFRM_MODE_TUNNEL all=m
-INET_XFRM_MODE_BEET all=m
INET_DIAG all=m
INET_TCP_DIAG all=m
INET_UDP_DIAG all=m
NF_SOCKET_IPV4 all=m
NF_TPROXY_IPV4 all=m
NF_TABLES_IPV4 all=y
-NFT_CHAIN_ROUTE_IPV4 all=m
NFT_REJECT_IPV4 all=m
NFT_DUP_IPV4 all=m
NFT_FIB_IPV4 all=m
IPV6_ILA all=m
INET6_XFRM_TUNNEL all=m
INET6_TUNNEL all=m
-INET6_XFRM_MODE_TRANSPORT all=m
-INET6_XFRM_MODE_TUNNEL all=m
-INET6_XFRM_MODE_BEET all=m
-INET6_XFRM_MODE_ROUTEOPTIMIZATION all=m
IPV6_VTI all=m
IPV6_SIT all=m
IPV6_SIT_6RD all=y
NF_SOCKET_IPV6 all=m
NF_TPROXY_IPV6 all=m
NF_TABLES_IPV6 all=y
-NFT_CHAIN_ROUTE_IPV6 all=m
NFT_DUP_IPV6 all=m
NFT_FIB_IPV6 all=m
NF_FLOW_TABLE_IPV6 all=m
SUNRPC all=m
SUNRPC_GSS all=m
RPCSEC_GSS_KRB5 all=m
+SUNRPC_DISABLE_INSECURE_ENCTYPES all=y
SUNRPC_DEBUG all=y
SUNRPC_XPRT_RDMA all=m
GCC_PLUGINS all=y
GCC_PLUGIN_CYC_COMPLEXITY all=n
GCC_PLUGIN_LATENT_ENTROPY all=n
-GCC_PLUGIN_STRUCTLEAK all=y
-GCC_PLUGIN_STRUCTLEAK_USER all=n
-GCC_PLUGIN_STRUCTLEAK_BYREF all=n
-GCC_PLUGIN_STRUCTLEAK_BYREF_ALL all=y
-GCC_PLUGIN_STRUCTLEAK_VERBOSE all=n
GCC_PLUGIN_RANDSTRUCT all=y
GCC_PLUGIN_RANDSTRUCT_PERFORMANCE all=y
-GCC_PLUGIN_STACKLEAK all=y
-STACKLEAK_TRACK_MIN_SIZE all=100
-STACKLEAK_METRICS all=y
-STACKLEAK_RUNTIME_DISABLE all=y
#-
#- *** FILE: security/Kconfig ***
DEFAULT_SECURITY_APPARMOR=n
DEFAULT_SECURITY_DAC all=y
LSM all="yama,loadpin,safesetid,integrity"
+#- file security/Kconfig.hardening goes here
+
+#-
+#- *** FILE: security/Kconfig.hardening ***
+#-
+GCC_PLUGIN_STRUCTLEAK all=y
+INIT_STACK_NONE all=n
+GCC_PLUGIN_STRUCTLEAK_USER all=n
+GCC_PLUGIN_STRUCTLEAK_BYREF all=n
+GCC_PLUGIN_STRUCTLEAK_BYREF_ALL all=y
+GCC_PLUGIN_STRUCTLEAK_VERBOSE all=n
+GCC_PLUGIN_STACKLEAK all=y
+STACKLEAK_TRACK_MIN_SIZE all=100
+STACKLEAK_METRICS all=y
+STACKLEAK_RUNTIME_DISABLE all=y
#-
#- *** FILE: security/apparmor/Kconfig ***
SECURITY_TOMOYO_OMIT_USERSPACE_LOADER all=n
SECURITY_TOMOYO_POLICY_LOADER all="/sbin/tomoyo-init"
SECURITY_TOMOYO_ACTIVATION_TRIGGER all="/sbin/init"
+SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING all=n
#-
#- *** FILE: security/yama/Kconfig ***
#- file sound/soc/samsung/Kconfig goes here
#- file sound/soc/sh/Kconfig goes here
#- file sound/soc/sirf/Kconfig goes here
+#- file sound/soc/sof/Kconfig goes here
#- file sound/soc/spear/Kconfig goes here
#- file sound/soc/sprd/Kconfig goes here
#- file sound/soc/sti/Kconfig goes here
#- Common SoC Audio options for Freescale CPUs:
SND_SOC_FSL_ASRC all=m
SND_SOC_FSL_SAI all=m
+SND_SOC_FSL_AUDMIX all=m
SND_SOC_FSL_SSI all=m
SND_SOC_FSL_SPDIF all=m
SND_SOC_FSL_ESAI all=m
SND_SOC_INTEL_KBL_RT5660_MACH all=m
SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH all=m
SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH all=m
+SND_SOC_INTEL_SOF_RT5682_MACH all=m
#-
#- *** FILE: sound/soc/mediatek/Kconfig ***
#-
SND_SOC_QCOM all=m
+#-
+#- *** FILE: sound/soc/sof/Kconfig ***
+#-
+SND_SOC_SOF_TOPLEVEL all=y
+SND_SOC_SOF_PCI all=m
+SND_SOC_SOF_ACPI all=m
+SND_SOC_SOF_NOCODEC_SUPPORT all=n
+SND_SOC_SOF_STRICT_ABI_CHECKS all=n
+SND_SOC_SOF_DEBUG all=n
+#- file sound/soc/sof/intel/Kconfig goes here
+#- file sound/soc/sof/xtensa/Kconfig goes here
+
+#-
+#- *** FILE: sound/soc/sof/intel/Kconfig ***
+#-
+SND_SOC_SOF_INTEL_TOPLEVEL all=y
+SND_SOC_SOF_BAYTRAIL_SUPPORT all=y
+SND_SOC_SOF_BROADWELL_SUPPORT all=y
+SND_SOC_SOF_MERRIFIELD_SUPPORT all=y
+SND_SOC_SOF_APOLLOLAKE_SUPPORT all=y
+SND_SOC_SOF_GEMINILAKE_SUPPORT all=y
+SND_SOC_SOF_CANNONLAKE_SUPPORT all=y
+SND_SOC_SOF_COFFEELAKE_SUPPORT all=y
+SND_SOC_SOF_ICELAKE_SUPPORT all=y
+SND_SOC_SOF_HDA_LINK all=y
+SND_SOC_SOF_HDA_AUDIO_CODEC all=y
+
#-
#- *** FILE: sound/soc/sunxi/Kconfig ***
#-
#- *** PROBABLY REMOVED OPTIONS ***
#-
AD7152 all=m
+ANON_INODES all=y
+ASIX_PHY all=m
+BACKLIGHT_LCD_SUPPORT all=y
BLK_WBT_SQ all=y
CAPI_EICON all=y
CFQ_GROUP_IOSCHED all=y
+CHARGER_LTC3651 all=m
+CHASH_SELFTEST all=n
+CHASH_STATS all=n
+DEBUG_PI_LIST all=n
DEFAULT_CFQ all=y
DEFAULT_DEADLINE all=n
DEFAULT_IOSCHED all="cfq"
EXT4_ENCRYPTION all=y
F2FS_FS_ENCRYPTION all=y
FB_XGI all=m
+INET6_XFRM_MODE_BEET all=m
+INET6_XFRM_MODE_ROUTEOPTIMIZATION all=m
+INET6_XFRM_MODE_TRANSPORT all=m
+INET6_XFRM_MODE_TUNNEL all=m
+INET_XFRM_MODE_BEET all=m
+INET_XFRM_MODE_TRANSPORT all=m
+INET_XFRM_MODE_TUNNEL all=m
INTEL_RDT all=y
IOSCHED_CFQ all=y
IOSCHED_DEADLINE all=y
ISDN_DIVAS_MAINT all=m
ISDN_DIVAS_PRIPCI all=y
ISDN_DIVAS_USERIDI all=m
+LBDAF i386=y ppc=y sparc=y sparc64=
LCD_OTM3225A all=m
MAY_USE_DEVLINK all=m
MICROCHIP_KSZ all=m
MTD_GPIO_ADDR all=m
MTD_LATCH_ADDR all=m
MTD_MT81xx_NOR all=m
+MTD_NAND all=m
+MTD_NAND_BCH all=m
+MTD_NAND_ECC_BCH all=y
+MTD_NAND_ECC_SMC all=y
MTD_SPINAND_MT29F all=m
MTD_SPINAND_ONDIEECC all=y
+MTK_AEE_KDUMP all=y
+MTK_MMC all=m
+MTK_MMC_CD_POLL all=y
+NET_DSA_LEGACY all=y
NFT_CHAIN_NAT_IPV4 all=m
NFT_CHAIN_NAT_IPV6 all=m
+NFT_CHAIN_ROUTE_IPV4 all=m
+NFT_CHAIN_ROUTE_IPV6 all=m
NFT_MASQ_IPV4 all=m
NFT_MASQ_IPV6 all=m
NFT_REDIR_IPV4 all=m
NF_NAT_IPV6 all=m
PSW_PHY_SEL all=n
QTNFMAC_PEARL_PCIE all=m
+R8822BE all=m
SCSI_MQ_DEFAULT all=y
SCSI_OSD_DEBUG all=n
SCSI_OSD_DPRINT_SENSE all=1
SOC_CAMERA_PLATFORM all=m
SOC_CAMERA_RJ54N1 all=m
SOC_CAMERA_TW9910 all=m
-SUNRPC_DISABLE_INSECURE_ENCTYPES all=y
+TI_CPSW_ALE all=m
+TRACING_EVENTS_GPIO all=y
UBIFS_FS_ENCRYPTION all=y
VIDEO_SH_MOBILE_CEU all=m
+VIDEO_ZORAN all=m ppc=n sparc=n
+VIDEO_ZORAN_AVS6EYES all=m
+VIDEO_ZORAN_BUZ all=m
+VIDEO_ZORAN_DC10 all=m
+VIDEO_ZORAN_DC30 all=m
+VIDEO_ZORAN_LML33 all=m
+VIDEO_ZORAN_LML33R10 all=m
+VIDEO_ZORAN_ZR36060 all=m
bool "Secure RPC: Disable insecure Kerberos encryption types"
depends on RPCSEC_GSS_KRB5
default n
-Move setting up operation and write hint to xfs_alloc_ioend, and\r
-then just copy over all needed information from the previous bio\r
-in xfs_chain_bio and stop passing various parameters to it.\r
-\r
-Signed-off-by: Christoph Hellwig <hch@lst.de>\r
----\r
- fs/xfs/xfs_aops.c | 35 +++++++++++++++++------------------\r
- 1 file changed, 17 insertions(+), 18 deletions(-)\r
-\r
-diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c\r
-index a6f0f4761a37..9cceb90e77c5 100644\r
---- a/fs/xfs/xfs_aops.c\r
-+++ b/fs/xfs/xfs_aops.c\r
-@@ -665,7 +665,6 @@ xfs_submit_ioend(\r
- \r
- ioend->io_bio->bi_private = ioend;\r
- ioend->io_bio->bi_end_io = xfs_end_bio;\r
-- ioend->io_bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);\r
- \r
- /*\r
- * If we are failing the IO now, just mark the ioend with an\r
-@@ -679,7 +678,6 @@ xfs_submit_ioend(\r
- return status;\r
- }\r
- \r
-- ioend->io_bio->bi_write_hint = ioend->io_inode->i_write_hint;\r
- submit_bio(ioend->io_bio);\r
- return 0;\r
- }\r
-@@ -691,7 +689,8 @@ xfs_alloc_ioend(\r
- xfs_exntst_t state,\r
- xfs_off_t offset,\r
- struct block_device *bdev,\r
-- sector_t sector)\r
-+ sector_t sector,\r
-+ struct writeback_control *wbc)\r
- {\r
- struct xfs_ioend *ioend;\r
- struct bio *bio;\r
-@@ -699,6 +698,8 @@ xfs_alloc_ioend(\r
- bio = bio_alloc_bioset(GFP_NOFS, BIO_MAX_PAGES, &xfs_ioend_bioset);\r
- bio_set_dev(bio, bdev);\r
- bio->bi_iter.bi_sector = sector;\r
-+ bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);\r
-+ bio->bi_write_hint = inode->i_write_hint;\r
- \r
- ioend = container_of(bio, struct xfs_ioend, io_inline_bio);\r
- INIT_LIST_HEAD(&ioend->io_list);\r
-@@ -719,24 +720,22 @@ xfs_alloc_ioend(\r
- * so that the bi_private linkage is set up in the right direction for the\r
- * traversal in xfs_destroy_ioend().\r
- */\r
--static void\r
-+static struct bio *\r
- xfs_chain_bio(\r
-- struct xfs_ioend *ioend,\r
-- struct writeback_control *wbc,\r
-- struct block_device *bdev,\r
-- sector_t sector)\r
-+ struct bio *prev)\r
- {\r
- struct bio *new;\r
- \r
- new = bio_alloc(GFP_NOFS, BIO_MAX_PAGES);\r
-- bio_set_dev(new, bdev);\r
-- new->bi_iter.bi_sector = sector;\r
-- bio_chain(ioend->io_bio, new);\r
-- bio_get(ioend->io_bio); /* for xfs_destroy_ioend */\r
-- ioend->io_bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);\r
-- ioend->io_bio->bi_write_hint = ioend->io_inode->i_write_hint;\r
-- submit_bio(ioend->io_bio);\r
-- ioend->io_bio = new;\r
-+ bio_copy_dev(new, prev);\r
-+ new->bi_iter.bi_sector = bio_end_sector(prev);\r
-+ new->bi_opf = prev->bi_opf;\r
-+ new->bi_write_hint = prev->bi_write_hint;\r
-+\r
-+ bio_chain(prev, new);\r
-+ bio_get(prev); /* for xfs_destroy_ioend */\r
-+ submit_bio(prev);\r
-+ return new;\r
- }\r
- \r
- /*\r
-@@ -771,14 +770,14 @@ xfs_add_to_ioend(\r
- if (wpc->ioend)\r
- list_add(&wpc->ioend->io_list, iolist);\r
- wpc->ioend = xfs_alloc_ioend(inode, wpc->fork,\r
-- wpc->imap.br_state, offset, bdev, sector);\r
-+ wpc->imap.br_state, offset, bdev, sector, wbc);\r
- }\r
- \r
- if (!__bio_try_merge_page(wpc->ioend->io_bio, page, len, poff, true)) {\r
- if (iop)\r
- atomic_inc(&iop->write_count);\r
- if (bio_full(wpc->ioend->io_bio))\r
-- xfs_chain_bio(wpc->ioend, wbc, bdev, sector);\r
-+ wpc->ioend->io_bio = xfs_chain_bio(wpc->ioend->io_bio);\r
- bio_add_page(wpc->ioend->io_bio, page, len, poff);\r
- }\r
- \r
--- \r
-2.20.1\r
-\r
-\r
-Link every newly allocated writeback bio to cgroup pointed to by the\r
-writeback control structure, and charge every byte written back to it.\r
-\r
-Tested-by: Stefan Priebe - Profihost AG <s.priebe@profihost.ag>\r
-Signed-off-by: Christoph Hellwig <hch@lst.de>\r
----\r
- fs/xfs/xfs_aops.c | 4 +++-\r
- fs/xfs/xfs_super.c | 2 ++\r
- 2 files changed, 5 insertions(+), 1 deletion(-)\r
-\r
-diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c\r
-index 9cceb90e77c5..73c291aeae17 100644\r
---- a/fs/xfs/xfs_aops.c\r
-+++ b/fs/xfs/xfs_aops.c\r
-@@ -700,6 +700,7 @@ xfs_alloc_ioend(\r
- bio->bi_iter.bi_sector = sector;\r
- bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);\r
- bio->bi_write_hint = inode->i_write_hint;\r
-+ wbc_init_bio(wbc, bio);\r
- \r
- ioend = container_of(bio, struct xfs_ioend, io_inline_bio);\r
- INIT_LIST_HEAD(&ioend->io_list);\r
-@@ -727,7 +728,7 @@ xfs_chain_bio(\r
- struct bio *new;\r
- \r
- new = bio_alloc(GFP_NOFS, BIO_MAX_PAGES);\r
-- bio_copy_dev(new, prev);\r
-+ bio_copy_dev(new, prev);/* also copies over blkcg information */\r
- new->bi_iter.bi_sector = bio_end_sector(prev);\r
- new->bi_opf = prev->bi_opf;\r
- new->bi_write_hint = prev->bi_write_hint;\r
-@@ -782,6 +783,7 @@ xfs_add_to_ioend(\r
- }\r
- \r
- wpc->ioend->io_size += len;\r
-+ wbc_account_io(wbc, page, len);\r
- }\r
- \r
- STATIC void\r
-diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c\r
-index 594c119824cc..ee0df8f611ff 100644\r
---- a/fs/xfs/xfs_super.c\r
-+++ b/fs/xfs/xfs_super.c\r
-@@ -1685,6 +1685,8 @@ xfs_fs_fill_super(\r
- sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits);\r
- sb->s_max_links = XFS_MAXLINK;\r
- sb->s_time_gran = 1;\r
-+ sb->s_iflags |= SB_I_CGROUPWB;\r
-+\r
- set_posix_acl_flag(sb);\r
- \r
- /* version 5 superblocks support inode version counters. */\r
--- \r
-2.20.1\r
-\r
+Move setting up operation and write hint to xfs_alloc_ioend, and
+then just copy over all needed information from the previous bio
+in xfs_chain_bio and stop passing various parameters to it.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ fs/xfs/xfs_aops.c | 35 +++++++++++++++++------------------
+ 1 file changed, 17 insertions(+), 18 deletions(-)
+
+diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
+index a6f0f4761a37..9cceb90e77c5 100644
+--- a/fs/xfs/xfs_aops.c
++++ b/fs/xfs/xfs_aops.c
+@@ -665,7 +665,6 @@ xfs_submit_ioend(
+
+ ioend->io_bio->bi_private = ioend;
+ ioend->io_bio->bi_end_io = xfs_end_bio;
+- ioend->io_bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
+
+ /*
+ * If we are failing the IO now, just mark the ioend with an
+@@ -679,7 +678,6 @@ xfs_submit_ioend(
+ return status;
+ }
+
+- ioend->io_bio->bi_write_hint = ioend->io_inode->i_write_hint;
+ submit_bio(ioend->io_bio);
+ return 0;
+ }
+@@ -691,7 +689,8 @@ xfs_alloc_ioend(
+ xfs_exntst_t state,
+ xfs_off_t offset,
+ struct block_device *bdev,
+- sector_t sector)
++ sector_t sector,
++ struct writeback_control *wbc)
+ {
+ struct xfs_ioend *ioend;
+ struct bio *bio;
+@@ -699,6 +698,8 @@ xfs_alloc_ioend(
+ bio = bio_alloc_bioset(GFP_NOFS, BIO_MAX_PAGES, &xfs_ioend_bioset);
+ bio_set_dev(bio, bdev);
+ bio->bi_iter.bi_sector = sector;
++ bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
++ bio->bi_write_hint = inode->i_write_hint;
+
+ ioend = container_of(bio, struct xfs_ioend, io_inline_bio);
+ INIT_LIST_HEAD(&ioend->io_list);
+@@ -719,24 +720,22 @@ xfs_alloc_ioend(
+ * so that the bi_private linkage is set up in the right direction for the
+ * traversal in xfs_destroy_ioend().
+ */
+-static void
++static struct bio *
+ xfs_chain_bio(
+- struct xfs_ioend *ioend,
+- struct writeback_control *wbc,
+- struct block_device *bdev,
+- sector_t sector)
++ struct bio *prev)
+ {
+ struct bio *new;
+
+ new = bio_alloc(GFP_NOFS, BIO_MAX_PAGES);
+- bio_set_dev(new, bdev);
+- new->bi_iter.bi_sector = sector;
+- bio_chain(ioend->io_bio, new);
+- bio_get(ioend->io_bio); /* for xfs_destroy_ioend */
+- ioend->io_bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
+- ioend->io_bio->bi_write_hint = ioend->io_inode->i_write_hint;
+- submit_bio(ioend->io_bio);
+- ioend->io_bio = new;
++ bio_copy_dev(new, prev);
++ new->bi_iter.bi_sector = bio_end_sector(prev);
++ new->bi_opf = prev->bi_opf;
++ new->bi_write_hint = prev->bi_write_hint;
++
++ bio_chain(prev, new);
++ bio_get(prev); /* for xfs_destroy_ioend */
++ submit_bio(prev);
++ return new;
+ }
+
+ /*
+@@ -772,7 +772,7 @@ xfs_add_to_ioend(
+ if (wpc->ioend)
+ list_add(&wpc->ioend->io_list, iolist);
+ wpc->ioend = xfs_alloc_ioend(inode, wpc->fork,
+- wpc->imap.br_state, offset, bdev, sector);
++ wpc->imap.br_state, offset, bdev, sector, wbc);
+ }
+
+ merged = __bio_try_merge_page(wpc->ioend->io_bio, page, len, poff,
+@@ -783,7 +783,7 @@ xfs_add_to_ioend(
+
+ if (!merged) {
+ if (bio_full(wpc->ioend->io_bio))
+- xfs_chain_bio(wpc->ioend, wbc, bdev, sector);
++ wpc->ioend->io_bio = xfs_chain_bio(wpc->ioend->io_bio);
+ bio_add_page(wpc->ioend->io_bio, page, len, poff);
+ }
+
+--
+2.20.1
+
+
+Link every newly allocated writeback bio to cgroup pointed to by the
+writeback control structure, and charge every byte written back to it.
+
+Tested-by: Stefan Priebe - Profihost AG <s.priebe@profihost.ag>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+---
+ fs/xfs/xfs_aops.c | 4 +++-
+ fs/xfs/xfs_super.c | 2 ++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
+index 9cceb90e77c5..73c291aeae17 100644
+--- a/fs/xfs/xfs_aops.c
++++ b/fs/xfs/xfs_aops.c
+@@ -700,6 +700,7 @@ xfs_alloc_ioend(
+ bio->bi_iter.bi_sector = sector;
+ bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
+ bio->bi_write_hint = inode->i_write_hint;
++ wbc_init_bio(wbc, bio);
+
+ ioend = container_of(bio, struct xfs_ioend, io_inline_bio);
+ INIT_LIST_HEAD(&ioend->io_list);
+@@ -727,7 +728,7 @@ xfs_chain_bio(
+ struct bio *new;
+
+ new = bio_alloc(GFP_NOFS, BIO_MAX_PAGES);
+- bio_copy_dev(new, prev);
++ bio_copy_dev(new, prev);/* also copies over blkcg information */
+ new->bi_iter.bi_sector = bio_end_sector(prev);
+ new->bi_opf = prev->bi_opf;
+ new->bi_write_hint = prev->bi_write_hint;
+@@ -782,6 +783,7 @@ xfs_add_to_ioend(
+ }
+
+ wpc->ioend->io_size += len;
++ wbc_account_io(wbc, page, len);
+ }
+
+ STATIC void
+diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
+index 594c119824cc..ee0df8f611ff 100644
+--- a/fs/xfs/xfs_super.c
++++ b/fs/xfs/xfs_super.c
+@@ -1685,6 +1685,8 @@ xfs_fs_fill_super(
+ sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits);
+ sb->s_max_links = XFS_MAXLINK;
+ sb->s_time_gran = 1;
++ sb->s_iflags |= SB_I_CGROUPWB;
++
+ set_posix_acl_flag(sb);
+
+ /* version 5 superblocks support inode version counters. */
+--
+2.20.1
+