tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
queue-5.10
head: 9ced6633127bd25a94939777d9ecda54800859fc
commit: 63fcde65bfac0ab04869d34b5a646c4ff769c258 [43/74] mptcp: fix DATA_FIN generation on
early shutdown
config: x86_64-randconfig-a004-20210318 (attached as .config)
compiler: clang version 13.0.0 (
https://github.com/llvm/llvm-project
6db3ab2903f42712f44000afb5aa467efbd25f35)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
#
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.10
git checkout 63fcde65bfac0ab04869d34b5a646c4ff769c258
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
~~~ ^
include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:35: note: expanded from macro
'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:278:10: note: expanded from macro
'__native_word'
sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
^
include/linux/compiler_types.h:315:22: note: expanded from macro
'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:303:23: note: expanded from macro
'_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:295:9: note: expanded from macro
'__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:53: error: no member named 'snd_nxt' in 'struct
mptcp_sock'
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~ ^
include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:35: note: expanded from macro
'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:278:38: note: expanded from macro
'__native_word'
sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
^
include/linux/compiler_types.h:315:22: note: expanded from macro
'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:303:23: note: expanded from macro
'_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:295:9: note: expanded from macro
'__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:53: error: no member named 'snd_nxt' in 'struct
mptcp_sock'
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~ ^
include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:48: note: expanded from macro
'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:315:22: note: expanded from macro
'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:303:23: note: expanded from macro
'_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:295:9: note: expanded from macro
'__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:53: error: no member named 'snd_nxt' in 'struct
mptcp_sock'
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~ ^
include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^
include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^
include/linux/compiler_types.h:266:13: note: expanded from macro
'__unqual_scalar_typeof'
_Generic((x), \
^
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:53: error: no member named 'snd_nxt' in 'struct
mptcp_sock'
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~ ^
include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^
include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^
include/linux/compiler_types.h:273:15: note: expanded from macro
'__unqual_scalar_typeof'
default: (x)))
^
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:53: error: no member named 'snd_nxt' in 'struct
mptcp_sock'
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~ ^
include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^
include/asm-generic/rwonce.h:44:72: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h:417:35: error: invalid operands to binary expression ('typeof
(_Generic((msk->write_seq), char: (char)0, unsigned char: (unsigned char)0, signed
char: (signed char)0, unsigned short: (unsigned short)0, short: (short)0, unsigned int:
(unsigned int)0, int: (int)0, unsigned long: (unsigned long)0, long: (long)0, unsigned
long long: (unsigned long long)0, long long: (long long)0, default:
(msk->write_seq)))' (aka 'unsigned long long') and 'void')
READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
> net/mptcp/options.c:492:6: error: redefinition of
'snd_data_fin_enable' with a different type: 'u64' (aka 'unsigned long
long') vs 'bool' (aka '_Bool')
u64
snd_data_fin_enable;
^
net/mptcp/options.c:484:13: note: previous definition is here
bool snd_data_fin_enable,
^
10 errors generated.
vim +492 net/mptcp/options.c
6d0060f600adfd Mat Martineau 2020-01-21 482
6d0060f600adfd Mat Martineau 2020-01-21 483 static bool
mptcp_established_options_dss(struct sock *sk, struct sk_buff *skb,
63fcde65bfac0a Paolo Abeni 2021-02-19 484 bool snd_data_fin_enable,
6d0060f600adfd Mat Martineau 2020-01-21 485 unsigned int *size,
6d0060f600adfd Mat Martineau 2020-01-21 486 unsigned int remaining,
6d0060f600adfd Mat Martineau 2020-01-21 487 struct mptcp_out_options *opts)
6d0060f600adfd Mat Martineau 2020-01-21 488 {
6d0060f600adfd Mat Martineau 2020-01-21 489 struct mptcp_subflow_context *subflow =
mptcp_subflow_ctx(sk);
7279da6145bbb2 Mat Martineau 2020-07-28 490 struct mptcp_sock *msk =
mptcp_sk(subflow->conn);
6d0060f600adfd Mat Martineau 2020-01-21 491 unsigned int dss_size = 0;
7279da6145bbb2 Mat Martineau 2020-07-28 @492 u64 snd_data_fin_enable;
6d0060f600adfd Mat Martineau 2020-01-21 493 struct mptcp_ext *mpext;
6d0060f600adfd Mat Martineau 2020-01-21 494 unsigned int ack_size;
d22f4988ffecbe Christoph Paasch 2020-01-21 495 bool ret = false;
63fcde65bfac0a Paolo Abeni 2021-02-19 496 u64 ack_seq;
6d0060f600adfd Mat Martineau 2020-01-21 497
0bac966a1f2ae0 Mat Martineau 2020-07-28 498 mpext = skb ? mptcp_get_ext(skb) :
NULL;
6d0060f600adfd Mat Martineau 2020-01-21 499
7279da6145bbb2 Mat Martineau 2020-07-28 500 if (!skb || (mpext &&
mpext->use_map) || snd_data_fin_enable) {
6d0060f600adfd Mat Martineau 2020-01-21 501 unsigned int map_size;
6d0060f600adfd Mat Martineau 2020-01-21 502
6d0060f600adfd Mat Martineau 2020-01-21 503 map_size = TCPOLEN_MPTCP_DSS_BASE +
TCPOLEN_MPTCP_DSS_MAP64;
6d0060f600adfd Mat Martineau 2020-01-21 504
6d0060f600adfd Mat Martineau 2020-01-21 505 remaining -= map_size;
6d0060f600adfd Mat Martineau 2020-01-21 506 dss_size = map_size;
6d0060f600adfd Mat Martineau 2020-01-21 507 if (mpext)
6d0060f600adfd Mat Martineau 2020-01-21 508 opts->ext_copy = *mpext;
6d0060f600adfd Mat Martineau 2020-01-21 509
7279da6145bbb2 Mat Martineau 2020-07-28 510 if (skb &&
snd_data_fin_enable)
9c29e36152748f Paolo Abeni 2020-07-03 511 mptcp_write_data_fin(subflow, skb,
&opts->ext_copy);
d22f4988ffecbe Christoph Paasch 2020-01-21 512 ret = true;
d22f4988ffecbe Christoph Paasch 2020-01-21 513 }
d22f4988ffecbe Christoph Paasch 2020-01-21 514
2398e3991bda7c Paolo Abeni 2020-03-04 515 /* passive sockets msk will set the
'can_ack' after accept(), even
2398e3991bda7c Paolo Abeni 2020-03-04 516 * if the first subflow may have the
already the remote key handy
2398e3991bda7c Paolo Abeni 2020-03-04 517 */
d22f4988ffecbe Christoph Paasch 2020-01-21 518 opts->ext_copy.use_ack = 0;
dc093db5cc052b Paolo Abeni 2020-03-13 519 if (!READ_ONCE(msk->can_ack)) {
d22f4988ffecbe Christoph Paasch 2020-01-21 520 *size = ALIGN(dss_size, 4);
d22f4988ffecbe Christoph Paasch 2020-01-21 521 return ret;
6d0060f600adfd Mat Martineau 2020-01-21 522 }
6d0060f600adfd Mat Martineau 2020-01-21 523
37198e93ced707 Davide Caratti 2020-10-06 524 if (READ_ONCE(msk->use_64bit_ack)) {
6d0060f600adfd Mat Martineau 2020-01-21 525 ack_size = TCPOLEN_MPTCP_DSS_ACK64;
917944da3bfc7c Mat Martineau 2020-09-29 526 opts->ext_copy.data_ack =
READ_ONCE(msk->ack_seq);
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 527 opts->ext_copy.ack64 = 1;
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 528 } else {
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 529 ack_size = TCPOLEN_MPTCP_DSS_ACK32;
917944da3bfc7c Mat Martineau 2020-09-29 530 opts->ext_copy.data_ack32 =
(uint32_t)READ_ONCE(msk->ack_seq);
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 531 opts->ext_copy.ack64 = 0;
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 532 }
a0c1d0eafd1ef1 Christoph Paasch 2020-05-14 533 opts->ext_copy.use_ack = 1;
6d0060f600adfd Mat Martineau 2020-01-21 534
6d0060f600adfd Mat Martineau 2020-01-21 535 /* Add kind/length/subtype/flag overhead
if mapping is not populated */
6d0060f600adfd Mat Martineau 2020-01-21 536 if (dss_size == 0)
6d0060f600adfd Mat Martineau 2020-01-21 537 ack_size += TCPOLEN_MPTCP_DSS_BASE;
6d0060f600adfd Mat Martineau 2020-01-21 538
6d0060f600adfd Mat Martineau 2020-01-21 539 dss_size += ack_size;
6d0060f600adfd Mat Martineau 2020-01-21 540
6d0060f600adfd Mat Martineau 2020-01-21 541 *size = ALIGN(dss_size, 4);
6d0060f600adfd Mat Martineau 2020-01-21 542 return true;
6d0060f600adfd Mat Martineau 2020-01-21 543 }
6d0060f600adfd Mat Martineau 2020-01-21 544
:::::: The code at line 492 was first introduced by commit
:::::: 7279da6145bbb2e41a61def5d9bca5b65f12de9d mptcp: Use MPTCP-level flag for sending
DATA_FIN
:::::: TO: Mat Martineau <mathew.j.martineau(a)linux.intel.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org