linux-stable/drivers/of
David Hildenbrand e16faf2678 cma: factor out minimum alignment requirement
Patch series "mm: enforce pageblock_order < MAX_ORDER".

Having pageblock_order >= MAX_ORDER seems to be able to happen in corner
cases and some parts of the kernel are not prepared for it.

For example, Aneesh has shown [1] that such kernels can be compiled on
ppc64 with 64k base pages by setting FORCE_MAX_ZONEORDER=8, which will
run into a WARN_ON_ONCE(order >= MAX_ORDER) in comapction code right
during boot.

We can get pageblock_order >= MAX_ORDER when the default hugetlb size is
bigger than the maximum allocation granularity of the buddy, in which
case we are no longer talking about huge pages but instead gigantic
pages.

Having pageblock_order >= MAX_ORDER can only make alloc_contig_range()
of such gigantic pages more likely to succeed.

Reliable use of gigantic pages either requires boot time allcoation or
CMA, no need to overcomplicate some places in the kernel to optimize for
corner cases that are broken in other areas of the kernel.

This patch (of 2):

Let's enforce pageblock_order < MAX_ORDER and simplify.

Especially patch #1 can be regarded a cleanup before:
	[PATCH v5 0/6] Use pageblock_order for cma and alloc_contig_range
	alignment. [2]

[1] https://lkml.kernel.org/r/87r189a2ks.fsf@linux.ibm.com
[2] https://lkml.kernel.org/r/20220211164135.1803616-1-zi.yan@sent.com

Link: https://lkml.kernel.org/r/20220214174132.219303-2-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: John Garry via iommu <iommu@lists.linux-foundation.org>

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-03-22 15:57:05 -07:00
..
unittest-data of: unittest: document intentional interrupt-map provider build warning 2021-11-01 20:33:56 -05:00
address.c of: Move of_dma_set_restricted_buffer() into device.c 2021-08-23 06:32:02 -04:00
base.c of: base: make small of_parse_phandle() variants static inline 2022-01-20 12:55:26 -06:00
device.c of: Check 'of_node_reused' flag on of_match_device() 2022-01-20 12:55:26 -06:00
dynamic.c of: Add missing 'Return' section in kerneldoc comments 2021-03-27 12:59:03 -06:00
fdt.c of/fdt: move elfcorehdr reservation early for crash dump kernel 2022-02-17 17:13:52 -06:00
fdt_address.c
irq.c of/irq: Add a quirk for controllers with their own definition of interrupt-map 2021-12-03 11:30:22 -06:00
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
kexec.c memblock: rename memblock_free to memblock_phys_free 2021-11-06 13:30:41 -07:00
kobj.c of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
Makefile of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
of_numa.c of, numa: Fetch empty NUMA node ID from distance map 2021-10-04 13:13:44 -05:00
of_private.h of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
of_reserved_mem.c cma: factor out minimum alignment requirement 2022-03-22 15:57:05 -07:00
overlay.c of: overlay: Remove redundant assignment to ret 2021-05-03 13:57:56 -05:00
pdt.c
platform.c of: Move simple-framebuffer device handling from simplefb to of 2021-12-16 10:55:26 +01:00
property.c of: property: fw_devlink: Fixup behaviour when 'node_not_dev' is set 2021-11-18 08:13:52 -06:00
resolver.c
unittest.c of: unittest: update text of expected warnings 2022-01-31 08:35:57 -06:00