From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 net-next 05/10] net: mscc: ocelot: VCAP IS1 support
Date: Tue, 02 Jun 2020 19:46:21 +0800 [thread overview]
Message-ID: <202006021915.hPj1Y1yo%lkp@intel.com> (raw)
In-Reply-To: <20200602051828.5734-6-xiaoliang.yang_1@nxp.com>
[-- Attachment #1: Type: text/plain, Size: 14978 bytes --]
Hi Xiaoliang,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on next-20200529]
[cannot apply to linus/master v5.7]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Xiaoliang-Yang/net-ocelot-VCAP-IS1-and-ES0-support/20200602-133658
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9a25c1df24a6fea9dc79eec950453c4e00f707fd
config: mips-allyesconfig (attached as .config)
compiler: mips-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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from include/linux/kernel.h:12,
from include/linux/iopoll.h:9,
from drivers/net/ethernet/mscc/ocelot_ace.c:6:
drivers/net/ethernet/mscc/ocelot_ace.c: In function 'vcap_action2cache':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c:133:10: note: in expansion of macro 'GENMASK'
133 | mask = GENMASK(width, 0);
| ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c:133:10: note: in expansion of macro 'GENMASK'
133 | mask = GENMASK(width, 0);
| ^~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c: In function 'vcap_cache2action':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c:168:43: note: in expansion of macro 'GENMASK'
168 | data->type = (width ? (data->action[0] & GENMASK(width, 0)) : 0);
| ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c:168:43: note: in expansion of macro 'GENMASK'
168 | data->type = (width ? (data->action[0] & GENMASK(width, 0)) : 0);
| ^~~~~~~
drivers/net/ethernet/mscc/ocelot_ace.c: In function 'is1_entry_set':
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:733:27: warning: variable 'ip_data' set but not used [-Wunused-but-set-variable]
733 | struct ocelot_vcap_u48 *ip_data;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:732:32: warning: variable 'ds' set but not used [-Wunused-but-set-variable]
732 | struct ocelot_vcap_u8 proto, ds;
| ^~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:727:51: warning: variable 'tcp_psh' set but not used [-Wunused-but-set-variable]
727 | enum ocelot_vcap_bit tcp_fin, tcp_syn, tcp_rst, tcp_psh;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:727:42: warning: variable 'tcp_rst' set but not used [-Wunused-but-set-variable]
727 | enum ocelot_vcap_bit tcp_fin, tcp_syn, tcp_rst, tcp_psh;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:727:33: warning: variable 'tcp_syn' set but not used [-Wunused-but-set-variable]
727 | enum ocelot_vcap_bit tcp_fin, tcp_syn, tcp_rst, tcp_psh;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:727:24: warning: variable 'tcp_fin' set but not used [-Wunused-but-set-variable]
727 | enum ocelot_vcap_bit tcp_fin, tcp_syn, tcp_rst, tcp_psh;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:726:33: warning: variable 'tcp_urg' set but not used [-Wunused-but-set-variable]
726 | enum ocelot_vcap_bit tcp_ack, tcp_urg;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:726:24: warning: variable 'tcp_ack' set but not used [-Wunused-but-set-variable]
726 | enum ocelot_vcap_bit tcp_ack, tcp_urg;
| ^~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:725:24: warning: variable 'ttl' set but not used [-Wunused-but-set-variable]
725 | enum ocelot_vcap_bit ttl, fragment, options;
| ^~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:724:24: warning: variable 'seq_zero' set but not used [-Wunused-but-set-variable]
724 | enum ocelot_vcap_bit seq_zero, tcp;
| ^~~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:723:36: warning: variable 'sport_eq_dport' set but not used [-Wunused-but-set-variable]
723 | enum ocelot_vcap_bit sip_eq_dip, sport_eq_dport;
| ^~~~~~~~~~~~~~
<< from drivers/net/ethernet/mscc/ocelot_ace.c:6:
>> drivers/net/ethernet/mscc/ocelot_ace.c:723:24: warning: variable 'sip_eq_dip' set but not used [-Wunused-but-set-variable]
723 | enum ocelot_vcap_bit sip_eq_dip, sport_eq_dport;
| ^~~~~~~~~~
vim +/ip_data +733 drivers/net/ethernet/mscc/ocelot_ace.c
673
674 static void is1_entry_set(struct ocelot *ocelot, int ix,
675 struct ocelot_ace_rule *ace)
676 {
677 const struct vcap_props *vcap = &ocelot->vcap[VCAP_IS1];
678 u32 val, msk, type, i;
679 struct ocelot_ace_vlan *tag = &ace->vlan;
680 struct ocelot_vcap_u64 payload;
681 struct vcap_data data;
682 int row = ix / 2;
683
684 memset(&payload, 0, sizeof(payload));
685 memset(&data, 0, sizeof(data));
686
687 /* Read row */
688 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_READ, VCAP_SEL_ALL);
689 vcap_cache2entry(ocelot, vcap, &data);
690 vcap_cache2action(ocelot, vcap, &data);
691
692 data.tg_sw = VCAP_TG_HALF;
693 data.type = IS1_ACTION_TYPE_NORMAL;
694 vcap_data_offset_get(vcap, &data, ix);
695 data.tg = (data.tg & ~data.tg_mask);
696 if (ace->prio != 0)
697 data.tg |= data.tg_value;
698
699 vcap_key_set(vcap, &data, VCAP_IS1_HK_IGR_PORT_MASK, 0,
700 ~ace->ingress_port_mask);
701 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_L2_MC, ace->dmac_mc);
702 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_L2_BC, ace->dmac_bc);
703 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_VLAN_TAGGED, tag->tagged);
704 vcap_key_set(vcap, &data, VCAP_IS1_HK_VID,
705 tag->vid.value, tag->vid.mask);
706 vcap_key_set(vcap, &data, VCAP_IS1_HK_PCP,
707 tag->pcp.value[0], tag->pcp.mask[0]);
708 type = IS1_TYPE_S1_NORMAL;
709
710 switch (ace->type) {
711 case OCELOT_ACE_TYPE_ETYPE: {
712 struct ocelot_ace_frame_etype *etype = &ace->frame.etype;
713
714 type = IS1_TYPE_S1_NORMAL;
715 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_L2_SMAC,
716 etype->smac.value, etype->smac.mask);
717 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_ETYPE,
718 etype->etype.value, etype->etype.mask);
719 break;
720 }
721 case OCELOT_ACE_TYPE_IPV4:
722 case OCELOT_ACE_TYPE_IPV6: {
> 723 enum ocelot_vcap_bit sip_eq_dip, sport_eq_dport;
> 724 enum ocelot_vcap_bit seq_zero, tcp;
> 725 enum ocelot_vcap_bit ttl, fragment, options;
> 726 enum ocelot_vcap_bit tcp_ack, tcp_urg;
> 727 enum ocelot_vcap_bit tcp_fin, tcp_syn, tcp_rst, tcp_psh;
728 struct ocelot_ace_frame_ipv4 *ipv4 = NULL;
729 struct ocelot_ace_frame_ipv6 *ipv6 = NULL;
730 struct ocelot_vcap_udp_tcp *sport, *dport;
731 struct ocelot_vcap_ipv4 sip, dip;
> 732 struct ocelot_vcap_u8 proto, ds;
> 733 struct ocelot_vcap_u48 *ip_data;
734 struct ocelot_vcap_u32 port;
735
736 type = IS1_TYPE_S1_5TUPLE_IP4;
737 if (ace->type == OCELOT_ACE_TYPE_IPV4) {
738 ipv4 = &ace->frame.ipv4;
739 ttl = ipv4->ttl;
740 fragment = ipv4->fragment;
741 options = ipv4->options;
742 proto = ipv4->proto;
743 ds = ipv4->ds;
744 ip_data = &ipv4->data;
745 sip = ipv4->sip;
746 dip = ipv4->dip;
747 sport = &ipv4->sport;
748 dport = &ipv4->dport;
749 tcp_fin = ipv4->tcp_fin;
750 tcp_syn = ipv4->tcp_syn;
751 tcp_rst = ipv4->tcp_rst;
752 tcp_psh = ipv4->tcp_psh;
753 tcp_ack = ipv4->tcp_ack;
754 tcp_urg = ipv4->tcp_urg;
755 sip_eq_dip = ipv4->sip_eq_dip;
756 sport_eq_dport = ipv4->sport_eq_dport;
757 seq_zero = ipv4->seq_zero;
758 } else {
759 ipv6 = &ace->frame.ipv6;
760 ttl = ipv6->ttl;
761 fragment = OCELOT_VCAP_BIT_ANY;
762 options = OCELOT_VCAP_BIT_ANY;
763 proto = ipv6->proto;
764 ds = ipv6->ds;
765 ip_data = &ipv6->data;
766 for (i = 0; i < 4; i++) {
767 dip.value.addr[i] = ipv6->dip.value[i];
768 dip.mask.addr[i] = ipv6->dip.mask[i];
769 sip.value.addr[i] = ipv6->sip.value[i];
770 sip.mask.addr[i] = ipv6->sip.mask[i];
771 }
772 sport = &ipv6->sport;
773 dport = &ipv6->dport;
774 tcp_fin = ipv6->tcp_fin;
775 tcp_syn = ipv6->tcp_syn;
776 tcp_rst = ipv6->tcp_rst;
777 tcp_psh = ipv6->tcp_psh;
778 tcp_ack = ipv6->tcp_ack;
779 tcp_urg = ipv6->tcp_urg;
780 sip_eq_dip = ipv6->sip_eq_dip;
781 sport_eq_dport = ipv6->sport_eq_dport;
782 seq_zero = ipv6->seq_zero;
783 }
784
785 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP4_IP4,
786 ipv4 ? OCELOT_VCAP_BIT_1 : OCELOT_VCAP_BIT_0);
787 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP4_L3_FRAGMENT,
788 fragment);
789 vcap_key_set(vcap, &data, VCAP_IS1_HK_IP4_L3_FRAG_OFS_GT0,
790 0, 0);
791 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP4_L3_OPTIONS,
792 options);
793 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_IP4_L3_IP4_DIP,
794 dip.value.addr, dip.mask.addr);
795 vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_IP4_L3_IP4_SIP,
796 sip.value.addr, sip.mask.addr);
797 val = proto.value[0];
798 msk = proto.mask[0];
799 if (msk == 0xff && (val == 6 || val == 17)) {
800 /* UDP/TCP protocol match */
801 tcp = (val == 6 ?
802 OCELOT_VCAP_BIT_1 : OCELOT_VCAP_BIT_0);
803 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_IP4_TCP,
804 tcp);
805 vcap_key_l4_port_set(vcap, &data,
806 VCAP_IS1_HK_L4_SPORT, sport);
807 vcap_key_set(vcap, &data, VCAP_IS1_HK_IP4_L4_RNG,
808 0, 0);
809 port.value[0] = sport->value & 0xFF;
810 port.value[1] = sport->value >> 8;
811 port.value[2] = dport->value & 0xFF;
812 port.value[3] = dport->value >> 8;
813 port.mask[0] = sport->mask & 0xFF;
814 port.mask[1] = sport->mask >> 8;
815 port.mask[2] = dport->mask & 0xFF;
816 port.mask[3] = dport->mask >> 8;
817 vcap_key_bytes_set(vcap, &data,
818 VCAP_IS1_HK_IP4_IP_PAYLOAD_S1_5TUPLE,
819 port.value, port.mask);
820 }
821 break;
822 }
823 default:
824 break;
825 }
826 vcap_key_bit_set(vcap, &data, VCAP_IS1_HK_TYPE,
827 type ? OCELOT_VCAP_BIT_1 : OCELOT_VCAP_BIT_0);
828
829 is1_action_set(ocelot, &data, ace);
830 vcap_data_set(data.counter, data.counter_offset,
831 vcap->counter_width, ace->stats.pkts);
832
833 /* Write row */
834 vcap_entry2cache(ocelot, vcap, &data);
835 vcap_action2cache(ocelot, vcap, &data);
836 vcap_row_cmd(ocelot, vcap, row, VCAP_CMD_WRITE, VCAP_SEL_ALL);
837 }
838
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 65525 bytes --]
next prev parent reply other threads:[~2020-06-02 11:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-02 5:18 [PATCH v2 net-next 00/10] net: ocelot: VCAP IS1 and ES0 support Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 01/10] net: mscc: ocelot: introduce a new ocelot_target_{read,write} API Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 02/10] net: mscc: ocelot: generalize existing code for VCAP Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 03/10] net: mscc: ocelot: allocated rules to different hardware VCAP TCAMs by chain index Xiaoliang Yang
2020-06-02 8:36 ` Allan W. Nielsen
2020-06-03 10:04 ` Vladimir Oltean
2020-06-08 13:56 ` Allan W. Nielsen
2020-06-09 12:55 ` Vladimir Oltean
2020-06-10 18:18 ` Allan W. Nielsen
2020-07-16 6:49 ` [EXT] " Xiaoliang Yang
2020-07-16 8:50 ` Joergen Andreasen
2020-07-16 10:37 ` Xiaoliang Yang
2020-07-16 14:45 ` Vladimir Oltean
2020-07-17 7:34 ` Joergen Andreasen
2020-07-17 9:08 ` Vladimir Oltean
2020-07-17 19:10 ` Allan W. Nielsen
2020-07-20 11:04 ` Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 04/10] net: mscc: ocelot: change vcap to be compatible with full and quad entry Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 05/10] net: mscc: ocelot: VCAP IS1 support Xiaoliang Yang
2020-06-02 11:46 ` kbuild test robot [this message]
2020-06-02 16:16 ` Jakub Kicinski
2020-06-02 5:18 ` [PATCH v2 net-next 06/10] net: mscc: ocelot: VCAP ES0 support Xiaoliang Yang
2020-06-02 16:17 ` Jakub Kicinski
2020-06-02 5:18 ` [PATCH v2 net-next 07/10] net: mscc: ocelot: multiple actions support Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 08/10] net: ocelot: return error if rule is not found Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 09/10] net: dsa: felix: correct VCAP IS2 keys offset Xiaoliang Yang
2020-06-02 5:18 ` [PATCH v2 net-next 10/10] net: dsa: tag_ocelot: use VLAN information from tagging header when available Xiaoliang Yang
2020-06-02 8:03 ` [PATCH v2 net-next 00/10] net: ocelot: VCAP IS1 and ES0 support Vladimir Oltean
2020-06-02 8:49 ` [EXT] " Xiaoliang Yang
2020-06-09 11:35 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202006021915.hPj1Y1yo%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.