# git rev-parse -q --verify cc3a7bfe62b947b423fcb2cfe89fcba92bf48fa3^{commit} cc3a7bfe62b947b423fcb2cfe89fcba92bf48fa3 already have revision, skipping fetch # git checkout -q -f -B kisskb cc3a7bfe62b947b423fcb2cfe89fcba92bf48fa3 # git clean -qxdf # < git log -1 # commit cc3a7bfe62b947b423fcb2cfe89fcba92bf48fa3 # Author: Eric Sandeen # Date: Wed Oct 2 16:17:54 2019 -0500 # # vfs: Fix EOVERFLOW testing in put_compat_statfs64 # # Today, put_compat_statfs64() disallows nearly any field value over # 2^32 if f_bsize is only 32 bits, but that makes no sense. # compat_statfs64 is there for the explicit purpose of providing 64-bit # fields for f_files, f_ffree, etc. And f_bsize is always only 32 bits. # # As a result, 32-bit userspace gets -EOVERFLOW for i.e. large file # counts even with -D_FILE_OFFSET_BITS=64 set. # # In reality, only f_bsize and f_frsize can legitimately overflow # (fields like f_type and f_namelen should never be large), so test # only those fields. # # This bug was discussed at length some time ago, and this is the proposal # Al suggested at https://lkml.org/lkml/2018/8/6/640. It seemed to get # dropped amid the discussion of other related changes, but this # part seems obviously correct on its own, so I've picked it up and # sent it, for expediency. # # Fixes: 64d2ab32efe3 ("vfs: fix put_compat_statfs64() does not handle errors") # Signed-off-by: Eric Sandeen # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux-ld --version # < git log --format=%s --max-count=1 cc3a7bfe62b947b423fcb2cfe89fcba92bf48fa3 # < make -s -j 8 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- allmodconfig # make -s -j 8 ARCH=nds32 O=/kisskb/build/linus_nds32-allmodconfig_nds32le CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/nds32le-linux/bin/nds32le-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /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. ^~~~~~~ In file included from /kisskb/src/drivers/net/phy/mdio-cavium.c:11: /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/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); ^~~~~~~~~~~~~~ /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/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/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/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); ^~~~~~~~~~~~~~~ /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/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); ^~~~~~~~~~~~~~ /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/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); ^~~~~~~~~~~~~~~ /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/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); ^~~~~~~~~~~~~~ /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/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/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); ^~~~~~~~~~~~~~~ /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/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/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/drivers/net/phy/mdio-octeon.c:14: /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/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/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/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); ^~~~~~~~~~~~~~~ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-mdio.c:16: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet.c:22: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-mem.c:12: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-rgmii.c:15: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-sgmii.c:14: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-rx.c:26: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-spi.c:13: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ In file included from /kisskb/src/drivers/staging/octeon/octeon-ethernet.h:41, from /kisskb/src/drivers/staging/octeon/ethernet-tx.c:25: /kisskb/src/drivers/staging/octeon/octeon-stubs.h: In function 'cvmx_phys_to_ptr': /kisskb/src/drivers/staging/octeon/octeon-stubs.h:1205:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] return (void *)(physical_address); ^ /kisskb/src/drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_xmit': /kisskb/src/drivers/staging/octeon/ethernet-tx.c:264:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data); ^ /kisskb/src/drivers/staging/octeon/octeon-stubs.h:2:30: note: in definition of macro 'XKPHYS_TO_PHYS' #define XKPHYS_TO_PHYS(p) (p) ^ /kisskb/src/drivers/staging/octeon/ethernet-tx.c:268:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data); ^ /kisskb/src/drivers/staging/octeon/octeon-stubs.h:2:30: note: in definition of macro 'XKPHYS_TO_PHYS' #define XKPHYS_TO_PHYS(p) (p) ^ /kisskb/src/drivers/staging/octeon/ethernet-tx.c:276:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] XKPHYS_TO_PHYS((u64)skb_frag_address(fs)); ^ /kisskb/src/drivers/staging/octeon/octeon-stubs.h:2:30: note: in definition of macro 'XKPHYS_TO_PHYS' #define XKPHYS_TO_PHYS(p) (p) ^ /kisskb/src/drivers/staging/octeon/ethernet-tx.c:280:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)CVM_OCT_SKB_CB(skb)); ^ /kisskb/src/drivers/staging/octeon/octeon-stubs.h:2:30: note: in definition of macro 'XKPHYS_TO_PHYS' #define XKPHYS_TO_PHYS(p) (p) ^ WARNING: EXPORT symbol "clear_page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: EXPORT symbol "copy_page" [vmlinux] version generation failed, symbol will not be versioned. WARNING: "copy_page" [drivers/md/dm-integrity.ko] has no CRC! WARNING: "clear_page" [drivers/md/dm-integrity.ko] has no CRC! WARNING: "clear_page" [drivers/md/raid456.ko] has no CRC! WARNING: "clear_page" [drivers/scsi/sd_mod.ko] has no CRC! WARNING: "copy_page" [drivers/block/drbd/drbd.ko] has no CRC! WARNING: "copy_page" [drivers/gpu/drm/ttm/ttm.ko] has no CRC! WARNING: "clear_page" [drivers/gpu/drm/ttm/ttm.ko] has no CRC! WARNING: "clear_page" [fs/gfs2/gfs2.ko] has no CRC! WARNING: "copy_page" [fs/btrfs/btrfs.ko] has no CRC! WARNING: "clear_page" [fs/btrfs/btrfs.ko] has no CRC! WARNING: "clear_page" [fs/ocfs2/dlm/ocfs2_dlm.ko] has no CRC! WARNING: "copy_page" [fs/cachefiles/cachefiles.ko] has no CRC! WARNING: "copy_page" [fs/nilfs2/nilfs2.ko] has no CRC! WARNING: "copy_page" [fs/fuse/fuse.ko] has no CRC! WARNING: "clear_page" [fs/fuse/fuse.ko] has no CRC! WARNING: "clear_page" [fs/ntfs/ntfs.ko] has no CRC! Completed OK # rm -rf /kisskb/build/linus_nds32-allmodconfig_nds32le # Build took: 0:29:20.401268