# git rev-parse -q --verify 6cc5522b62bbc176e1a5666c401466a37ffc746e^{commit} 6cc5522b62bbc176e1a5666c401466a37ffc746e already have revision, skipping fetch # git checkout -q -f -B kisskb 6cc5522b62bbc176e1a5666c401466a37ffc746e # git clean -qxdf # < git log -1 # commit 6cc5522b62bbc176e1a5666c401466a37ffc746e # Author: Christophe Leroy # Date: Sat Nov 21 17:59:19 2020 +0000 # # powerpc: inline iomap accessors # # ioreadXX()/ioreadXXbe() accessors are equivalent to ppc # in_leXX()/in_be16() accessors but they are not inlined. # # Since commit 0eb573682872 ("powerpc/kerenl: Enable EEH for IO # accessors"), the 'le' versions are equivalent to the ones # defined in asm-generic/io.h, allthough the ones there are inlined. # # Include asm-generic/io.h to get them. Keep ppc versions of the # 'be' ones as they are optimised, but make them inline in ppc io.h. # # This reduces the size of ppc64e_defconfig build by 3 kbytes: # # text data bss dec hex filename # 10160733 4343422 562972 15067127 e5e7f7 vmlinux.before # 10159239 4341590 562972 15063801 e5daf9 vmlinux.after # # A typical function using ioread and iowrite before the change: # # c00000000066a3c4 <.ata_bmdma_stop>: # c00000000066a3c4: 7c 08 02 a6 mflr r0 # c00000000066a3c8: fb c1 ff f0 std r30,-16(r1) # c00000000066a3cc: f8 01 00 10 std r0,16(r1) # c00000000066a3d0: fb e1 ff f8 std r31,-8(r1) # c00000000066a3d4: f8 21 ff 81 stdu r1,-128(r1) # c00000000066a3d8: eb e3 00 00 ld r31,0(r3) # c00000000066a3dc: eb df 00 98 ld r30,152(r31) # c00000000066a3e0: 7f c3 f3 78 mr r3,r30 # c00000000066a3e4: 4b 9b 6f 7d bl c000000000021360 <.ioread8> # c00000000066a3e8: 60 00 00 00 nop # c00000000066a3ec: 7f c4 f3 78 mr r4,r30 # c00000000066a3f0: 54 63 06 3c rlwinm r3,r3,0,24,30 # c00000000066a3f4: 4b 9b 70 4d bl c000000000021440 <.iowrite8> # c00000000066a3f8: 60 00 00 00 nop # c00000000066a3fc: 7f e3 fb 78 mr r3,r31 # c00000000066a400: 38 21 00 80 addi r1,r1,128 # c00000000066a404: e8 01 00 10 ld r0,16(r1) # c00000000066a408: eb c1 ff f0 ld r30,-16(r1) # c00000000066a40c: 7c 08 03 a6 mtlr r0 # c00000000066a410: eb e1 ff f8 ld r31,-8(r1) # c00000000066a414: 4b ff ff 8c b c00000000066a3a0 <.ata_sff_dma_pause> # # The same function with this patch: # # c000000000669cb4 <.ata_bmdma_stop>: # c000000000669cb4: e8 63 00 00 ld r3,0(r3) # c000000000669cb8: e9 43 00 98 ld r10,152(r3) # c000000000669cbc: 7c 00 04 ac hwsync # c000000000669cc0: 89 2a 00 00 lbz r9,0(r10) # c000000000669cc4: 0c 09 00 00 twi 0,r9,0 # c000000000669cc8: 4c 00 01 2c isync # c000000000669ccc: 55 29 06 3c rlwinm r9,r9,0,24,30 # c000000000669cd0: 7c 00 04 ac hwsync # c000000000669cd4: 99 2a 00 00 stb r9,0(r10) # c000000000669cd8: a1 4d 06 f0 lhz r10,1776(r13) # c000000000669cdc: 2c 2a 00 00 cmpdi r10,0 # c000000000669ce0: 41 c2 00 08 beq- c000000000669ce8 <.ata_bmdma_stop+0x34> # c000000000669ce4: b1 4d 06 f2 sth r10,1778(r13) # c000000000669ce8: 4b ff ff a8 b c000000000669c90 <.ata_sff_dma_pause> # # Signed-off-by: Christophe Leroy # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/18b357d68c4cde149f75c7a1031c850925cd8128.1605981539.git.christophe.leroy@csgroup.eu # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 6cc5522b62bbc176e1a5666c401466a37ffc746e # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc5200_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc5200_defconfig # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc5200_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc5200_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc5200_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/arch/powerpc/platforms/52xx/lite5200_sleep.S: Assembler messages: /kisskb/src/arch/powerpc/platforms/52xx/lite5200_sleep.S:184: Warning: invalid register expression /kisskb/src/block/genhd.c: In function 'diskstats_show': /kisskb/src/block/genhd.c:1659:1: warning: the frame size of 1160 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ /kisskb/src/lib/zstd/compress.c: In function 'ZSTD_compressBlock_doubleFast': /kisskb/src/lib/zstd/compress.c:1393:1: warning: the frame size of 1584 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ INFO: Uncompressed kernel (size 0x825878) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x900000) INFO: Uncompressed kernel (size 0x825878) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x900000) INFO: Uncompressed kernel (size 0x825878) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x900000) INFO: Uncompressed kernel (size 0x81529c) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x900000) Image Name: Linux-5.10.0-rc2-65338-g6cc5522b Created: Wed Nov 25 19:39:00 2020 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 3780823 Bytes = 3692.21 KiB = 3.61 MiB Load Address: 00000000 Entry Point: 00000000 Image Name: Linux-5.10.0-rc2-65338-g6cc5522b Created: Wed Nov 25 19:39:01 2020 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 3812186 Bytes = 3722.84 KiB = 3.64 MiB Load Address: 00900000 Entry Point: 00900274 Image Name: Linux-5.10.0-rc2-65338-g6cc5522b Created: Wed Nov 25 19:39:01 2020 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 3812248 Bytes = 3722.90 KiB = 3.64 MiB Load Address: 00900000 Entry Point: 00900274 Image Name: Linux-5.10.0-rc2-65338-g6cc5522b Created: Wed Nov 25 19:39:01 2020 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 3811164 Bytes = 3721.84 KiB = 3.63 MiB Load Address: 00900000 Entry Point: 00900274 Completed OK # rm -rf /kisskb/build/powerpc-next_mpc5200_defconfig_powerpc-gcc4.9 # Build took: 0:01:08.310100