0 day kernel build service
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: [chao:feature/kelvin_subpage 5/22] include/linux/f2fs_fs.h:347:24: sparse: sparse: flexible array member 'i_addr' in a union
Date: Mon, 31 Aug 2026 19:33:44 +0800	[thread overview]
Message-ID: <202608311908.QPDnGekH-lkp@intel.com> (raw)

:::::: 
:::::: 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

                 reply	other threads:[~2026-08-31 11:34 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202608311908.QPDnGekH-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox