# git rev-parse -q --verify 8c1684bb81f173543599f1848c29a2a3b1ee5907^{commit} 8c1684bb81f173543599f1848c29a2a3b1ee5907 already have revision, skipping fetch # git checkout -q -f -B kisskb 8c1684bb81f173543599f1848c29a2a3b1ee5907 # git clean -qxdf # < git log -1 # commit 8c1684bb81f173543599f1848c29a2a3b1ee5907 # Merge: f44d5c489051 3f2c788a1314 # Author: Linus Torvalds # Date: Thu May 14 11:52:28 2020 -0700 # # Merge tag 'for-linus-2020-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux # # Pull thread fix from Christian Brauner: # "This contains a single fix for all exported legacy fork helpers to # block accidental access to clone3() features in the upper 32 bits of # their respective flags arguments. # # I got Cced on a glibc issue where someone reported consistent failures # for the legacy clone() syscall on ppc64le when sign extension was # performed (since the clone() syscall in glibc exposes the flags # argument as an int whereas the kernel uses unsigned long). # # The legacy clone() syscall is odd in a bunch of ways and here two # things interact: # # - First, legacy clone's flag argument is word-size dependent, i.e. # it's an unsigned long whereas most system calls with flag arguments # use int or unsigned int. # # - Second, legacy clone() ignores unknown and deprecated flags. # # The two of them taken together means that users on 64bit systems can # pass garbage for the upper 32bit of the clone() syscall since forever # and things would just work fine. # # The following program compiled on a 64bit kernel prior to v5.7-rc1 # will succeed and will fail post v5.7-rc1 with EBADF: # # int main(int argc, char *argv[]) # { # pid_t pid; # # /* Note that legacy clone() has different argument ordering on # * different architectures so this won't work everywhere. # * # * Only set the upper 32 bits. # */ # pid = syscall(__NR_clone, 0xffffffff00000000 | SIGCHLD, # NULL, NULL, NULL, NULL); # if (pid < 0) # exit(EXIT_FAILURE); # if (pid == 0) # exit(EXIT_SUCCESS); # if (wait(NULL) != pid) # exit(EXIT_FAILURE); # # exit(EXIT_SUCCESS); # } # # Since legacy clone() couldn't be extended this was not a problem so # far and nobody really noticed or cared since nothing in the kernel # ever bothered to look at the upper 32 bits. # # But once we introduced clone3() and expanded the flag argument in # struct clone_args to 64 bit we opened this can of worms. With the # first flag-based extension to clone3() making use of the upper 32 bits # of the flag argument we've effectively made it possible for the legacy # clone() syscall to reach clone3() only flags on accident. The sign # extension scenario is just the odd corner-case that we needed to # figure this out. # # The reason we just realized this now and not already when we # introduced CLONE_CLEAR_SIGHAND was that CLONE_INTO_CGROUP assumes that # a valid cgroup file descriptor has been given - whereas # CLONE_CLEAR_SIGHAND doesn't need to verify anything. It just silently # resets the signal handlers to SIG_DFL. # # So the sign extension (or the user accidently passing garbage for the # upper 32 bits) caused the CLONE_INTO_CGROUP bit to be raised and the # kernel to error out when it didn't find a valid cgroup file # descriptor. # # Note, I'm also capping kernel_thread()'s flag argument mainly because # none of the new features make sense for kernel_thread() and we # shouldn't risk them being accidently activated however unlikely. If we # wanted to, we could even make kernel_thread() yell when an unknown # flag has been set which it doesn't do right now. But it's not worth # risking this in a bugfix imho" # # * tag 'for-linus-2020-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: # fork: prevent accidental access to clone3 features # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux-ld --version # < git log --format=%s --max-count=1 8c1684bb81f173543599f1848c29a2a3b1ee5907 # < make -s -j 48 ARCH=sh O=/kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # < make -s -j 48 ARCH=sh O=/kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux- help # make -s -j 48 ARCH=sh O=/kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux- olddefconfig # make -s -j 48 ARCH=sh O=/kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux- Generating include/generated/machtypes.h :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S: Assembler messages: /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:85: Warning: overflow in branch to __restore_all; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:204: Warning: overflow in branch to syscall_call; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:352: Warning: overflow in branch to syscall_trace_entry; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:354: Warning: overflow in branch to syscall_trace_entry; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:385: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh2/../../entry-common.S:388: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence In file included from /kisskb/src/arch/sh/math-emu/math.c:23:0: /kisskb/src/include/math-emu/single.h:50:21: warning: "__BIG_ENDIAN" is not defined [-Wundef] #if __BYTE_ORDER == __BIG_ENDIAN ^ In file included from /kisskb/src/arch/sh/math-emu/math.c:24:0: /kisskb/src/include/math-emu/double.h:59:21: warning: "__BIG_ENDIAN" is not defined [-Wundef] #if __BYTE_ORDER == __BIG_ENDIAN ^ /kisskb/src/arch/sh/math-emu/math.c:54:0: warning: "WRITE" redefined #define WRITE(d,a) ({if(put_user(d, (typeof (d)*)a)) return -EFAULT;}) ^ In file included from /kisskb/src/arch/sh/math-emu/math.c:10:0: /kisskb/src/include/linux/kernel.h:41:0: note: this is the location of the previous definition #define WRITE 1 ^ /kisskb/src/arch/sh/math-emu/math.c:55:0: warning: "READ" redefined #define READ(d,a) ({if(get_user(d, (typeof (d)*)a)) return -EFAULT;}) ^ In file included from /kisskb/src/arch/sh/math-emu/math.c:10:0: /kisskb/src/include/linux/kernel.h:40:0: note: this is the location of the previous definition #define READ 0 ^ /kisskb/src/arch/sh/math-emu/math.c:505:12: warning: 'ieee_fpe_handler' defined but not used [-Wunused-function] static int ieee_fpe_handler(struct pt_regs *regs) ^ In file included from /kisskb/src/arch/sh/include/asm/atomic.h:19:0, from /kisskb/src/include/linux/atomic.h:7, from /kisskb/src/include/asm-generic/bitops/atomic.h:5, from /kisskb/src/arch/sh/include/asm/bitops.h:25, from /kisskb/src/include/linux/bitops.h:29, from /kisskb/src/include/linux/kernel.h:12, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/wait.h:7, from /kisskb/src/include/linux/wait_bit.h:8, from /kisskb/src/include/linux/fs.h:6, from /kisskb/src/fs/ocfs2/file.c:13: /kisskb/src/fs/ocfs2/file.c: In function 'ocfs2_file_write_iter': /kisskb/src/arch/sh/include/asm/cmpxchg.h:49:3: warning: value computed is not used [-Wunused-value] ((__typeof__(*(ptr)))__xchg((ptr),(unsigned long)(x), sizeof(*(ptr)))) ^ /kisskb/src/fs/ocfs2/file.c:2419:3: note: in expansion of macro 'xchg' xchg(&iocb->ki_complete, saved_ki_complete); ^ /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_mst_dsc_aux_for_port': /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c:5502:9: warning: missing braces around initializer [-Wmissing-braces] struct drm_dp_desc desc = { 0 }; ^ /kisskb/src/drivers/gpu/drm/drm_dp_mst_topology.c:5502:9: warning: (near initialization for 'desc.ident') [-Wmissing-braces] /kisskb/src/drivers/mfd/htc-pasic3.c: In function 'pasic3_remove': /kisskb/src/drivers/mfd/htc-pasic3.c:186:22: warning: unused variable 'asic' [-Wunused-variable] struct pasic3_data *asic = platform_get_drvdata(pdev); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:28:0, from /kisskb/src/include/linux/scatterlist.h:9, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_set_mode': /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/arch/sh/include/mach-common/mach/mangle-port.h:41:23: note: in definition of macro 'ioswabq' # define ioswabq(x) (x) ^ /kisskb/src/arch/sh/include/asm/io.h:43:47: note: in expansion of macro '__raw_readq' #define readq_relaxed(c) ({ u64 __v = ioswabq(__raw_readq(c)); __v; }) ^ /kisskb/src/arch/sh/include/asm/io.h:53:31: note: in expansion of macro 'readq_relaxed' #define readq(a) ({ u64 r_ = readq_relaxed(a); rmb(); r_; }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:31: note: in expansion of macro 'readq' #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:21:16: note: in expansion of macro 'oct_mdio_readq' smi_clk.u64 = oct_mdio_readq(p->register_base + SMI_CLK); ^ In file included from /kisskb/src/include/linux/scatterlist.h:9:0, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:24:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_clk.u64, p->register_base + SMI_CLK); ^ /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_c45_addr': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:39:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_wr.u64, p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:47:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:28:0, from /kisskb/src/include/linux/scatterlist.h:9, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/arch/sh/include/mach-common/mach/mangle-port.h:41:23: note: in definition of macro 'ioswabq' # define ioswabq(x) (x) ^ /kisskb/src/arch/sh/include/asm/io.h:43:47: note: in expansion of macro '__raw_readq' #define readq_relaxed(c) ({ u64 __v = ioswabq(__raw_readq(c)); __v; }) ^ /kisskb/src/arch/sh/include/asm/io.h:53:31: note: in expansion of macro 'readq_relaxed' #define readq(a) ({ u64 r_ = readq_relaxed(a); rmb(); r_; }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:31: note: in expansion of macro 'readq' #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:54:16: note: in expansion of macro 'oct_mdio_readq' smi_wr.u64 = oct_mdio_readq(p->register_base + SMI_WR_DAT); ^ In file included from /kisskb/src/include/linux/scatterlist.h:9:0, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_read': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:86:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:28:0, from /kisskb/src/include/linux/scatterlist.h:9, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/arch/sh/include/mach-common/mach/mangle-port.h:41:23: note: in definition of macro 'ioswabq' # define ioswabq(x) (x) ^ /kisskb/src/arch/sh/include/asm/io.h:43:47: note: in expansion of macro '__raw_readq' #define readq_relaxed(c) ({ u64 __v = ioswabq(__raw_readq(c)); __v; }) ^ /kisskb/src/arch/sh/include/asm/io.h:53:31: note: in expansion of macro 'readq_relaxed' #define readq(a) ({ u64 r_ = readq_relaxed(a); rmb(); r_; }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:31: note: in expansion of macro 'readq' #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:93:16: note: in expansion of macro 'oct_mdio_readq' smi_rd.u64 = oct_mdio_readq(p->register_base + SMI_RD_DAT); ^ In file included from /kisskb/src/include/linux/scatterlist.h:9:0, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.c: In function 'cavium_mdiobus_write': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:125:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_wr.u64, p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:131:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_cmd.u64, p->register_base + SMI_CMD); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:28:0, from /kisskb/src/include/linux/scatterlist.h:9, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/phy.h:16, from /kisskb/src/drivers/net/phy/mdio-cavium.c:8: /kisskb/src/drivers/net/phy/mdio-cavium.h:114:37: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/arch/sh/include/mach-common/mach/mangle-port.h:41:23: note: in definition of macro 'ioswabq' # define ioswabq(x) (x) ^ /kisskb/src/arch/sh/include/asm/io.h:43:47: note: in expansion of macro '__raw_readq' #define readq_relaxed(c) ({ u64 __v = ioswabq(__raw_readq(c)); __v; }) ^ /kisskb/src/arch/sh/include/asm/io.h:53:31: note: in expansion of macro 'readq_relaxed' #define readq(a) ({ u64 r_ = readq_relaxed(a); rmb(); r_; }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:114:31: note: in expansion of macro 'readq' #define oct_mdio_readq(addr) readq((void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-cavium.c:138:16: note: in expansion of macro 'oct_mdio_readq' smi_wr.u64 = oct_mdio_readq(p->register_base + SMI_WR_DAT); ^ /kisskb/src/drivers/net/ethernet/8390/ax88796.c: In function 'ax_remove': /kisskb/src/drivers/net/ethernet/8390/ax88796.c:808:20: warning: unused variable 'ei_local' [-Wunused-variable] struct ei_device *ei_local = netdev_priv(dev); ^ /kisskb/src/drivers/net/phy/mdio-octeon.c: In function 'octeon_mdiobus_probe': /kisskb/src/drivers/net/phy/mdio-octeon.c:48:3: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] (u64)devm_ioremap(&pdev->dev, mdio_phys, regsize); ^ In file included from /kisskb/src/include/linux/io.h:13:0, from /kisskb/src/include/linux/of_address.h:7, from /kisskb/src/drivers/net/phy/mdio-octeon.c:7: /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:56:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:77:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ /kisskb/src/drivers/net/phy/mdio-octeon.c: In function 'octeon_mdiobus_remove': /kisskb/src/drivers/net/phy/mdio-cavium.h:113:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/arch/sh/include/asm/io.h:33:71: note: in definition of macro '__raw_writeq' #define __raw_writeq(v,a) (__chk_io_ptr(a), *(volatile u64 __force *)(a) = (v)) ^ /kisskb/src/arch/sh/include/asm/io.h:58:32: note: in expansion of macro 'writeq_relaxed' #define writeq(v,a) ({ wmb(); writeq_relaxed((v),(a)); }) ^ /kisskb/src/drivers/net/phy/mdio-cavium.h:113:36: note: in expansion of macro 'writeq' #define oct_mdio_writeq(val, addr) writeq(val, (void *)addr) ^ /kisskb/src/drivers/net/phy/mdio-octeon.c:91:2: note: in expansion of macro 'oct_mdio_writeq' oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); ^ /kisskb/src/drivers/net/arcnet/arc-rimi.c: In function 'arc_rimi_exit': /kisskb/src/drivers/net/arcnet/arc-rimi.c:346:23: warning: unused variable 'lp' [-Wunused-variable] struct arcnet_local *lp = netdev_priv(dev); ^ /kisskb/src/drivers/net/can/cc770/cc770_platform.c: In function 'cc770_platform_remove': /kisskb/src/drivers/net/can/cc770/cc770_platform.c:236:21: warning: unused variable 'priv' [-Wunused-variable] struct cc770_priv *priv = netdev_priv(dev); ^ /kisskb/src/drivers/net/ethernet/fujitsu/fmvj18x_cs.c: In function 'fjn_start_xmit': /kisskb/src/drivers/net/ethernet/fujitsu/fmvj18x_cs.c:823:17: warning: unused variable 'buf' [-Wunused-variable] unsigned char *buf = skb->data; ^ /kisskb/src/drivers/net/ethernet/freescale/fsl_pq_mdio.c: In function 'fsl_pq_mdio_remove': /kisskb/src/drivers/net/ethernet/freescale/fsl_pq_mdio.c:518:27: warning: unused variable 'priv' [-Wunused-variable] struct fsl_pq_mdio_priv *priv = bus->priv; ^ /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ /kisskb/src/drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'smc91c92_release': /kisskb/src/drivers/net/ethernet/smsc/smc91c92_cs.c:958:23: warning: unused variable 'smc' [-Wunused-variable] struct smc_private *smc = netdev_priv(dev); ^ /kisskb/src/drivers/net/ethernet/smsc/smc911x.c: In function 'smc911x_drv_remove': /kisskb/src/drivers/net/ethernet/smsc/smc911x.c:2117:24: warning: unused variable 'lp' [-Wunused-variable] struct smc911x_local *lp = netdev_priv(ndev); ^ /kisskb/src/drivers/thermal/broadcom/ns-thermal.c: In function 'ns_thermal_remove': /kisskb/src/drivers/thermal/broadcom/ns-thermal.c:78:21: warning: unused variable 'ns_thermal' [-Wunused-variable] struct ns_thermal *ns_thermal = platform_get_drvdata(pdev); ^ /kisskb/src/drivers/i2c/busses/i2c-mlxcpld.c: In function 'mlxcpld_i2c_check_busy': /kisskb/src/drivers/i2c/busses/i2c-mlxcpld.c:271:10: warning: 'val' is used uninitialized in this function [-Wuninitialized] if (val & MLXCPLD_LPCI2C_TRANS_END) ^ /kisskb/src/drivers/i2c/busses/i2c-mlxcpld.c: In function 'mlxcpld_i2c_check_status': /kisskb/src/drivers/i2c/busses/i2c-mlxcpld.c:209:10: warning: 'val' is used uninitialized in this function [-Wuninitialized] if (val & MLXCPLD_LPCI2C_TRANS_END) { ^ /kisskb/src/drivers/sh/clk/cpg.c: In function 'r8': /kisskb/src/drivers/sh/clk/cpg.c:41:17: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type return ioread8(addr); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:21:0, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread8(void __iomem *); ^ /kisskb/src/drivers/sh/clk/cpg.c: In function 'r16': /kisskb/src/drivers/sh/clk/cpg.c:46:18: warning: passing argument 1 of 'ioread16' discards 'const' qualifier from pointer target type return ioread16(addr); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:21:0, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:30:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread16(void __iomem *); ^ /kisskb/src/drivers/sh/clk/cpg.c: In function 'r32': /kisskb/src/drivers/sh/clk/cpg.c:51:18: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type return ioread32(addr); ^ In file included from /kisskb/src/arch/sh/include/asm/io.h:21:0, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:32:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread32(void __iomem *); ^ In file included from /kisskb/src/include/linux/scatterlist.h:9:0, from /kisskb/src/include/linux/dma-mapping.h:11, from /kisskb/src/include/linux/skbuff.h:31, from /kisskb/src/include/linux/if_ether.h:19, from /kisskb/src/include/uapi/linux/ethtool.h:19, from /kisskb/src/include/linux/ethtool.h:18, from /kisskb/src/include/linux/netdevice.h:37, from /kisskb/src/drivers/staging/octeon/ethernet-mem.c:9: /kisskb/src/drivers/staging/octeon/ethernet-mem.c: In function 'cvm_oct_free_hw_memory': /kisskb/src/arch/sh/include/asm/io.h:244:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define phys_to_virt(address) ((void *)(address)) ^ /kisskb/src/drivers/staging/octeon/ethernet-mem.c:123:18: note: in expansion of macro 'phys_to_virt' fpa = (char *)phys_to_virt(cvmx_ptr_to_phys(fpa)); ^ /kisskb/src/drivers/iio/adc/ad7606_par.c: In function 'ad7606_par16_read_block': /kisskb/src/drivers/iio/adc/ad7606_par.c:21:23: warning: unused variable 'st' [-Wunused-variable] struct ad7606_state *st = iio_priv(indio_dev); ^ /kisskb/src/drivers/iio/adc/ad7606_par.c: In function 'ad7606_par8_read_block': /kisskb/src/drivers/iio/adc/ad7606_par.c:36:23: warning: unused variable 'st' [-Wunused-variable] struct ad7606_state *st = iio_priv(indio_dev); ^ kernel/bpf/core.o: In function `___bpf_prog_run': core.c:(.text+0x2878): undefined reference to `__fpscr_values' core.c:(.text+0x36ec): undefined reference to `__fpscr_values' core.c:(.text+0x426c): undefined reference to `__fpscr_values' make[1]: *** [/kisskb/src/Makefile:1113: vmlinux] Error 1 make: *** [Makefile:180: sub-make] Error 2 Command 'make -s -j 48 ARCH=sh O=/kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/sh4-linux/bin/sh4-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_sh-allmodconfig_sh4-gcc4.9 # Build took: 0:09:05.293399