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: parisc-randconfig-r004-20210318 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
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
#
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=gcc-9.3.0 make.cross ARCH=parisc
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 >>):
315 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
net/mptcp/protocol.h:417:51: error: 'const struct mptcp_sock' has no member
named 'snd_nxt'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~
include/linux/compiler_types.h:295:9: note: in definition of macro
'__compiletime_assert'
295 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:315:2: note: in expansion of macro
'_compiletime_assert'
315 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
net/mptcp/protocol.h:417:51: error: 'const struct mptcp_sock' has no member
named 'snd_nxt'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~
include/linux/compiler_types.h:295:9: note: in definition of macro
'__compiletime_assert'
295 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:315:2: note: in expansion of macro
'_compiletime_assert'
315 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
net/mptcp/protocol.h:417:51: error: 'const struct mptcp_sock' has no member
named 'snd_nxt'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~
include/linux/compiler_types.h:295:9: note: in definition of macro
'__compiletime_assert'
295 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:315:2: note: in expansion of macro
'_compiletime_assert'
315 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
net/mptcp/protocol.h:417:51: error: 'const struct mptcp_sock' has no member
named 'snd_nxt'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~
include/linux/compiler_types.h:266:13: note: in definition of macro
'__unqual_scalar_typeof'
266 | _Generic((x), \
| ^
include/asm-generic/rwonce.h:50:2: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); \
| ^~~~~~~~~~~
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
In file included from ./arch/parisc/include/generated/asm/rwonce.h:1,
from include/linux/compiler.h:246,
from include/linux/kernel.h:11,
from net/mptcp/options.c:9:
net/mptcp/protocol.h:417:51: error: 'const struct mptcp_sock' has no member
named 'snd_nxt'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
| ^
net/mptcp/protocol.h:417:38: note: in expansion of macro 'READ_ONCE'
417 | READ_ONCE(msk->write_seq) == READ_ONCE(msk->snd_nxt);
| ^~~~~~~~~
net/mptcp/options.c: In function 'mptcp_established_options_dss':
> net/mptcp/options.c:492:6: error: 'snd_data_fin_enable'
redeclared as different kind of symbol
492 | u64 snd_data_fin_enable;
| ^~~~~~~~~~~~~~~~~~~
net/mptcp/options.c:484:13: note: previous definition of 'snd_data_fin_enable'
was here
484 | bool snd_data_fin_enable,
| ~~~~~^~~~~~~~~~~~~~~~~~~
net/mptcp/options.c:496:6: warning: unused variable 'ack_seq'
[-Wunused-variable]
496 | u64 ack_seq;
| ^~~~~~~
In file included from net/mptcp/options.c:13:
net/mptcp/protocol.h: In function 'mptcp_data_fin_enabled':
net/mptcp/protocol.h:418:1: error: control reaches end of non-void function
[-Werror=return-type]
418 | }
| ^
cc1: some warnings being treated as errors
vim +/snd_data_fin_enable +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