On Mon, Dec 23, 2019 at 12:10:15PM +0100, Oleksandr Natalenko wrote: > /cc Corey and Jens. > > On Sun, Dec 22, 2019 at 04:34:30AM +0800, kbuild test robot wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > head: 9f8535c5f75f0e23359962527dbfd31478b2cf16 > > commit: 933639f5723a15a13e2105603de9e240bae2f546 [4314/4896] init/Kconfig: enable -O3 for all arches > > config: alpha-randconfig-a001-20191222 (attached as .config) > > compiler: alpha-linux-gcc (GCC) 7.5.0 > > reproduce: > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > chmod +x ~/bin/make.cross > > git checkout 933639f5723a15a13e2105603de9e240bae2f546 > > # save the attached .config to linux build tree > > GCC_VERSION=7.5.0 make.cross ARCH=alpha > > > > If you fix the issue, kindly add following tag > > Reported-by: kbuild test robot <lkp@xxxxxxxxx> > > > > All warnings (new ones prefixed by >>): > > > > In file included from include/linux/string.h:20:0, > > from include/linux/bitmap.h:9, > > from include/linux/nodemask.h:95, > > from include/linux/mmzone.h:17, > > from include/linux/gfp.h:6, > > from include/linux/umh.h:4, > > from include/linux/kmod.h:9, > > from include/linux/module.h:16, > > from drivers/char/ipmi/ipmi_ssif.c:37: > > drivers/char/ipmi/ipmi_ssif.c: In function 'msg_written_handler': > > arch/alpha/include/asm/string.h:22:16: warning: argument 2 null where non-null expected [-Wnonnull] > > #define memcpy __builtin_memcpy > > >> drivers/char/ipmi/ipmi_ssif.c:781:3: note: in expansion of macro 'memcpy' > > memcpy(msg->rsp, data, msg->rsp_size); This can't really happen, but I've queued a fix in my next tree to avoid the warning. Thanks, -corey > > ^~~~~~ > > arch/alpha/include/asm/string.h:22:16: note: in a call to built-in function '__builtin_memcpy' > > #define memcpy __builtin_memcpy > > >> drivers/char/ipmi/ipmi_ssif.c:781:3: note: in expansion of macro 'memcpy' > > memcpy(msg->rsp, data, msg->rsp_size); > > ^~~~~~ > > -- > > fs/io_uring.c: In function 'io_link_timeout_fn': > > >> fs/io_uring.c:2831:2: warning: argument 2 null where non-null expected [-Wnonnull] > > io_put_req_find_next(req, nxt); > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > fs/io_uring.c:1036:13: note: in a call to function 'io_put_req_find_next' declared here > > static void io_put_req_find_next(struct io_kiocb *req, struct io_kiocb **nxtptr) > > ^~~~~~~~~~~~~~~~~~~~ > > > > vim +/memcpy +781 drivers/char/ipmi/ipmi_ssif.c > > > > 259307074bfcf1 Corey Minyard 2012-03-19 622 > > 259307074bfcf1 Corey Minyard 2012-03-19 623 static void msg_done_handler(struct ssif_info *ssif_info, int result, > > 259307074bfcf1 Corey Minyard 2012-03-19 624 unsigned char *data, unsigned int len) > > 259307074bfcf1 Corey Minyard 2012-03-19 625 { > > 259307074bfcf1 Corey Minyard 2012-03-19 626 struct ipmi_smi_msg *msg; > > 259307074bfcf1 Corey Minyard 2012-03-19 627 unsigned long oflags, *flags; > > 259307074bfcf1 Corey Minyard 2012-03-19 628 int rv; > > 259307074bfcf1 Corey Minyard 2012-03-19 629 > > 259307074bfcf1 Corey Minyard 2012-03-19 630 /* > > 259307074bfcf1 Corey Minyard 2012-03-19 631 * We are single-threaded here, so no need for a lock until we > > 259307074bfcf1 Corey Minyard 2012-03-19 632 * start messing with driver states or the queues. > > 259307074bfcf1 Corey Minyard 2012-03-19 633 */ > > 259307074bfcf1 Corey Minyard 2012-03-19 634 > > 259307074bfcf1 Corey Minyard 2012-03-19 635 if (result < 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 636 ssif_info->retries_left--; > > 259307074bfcf1 Corey Minyard 2012-03-19 637 if (ssif_info->retries_left > 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 638 ssif_inc_stat(ssif_info, receive_retries); > > 259307074bfcf1 Corey Minyard 2012-03-19 639 > > 9162052173d238 Corey Minyard 2015-04-24 640 flags = ipmi_ssif_lock_cond(ssif_info, &oflags); > > 9162052173d238 Corey Minyard 2015-04-24 641 ssif_info->waiting_alert = true; > > 9162052173d238 Corey Minyard 2015-04-24 642 ssif_info->rtc_us_timer = SSIF_MSG_USEC; > > 0711e8c1b4572d Jan Glauber 2018-10-11 643 if (!ssif_info->stopping) > > 259307074bfcf1 Corey Minyard 2012-03-19 644 mod_timer(&ssif_info->retry_timer, > > 259307074bfcf1 Corey Minyard 2012-03-19 645 jiffies + SSIF_MSG_JIFFIES); > > 9162052173d238 Corey Minyard 2015-04-24 646 ipmi_ssif_unlock_cond(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 647 return; > > 259307074bfcf1 Corey Minyard 2012-03-19 648 } > > 259307074bfcf1 Corey Minyard 2012-03-19 649 > > 259307074bfcf1 Corey Minyard 2012-03-19 650 ssif_inc_stat(ssif_info, receive_errors); > > 259307074bfcf1 Corey Minyard 2012-03-19 651 > > 259307074bfcf1 Corey Minyard 2012-03-19 652 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 653 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 654 "%s: Error %d\n", __func__, result); > > 259307074bfcf1 Corey Minyard 2012-03-19 655 len = 0; > > 259307074bfcf1 Corey Minyard 2012-03-19 656 goto continue_op; > > 259307074bfcf1 Corey Minyard 2012-03-19 657 } > > 259307074bfcf1 Corey Minyard 2012-03-19 658 > > 259307074bfcf1 Corey Minyard 2012-03-19 659 if ((len > 1) && (ssif_info->multi_pos == 0) > > 259307074bfcf1 Corey Minyard 2012-03-19 660 && (data[0] == 0x00) && (data[1] == 0x01)) { > > 259307074bfcf1 Corey Minyard 2012-03-19 661 /* Start of multi-part read. Start the next transaction. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 662 int i; > > 259307074bfcf1 Corey Minyard 2012-03-19 663 > > 259307074bfcf1 Corey Minyard 2012-03-19 664 ssif_inc_stat(ssif_info, received_message_parts); > > 259307074bfcf1 Corey Minyard 2012-03-19 665 > > 259307074bfcf1 Corey Minyard 2012-03-19 666 /* Remove the multi-part read marker. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 667 len -= 2; > > 7d6380cd40f799 Corey Minyard 2018-11-16 668 data += 2; > > 3d69d43baa2749 Corey Minyard 2015-04-29 669 for (i = 0; i < len; i++) > > 7d6380cd40f799 Corey Minyard 2018-11-16 670 ssif_info->data[i] = data[i]; > > 259307074bfcf1 Corey Minyard 2012-03-19 671 ssif_info->multi_len = len; > > 259307074bfcf1 Corey Minyard 2012-03-19 672 ssif_info->multi_pos = 1; > > 259307074bfcf1 Corey Minyard 2012-03-19 673 > > 259307074bfcf1 Corey Minyard 2012-03-19 674 rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ, > > 259307074bfcf1 Corey Minyard 2012-03-19 675 SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE, > > 259307074bfcf1 Corey Minyard 2012-03-19 676 ssif_info->recv, I2C_SMBUS_BLOCK_DATA); > > 259307074bfcf1 Corey Minyard 2012-03-19 677 if (rv < 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 678 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 679 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 680 "Error from i2c_non_blocking_op(1)\n"); > > 259307074bfcf1 Corey Minyard 2012-03-19 681 > > 259307074bfcf1 Corey Minyard 2012-03-19 682 result = -EIO; > > 259307074bfcf1 Corey Minyard 2012-03-19 683 } else > > 259307074bfcf1 Corey Minyard 2012-03-19 684 return; > > 259307074bfcf1 Corey Minyard 2012-03-19 685 } else if (ssif_info->multi_pos) { > > 259307074bfcf1 Corey Minyard 2012-03-19 686 /* Middle of multi-part read. Start the next transaction. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 687 int i; > > 259307074bfcf1 Corey Minyard 2012-03-19 688 unsigned char blocknum; > > 259307074bfcf1 Corey Minyard 2012-03-19 689 > > 259307074bfcf1 Corey Minyard 2012-03-19 690 if (len == 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 691 result = -EIO; > > 259307074bfcf1 Corey Minyard 2012-03-19 692 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 693 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 694 "Middle message with no data\n"); > > 259307074bfcf1 Corey Minyard 2012-03-19 695 > > 259307074bfcf1 Corey Minyard 2012-03-19 696 goto continue_op; > > 259307074bfcf1 Corey Minyard 2012-03-19 697 } > > 259307074bfcf1 Corey Minyard 2012-03-19 698 > > 3d69d43baa2749 Corey Minyard 2015-04-29 699 blocknum = data[0]; > > 7d6380cd40f799 Corey Minyard 2018-11-16 700 len--; > > 7d6380cd40f799 Corey Minyard 2018-11-16 701 data++; > > 7d6380cd40f799 Corey Minyard 2018-11-16 702 > > 7d6380cd40f799 Corey Minyard 2018-11-16 703 if (blocknum != 0xff && len != 31) { > > 7d6380cd40f799 Corey Minyard 2018-11-16 704 /* All blocks but the last must have 31 data bytes. */ > > 7d6380cd40f799 Corey Minyard 2018-11-16 705 result = -EIO; > > 7d6380cd40f799 Corey Minyard 2018-11-16 706 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 707 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 708 "Received middle message <31\n"); > > 259307074bfcf1 Corey Minyard 2012-03-19 709 > > 7d6380cd40f799 Corey Minyard 2018-11-16 710 goto continue_op; > > 7d6380cd40f799 Corey Minyard 2018-11-16 711 } > > 7d6380cd40f799 Corey Minyard 2018-11-16 712 > > 7d6380cd40f799 Corey Minyard 2018-11-16 713 if (ssif_info->multi_len + len > IPMI_MAX_MSG_LENGTH) { > > 259307074bfcf1 Corey Minyard 2012-03-19 714 /* Received message too big, abort the operation. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 715 result = -E2BIG; > > 259307074bfcf1 Corey Minyard 2012-03-19 716 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 717 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 718 "Received message too big\n"); > > 259307074bfcf1 Corey Minyard 2012-03-19 719 > > 259307074bfcf1 Corey Minyard 2012-03-19 720 goto continue_op; > > 259307074bfcf1 Corey Minyard 2012-03-19 721 } > > 259307074bfcf1 Corey Minyard 2012-03-19 722 > > 3d69d43baa2749 Corey Minyard 2015-04-29 723 for (i = 0; i < len; i++) > > 7d6380cd40f799 Corey Minyard 2018-11-16 724 ssif_info->data[i + ssif_info->multi_len] = data[i]; > > 259307074bfcf1 Corey Minyard 2012-03-19 725 ssif_info->multi_len += len; > > 259307074bfcf1 Corey Minyard 2012-03-19 726 if (blocknum == 0xff) { > > 259307074bfcf1 Corey Minyard 2012-03-19 727 /* End of read */ > > 259307074bfcf1 Corey Minyard 2012-03-19 728 len = ssif_info->multi_len; > > 259307074bfcf1 Corey Minyard 2012-03-19 729 data = ssif_info->data; > > 55be8658c7e2fe Kamlakant Patel 2019-04-24 730 } else if (blocknum + 1 != ssif_info->multi_pos) { > > 259307074bfcf1 Corey Minyard 2012-03-19 731 /* > > 259307074bfcf1 Corey Minyard 2012-03-19 732 * Out of sequence block, just abort. Block > > 259307074bfcf1 Corey Minyard 2012-03-19 733 * numbers start at zero for the second block, > > 259307074bfcf1 Corey Minyard 2012-03-19 734 * but multi_pos starts at one, so the +1. > > 259307074bfcf1 Corey Minyard 2012-03-19 735 */ > > 55be8658c7e2fe Kamlakant Patel 2019-04-24 736 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 55be8658c7e2fe Kamlakant Patel 2019-04-24 737 dev_dbg(&ssif_info->client->dev, > > 55be8658c7e2fe Kamlakant Patel 2019-04-24 738 "Received message out of sequence, expected %u, got %u\n", > > 55be8658c7e2fe Kamlakant Patel 2019-04-24 739 ssif_info->multi_pos - 1, blocknum); > > 259307074bfcf1 Corey Minyard 2012-03-19 740 result = -EIO; > > 259307074bfcf1 Corey Minyard 2012-03-19 741 } else { > > 259307074bfcf1 Corey Minyard 2012-03-19 742 ssif_inc_stat(ssif_info, received_message_parts); > > 259307074bfcf1 Corey Minyard 2012-03-19 743 > > 259307074bfcf1 Corey Minyard 2012-03-19 744 ssif_info->multi_pos++; > > 259307074bfcf1 Corey Minyard 2012-03-19 745 > > 259307074bfcf1 Corey Minyard 2012-03-19 746 rv = ssif_i2c_send(ssif_info, msg_done_handler, > > 259307074bfcf1 Corey Minyard 2012-03-19 747 I2C_SMBUS_READ, > > 259307074bfcf1 Corey Minyard 2012-03-19 748 SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE, > > 259307074bfcf1 Corey Minyard 2012-03-19 749 ssif_info->recv, > > 259307074bfcf1 Corey Minyard 2012-03-19 750 I2C_SMBUS_BLOCK_DATA); > > 259307074bfcf1 Corey Minyard 2012-03-19 751 if (rv < 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 752 if (ssif_info->ssif_debug & SSIF_DEBUG_MSG) > > 83af41947c5cbd Corey Minyard 2018-11-27 753 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 754 "Error from ssif_i2c_send\n"); > > 259307074bfcf1 Corey Minyard 2012-03-19 755 > > 259307074bfcf1 Corey Minyard 2012-03-19 756 result = -EIO; > > 259307074bfcf1 Corey Minyard 2012-03-19 757 } else > > 259307074bfcf1 Corey Minyard 2012-03-19 758 return; > > 259307074bfcf1 Corey Minyard 2012-03-19 759 } > > 259307074bfcf1 Corey Minyard 2012-03-19 760 } > > 259307074bfcf1 Corey Minyard 2012-03-19 761 > > 7d6380cd40f799 Corey Minyard 2018-11-16 762 continue_op: > > 259307074bfcf1 Corey Minyard 2012-03-19 763 if (result < 0) { > > 259307074bfcf1 Corey Minyard 2012-03-19 764 ssif_inc_stat(ssif_info, receive_errors); > > 259307074bfcf1 Corey Minyard 2012-03-19 765 } else { > > 259307074bfcf1 Corey Minyard 2012-03-19 766 ssif_inc_stat(ssif_info, received_messages); > > 259307074bfcf1 Corey Minyard 2012-03-19 767 ssif_inc_stat(ssif_info, received_message_parts); > > 259307074bfcf1 Corey Minyard 2012-03-19 768 } > > 259307074bfcf1 Corey Minyard 2012-03-19 769 > > 259307074bfcf1 Corey Minyard 2012-03-19 770 if (ssif_info->ssif_debug & SSIF_DEBUG_STATE) > > 83af41947c5cbd Corey Minyard 2018-11-27 771 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 772 "DONE 1: state = %d, result=%d\n", > > 259307074bfcf1 Corey Minyard 2012-03-19 773 ssif_info->ssif_state, result); > > 259307074bfcf1 Corey Minyard 2012-03-19 774 > > 259307074bfcf1 Corey Minyard 2012-03-19 775 flags = ipmi_ssif_lock_cond(ssif_info, &oflags); > > 259307074bfcf1 Corey Minyard 2012-03-19 776 msg = ssif_info->curr_msg; > > 259307074bfcf1 Corey Minyard 2012-03-19 777 if (msg) { > > 259307074bfcf1 Corey Minyard 2012-03-19 778 msg->rsp_size = len; > > 259307074bfcf1 Corey Minyard 2012-03-19 779 if (msg->rsp_size > IPMI_MAX_MSG_LENGTH) > > 259307074bfcf1 Corey Minyard 2012-03-19 780 msg->rsp_size = IPMI_MAX_MSG_LENGTH; > > 259307074bfcf1 Corey Minyard 2012-03-19 @781 memcpy(msg->rsp, data, msg->rsp_size); > > 259307074bfcf1 Corey Minyard 2012-03-19 782 ssif_info->curr_msg = NULL; > > 259307074bfcf1 Corey Minyard 2012-03-19 783 } > > 259307074bfcf1 Corey Minyard 2012-03-19 784 > > 259307074bfcf1 Corey Minyard 2012-03-19 785 switch (ssif_info->ssif_state) { > > 259307074bfcf1 Corey Minyard 2012-03-19 786 case SSIF_NORMAL: > > 259307074bfcf1 Corey Minyard 2012-03-19 787 ipmi_ssif_unlock_cond(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 788 if (!msg) > > 259307074bfcf1 Corey Minyard 2012-03-19 789 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 790 > > 259307074bfcf1 Corey Minyard 2012-03-19 791 if (result < 0) > > 259307074bfcf1 Corey Minyard 2012-03-19 792 return_hosed_msg(ssif_info, msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 793 else > > 259307074bfcf1 Corey Minyard 2012-03-19 794 deliver_recv_msg(ssif_info, msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 795 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 796 > > 259307074bfcf1 Corey Minyard 2012-03-19 797 case SSIF_GETTING_FLAGS: > > 259307074bfcf1 Corey Minyard 2012-03-19 798 /* We got the flags from the SSIF, now handle them. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 799 if ((result < 0) || (len < 4) || (data[2] != 0)) { > > 259307074bfcf1 Corey Minyard 2012-03-19 800 /* > > 259307074bfcf1 Corey Minyard 2012-03-19 801 * Error fetching flags, or invalid length, > > 259307074bfcf1 Corey Minyard 2012-03-19 802 * just give up for now. > > 259307074bfcf1 Corey Minyard 2012-03-19 803 */ > > 259307074bfcf1 Corey Minyard 2012-03-19 804 ssif_info->ssif_state = SSIF_NORMAL; > > 259307074bfcf1 Corey Minyard 2012-03-19 805 ipmi_ssif_unlock_cond(ssif_info, flags); > > 83af41947c5cbd Corey Minyard 2018-11-27 806 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 807 "Error getting flags: %d %d, %x\n", > > f002612b9d8661 Kamlakant Patel 2018-03-13 808 result, len, (len >= 3) ? data[2] : 0); > > 259307074bfcf1 Corey Minyard 2012-03-19 809 } else if (data[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 > > 259307074bfcf1 Corey Minyard 2012-03-19 810 || data[1] != IPMI_GET_MSG_FLAGS_CMD) { > > 4495ec6d770e1b Corey Minyard 2017-06-30 811 /* > > 4495ec6d770e1b Corey Minyard 2017-06-30 812 * Don't abort here, maybe it was a queued > > 4495ec6d770e1b Corey Minyard 2017-06-30 813 * response to a previous command. > > 4495ec6d770e1b Corey Minyard 2017-06-30 814 */ > > 4495ec6d770e1b Corey Minyard 2017-06-30 815 ipmi_ssif_unlock_cond(ssif_info, flags); > > 83af41947c5cbd Corey Minyard 2018-11-27 816 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 817 "Invalid response getting flags: %x %x\n", > > 259307074bfcf1 Corey Minyard 2012-03-19 818 data[0], data[1]); > > 259307074bfcf1 Corey Minyard 2012-03-19 819 } else { > > 259307074bfcf1 Corey Minyard 2012-03-19 820 ssif_inc_stat(ssif_info, flag_fetches); > > 259307074bfcf1 Corey Minyard 2012-03-19 821 ssif_info->msg_flags = data[3]; > > 259307074bfcf1 Corey Minyard 2012-03-19 822 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 823 } > > 259307074bfcf1 Corey Minyard 2012-03-19 824 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 825 > > 259307074bfcf1 Corey Minyard 2012-03-19 826 case SSIF_CLEARING_FLAGS: > > 259307074bfcf1 Corey Minyard 2012-03-19 827 /* We cleared the flags. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 828 if ((result < 0) || (len < 3) || (data[2] != 0)) { > > 259307074bfcf1 Corey Minyard 2012-03-19 829 /* Error clearing flags */ > > 83af41947c5cbd Corey Minyard 2018-11-27 830 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 831 "Error clearing flags: %d %d, %x\n", > > f002612b9d8661 Kamlakant Patel 2018-03-13 832 result, len, (len >= 3) ? data[2] : 0); > > 259307074bfcf1 Corey Minyard 2012-03-19 833 } else if (data[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 > > 259307074bfcf1 Corey Minyard 2012-03-19 834 || data[1] != IPMI_CLEAR_MSG_FLAGS_CMD) { > > 83af41947c5cbd Corey Minyard 2018-11-27 835 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 836 "Invalid response clearing flags: %x %x\n", > > 259307074bfcf1 Corey Minyard 2012-03-19 837 data[0], data[1]); > > 259307074bfcf1 Corey Minyard 2012-03-19 838 } > > 259307074bfcf1 Corey Minyard 2012-03-19 839 ssif_info->ssif_state = SSIF_NORMAL; > > 259307074bfcf1 Corey Minyard 2012-03-19 840 ipmi_ssif_unlock_cond(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 841 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 842 > > 259307074bfcf1 Corey Minyard 2012-03-19 843 case SSIF_GETTING_EVENTS: > > 259307074bfcf1 Corey Minyard 2012-03-19 844 if ((result < 0) || (len < 3) || (msg->rsp[2] != 0)) { > > 259307074bfcf1 Corey Minyard 2012-03-19 845 /* Error getting event, probably done. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 846 msg->done(msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 847 > > 259307074bfcf1 Corey Minyard 2012-03-19 848 /* Take off the event flag. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 849 ssif_info->msg_flags &= ~EVENT_MSG_BUFFER_FULL; > > 259307074bfcf1 Corey Minyard 2012-03-19 850 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 851 } else if (msg->rsp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 > > 259307074bfcf1 Corey Minyard 2012-03-19 852 || msg->rsp[1] != IPMI_READ_EVENT_MSG_BUFFER_CMD) { > > 83af41947c5cbd Corey Minyard 2018-11-27 853 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 854 "Invalid response getting events: %x %x\n", > > 259307074bfcf1 Corey Minyard 2012-03-19 855 msg->rsp[0], msg->rsp[1]); > > 259307074bfcf1 Corey Minyard 2012-03-19 856 msg->done(msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 857 /* Take off the event flag. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 858 ssif_info->msg_flags &= ~EVENT_MSG_BUFFER_FULL; > > 259307074bfcf1 Corey Minyard 2012-03-19 859 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 860 } else { > > 259307074bfcf1 Corey Minyard 2012-03-19 861 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 862 ssif_inc_stat(ssif_info, events); > > 259307074bfcf1 Corey Minyard 2012-03-19 863 deliver_recv_msg(ssif_info, msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 864 } > > 259307074bfcf1 Corey Minyard 2012-03-19 865 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 866 > > 259307074bfcf1 Corey Minyard 2012-03-19 867 case SSIF_GETTING_MESSAGES: > > 259307074bfcf1 Corey Minyard 2012-03-19 868 if ((result < 0) || (len < 3) || (msg->rsp[2] != 0)) { > > 259307074bfcf1 Corey Minyard 2012-03-19 869 /* Error getting event, probably done. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 870 msg->done(msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 871 > > 259307074bfcf1 Corey Minyard 2012-03-19 872 /* Take off the msg flag. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 873 ssif_info->msg_flags &= ~RECEIVE_MSG_AVAIL; > > 259307074bfcf1 Corey Minyard 2012-03-19 874 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 875 } else if (msg->rsp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 > > 259307074bfcf1 Corey Minyard 2012-03-19 876 || msg->rsp[1] != IPMI_GET_MSG_CMD) { > > 83af41947c5cbd Corey Minyard 2018-11-27 877 dev_warn(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 878 "Invalid response clearing flags: %x %x\n", > > 259307074bfcf1 Corey Minyard 2012-03-19 879 msg->rsp[0], msg->rsp[1]); > > 259307074bfcf1 Corey Minyard 2012-03-19 880 msg->done(msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 881 > > 259307074bfcf1 Corey Minyard 2012-03-19 882 /* Take off the msg flag. */ > > 259307074bfcf1 Corey Minyard 2012-03-19 883 ssif_info->msg_flags &= ~RECEIVE_MSG_AVAIL; > > 259307074bfcf1 Corey Minyard 2012-03-19 884 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 885 } else { > > 259307074bfcf1 Corey Minyard 2012-03-19 886 ssif_inc_stat(ssif_info, incoming_messages); > > 259307074bfcf1 Corey Minyard 2012-03-19 887 handle_flags(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 888 deliver_recv_msg(ssif_info, msg); > > 259307074bfcf1 Corey Minyard 2012-03-19 889 } > > 259307074bfcf1 Corey Minyard 2012-03-19 890 break; > > 259307074bfcf1 Corey Minyard 2012-03-19 891 } > > 259307074bfcf1 Corey Minyard 2012-03-19 892 > > 259307074bfcf1 Corey Minyard 2012-03-19 893 flags = ipmi_ssif_lock_cond(ssif_info, &oflags); > > 259307074bfcf1 Corey Minyard 2012-03-19 894 if (SSIF_IDLE(ssif_info) && !ssif_info->stopping) { > > 259307074bfcf1 Corey Minyard 2012-03-19 895 if (ssif_info->req_events) > > 259307074bfcf1 Corey Minyard 2012-03-19 896 start_event_fetch(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 897 else if (ssif_info->req_flags) > > 259307074bfcf1 Corey Minyard 2012-03-19 898 start_flag_fetch(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 899 else > > 259307074bfcf1 Corey Minyard 2012-03-19 900 start_next_msg(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 901 } else > > 259307074bfcf1 Corey Minyard 2012-03-19 902 ipmi_ssif_unlock_cond(ssif_info, flags); > > 259307074bfcf1 Corey Minyard 2012-03-19 903 > > 259307074bfcf1 Corey Minyard 2012-03-19 904 if (ssif_info->ssif_debug & SSIF_DEBUG_STATE) > > 83af41947c5cbd Corey Minyard 2018-11-27 905 dev_dbg(&ssif_info->client->dev, > > 83af41947c5cbd Corey Minyard 2018-11-27 906 "DONE 2: state = %d.\n", ssif_info->ssif_state); > > 259307074bfcf1 Corey Minyard 2012-03-19 907 } > > 259307074bfcf1 Corey Minyard 2012-03-19 908 > > > > :::::: The code at line 781 was first introduced by commit > > :::::: 259307074bfcf1ff88016e12c68f057aee6cb694 ipmi: Add SMBus interface driver (SSIF) > > > > :::::: TO: Corey Minyard <cminyard@xxxxxxxxxx> > > :::::: CC: Corey Minyard <cminyard@xxxxxxxxxx> > > > > --- > > 0-DAY kernel test infrastructure Open Source Technology Center > > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation > > > > -- > Best regards, > Oleksandr Natalenko (post-factum) > Senior Software Maintenance Engineer >