# git rev-parse -q --verify bba7d682277c09373b56b0461b0abbd0b3d1e872^{commit} bba7d682277c09373b56b0461b0abbd0b3d1e872 already have revision, skipping fetch # git checkout -q -f -B kisskb bba7d682277c09373b56b0461b0abbd0b3d1e872 # git clean -qxdf # < git log -1 # commit bba7d682277c09373b56b0461b0abbd0b3d1e872 # Merge: a64a325bf631 2a09b575074f # Author: Linus Torvalds # Date: Tue Nov 2 12:42:56 2021 -0700 # # Merge tag 'xfs-5.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux # # Pull xfs updates from Darrick Wong: # "This cycle we've worked on fixing bugs and improving XFS' memory # footprint. # # The most notable fixes include: fixing a corruption warning (and free # space accounting skew) if copy on write fails; fixing slab cache # misuse if SLOB is enabled, which apparently was broken for years # without anybody noticing; and fixing a potential race with online # shrinkfs. # # Otherwise, the bulk of the changes here involve setting up separate # slab caches for frequently used items such as btree cursors and log # intent items, and compacting the structures to reduce memory usage of # those items substantially. This also sets us up to support larger # btrees in future kernels. We also switch parts of online fsck to # allocate scrub context information from the heap instead of using # stack space. # # Summary: # # - Bug fixes and cleanups for kernel memory allocation usage, this # time without touching the mm code. # # - Refactor the log recovery mechanism that preserves held resources # across a transaction roll so that it uses the exact same mechanism # that we use for that during regular runtime. # # - Fix bugs and tighten checking around btree heights. # # - Remove more old typedefs. # # - Fix perag reference leaks when racing with growfs. # # - Remove unused fields from xfs_btree_cur. # # - Allocate various scrub structures on the heap to reduce stack # usage. # # - Pack xfs_btree_cur fields and rearrange to support arbitrary # heights. # # - Compute maximum possible heights for each btree height, and use # that to set up slab caches for each btree type. # # - Finally remove kmem_zone_t, since these have always been struct # kmem_cache on Linux. # # - Compact the structures used to coordinate work intent items. # # - Set up slab caches for each work intent item type. # # - Rename the "bmap_add_free" function to "free_extent_later", which # more accurately describes what it does. # # - Fix corruption warning on unmount when a CoW preallocation covers a # data fork delalloc reservation but then the CoW fails. # # - Add some more minor code improvements" # # * tag 'xfs-5.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (45 commits) # xfs: use swap() to make code cleaner # xfs: Remove duplicated include in xfs_super # xfs: punch out data fork delalloc blocks on COW writeback failure # xfs: remove unused parameter from refcount code # xfs: reduce the size of struct xfs_extent_free_item # xfs: rename xfs_bmap_add_free to xfs_free_extent_later # xfs: create slab caches for frequently-used deferred items # xfs: compact deferred intent item structures # xfs: rename _zone variables to _cache # xfs: remove kmem_zone typedef # xfs: use separate btree cursor cache for each btree type # xfs: compute absolute maximum nlevels for each btree type # xfs: kill XFS_BTREE_MAXLEVELS # xfs: compute the maximum height of the rmap btree when reflink enabled # xfs: clean up xfs_btree_{calc_size,compute_maxlevels} # xfs: compute maximum AG btree height for critical reservation calculation # xfs: rename m_ag_maxlevels to m_allocbt_maxlevels # xfs: dynamically allocate cursors based on maxlevels # xfs: encode the max btree height in the cursor # xfs: refactor btree cursor allocation function # ... # < /opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 bba7d682277c09373b56b0461b0abbd0b3d1e872 # < make -s -j 32 ARCH=um O=/kisskb/build/linus_um-allmodconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 allmodconfig # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_KCOV=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=n # Added to kconfig CONFIG_GCC_PLUGIN_SANCOV=n # Added to kconfig CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n # Added to kconfig CONFIG_GCC_PLUGIN_STRUCTLEAK=n # Added to kconfig CONFIG_GCC_PLUGIN_RANDSTRUCT=n # Added to kconfig CONFIG_UML_NET=n # Added to kconfig CONFIG_UML_NET_ETHERTAP=n # Added to kconfig CONFIG_UML_NET_TUNTAP=n # Added to kconfig CONFIG_UML_NET_SLIP=n # Added to kconfig CONFIG_UML_NET_DAEMON=n # Added to kconfig CONFIG_UML_NET_VDE=n # Added to kconfig CONFIG_UML_NET_MCAST=n # Added to kconfig CONFIG_UML_NET_PCAP=n # Added to kconfig CONFIG_UML_NET_SLIRP=n # Added to kconfig CONFIG_GCOV_KERNEL=n # Added to kconfig CONFIG_DEBUG_INFO_BTF=n # Added to kconfig CONFIG_BPF_PRELOAD=n # < make -s -j 32 ARCH=um O=/kisskb/build/linus_um-allmodconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 help # make -s -j 32 ARCH=um O=/kisskb/build/linus_um-allmodconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 olddefconfig .config:11809:warning: override: reassigning to symbol GCC_PLUGIN_SANCOV .config:11812:warning: override: reassigning to symbol GCC_PLUGIN_RANDSTRUCT .config:11814:warning: override: reassigning to symbol UML_NET_ETHERTAP .config:11816:warning: override: reassigning to symbol UML_NET_SLIP .config:11819:warning: override: reassigning to symbol UML_NET_MCAST .config:11821:warning: override: reassigning to symbol UML_NET_SLIRP # make -s -j 32 ARCH=um O=/kisskb/build/linus_um-allmodconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 /kisskb/src/arch/x86/um/Makefile:44: FORCE prerequisite is missing /kisskb/src/drivers/video/fbdev/riva/fbdev.c: In function 'rivafb_probe': /kisskb/src/drivers/video/fbdev/riva/fbdev.c:2062:11: error: passing argument 1 of 'iounmap' discards 'volatile' qualifier from pointer target type [-Werror=discarded-qualifiers] iounmap(default_par->riva.PRAMIN); ^ In file included from /kisskb/src/arch/um/include/asm/io.h:7:0, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/include/linux/irq.h:20, from /kisskb/src/include/asm-generic/hardirq.h:17, from /kisskb/src/arch/um/include/asm/hardirq.h:5, from /kisskb/src/include/linux/hardirq.h:11, from /kisskb/src/include/linux/interrupt.h:11, from /kisskb/src/include/linux/trace_recursion.h:5, from /kisskb/src/include/linux/ftrace.h:10, from /kisskb/src/include/linux/kprobes.h:28, from /kisskb/src/include/linux/kgdb.h:19, from /kisskb/src/include/linux/fb.h:6, from /kisskb/src/drivers/video/fbdev/riva/fbdev.c:39: /kisskb/src/include/asm-generic/logic_io.h:36:17: note: expected 'void *' but argument is of type 'volatile U032 * {aka volatile unsigned int *}' #define iounmap iounmap ^ /kisskb/src/include/asm-generic/logic_io.h:37:6: note: in expansion of macro 'iounmap' void iounmap(void __iomem *addr); ^ /kisskb/src/drivers/video/fbdev/riva/fbdev.c: In function 'rivafb_remove': /kisskb/src/drivers/video/fbdev/riva/fbdev.c:2095:11: error: passing argument 1 of 'iounmap' discards 'volatile' qualifier from pointer target type [-Werror=discarded-qualifiers] iounmap(par->riva.PRAMIN); ^ In file included from /kisskb/src/arch/um/include/asm/io.h:7:0, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/include/linux/irq.h:20, from /kisskb/src/include/asm-generic/hardirq.h:17, from /kisskb/src/arch/um/include/asm/hardirq.h:5, from /kisskb/src/include/linux/hardirq.h:11, from /kisskb/src/include/linux/interrupt.h:11, from /kisskb/src/include/linux/trace_recursion.h:5, from /kisskb/src/include/linux/ftrace.h:10, from /kisskb/src/include/linux/kprobes.h:28, from /kisskb/src/include/linux/kgdb.h:19, from /kisskb/src/include/linux/fb.h:6, from /kisskb/src/drivers/video/fbdev/riva/fbdev.c:39: /kisskb/src/include/asm-generic/logic_io.h:36:17: note: expected 'void *' but argument is of type 'volatile U032 * {aka volatile unsigned int *}' #define iounmap iounmap ^ /kisskb/src/include/asm-generic/logic_io.h:37:6: note: in expansion of macro 'iounmap' void iounmap(void __iomem *addr); ^ cc1: all warnings being treated as errors make[5]: *** [/kisskb/src/scripts/Makefile.build:277: drivers/video/fbdev/riva/fbdev.o] Error 1 make[4]: *** [/kisskb/src/scripts/Makefile.build:540: drivers/video/fbdev/riva] Error 2 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:540: drivers/video/fbdev] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/scripts/Makefile.build:540: drivers/video] Error 2 make[2]: *** Waiting for unfinished jobs.... /kisskb/src/drivers/pci/controller/vmd.c:117:21: error: field 'sysdata' has incomplete type struct pci_sysdata sysdata; ^ /kisskb/src/drivers/pci/controller/vmd.c: In function 'vmd_compose_msi_msg': /kisskb/src/drivers/pci/controller/vmd.c:151:20: error: 'X86_MSI_BASE_ADDRESS_HIGH' undeclared (first use in this function) msg->address_hi = X86_MSI_BASE_ADDRESS_HIGH; ^ /kisskb/src/drivers/pci/controller/vmd.c:151:20: note: each undeclared identifier is reported only once for each function it appears in /kisskb/src/drivers/pci/controller/vmd.c:152:19: error: 'arch_msi_msg_addr_lo_t {aka struct arch_msi_msg_addr_lo}' has no member named 'base_address' msg->arch_addr_lo.base_address = X86_MSI_BASE_ADDRESS_LOW; ^ /kisskb/src/drivers/pci/controller/vmd.c:152:35: error: 'X86_MSI_BASE_ADDRESS_LOW' undeclared (first use in this function) msg->arch_addr_lo.base_address = X86_MSI_BASE_ADDRESS_LOW; ^ /kisskb/src/drivers/pci/controller/vmd.c:153:19: error: 'arch_msi_msg_addr_lo_t {aka struct arch_msi_msg_addr_lo}' has no member named 'destid_0_7' msg->arch_addr_lo.destid_0_7 = index_from_irqs(vmd, irq); ^ /kisskb/src/drivers/pci/controller/vmd.c: In function 'vmd_enable_domain': /kisskb/src/drivers/pci/controller/vmd.c:751:4: error: dereferencing pointer to incomplete type 'struct pci_sysdata' sd->vmd_dev = vmd->dev; ^ /kisskb/src/drivers/pci/controller/vmd.c: In function 'vmd_from_bus': /kisskb/src/drivers/pci/controller/vmd.c:128:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors make[4]: *** [/kisskb/src/scripts/Makefile.build:277: drivers/pci/controller/vmd.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:540: drivers/pci/controller] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/scripts/Makefile.build:540: drivers/pci] Error 2 make[1]: *** [/kisskb/src/Makefile:1872: drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:219: __sub-make] Error 2 Command 'make -s -j 32 ARCH=um O=/kisskb/build/linus_um-allmodconfig_um-x86_64 CROSS_COMPILE=/opt/cross/kisskb/fe-x86-64-core-i7-2017.05/bin/x86_64-linux- SUBARCH=x86_64 ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_um-allmodconfig_um-x86_64 # Build took: 0:03:04.115826