All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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.