All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters')
@ 2025-03-02 15:42 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-03-02 15:42 UTC (permalink / raw)
  Cc: oe-kbuild-all, llvm

CC: linux-kernel@vger.kernel.org
TO: Kent Overstreet <kent.overstreet@linux.dev>

Hi Kent,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1973160c90d7886c523e52e1f56164e6a74f0474
commit: 1c6fdbd8f2465ddfb73a01ec620cbf3d14044e1a bcachefs: Initial commit
date:   1 year, 4 months ago
config: x86_64-buildonly-randconfig-004-20241224 (https://download.01.org/0day-ci/archive/20250302/202503022349.eydi1bf1-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503022349.eydi1bf1-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/oe-kbuild-all/202503022349.eydi1bf1-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:8:
   In file included from include/linux/cacheflush.h:5:
   In file included from arch/x86/include/asm/cacheflush.h:5:
   In file included from include/linux/mm.h:2168:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   fs/bcachefs/quota.c:25:24: warning: variable 'dq' set but not used [-Wunused-but-set-variable]
      25 |         struct bkey_s_c_quota dq;
         |                               ^
>> fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters') [-Wenum-enum-conversion]
     130 |         }               m[QTYP_NR * Q_COUNTERS];
         |                           ~~~~~~~ ^ ~~~~~~~~~~
   fs/bcachefs/quota.c:612:28: warning: variable 'q' set but not used [-Wunused-but-set-variable]
     612 |         struct bch_memquota_type *q;
         |                                   ^
   7 warnings generated.


vim +130 fs/bcachefs/quota.c

    22	
    23	const char *bch2_quota_invalid(const struct bch_fs *c, struct bkey_s_c k)
    24	{
  > 25		struct bkey_s_c_quota dq;
    26	
    27		if (k.k->p.inode >= QTYP_NR)
    28			return "invalid quota type";
    29	
    30		switch (k.k->type) {
    31		case BCH_QUOTA: {
    32			dq = bkey_s_c_to_quota(k);
    33	
    34			if (bkey_val_bytes(k.k) != sizeof(struct bch_quota))
    35				return "incorrect value size";
    36	
    37			return NULL;
    38		}
    39		default:
    40			return "invalid type";
    41		}
    42	}
    43	
    44	static const char * const bch2_quota_counters[] = {
    45		"space",
    46		"inodes",
    47	};
    48	
    49	void bch2_quota_to_text(struct bch_fs *c, char *buf,
    50				size_t size, struct bkey_s_c k)
    51	{
    52		char *out = buf, *end= buf + size;
    53		struct bkey_s_c_quota dq;
    54		unsigned i;
    55	
    56		switch (k.k->type) {
    57		case BCH_QUOTA:
    58			dq = bkey_s_c_to_quota(k);
    59	
    60			for (i = 0; i < Q_COUNTERS; i++)
    61				out += scnprintf(out, end - out, "%s hardlimit %llu softlimit %llu",
    62						 bch2_quota_counters[i],
    63						 le64_to_cpu(dq.v->c[i].hardlimit),
    64						 le64_to_cpu(dq.v->c[i].softlimit));
    65			break;
    66		}
    67	}
    68	
    69	#ifdef CONFIG_BCACHEFS_QUOTA
    70	
    71	#include <linux/cred.h>
    72	#include <linux/fs.h>
    73	#include <linux/quota.h>
    74	
    75	static inline unsigned __next_qtype(unsigned i, unsigned qtypes)
    76	{
    77		qtypes >>= i;
    78		return qtypes ? i + __ffs(qtypes) : QTYP_NR;
    79	}
    80	
    81	#define for_each_set_qtype(_c, _i, _q, _qtypes)				\
    82		for (_i = 0;							\
    83		     (_i = __next_qtype(_i, _qtypes),				\
    84		      _q = &(_c)->quotas[_i],					\
    85		      _i < QTYP_NR);						\
    86		     _i++)
    87	
    88	static bool ignore_hardlimit(struct bch_memquota_type *q)
    89	{
    90		if (capable(CAP_SYS_RESOURCE))
    91			return true;
    92	#if 0
    93		struct mem_dqinfo *info = &sb_dqopt(dquot->dq_sb)->info[dquot->dq_id.type];
    94	
    95		return capable(CAP_SYS_RESOURCE) &&
    96		       (info->dqi_format->qf_fmt_id != QFMT_VFS_OLD ||
    97			!(info->dqi_flags & DQF_ROOT_SQUASH));
    98	#endif
    99		return false;
   100	}
   101	
   102	enum quota_msg {
   103		SOFTWARN,	/* Softlimit reached */
   104		SOFTLONGWARN,	/* Grace time expired */
   105		HARDWARN,	/* Hardlimit reached */
   106	
   107		HARDBELOW,	/* Usage got below inode hardlimit */
   108		SOFTBELOW,	/* Usage got below inode softlimit */
   109	};
   110	
   111	static int quota_nl[][Q_COUNTERS] = {
   112		[HARDWARN][Q_SPC]	= QUOTA_NL_BHARDWARN,
   113		[SOFTLONGWARN][Q_SPC]	= QUOTA_NL_BSOFTLONGWARN,
   114		[SOFTWARN][Q_SPC]	= QUOTA_NL_BSOFTWARN,
   115		[HARDBELOW][Q_SPC]	= QUOTA_NL_BHARDBELOW,
   116		[SOFTBELOW][Q_SPC]	= QUOTA_NL_BSOFTBELOW,
   117	
   118		[HARDWARN][Q_INO]	= QUOTA_NL_IHARDWARN,
   119		[SOFTLONGWARN][Q_INO]	= QUOTA_NL_ISOFTLONGWARN,
   120		[SOFTWARN][Q_INO]	= QUOTA_NL_ISOFTWARN,
   121		[HARDBELOW][Q_INO]	= QUOTA_NL_IHARDBELOW,
   122		[SOFTBELOW][Q_INO]	= QUOTA_NL_ISOFTBELOW,
   123	};
   124	
   125	struct quota_msgs {
   126		u8		nr;
   127		struct {
   128			u8	qtype;
   129			u8	msg;
 > 130		}		m[QTYP_NR * Q_COUNTERS];
   131	};
   132	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread
* fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters')
@ 2024-03-01  0:35 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-03-01  0:35 UTC (permalink / raw)
  To: Kent Overstreet; +Cc: llvm, oe-kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   87adedeba51a822533649b143232418b9e26d08b
commit: 1c6fdbd8f2465ddfb73a01ec620cbf3d14044e1a bcachefs: Initial commit
date:   4 months ago
config: hexagon-randconfig-001-20240229 (https://download.01.org/0day-ci/archive/20240301/202403010825.qnve2eAU-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project edd4aee4dd9b5b98b2576a6f783e4086173d902a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240301/202403010825.qnve2eAU-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/oe-kbuild-all/202403010825.qnve2eAU-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/mm.h:2168:
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:337:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     547 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     560 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
         |                                                   ^
   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:337:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     573 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
         |                                                   ^
   In file included from fs/bcachefs/quota.c:2:
   In file included from fs/bcachefs/bcachefs.h:184:
   In file included from include/linux/bio.h:10:
   In file included from include/linux/blk_types.h:10:
   In file included from include/linux/bvec.h:10:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:337:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     584 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     594 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     604 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   fs/bcachefs/quota.c:25:24: warning: variable 'dq' set but not used [-Wunused-but-set-variable]
      25 |         struct bkey_s_c_quota dq;
         |                               ^
>> fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters') [-Wenum-enum-conversion]
     130 |         }               m[QTYP_NR * Q_COUNTERS];
         |                           ~~~~~~~ ^ ~~~~~~~~~~
   fs/bcachefs/quota.c:612:28: warning: variable 'q' set but not used [-Wunused-but-set-variable]
     612 |         struct bch_memquota_type *q;
         |                                   ^
   fs/bcachefs/quota.c:765:8: error: call to undeclared function 'COUNT_ARGS'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     765 |         ret = bch2_btree_insert_at(c, NULL, NULL, NULL, 0,
         |               ^
   fs/bcachefs/btree_update.h:72:10: note: expanded from macro 'bch2_btree_insert_at'
      72 |                 .nr             = COUNT_ARGS(__VA_ARGS__),              \
         |                                   ^
   10 warnings and 1 error generated.


vim +130 fs/bcachefs/quota.c

   124	
   125	struct quota_msgs {
   126		u8		nr;
   127		struct {
   128			u8	qtype;
   129			u8	msg;
 > 130		}		m[QTYP_NR * Q_COUNTERS];
   131	};
   132	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-03-02 15:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-02 15:42 fs/bcachefs/quota.c:130:15: warning: arithmetic between different enumeration types ('enum quota_types' and 'enum quota_counters') kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2024-03-01  0:35 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.