All of lore.kernel.org
 help / color / mirror / Atom feed
* [chao:feature/kelvin_subpage 5/22] include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
@ 2026-08-31 11:33 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-31 11:33 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp

:::::: 
:::::: Manual check reason: "low confidence static check warning: include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: Chao Yu <chao@kernel.org>
TO: Kelvin Zhang <zhangxp1998@gmail.com>
CC: Chao Yu <chao@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git feature/kelvin_subpage
head:   c1bd92d1f34a6b496c203d87db044e61059c28ae
commit: 0afae9798e90aeeeebfaaf8878c16c2a5f1dbc9f [5/22] f2fs: describe {i,d,id}node block layout dynamically
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: csky-randconfig-r132-20260830 (https://download.01.org/0day-ci/archive/20260831/202608311908.QPDnGekH-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 16.1.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260831/202608311908.QPDnGekH-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202608311908.QPDnGekH-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   fs/f2fs/dir.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/extent_cache.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/xattr.c:851:1: sparse: sparse: no newline at end of file
   fs/f2fs/xattr.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/recovery.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/inode.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/namei.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/inline.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/gc.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/data.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
   fs/f2fs/data.c:2557:39: sparse: sparse: Using plain integer as NULL pointer
--
   fs/f2fs/file.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
   fs/f2fs/file.c:4082:36: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const [usertype] *pwcs @@     got restricted __le16 * @@
   fs/f2fs/file.c:4082:36: sparse:     expected unsigned short const [usertype] *pwcs
   fs/f2fs/file.c:4082:36: sparse:     got restricted __le16 *
   fs/f2fs/file.c:4118:28: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected unsigned short [usertype] *pwcs @@     got restricted __le16 * @@
   fs/f2fs/file.c:4118:28: sparse:     expected unsigned short [usertype] *pwcs
   fs/f2fs/file.c:4118:28: sparse:     got restricted __le16 *
   fs/f2fs/file.c: note: in included file (through include/linux/uaccess.h, include/linux/sched/task.h, include/linux/sched/signal.h, include/linux/rcuwait.h, ...):
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: asm output is not an lvalue
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: cast removes address space '__user' of expression
   arch/csky/include/asm/uaccess.h:110:17: sparse: sparse: generating address of non-lvalue (11)
--
   fs/f2fs/node.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
--
   fs/f2fs/super.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/f2fs.h):
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in initializer (different base types) @@     expected unsigned long mask @@     got restricted vm_fault_t @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long mask
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: incorrect type in argument 3 (different base types) @@     expected unsigned long flags @@     got restricted vm_fault_t [usertype] ret @@
   include/trace/events/f2fs.h:1470:1: sparse:     expected unsigned long flags
   include/trace/events/f2fs.h:1470:1: sparse:     got restricted vm_fault_t [usertype] ret
   fs/f2fs/super.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/f2fs.h):
   include/trace/events/f2fs.h:1173:1: sparse: sparse: cast to restricted blk_opf_t
   include/trace/events/f2fs.h:1173:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1173:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1173:1: sparse: sparse: cast to restricted blk_opf_t
   include/trace/events/f2fs.h:1173:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1173:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1232:1: sparse: sparse: cast to restricted blk_opf_t
   include/trace/events/f2fs.h:1232:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1232:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1232:1: sparse: sparse: cast to restricted blk_opf_t
   include/trace/events/f2fs.h:1232:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1232:1: sparse: sparse: restricted blk_opf_t degrades to integer
   include/trace/events/f2fs.h:1470:1: sparse: sparse: cast to restricted vm_fault_t
   include/trace/events/f2fs.h:1470:1: sparse: sparse: restricted vm_fault_t degrades to integer
   include/trace/events/f2fs.h:1470:1: sparse: sparse: restricted vm_fault_t degrades to integer
   fs/f2fs/super.c: note: in included file:
>> include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union

vim +/i_addr +347 include/linux/f2fs_fs.h

