# 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/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux-gcc --version # < /opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux-ld --version # < git log --format=%s --max-count=1 6cc5522b62bbc176e1a5666c401466a37ffc746e # < make -s -j 24 ARCH=mips O=/kisskb/build/powerpc-next_mips-defconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- defconfig # < make -s -j 24 ARCH=mips O=/kisskb/build/powerpc-next_mips-defconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- help # make -s -j 24 ARCH=mips O=/kisskb/build/powerpc-next_mips-defconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- olddefconfig # make -s -j 24 ARCH=mips O=/kisskb/build/powerpc-next_mips-defconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- FIT description: Linux 5.10.0-rc2-g6cc5522b62bb Created: Wed Nov 25 20:00:57 2020 Image 0 (kernel@0) Description: Linux 5.10.0-rc2-g6cc5522b62bb Created: Wed Nov 25 20:00:57 2020 Type: Kernel Image Compression: gzip compressed Data Size: 5173749 Bytes = 5052.49 KiB = 4.93 MiB Architecture: MIPS OS: Linux Load Address: 0x80100000 Entry Point: 0x80982f78 Hash algo: sha1 Hash value: f042853302485aa15edc752b40fad950cdbe069f Image 1 (fdt@boston) Description: img,boston Device Tree Created: Wed Nov 25 20:00:57 2020 Type: Flat Device Tree Compression: uncompressed Data Size: 3793 Bytes = 3.70 KiB = 0.00 MiB Architecture: MIPS Hash algo: sha1 Hash value: 4799f50d688573234da6e9d7701234d394759ef4 Image 2 (fdt@ni169445) Description: NI 169445 device tree Created: Wed Nov 25 20:00:57 2020 Type: Flat Device Tree Compression: uncompressed Data Size: 1871 Bytes = 1.83 KiB = 0.00 MiB Architecture: MIPS Hash algo: sha1 Hash value: 51b89b31605ee62038c8468c429af091dfc75ec7 Image 3 (fdt@ocelot_pcb123) Description: MSCC Ocelot PCB123 Device Tree Created: Wed Nov 25 20:00:57 2020 Type: Flat Device Tree Compression: uncompressed Data Size: 4659 Bytes = 4.55 KiB = 0.00 MiB Architecture: MIPS Hash algo: sha1 Hash value: 5bcb6e4f21e8e5372544aa130b3bd097355a9050 Image 4 (fdt@ocelot_pcb120) Description: MSCC Ocelot PCB120 Device Tree Created: Wed Nov 25 20:00:57 2020 Type: Flat Device Tree Compression: uncompressed Data Size: 5418 Bytes = 5.29 KiB = 0.01 MiB Architecture: MIPS Hash algo: sha1 Hash value: 93d882f2009a217e0fa9dab94788535ed2be8476 Image 5 (fdt@xilfpga) Description: MIPSfpga (xilfpga) Device Tree Created: Wed Nov 25 20:00:57 2020 Type: Flat Device Tree Compression: uncompressed Data Size: 2708 Bytes = 2.64 KiB = 0.00 MiB Architecture: MIPS Hash algo: sha1 Hash value: 63d058b780f65e22da30f0a183433765f1807f1d Default Configuration: 'conf@default' Configuration 0 (conf@default) Description: Generic Linux kernel Kernel: kernel@0 Configuration 1 (conf@boston) Description: Boston Linux kernel Kernel: kernel@0 FDT: fdt@boston Configuration 2 (conf@ni169445) Description: NI 169445 Linux Kernel Kernel: kernel@0 FDT: fdt@ni169445 Configuration 3 (conf@ocelot_pcb123) Description: Ocelot Linux kernel Kernel: kernel@0 FDT: fdt@ocelot_pcb123 Configuration 4 (conf@ocelot_pcb120) Description: Ocelot Linux kernel Kernel: kernel@0 FDT: fdt@ocelot_pcb120 Configuration 5 (conf@xilfpga) Description: MIPSfpga Linux kernel Kernel: kernel@0 FDT: fdt@xilfpga Completed OK # rm -rf /kisskb/build/powerpc-next_mips-defconfig_mipsel # Build took: 0:02:13.989400