From: kernel test robot <lkp@intel.com>
To: Ujjal Roy <royujjal@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
Nikolay Aleksandrov <razor@blackwall.org>,
Ido Schimmel <idosch@nvidia.com>,
David Ahern <dsahern@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, Ujjal Roy <ujjal@alumnux.com>,
bridge@lists.linux.dev, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] ipv6: mld: rename mldv2_mrc() and add mldv2_qqi()
Date: Fri, 27 Mar 2026 23:49:35 +0800 [thread overview]
Message-ID: <202603272318.WLQHm8jS-lkp@intel.com> (raw)
In-Reply-To: <20260326150742.50289-3-royujjal@gmail.com>
Hi Ujjal,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
[also build test WARNING on net/main klassert-ipsec/master linus/master v7.0-rc5 next-20260326]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Ujjal-Roy/ipv4-igmp-get-rid-of-IGMPV3_-QQIC-MRC-and-simplify-calculation/20260327-083159
base: net-next/main
patch link: https://lore.kernel.org/r/20260326150742.50289-3-royujjal%40gmail.com
patch subject: [PATCH 2/4] ipv6: mld: rename mldv2_mrc() and add mldv2_qqi()
config: x86_64-randconfig-121-20260327 (https://download.01.org/0day-ci/archive/20260327/202603272318.WLQHm8jS-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260327/202603272318.WLQHm8jS-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/202603272318.WLQHm8jS-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
net/ipv6/mcast.c: note: in included file:
include/net/mld.h:32:43: sparse: sparse: array of flexible structures
>> include/net/mld.h:147:30: sparse: sparse: cast to restricted __be16
vim +147 include/net/mld.h
29
30 struct mld2_report {
31 struct icmp6hdr mld2r_hdr;
> 32 struct mld2_grec mld2r_grec[];
33 };
34
35 #define mld2r_type mld2r_hdr.icmp6_type
36 #define mld2r_resv1 mld2r_hdr.icmp6_code
37 #define mld2r_cksum mld2r_hdr.icmp6_cksum
38 #define mld2r_resv2 mld2r_hdr.icmp6_dataun.un_data16[0]
39 #define mld2r_ngrec mld2r_hdr.icmp6_dataun.un_data16[1]
40
41 /* MLDv2 Query */
42 struct mld2_query {
43 struct icmp6hdr mld2q_hdr;
44 struct in6_addr mld2q_mca;
45 #if defined(__LITTLE_ENDIAN_BITFIELD)
46 __u8 mld2q_qrv:3,
47 mld2q_suppress:1,
48 mld2q_resv2:4;
49 #elif defined(__BIG_ENDIAN_BITFIELD)
50 __u8 mld2q_resv2:4,
51 mld2q_suppress:1,
52 mld2q_qrv:3;
53 #else
54 #error "Please fix <asm/byteorder.h>"
55 #endif
56 __u8 mld2q_qqic;
57 __be16 mld2q_nsrcs;
58 struct in6_addr mld2q_srcs[];
59 };
60
61 #define mld2q_type mld2q_hdr.icmp6_type
62 #define mld2q_code mld2q_hdr.icmp6_code
63 #define mld2q_cksum mld2q_hdr.icmp6_cksum
64 #define mld2q_mrc mld2q_hdr.icmp6_maxdelay
65 #define mld2q_resv1 mld2q_hdr.icmp6_dataun.un_data16[1]
66
67 /* RFC3810, 5.1.3. Maximum Response Code:
68 *
69 * If Maximum Response Code >= 32768, Maximum Response Code represents a
70 * floating-point value as follows:
71 *
72 * 0 1 2 3 4 5 6 7 8 9 A B C D E F
73 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
74 * |1| exp | mant |
75 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
76 */
77 #define MLDV2_MRC_EXP(value) (((value) >> 12) & 0x0007)
78 #define MLDV2_MRC_MAN(value) ((value) & 0x0fff)
79
80 /* RFC3810, 5.1.9. QQIC (Querier's Query Interval Code):
81 *
82 * If QQIC >= 128, QQIC represents a floating-point value as follows:
83 *
84 * 0 1 2 3 4 5 6 7
85 * +-+-+-+-+-+-+-+-+
86 * |1| exp | mant |
87 * +-+-+-+-+-+-+-+-+
88 */
89 #define MLDV2_QQIC_EXP(value) (((value) >> 4) & 0x07)
90 #define MLDV2_QQIC_MAN(value) ((value) & 0x0f)
91
92 #define MLD_QQIC_MIN_THRESHOLD 128
93 #define MLD_MRC_MIN_THRESHOLD 32768UL
94 #define MLDV1_MRD_MAX_COMPAT (MLD_MRC_MIN_THRESHOLD - 1)
95
96 #define MLD_MAX_QUEUE 8
97 #define MLD_MAX_SKBS 32
98
99 /* V2 exponential field decoding */
100
101 /* Calculate Maximum Response Delay from Maximum Response Code
102 *
103 * RFC3810, 5.1.3. defines the decoding formula:
104 * 0 1 2 3 4 5 6 7 8 9 A B C D E F
105 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
106 * |1| exp | mant |
107 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
108 * Maximum Response Delay = (mant | 0x1000) << (exp+3)
109 */
110 static inline unsigned long mldv2_mrd(const struct mld2_query *mlh2)
111 {
112 /* RFC3810, relevant sections:
113 * - 5.1.3. Maximum Response Code
114 * - 9.3. Query Response Interval
115 */
116 unsigned long mc_mrc = ntohs(mlh2->mld2q_mrc);
117
118 if (mc_mrc < MLD_MRC_MIN_THRESHOLD) {
119 return mc_mrc;
120 } else {
121 unsigned long mc_man, mc_exp;
122
123 mc_exp = MLDV2_MRC_EXP(mc_mrc);
124 mc_man = MLDV2_MRC_MAN(mc_mrc);
125
126 return ((mc_man | 0x1000) << (mc_exp + 3));
127 }
128 }
129
130 /* Calculate Querier's Query Interval from Querier's Query Interval Code
131 *
132 * RFC3810, 5.1.9. defines the decoding formula:
133 * 0 1 2 3 4 5 6 7
134 * +-+-+-+-+-+-+-+-+
135 * |1| exp | mant |
136 * +-+-+-+-+-+-+-+-+
137 * QQI = (mant | 0x10) << (exp + 3)
138 */
139 static inline unsigned long mldv2_qqi(const struct mld2_query *mlh2)
140 {
141 /* RFC3810, relevant sections:
142 * - 5.1.9. QQIC (Querier's Query Interval Code)
143 * - 9.2. Query Interval
144 * - 9.12. Older Version Querier Present Timeout
145 * (the [Query Interval] in the last Query received)
146 */
> 147 unsigned long qqic = ntohs(mlh2->mld2q_qqic);
148
149 if (qqic < MLD_QQIC_MIN_THRESHOLD) {
150 return qqic;
151 } else {
152 unsigned long mc_man, mc_exp;
153
154 mc_exp = MLDV2_QQIC_EXP(qqic);
155 mc_man = MLDV2_QQIC_MAN(qqic);
156
157 return ((mc_man | 0x10) << (mc_exp + 3));
158 }
159 }
160
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-03-27 15:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-26 15:07 [PATCH 0/4] net: bridge: mcast: add multicast exponential field encoding Ujjal Roy
2026-03-26 15:07 ` [PATCH 1/4] ipv4: igmp: get rid of IGMPV3_{QQIC,MRC} and simplify calculation Ujjal Roy
2026-03-26 15:07 ` [PATCH 2/4] ipv6: mld: rename mldv2_mrc() and add mldv2_qqi() Ujjal Roy
2026-03-27 15:49 ` kernel test robot [this message]
2026-03-26 15:07 ` [PATCH 3/4] ipv4: igmp: encode multicast exponential fields Ujjal Roy
2026-03-27 12:19 ` Nikolay Aleksandrov
2026-03-30 19:16 ` [PATCH net-next v2 0/5] net: bridge: mcast: add multicast exponential field encoding Ujjal Roy
2026-03-30 19:16 ` [PATCH net-next v2 1/5] ipv4: igmp: get rid of IGMPV3_{QQIC,MRC} and simplify calculation Ujjal Roy
2026-04-01 7:25 ` Ido Schimmel
2026-03-30 19:16 ` [PATCH net-next v2 2/5] ipv6: mld: rename mldv2_mrc() and add mldv2_qqi() Ujjal Roy
2026-04-01 7:26 ` Ido Schimmel
2026-03-30 19:16 ` [PATCH net-next v2 3/5] ipv4: igmp: encode multicast exponential fields Ujjal Roy
2026-04-01 7:27 ` Ido Schimmel
2026-03-30 19:16 ` [PATCH net-next v2 4/5] ipv6: mld: " Ujjal Roy
2026-04-01 7:29 ` Ido Schimmel
2026-03-30 19:16 ` [PATCH net-next v2 5/5] selftests: net: bridge: add tests for igmpv3 MRC and QQIC validation Ujjal Roy
2026-03-31 14:13 ` Ido Schimmel
2026-04-03 7:50 ` Ujjal Roy
2026-04-03 10:19 ` Ido Schimmel
2026-04-03 10:31 ` Ujjal Roy
2026-03-30 19:39 ` [PATCH net-next v2 0/5] net: bridge: mcast: add multicast exponential field encoding Ujjal Roy
2026-03-31 14:16 ` Ido Schimmel
2026-04-04 17:25 ` Ujjal Roy
2026-03-26 15:07 ` [PATCH 4/4] ipv6: mld: encode multicast exponential fields Ujjal Roy
2026-03-27 6:41 ` [PATCH 0/4] net: bridge: mcast: add multicast exponential field encoding Nikolay Aleksandrov
2026-03-27 11:31 ` Nikolay Aleksandrov
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=202603272318.WLQHm8jS-lkp@intel.com \
--to=lkp@intel.com \
--cc=bridge@lists.linux.dev \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
--cc=royujjal@gmail.com \
--cc=ujjal@alumnux.com \
/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 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.