tree:
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-linux-5.4.y
head: 2bdb7c08718889073030390a1662111cd93df3fa
commit: 2bdb7c08718889073030390a1662111cd93df3fa [1/1] Merge tag 'v5.4.54' of
http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into ti-linux-5.4.y
config: mips-randconfig-r026-20201209 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
1968804ac726e7674d5de22bc2204b45857da344)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
git remote add ti
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
git fetch --no-tags ti ti-linux-5.4.y
git checkout 2bdb7c08718889073030390a1662111cd93df3fa
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> net/hsr/hsr_forward.c:521:13: warning: stack frame size of 1664
bytes in function 'hsr_forward_do' [-Wframe-larger-than=]
static void
hsr_forward_do(struct hsr_frame_info *frame)
^
1 warning generated.
vim +/hsr_forward_do +521 net/hsr/hsr_forward.c
514cdd7471ff78 WingMan Kwok 2018-02-22 508
f266a683a4804d Arvid Brodin 2014-07-04 509 /* Forward the frame through all devices
except:
f266a683a4804d Arvid Brodin 2014-07-04 510 * - Back through the receiving device
f266a683a4804d Arvid Brodin 2014-07-04 511 * - If it's a HSR frame: through a
device where it has passed before
cec32b3c120970 Murali Karicheri 2020-06-02 512 * - if it's a PRP frame: through
another PRP slave device (no bridge)
f266a683a4804d Arvid Brodin 2014-07-04 513 * - To the local HSR master only if the
frame is directly addressed to it, or
f266a683a4804d Arvid Brodin 2014-07-04 514 * a non-supervision multicast or
broadcast frame.
f266a683a4804d Arvid Brodin 2014-07-04 515 *
f266a683a4804d Arvid Brodin 2014-07-04 516 * HSR slave devices should insert a HSR
tag into the frame, or forward the
f266a683a4804d Arvid Brodin 2014-07-04 517 * frame unchanged if it's already
tagged. Interlink devices should strip HSR
f266a683a4804d Arvid Brodin 2014-07-04 518 * tags if they're of the non-HSR
type (but only after duplicate discard). The
f266a683a4804d Arvid Brodin 2014-07-04 519 * master device always strips HSR tags.
f266a683a4804d Arvid Brodin 2014-07-04 520 */
f266a683a4804d Arvid Brodin 2014-07-04 @521 static void hsr_forward_do(struct
hsr_frame_info *frame)
f266a683a4804d Arvid Brodin 2014-07-04 522 {
f266a683a4804d Arvid Brodin 2014-07-04 523 struct hsr_port *port;
cec32b3c120970 Murali Karicheri 2020-06-02 524 struct sk_buff *skb = NULL;
514cdd7471ff78 WingMan Kwok 2018-02-22 525 unsigned int dir_ports = 0;
f266a683a4804d Arvid Brodin 2014-07-04 526
f266a683a4804d Arvid Brodin 2014-07-04 527
hsr_for_each_port(frame->port_rcv->hsr, port) {
f266a683a4804d Arvid Brodin 2014-07-04 528 /* Don't send frame back the way it
came */
f266a683a4804d Arvid Brodin 2014-07-04 529 if (port == frame->port_rcv)
f266a683a4804d Arvid Brodin 2014-07-04 530 continue;
f266a683a4804d Arvid Brodin 2014-07-04 531
f266a683a4804d Arvid Brodin 2014-07-04 532 /* Don't deliver locally unless we
should */
5670342ced28b8 Murali Karicheri 2019-04-05 533 if (port->type == HSR_PT_MASTER
&& !frame->is_local_dest)
f266a683a4804d Arvid Brodin 2014-07-04 534 continue;
f266a683a4804d Arvid Brodin 2014-07-04 535
f266a683a4804d Arvid Brodin 2014-07-04 536 /* Deliver frames directly addressed to
us to master only */
5670342ced28b8 Murali Karicheri 2019-04-05 537 if (port->type != HSR_PT_MASTER
&& frame->is_local_exclusive)
f266a683a4804d Arvid Brodin 2014-07-04 538 continue;
f266a683a4804d Arvid Brodin 2014-07-04 539
cec32b3c120970 Murali Karicheri 2020-06-02 540 /* Don't send frame over port where
it has been sent before.
dc8c14dea9d6ec Murali Karicheri 2020-06-18 541 * Also if rx LRE is offloaded,
hardware does duplication
dc8c14dea9d6ec Murali Karicheri 2020-06-18 542 * detection and discard and send only
one copy to the upper
dc8c14dea9d6ec Murali Karicheri 2020-06-18 543 * device and thus discard duplicate
detection. For PRP, frame
dc8c14dea9d6ec Murali Karicheri 2020-06-18 544 * could be from a SAN for which bypass
duplicate discard here.
cec32b3c120970 Murali Karicheri 2020-06-02 545 */
dc8c14dea9d6ec Murali Karicheri 2020-06-18 546 if (!port->hsr->rx_offloaded
&& !frame->is_from_san &&
cec32b3c120970 Murali Karicheri 2020-06-02 547 hsr_register_frame_out(port,
frame->node_src,
f266a683a4804d Arvid Brodin 2014-07-04 548 frame->sequence_nr))
f266a683a4804d Arvid Brodin 2014-07-04 549 continue;
f266a683a4804d Arvid Brodin 2014-07-04 550
dc8c14dea9d6ec Murali Karicheri 2020-06-18 551 /* In LRE offloaded case, don't
expect supervision frames from
dc8c14dea9d6ec Murali Karicheri 2020-06-18 552 * slave ports for host as they get
processed at the h/w or
dc8c14dea9d6ec Murali Karicheri 2020-06-18 553 * firmware.
dc8c14dea9d6ec Murali Karicheri 2020-06-18 554 */
dc8c14dea9d6ec Murali Karicheri 2020-06-18 555 if (frame->is_supervision
&&
dc8c14dea9d6ec Murali Karicheri 2020-06-18 556 port->type == HSR_PT_MASTER
&& !port->hsr->rx_offloaded) {
cec32b3c120970 Murali Karicheri 2020-06-02 557 if (frame->skb_hsr)
cec32b3c120970 Murali Karicheri 2020-06-02 558 skb = frame->skb_hsr;
cec32b3c120970 Murali Karicheri 2020-06-02 559 else if (frame->skb_prp)
cec32b3c120970 Murali Karicheri 2020-06-02 560 skb = frame->skb_prp;
cec32b3c120970 Murali Karicheri 2020-06-02 561 if (skb)
cec32b3c120970 Murali Karicheri 2020-06-02 562 hsr_handle_sup_frame(skb,
frame->node_src,
f266a683a4804d Arvid Brodin 2014-07-04 563 frame->port_rcv);
f266a683a4804d Arvid Brodin 2014-07-04 564 continue;
f266a683a4804d Arvid Brodin 2014-07-04 565 }
f266a683a4804d Arvid Brodin 2014-07-04 566
dc8c14dea9d6ec Murali Karicheri 2020-06-18 567 /* if L2 forward is offloaded, or
protocol is PRP,
dc8c14dea9d6ec Murali Karicheri 2020-06-18 568 * don't forward frame across
slaves.
dc8c14dea9d6ec Murali Karicheri 2020-06-18 569 */
dc8c14dea9d6ec Murali Karicheri 2020-06-18 570 if ((port->hsr->l2_fwd_offloaded
||
dc8c14dea9d6ec Murali Karicheri 2020-06-18 571 port->hsr->prot_version ==
PRP_V1) &&
cec32b3c120970 Murali Karicheri 2020-06-02 572 ((frame->port_rcv->type ==
HSR_PT_SLAVE_A &&
cec32b3c120970 Murali Karicheri 2020-06-02 573 port->type == HSR_PT_SLAVE_B)
||
cec32b3c120970 Murali Karicheri 2020-06-02 574 (frame->port_rcv->type ==
HSR_PT_SLAVE_B &&
cec32b3c120970 Murali Karicheri 2020-06-02 575 port->type ==
HSR_PT_SLAVE_A)))
cec32b3c120970 Murali Karicheri 2020-06-02 576 continue;
cec32b3c120970 Murali Karicheri 2020-06-02 577
514cdd7471ff78 WingMan Kwok 2018-02-22 578 dir_ports =
hsr_directed_tx_ports(frame);
514cdd7471ff78 WingMan Kwok 2018-02-22 579 if (dir_ports && !(dir_ports
& BIT(port->type - 1)))
514cdd7471ff78 WingMan Kwok 2018-02-22 580 continue;
514cdd7471ff78 WingMan Kwok 2018-02-22 581
be083ff10713c5 WingMan Kwok 2018-02-16 582 if (port->type != HSR_PT_MASTER) {
f266a683a4804d Arvid Brodin 2014-07-04 583 skb = frame_get_tagged_skb(frame,
port);
be083ff10713c5 WingMan Kwok 2018-02-16 584 } else {
f266a683a4804d Arvid Brodin 2014-07-04 585 skb = frame_get_stripped_skb(frame,
port);
cec32b3c120970 Murali Karicheri 2020-06-02 586
be083ff10713c5 WingMan Kwok 2018-02-16 587 stripped_skb_get_shared_info(skb,
frame);
be083ff10713c5 WingMan Kwok 2018-02-16 588 }
be083ff10713c5 WingMan Kwok 2018-02-16 589
05ca6e644dc9b7 Murali Karicheri 2019-04-05 590 if (!skb) {
cec32b3c120970 Murali Karicheri 2020-06-02 591
frame->port_rcv->dev->stats.rx_dropped++;
b76331be31438e Murali Karicheri 2020-06-18 592 if (frame->port_rcv->type ==
HSR_PT_SLAVE_A ||
b76331be31438e Murali Karicheri 2020-06-18 593 frame->port_rcv->type ==
HSR_PT_SLAVE_B)
dc8c14dea9d6ec Murali Karicheri 2020-06-18 594
INC_CNT_RX_ERROR_AB(frame->port_rcv->type,
b76331be31438e Murali Karicheri 2020-06-18 595 port->hsr);
f266a683a4804d Arvid Brodin 2014-07-04 596 continue;
f266a683a4804d Arvid Brodin 2014-07-04 597 }
f266a683a4804d Arvid Brodin 2014-07-04 598
f266a683a4804d Arvid Brodin 2014-07-04 599 skb->dev = port->dev;
f266a683a4804d Arvid Brodin 2014-07-04 600 if (port->type == HSR_PT_MASTER)
dc8c14dea9d6ec Murali Karicheri 2020-06-18 601 hsr_deliver_master(skb,
frame->node_src, port);
f266a683a4804d Arvid Brodin 2014-07-04 602 else
f266a683a4804d Arvid Brodin 2014-07-04 603 hsr_xmit(skb, port, frame);
f266a683a4804d Arvid Brodin 2014-07-04 604 }
f266a683a4804d Arvid Brodin 2014-07-04 605 }
f266a683a4804d Arvid Brodin 2014-07-04 606
:::::: The code at line 521 was first introduced by commit
:::::: f266a683a4804dc499efc6c2206ef68efed029d0 net/hsr: Better frame dispatch
:::::: TO: Arvid Brodin <arvid.brodin(a)alten.se>
:::::: 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