1001b3479ce96e3 Huajun Li    2013-11-10  297  
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  298  struct f2fs_inode {
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  299  	__le16 i_mode;			/* file mode */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  300  	__u8 i_advise;			/* file hints */
444c580f7e9ad29 Jaegeuk Kim  2013-08-08  301  	__u8 i_inline;			/* file inline flags */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  302  	__le32 i_uid;			/* user ID */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  303  	__le32 i_gid;			/* group ID */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  304  	__le32 i_links;			/* links count */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  305  	__le64 i_size;			/* file size in bytes */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  306  	__le64 i_blocks;		/* file size in blocks */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  307  	__le64 i_atime;			/* access time */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  308  	__le64 i_ctime;			/* change time */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  309  	__le64 i_mtime;			/* modification time */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  310  	__le32 i_atime_nsec;		/* access time in nano scale */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  311  	__le32 i_ctime_nsec;		/* change time in nano scale */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  312  	__le32 i_mtime_nsec;		/* modification time in nano scale */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  313  	__le32 i_generation;		/* file version (for NFS) */
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  314  	union {
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  315  		__le32 i_current_depth;	/* only for directory depth */
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  316  		__le16 i_gc_failures;	/*
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  317  					 * # of gc failures on pinned file.
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  318  					 * only for regular files.
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  319  					 */
1ad71a27124caf0 Jaegeuk Kim  2017-12-07  320  	};
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  321  	__le32 i_xattr_nid;		/* nid to save xattr */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  322  	__le32 i_flags;			/* file attributes */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  323  	__le32 i_pino;			/* parent inode number */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  324  	__le32 i_namelen;		/* file name length */
5a20d339c785d98 Jaegeuk Kim  2013-03-03  325  	__u8 i_name[F2FS_NAME_LEN];	/* file name for SPOR */
3843154598a0040 Jaegeuk Kim  2014-02-27  326  	__u8 i_dir_level;		/* dentry_level for large dir */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  327  
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  328  	struct f2fs_extent i_ext;	/* caching a largest extent */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  329  
7a2af766af15887 Chao Yu      2017-07-19  330  	union {
7a2af766af15887 Chao Yu      2017-07-19  331  		struct {
7a2af766af15887 Chao Yu      2017-07-19  332  			__le16 i_extra_isize;	/* extra inode attribute size */
6afc662e68b5f98 Chao Yu      2017-09-06  333  			__le16 i_inline_xattr_size;	/* inline xattr size, unit: 4 bytes */
5c57132eaf52659 Chao Yu      2017-07-26  334  			__le32 i_projid;	/* project id */
704956ecf5bcdc1 Chao Yu      2017-07-31  335  			__le32 i_inode_checksum;/* inode meta checksum */
1c1d35df71104c7 Chao Yu      2018-01-25  336  			__le64 i_crtime;	/* creation time */
1c1d35df71104c7 Chao Yu      2018-01-25  337  			__le32 i_crtime_nsec;	/* creation time in nano scale */
4c8ff7095bef64f Chao Yu      2019-11-01  338  			__le64 i_compr_blocks;	/* # of compressed blocks */
4c8ff7095bef64f Chao Yu      2019-11-01  339  			__u8 i_compress_algorithm;	/* compress algorithm */
4c8ff7095bef64f Chao Yu      2019-11-01  340  			__u8 i_log_cluster_size;	/* log of cluster size */
b28f047b28c51d0 Chao Yu      2020-11-26  341  			__le16 i_compress_flag;		/* compress flag */
3fde13f817e23f0 Chao Yu      2021-01-22  342  						/* 0 bit: chksum flag
c1085957dece02b Yangtao Li   2023-01-12  343  						 * [8,15] bits: compress level
3fde13f817e23f0 Chao Yu      2021-01-22  344  						 */
7a2af766af15887 Chao Yu      2017-07-19  345  			__le32 i_extra_end[0];	/* for attribute size calculation */
1c1d35df71104c7 Chao Yu      2018-01-25  346  		} __packed;
0afae9798e90aee Kelvin Zhang 2026-08-20 @347  		__le32 i_addr[];		/* data block pointers */
7a2af766af15887 Chao Yu      2017-07-19  348  	};
0afae9798e90aee Kelvin Zhang 2026-08-20  349  	/*
0afae9798e90aee Kelvin Zhang 2026-08-20  350  	 * __le32 i_nid[DEF_NIDS_PER_INODE];
0afae9798e90aee Kelvin Zhang 2026-08-20  351  	 *
0afae9798e90aee Kelvin Zhang 2026-08-20  352  	 * It is stored immediately before the node footer at the end of the
0afae9798e90aee Kelvin Zhang 2026-08-20  353  	 * filesystem block. Its offset depends on the filesystem block size, so
0afae9798e90aee Kelvin Zhang 2026-08-20  354  	 * locate it dynamically with F2FS_INODE_NIDS().
0afae9798e90aee Kelvin Zhang 2026-08-20  355  	 */
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  356  } __packed;
dd31866b0d55c9b Jaegeuk Kim  2012-11-02  357  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-31 11:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-31 11:33 [chao:feature/kelvin_subpage 5/22] include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.