diff for duplicates of <202201220354.fJ3VzqBt-lkp@intel.com> diff --git a/a/1.txt b/N1/1.txt index 8e992e1..461fe1f 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,14 +1,6 @@ -CC: kbuild-all(a)lists.01.org -CC: linux-kernel(a)vger.kernel.org -TO: Christophe Leroy <christophe.leroy@csgroup.eu> -CC: Michael Ellerman <mpe@ellerman.id.au> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9b57f458985742bd1c585f4c7f36d04634ce1143 commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto -date: 5 months ago -:::::: branch date: 5 hours ago -:::::: commit date: 5 months ago config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config) compiler: powerpc64-linux-gcc (GCC) 11.2.0 @@ -21,26 +13,6 @@ net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' coul vim +/psock +645 net/kcm/kcmsock.c -cd6e111bf5be5c7 Tom Herbert 2016-03-07 569 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 570 /* Write any messages ready on the kcm socket. Called with kcm sock lock -ab7ac4eb9832e32 Tom Herbert 2016-03-07 571 * held. Return bytes actually sent or error. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 572 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 573 static int kcm_write_msgs(struct kcm_sock *kcm) -ab7ac4eb9832e32 Tom Herbert 2016-03-07 574 { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 575 struct sock *sk = &kcm->sk; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 576 struct kcm_psock *psock; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 577 struct sk_buff *skb, *head; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 578 struct kcm_tx_msg *txm; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 579 unsigned short fragidx, frag_offset; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 580 unsigned int sent, total_sent = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 581 int ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 582 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 583 kcm->tx_wait_more = false; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 584 psock = kcm->tx_psock; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 @585 if (unlikely(psock && psock->tx_stopped)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 586 /* A reserved psock was aborted asynchronously. Unreserve -ab7ac4eb9832e32 Tom Herbert 2016-03-07 587 * it and we'll retry the message. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 588 */ ab7ac4eb9832e32 Tom Herbert 2016-03-07 589 unreserve_psock(kcm); cd6e111bf5be5c7 Tom Herbert 2016-03-07 590 kcm_report_tx_retry(kcm); ab7ac4eb9832e32 Tom Herbert 2016-03-07 591 if (skb_queue_empty(&sk->sk_write_queue)) @@ -58,6 +30,13 @@ ab7ac4eb9832e32 Tom Herbert 2016-03-07 602 ab7ac4eb9832e32 Tom Herbert 2016-03-07 603 if (txm->sent) { ab7ac4eb9832e32 Tom Herbert 2016-03-07 604 /* Send of first skbuff in queue already in progress */ ab7ac4eb9832e32 Tom Herbert 2016-03-07 605 if (WARN_ON(!psock)) { + +This warning is a false positive. + +The new Power PC implementation of WARN_ON() is written in asm and +Smatch can only parse C. I don't have a cross compile system set up so +fixing this is going to be a big headache. :/ + ab7ac4eb9832e32 Tom Herbert 2016-03-07 606 ret = -EINVAL; ab7ac4eb9832e32 Tom Herbert 2016-03-07 607 goto out; ab7ac4eb9832e32 Tom Herbert 2016-03-07 608 } @@ -68,115 +47,6 @@ ab7ac4eb9832e32 Tom Herbert 2016-03-07 612 skb = txm->frag_skb; ab7ac4eb9832e32 Tom Herbert 2016-03-07 613 ab7ac4eb9832e32 Tom Herbert 2016-03-07 614 goto do_frag; ab7ac4eb9832e32 Tom Herbert 2016-03-07 615 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 616 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 617 try_again: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 618 psock = reserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 619 if (!psock) -ab7ac4eb9832e32 Tom Herbert 2016-03-07 620 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 621 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 622 do { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 623 skb = head; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 624 txm = kcm_tx_msg(head); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 625 sent = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 626 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 627 do_frag_list: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 628 if (WARN_ON(!skb_shinfo(skb)->nr_frags)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 629 ret = -EINVAL; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 630 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 631 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 632 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 633 for (fragidx = 0; fragidx < skb_shinfo(skb)->nr_frags; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 634 fragidx++) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 635 skb_frag_t *frag; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 636 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 637 frag_offset = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 638 do_frag: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 639 frag = &skb_shinfo(skb)->frags[fragidx]; -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 640) if (WARN_ON(!skb_frag_size(frag))) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 641 ret = -EINVAL; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 642 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 643 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 644 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 @645 ret = kernel_sendpage(psock->sk->sk_socket, -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 646) skb_frag_page(frag), -b54c9d5bd6e38ed Jonathan Lemon 2019-07-30 647 skb_frag_off(frag) + frag_offset, -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 648) skb_frag_size(frag) - frag_offset, -ab7ac4eb9832e32 Tom Herbert 2016-03-07 649 MSG_DONTWAIT); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 650 if (ret <= 0) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 651 if (ret == -EAGAIN) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 652 /* Save state to try again when there's -ab7ac4eb9832e32 Tom Herbert 2016-03-07 653 * write space on the socket -ab7ac4eb9832e32 Tom Herbert 2016-03-07 654 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 655 txm->sent = sent; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 656 txm->frag_offset = frag_offset; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 657 txm->fragidx = fragidx; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 658 txm->frag_skb = skb; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 659 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 660 ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 661 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 662 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 663 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 664 /* Hard failure in sending message, abort this -ab7ac4eb9832e32 Tom Herbert 2016-03-07 665 * psock since it has lost framing -71a2fae50895b32 Bhaskar Chowdhury 2021-03-27 666 * synchronization and retry sending the -ab7ac4eb9832e32 Tom Herbert 2016-03-07 667 * message from the beginning. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 668 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 669 kcm_abort_tx_psock(psock, ret ? -ret : EPIPE, -ab7ac4eb9832e32 Tom Herbert 2016-03-07 670 true); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 671 unreserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 672 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 673 txm->sent = 0; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 674 kcm_report_tx_retry(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 675 ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 676 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 677 goto try_again; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 678 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 679 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 680 sent += ret; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 681 frag_offset += ret; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 682 KCM_STATS_ADD(psock->stats.tx_bytes, ret); -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 683) if (frag_offset < skb_frag_size(frag)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 684 /* Not finished with this frag */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 685 goto do_frag; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 686 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 687 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 688 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 689 if (skb == head) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 690 if (skb_has_frag_list(skb)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 691 skb = skb_shinfo(skb)->frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 692 goto do_frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 693 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 694 } else if (skb->next) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 695 skb = skb->next; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 696 goto do_frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 697 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 698 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 699 /* Successfully sent the whole packet, account for it. */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 700 skb_dequeue(&sk->sk_write_queue); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 701 kfree_skb(head); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 702 sk->sk_wmem_queued -= sent; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 703 total_sent += sent; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 704 KCM_STATS_INCR(psock->stats.tx_msgs); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 705 } while ((head = skb_peek(&sk->sk_write_queue))); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 706 out: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 707 if (!head) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 708 /* Done with all queued messages. */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 709 WARN_ON(!skb_queue_empty(&sk->sk_write_queue)); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 710 unreserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 711 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 712 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 713 /* Check if write space is available */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 714 sk->sk_write_space(sk); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 715 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 716 return total_sent ? : ret; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 717 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 718 - -:::::: The code at line 645 was first introduced by commit -:::::: ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 kcm: Kernel Connection Multiplexor module - -:::::: TO: Tom Herbert <tom@herbertland.com> -:::::: CC: David S. Miller <davem@davemloft.net> --- 0-DAY CI Kernel Test Service, Intel Corporation diff --git a/a/content_digest b/N1/content_digest index 6ab404d..b7bcfbf 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,20 +1,12 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <dan.carpenter@oracle.com>\0" "Subject\0net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)\0" - "Date\0Sat, 22 Jan 2022 03:31:25 +0800\0" - "To\0kbuild@lists.01.org\0" + "Date\0Tue, 25 Jan 2022 17:47:12 +0300\0" + "To\0kbuild-all@lists.01.org\0" "\01:1\0" "b\0" - "CC: kbuild-all(a)lists.01.org\n" - "CC: linux-kernel(a)vger.kernel.org\n" - "TO: Christophe Leroy <christophe.leroy@csgroup.eu>\n" - "CC: Michael Ellerman <mpe@ellerman.id.au>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master\n" "head: 9b57f458985742bd1c585f4c7f36d04634ce1143\n" "commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto\n" - "date: 5 months ago\n" - ":::::: branch date: 5 hours ago\n" - ":::::: commit date: 5 months ago\n" "config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config)\n" "compiler: powerpc64-linux-gcc (GCC) 11.2.0\n" "\n" @@ -27,26 +19,6 @@ "\n" "vim +/psock +645 net/kcm/kcmsock.c\n" "\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 569 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 570 /* Write any messages ready on the kcm socket. Called with kcm sock lock\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 571 * held. Return bytes actually sent or error.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 572 */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 573 static int kcm_write_msgs(struct kcm_sock *kcm)\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 574 {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 575 \tstruct sock *sk = &kcm->sk;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 576 \tstruct kcm_psock *psock;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 577 \tstruct sk_buff *skb, *head;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 578 \tstruct kcm_tx_msg *txm;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 579 \tunsigned short fragidx, frag_offset;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 580 \tunsigned int sent, total_sent = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 581 \tint ret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 582 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 583 \tkcm->tx_wait_more = false;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 584 \tpsock = kcm->tx_psock;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 @585 \tif (unlikely(psock && psock->tx_stopped)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 586 \t\t/* A reserved psock was aborted asynchronously. Unreserve\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 587 \t\t * it and we'll retry the message.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 588 \t\t */\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 589 \t\tunreserve_psock(kcm);\n" "cd6e111bf5be5c7 Tom Herbert 2016-03-07 590 \t\tkcm_report_tx_retry(kcm);\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 591 \t\tif (skb_queue_empty(&sk->sk_write_queue))\n" @@ -64,6 +36,13 @@ "ab7ac4eb9832e32 Tom Herbert 2016-03-07 603 \tif (txm->sent) {\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 604 \t\t/* Send of first skbuff in queue already in progress */\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 605 \t\tif (WARN_ON(!psock)) {\n" + "\n" + "This warning is a false positive.\n" + "\n" + "The new Power PC implementation of WARN_ON() is written in asm and\n" + "Smatch can only parse C. I don't have a cross compile system set up so\n" + "fixing this is going to be a big headache. :/\n" + "\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 606 \t\t\tret = -EINVAL;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 607 \t\t\tgoto out;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 608 \t\t}\n" @@ -74,118 +53,9 @@ "ab7ac4eb9832e32 Tom Herbert 2016-03-07 613 \n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 614 \t\tgoto do_frag;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 615 \t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 616 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 617 try_again:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 618 \tpsock = reserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 619 \tif (!psock)\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 620 \t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 621 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 622 \tdo {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 623 \t\tskb = head;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 624 \t\ttxm = kcm_tx_msg(head);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 625 \t\tsent = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 626 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 627 do_frag_list:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 628 \t\tif (WARN_ON(!skb_shinfo(skb)->nr_frags)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 629 \t\t\tret = -EINVAL;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 630 \t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 631 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 632 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 633 \t\tfor (fragidx = 0; fragidx < skb_shinfo(skb)->nr_frags;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 634 \t\t fragidx++) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 635 \t\t\tskb_frag_t *frag;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 636 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 637 \t\t\tfrag_offset = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 638 do_frag:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 639 \t\t\tfrag = &skb_shinfo(skb)->frags[fragidx];\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 640) \t\t\tif (WARN_ON(!skb_frag_size(frag))) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 641 \t\t\t\tret = -EINVAL;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 642 \t\t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 643 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 644 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 @645 \t\t\tret = kernel_sendpage(psock->sk->sk_socket,\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 646) \t\t\t\t\t skb_frag_page(frag),\n" - "b54c9d5bd6e38ed Jonathan Lemon 2019-07-30 647 \t\t\t\t\t skb_frag_off(frag) + frag_offset,\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 648) \t\t\t\t\t skb_frag_size(frag) - frag_offset,\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 649 \t\t\t\t\t MSG_DONTWAIT);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 650 \t\t\tif (ret <= 0) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 651 \t\t\t\tif (ret == -EAGAIN) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 652 \t\t\t\t\t/* Save state to try again when there's\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 653 \t\t\t\t\t * write space on the socket\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 654 \t\t\t\t\t */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 655 \t\t\t\t\ttxm->sent = sent;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 656 \t\t\t\t\ttxm->frag_offset = frag_offset;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 657 \t\t\t\t\ttxm->fragidx = fragidx;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 658 \t\t\t\t\ttxm->frag_skb = skb;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 659 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 660 \t\t\t\t\tret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 661 \t\t\t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 662 \t\t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 663 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 664 \t\t\t\t/* Hard failure in sending message, abort this\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 665 \t\t\t\t * psock since it has lost framing\n" - "71a2fae50895b32 Bhaskar Chowdhury 2021-03-27 666 \t\t\t\t * synchronization and retry sending the\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 667 \t\t\t\t * message from the beginning.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 668 \t\t\t\t */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 669 \t\t\t\tkcm_abort_tx_psock(psock, ret ? -ret : EPIPE,\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 670 \t\t\t\t\t\t true);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 671 \t\t\t\tunreserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 672 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 673 \t\t\t\ttxm->sent = 0;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 674 \t\t\t\tkcm_report_tx_retry(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 675 \t\t\t\tret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 676 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 677 \t\t\t\tgoto try_again;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 678 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 679 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 680 \t\t\tsent += ret;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 681 \t\t\tfrag_offset += ret;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 682 \t\t\tKCM_STATS_ADD(psock->stats.tx_bytes, ret);\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 683) \t\t\tif (frag_offset < skb_frag_size(frag)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 684 \t\t\t\t/* Not finished with this frag */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 685 \t\t\t\tgoto do_frag;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 686 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 687 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 688 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 689 \t\tif (skb == head) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 690 \t\t\tif (skb_has_frag_list(skb)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 691 \t\t\t\tskb = skb_shinfo(skb)->frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 692 \t\t\t\tgoto do_frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 693 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 694 \t\t} else if (skb->next) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 695 \t\t\tskb = skb->next;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 696 \t\t\tgoto do_frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 697 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 698 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 699 \t\t/* Successfully sent the whole packet, account for it. */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 700 \t\tskb_dequeue(&sk->sk_write_queue);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 701 \t\tkfree_skb(head);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 702 \t\tsk->sk_wmem_queued -= sent;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 703 \t\ttotal_sent += sent;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 704 \t\tKCM_STATS_INCR(psock->stats.tx_msgs);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 705 \t} while ((head = skb_peek(&sk->sk_write_queue)));\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 706 out:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 707 \tif (!head) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 708 \t\t/* Done with all queued messages. */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 709 \t\tWARN_ON(!skb_queue_empty(&sk->sk_write_queue));\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 710 \t\tunreserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 711 \t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 712 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 713 \t/* Check if write space is available */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 714 \tsk->sk_write_space(sk);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 715 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 716 \treturn total_sent ? : ret;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 717 }\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 718 \n" - "\n" - ":::::: The code at line 645 was first introduced by commit\n" - ":::::: ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 kcm: Kernel Connection Multiplexor module\n" - "\n" - ":::::: TO: Tom Herbert <tom@herbertland.com>\n" - ":::::: CC: David S. Miller <davem@davemloft.net>\n" "\n" "---\n" "0-DAY CI Kernel Test Service, Intel Corporation\n" https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org -d9022482359e37ea53bca0e89b3f35c5db859275f8859b6ad416b31eb9f524ba +cd4a0c7677aaa936c7a63113bd07ae897a67603a1d3fa99f09999be55044d4b7
diff --git a/a/1.txt b/N2/1.txt index 8e992e1..b23d80a 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,15 +1,7 @@ -CC: kbuild-all(a)lists.01.org -CC: linux-kernel(a)vger.kernel.org -TO: Christophe Leroy <christophe.leroy@csgroup.eu> -CC: Michael Ellerman <mpe@ellerman.id.au> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 9b57f458985742bd1c585f4c7f36d04634ce1143 commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto -date: 5 months ago -:::::: branch date: 5 hours ago -:::::: commit date: 5 months ago -config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config) +config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp@intel.com/config) compiler: powerpc64-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate @@ -21,26 +13,6 @@ net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' coul vim +/psock +645 net/kcm/kcmsock.c -cd6e111bf5be5c7 Tom Herbert 2016-03-07 569 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 570 /* Write any messages ready on the kcm socket. Called with kcm sock lock -ab7ac4eb9832e32 Tom Herbert 2016-03-07 571 * held. Return bytes actually sent or error. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 572 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 573 static int kcm_write_msgs(struct kcm_sock *kcm) -ab7ac4eb9832e32 Tom Herbert 2016-03-07 574 { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 575 struct sock *sk = &kcm->sk; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 576 struct kcm_psock *psock; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 577 struct sk_buff *skb, *head; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 578 struct kcm_tx_msg *txm; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 579 unsigned short fragidx, frag_offset; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 580 unsigned int sent, total_sent = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 581 int ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 582 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 583 kcm->tx_wait_more = false; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 584 psock = kcm->tx_psock; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 @585 if (unlikely(psock && psock->tx_stopped)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 586 /* A reserved psock was aborted asynchronously. Unreserve -ab7ac4eb9832e32 Tom Herbert 2016-03-07 587 * it and we'll retry the message. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 588 */ ab7ac4eb9832e32 Tom Herbert 2016-03-07 589 unreserve_psock(kcm); cd6e111bf5be5c7 Tom Herbert 2016-03-07 590 kcm_report_tx_retry(kcm); ab7ac4eb9832e32 Tom Herbert 2016-03-07 591 if (skb_queue_empty(&sk->sk_write_queue)) @@ -58,6 +30,13 @@ ab7ac4eb9832e32 Tom Herbert 2016-03-07 602 ab7ac4eb9832e32 Tom Herbert 2016-03-07 603 if (txm->sent) { ab7ac4eb9832e32 Tom Herbert 2016-03-07 604 /* Send of first skbuff in queue already in progress */ ab7ac4eb9832e32 Tom Herbert 2016-03-07 605 if (WARN_ON(!psock)) { + +This warning is a false positive. + +The new Power PC implementation of WARN_ON() is written in asm and +Smatch can only parse C. I don't have a cross compile system set up so +fixing this is going to be a big headache. :/ + ab7ac4eb9832e32 Tom Herbert 2016-03-07 606 ret = -EINVAL; ab7ac4eb9832e32 Tom Herbert 2016-03-07 607 goto out; ab7ac4eb9832e32 Tom Herbert 2016-03-07 608 } @@ -68,116 +47,7 @@ ab7ac4eb9832e32 Tom Herbert 2016-03-07 612 skb = txm->frag_skb; ab7ac4eb9832e32 Tom Herbert 2016-03-07 613 ab7ac4eb9832e32 Tom Herbert 2016-03-07 614 goto do_frag; ab7ac4eb9832e32 Tom Herbert 2016-03-07 615 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 616 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 617 try_again: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 618 psock = reserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 619 if (!psock) -ab7ac4eb9832e32 Tom Herbert 2016-03-07 620 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 621 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 622 do { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 623 skb = head; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 624 txm = kcm_tx_msg(head); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 625 sent = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 626 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 627 do_frag_list: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 628 if (WARN_ON(!skb_shinfo(skb)->nr_frags)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 629 ret = -EINVAL; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 630 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 631 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 632 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 633 for (fragidx = 0; fragidx < skb_shinfo(skb)->nr_frags; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 634 fragidx++) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 635 skb_frag_t *frag; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 636 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 637 frag_offset = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 638 do_frag: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 639 frag = &skb_shinfo(skb)->frags[fragidx]; -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 640) if (WARN_ON(!skb_frag_size(frag))) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 641 ret = -EINVAL; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 642 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 643 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 644 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 @645 ret = kernel_sendpage(psock->sk->sk_socket, -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 646) skb_frag_page(frag), -b54c9d5bd6e38ed Jonathan Lemon 2019-07-30 647 skb_frag_off(frag) + frag_offset, -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 648) skb_frag_size(frag) - frag_offset, -ab7ac4eb9832e32 Tom Herbert 2016-03-07 649 MSG_DONTWAIT); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 650 if (ret <= 0) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 651 if (ret == -EAGAIN) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 652 /* Save state to try again when there's -ab7ac4eb9832e32 Tom Herbert 2016-03-07 653 * write space on the socket -ab7ac4eb9832e32 Tom Herbert 2016-03-07 654 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 655 txm->sent = sent; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 656 txm->frag_offset = frag_offset; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 657 txm->fragidx = fragidx; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 658 txm->frag_skb = skb; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 659 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 660 ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 661 goto out; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 662 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 663 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 664 /* Hard failure in sending message, abort this -ab7ac4eb9832e32 Tom Herbert 2016-03-07 665 * psock since it has lost framing -71a2fae50895b32 Bhaskar Chowdhury 2021-03-27 666 * synchronization and retry sending the -ab7ac4eb9832e32 Tom Herbert 2016-03-07 667 * message from the beginning. -ab7ac4eb9832e32 Tom Herbert 2016-03-07 668 */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 669 kcm_abort_tx_psock(psock, ret ? -ret : EPIPE, -ab7ac4eb9832e32 Tom Herbert 2016-03-07 670 true); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 671 unreserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 672 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 673 txm->sent = 0; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 674 kcm_report_tx_retry(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 675 ret = 0; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 676 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 677 goto try_again; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 678 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 679 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 680 sent += ret; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 681 frag_offset += ret; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 682 KCM_STATS_ADD(psock->stats.tx_bytes, ret); -d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 683) if (frag_offset < skb_frag_size(frag)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 684 /* Not finished with this frag */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 685 goto do_frag; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 686 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 687 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 688 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 689 if (skb == head) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 690 if (skb_has_frag_list(skb)) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 691 skb = skb_shinfo(skb)->frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 692 goto do_frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 693 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 694 } else if (skb->next) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 695 skb = skb->next; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 696 goto do_frag_list; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 697 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 698 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 699 /* Successfully sent the whole packet, account for it. */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 700 skb_dequeue(&sk->sk_write_queue); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 701 kfree_skb(head); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 702 sk->sk_wmem_queued -= sent; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 703 total_sent += sent; -cd6e111bf5be5c7 Tom Herbert 2016-03-07 704 KCM_STATS_INCR(psock->stats.tx_msgs); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 705 } while ((head = skb_peek(&sk->sk_write_queue))); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 706 out: -ab7ac4eb9832e32 Tom Herbert 2016-03-07 707 if (!head) { -ab7ac4eb9832e32 Tom Herbert 2016-03-07 708 /* Done with all queued messages. */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 709 WARN_ON(!skb_queue_empty(&sk->sk_write_queue)); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 710 unreserve_psock(kcm); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 711 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 712 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 713 /* Check if write space is available */ -ab7ac4eb9832e32 Tom Herbert 2016-03-07 714 sk->sk_write_space(sk); -ab7ac4eb9832e32 Tom Herbert 2016-03-07 715 -ab7ac4eb9832e32 Tom Herbert 2016-03-07 716 return total_sent ? : ret; -ab7ac4eb9832e32 Tom Herbert 2016-03-07 717 } -ab7ac4eb9832e32 Tom Herbert 2016-03-07 718 - -:::::: The code at line 645 was first introduced by commit -:::::: ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 kcm: Kernel Connection Multiplexor module - -:::::: TO: Tom Herbert <tom@herbertland.com> -:::::: CC: David S. Miller <davem@davemloft.net> --- 0-DAY CI Kernel Test Service, Intel Corporation -https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org +https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org diff --git a/a/content_digest b/N2/content_digest index 6ab404d..17d0ff8 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,21 +1,18 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <dan.carpenter@oracle.com>\0" "Subject\0net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)\0" - "Date\0Sat, 22 Jan 2022 03:31:25 +0800\0" - "To\0kbuild@lists.01.org\0" - "\01:1\0" + "Date\0Tue, 25 Jan 2022 17:47:12 +0300\0" + "To\0kbuild@lists.01.org" + " Christophe Leroy <christophe.leroy@csgroup.eu>\0" + "Cc\0lkp@intel.com" + kbuild-all@lists.01.org + linux-kernel@vger.kernel.org + " Michael Ellerman <mpe@ellerman.id.au>\0" + "\00:1\0" "b\0" - "CC: kbuild-all(a)lists.01.org\n" - "CC: linux-kernel(a)vger.kernel.org\n" - "TO: Christophe Leroy <christophe.leroy@csgroup.eu>\n" - "CC: Michael Ellerman <mpe@ellerman.id.au>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master\n" "head: 9b57f458985742bd1c585f4c7f36d04634ce1143\n" "commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto\n" - "date: 5 months ago\n" - ":::::: branch date: 5 hours ago\n" - ":::::: commit date: 5 months ago\n" - "config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config)\n" + "config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp@intel.com/config)\n" "compiler: powerpc64-linux-gcc (GCC) 11.2.0\n" "\n" "If you fix the issue, kindly add following tag as appropriate\n" @@ -27,26 +24,6 @@ "\n" "vim +/psock +645 net/kcm/kcmsock.c\n" "\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 569 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 570 /* Write any messages ready on the kcm socket. Called with kcm sock lock\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 571 * held. Return bytes actually sent or error.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 572 */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 573 static int kcm_write_msgs(struct kcm_sock *kcm)\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 574 {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 575 \tstruct sock *sk = &kcm->sk;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 576 \tstruct kcm_psock *psock;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 577 \tstruct sk_buff *skb, *head;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 578 \tstruct kcm_tx_msg *txm;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 579 \tunsigned short fragidx, frag_offset;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 580 \tunsigned int sent, total_sent = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 581 \tint ret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 582 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 583 \tkcm->tx_wait_more = false;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 584 \tpsock = kcm->tx_psock;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 @585 \tif (unlikely(psock && psock->tx_stopped)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 586 \t\t/* A reserved psock was aborted asynchronously. Unreserve\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 587 \t\t * it and we'll retry the message.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 588 \t\t */\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 589 \t\tunreserve_psock(kcm);\n" "cd6e111bf5be5c7 Tom Herbert 2016-03-07 590 \t\tkcm_report_tx_retry(kcm);\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 591 \t\tif (skb_queue_empty(&sk->sk_write_queue))\n" @@ -64,6 +41,13 @@ "ab7ac4eb9832e32 Tom Herbert 2016-03-07 603 \tif (txm->sent) {\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 604 \t\t/* Send of first skbuff in queue already in progress */\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 605 \t\tif (WARN_ON(!psock)) {\n" + "\n" + "This warning is a false positive.\n" + "\n" + "The new Power PC implementation of WARN_ON() is written in asm and\n" + "Smatch can only parse C. I don't have a cross compile system set up so\n" + "fixing this is going to be a big headache. :/\n" + "\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 606 \t\t\tret = -EINVAL;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 607 \t\t\tgoto out;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 608 \t\t}\n" @@ -74,118 +58,9 @@ "ab7ac4eb9832e32 Tom Herbert 2016-03-07 613 \n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 614 \t\tgoto do_frag;\n" "ab7ac4eb9832e32 Tom Herbert 2016-03-07 615 \t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 616 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 617 try_again:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 618 \tpsock = reserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 619 \tif (!psock)\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 620 \t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 621 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 622 \tdo {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 623 \t\tskb = head;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 624 \t\ttxm = kcm_tx_msg(head);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 625 \t\tsent = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 626 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 627 do_frag_list:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 628 \t\tif (WARN_ON(!skb_shinfo(skb)->nr_frags)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 629 \t\t\tret = -EINVAL;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 630 \t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 631 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 632 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 633 \t\tfor (fragidx = 0; fragidx < skb_shinfo(skb)->nr_frags;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 634 \t\t fragidx++) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 635 \t\t\tskb_frag_t *frag;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 636 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 637 \t\t\tfrag_offset = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 638 do_frag:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 639 \t\t\tfrag = &skb_shinfo(skb)->frags[fragidx];\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 640) \t\t\tif (WARN_ON(!skb_frag_size(frag))) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 641 \t\t\t\tret = -EINVAL;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 642 \t\t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 643 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 644 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 @645 \t\t\tret = kernel_sendpage(psock->sk->sk_socket,\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 646) \t\t\t\t\t skb_frag_page(frag),\n" - "b54c9d5bd6e38ed Jonathan Lemon 2019-07-30 647 \t\t\t\t\t skb_frag_off(frag) + frag_offset,\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 648) \t\t\t\t\t skb_frag_size(frag) - frag_offset,\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 649 \t\t\t\t\t MSG_DONTWAIT);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 650 \t\t\tif (ret <= 0) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 651 \t\t\t\tif (ret == -EAGAIN) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 652 \t\t\t\t\t/* Save state to try again when there's\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 653 \t\t\t\t\t * write space on the socket\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 654 \t\t\t\t\t */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 655 \t\t\t\t\ttxm->sent = sent;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 656 \t\t\t\t\ttxm->frag_offset = frag_offset;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 657 \t\t\t\t\ttxm->fragidx = fragidx;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 658 \t\t\t\t\ttxm->frag_skb = skb;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 659 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 660 \t\t\t\t\tret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 661 \t\t\t\t\tgoto out;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 662 \t\t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 663 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 664 \t\t\t\t/* Hard failure in sending message, abort this\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 665 \t\t\t\t * psock since it has lost framing\n" - "71a2fae50895b32 Bhaskar Chowdhury 2021-03-27 666 \t\t\t\t * synchronization and retry sending the\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 667 \t\t\t\t * message from the beginning.\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 668 \t\t\t\t */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 669 \t\t\t\tkcm_abort_tx_psock(psock, ret ? -ret : EPIPE,\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 670 \t\t\t\t\t\t true);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 671 \t\t\t\tunreserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 672 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 673 \t\t\t\ttxm->sent = 0;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 674 \t\t\t\tkcm_report_tx_retry(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 675 \t\t\t\tret = 0;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 676 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 677 \t\t\t\tgoto try_again;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 678 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 679 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 680 \t\t\tsent += ret;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 681 \t\t\tfrag_offset += ret;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 682 \t\t\tKCM_STATS_ADD(psock->stats.tx_bytes, ret);\n" - "d8e18a516f8f674 Matthew Wilcox (Oracle 2019-07-22 683) \t\t\tif (frag_offset < skb_frag_size(frag)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 684 \t\t\t\t/* Not finished with this frag */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 685 \t\t\t\tgoto do_frag;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 686 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 687 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 688 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 689 \t\tif (skb == head) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 690 \t\t\tif (skb_has_frag_list(skb)) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 691 \t\t\t\tskb = skb_shinfo(skb)->frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 692 \t\t\t\tgoto do_frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 693 \t\t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 694 \t\t} else if (skb->next) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 695 \t\t\tskb = skb->next;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 696 \t\t\tgoto do_frag_list;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 697 \t\t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 698 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 699 \t\t/* Successfully sent the whole packet, account for it. */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 700 \t\tskb_dequeue(&sk->sk_write_queue);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 701 \t\tkfree_skb(head);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 702 \t\tsk->sk_wmem_queued -= sent;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 703 \t\ttotal_sent += sent;\n" - "cd6e111bf5be5c7 Tom Herbert 2016-03-07 704 \t\tKCM_STATS_INCR(psock->stats.tx_msgs);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 705 \t} while ((head = skb_peek(&sk->sk_write_queue)));\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 706 out:\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 707 \tif (!head) {\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 708 \t\t/* Done with all queued messages. */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 709 \t\tWARN_ON(!skb_queue_empty(&sk->sk_write_queue));\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 710 \t\tunreserve_psock(kcm);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 711 \t}\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 712 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 713 \t/* Check if write space is available */\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 714 \tsk->sk_write_space(sk);\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 715 \n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 716 \treturn total_sent ? : ret;\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 717 }\n" - "ab7ac4eb9832e32 Tom Herbert 2016-03-07 718 \n" - "\n" - ":::::: The code at line 645 was first introduced by commit\n" - ":::::: ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 kcm: Kernel Connection Multiplexor module\n" - "\n" - ":::::: TO: Tom Herbert <tom@herbertland.com>\n" - ":::::: CC: David S. Miller <davem@davemloft.net>\n" "\n" "---\n" "0-DAY CI Kernel Test Service, Intel Corporation\n" - https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org + https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org -d9022482359e37ea53bca0e89b3f35c5db859275f8859b6ad416b31eb9f524ba +57d31fa715052dbd7931c3b63e4f7eeaa02f2b96d1621644bdc6945ae1d1fe46
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.