All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Suman Ghosh <sumang@marvell.com>,
	sgoutham@marvell.com, gakula@marvell.com, sbhatta@marvell.com,
	hkelam@marvell.com, davem@davemloft.net, edumazet@google.com,
	kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Suman Ghosh <sumang@marvell.com>
Subject: Re: [PATCH V3] octeontx2-pf: Add additional check for MCAM rules
Date: Thu, 6 Jul 2023 22:48:22 +0800	[thread overview]
Message-ID: <202307062220.o7LjIj48-lkp@intel.com> (raw)
In-Reply-To: <20230703170054.2152662-1-sumang@marvell.com>

Hi Suman,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.4 next-20230706]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Suman-Ghosh/octeontx2-pf-Add-additional-check-for-MCAM-rules/20230704-010247
base:   linus/master
patch link:    https://lore.kernel.org/r/20230703170054.2152662-1-sumang%40marvell.com
patch subject: [PATCH V3] octeontx2-pf: Add additional check for MCAM rules
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20230706/202307062220.o7LjIj48-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230706/202307062220.o7LjIj48-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307062220.o7LjIj48-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c:877:8: warning: variable 'vlan_etype' is uninitialized when used here [-Wuninitialized]
     877 |                         if (vlan_etype == ETH_P_8021Q && !fsp->m_ext.vlan_tci &&
         |                             ^~~~~~~~~~
   drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c:867:17: note: initialize the variable 'vlan_etype' to silence this warning
     867 |                 u16 vlan_etype;
         |                               ^
         |                                = 0
   1 warning generated.


vim +/vlan_etype +877 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c

   810	
   811	static int otx2_prepare_flow_request(struct ethtool_rx_flow_spec *fsp,
   812				      struct npc_install_flow_req *req)
   813	{
   814		struct ethhdr *eth_mask = &fsp->m_u.ether_spec;
   815		struct ethhdr *eth_hdr = &fsp->h_u.ether_spec;
   816		struct flow_msg *pmask = &req->mask;
   817		struct flow_msg *pkt = &req->packet;
   818		u32 flow_type;
   819		int ret;
   820	
   821		flow_type = fsp->flow_type & ~(FLOW_EXT | FLOW_MAC_EXT | FLOW_RSS);
   822		switch (flow_type) {
   823		/* bits not set in mask are don't care */
   824		case ETHER_FLOW:
   825			if (!is_zero_ether_addr(eth_mask->h_source)) {
   826				ether_addr_copy(pkt->smac, eth_hdr->h_source);
   827				ether_addr_copy(pmask->smac, eth_mask->h_source);
   828				req->features |= BIT_ULL(NPC_SMAC);
   829			}
   830			if (!is_zero_ether_addr(eth_mask->h_dest)) {
   831				ether_addr_copy(pkt->dmac, eth_hdr->h_dest);
   832				ether_addr_copy(pmask->dmac, eth_mask->h_dest);
   833				req->features |= BIT_ULL(NPC_DMAC);
   834			}
   835			if (eth_hdr->h_proto) {
   836				memcpy(&pkt->etype, &eth_hdr->h_proto,
   837				       sizeof(pkt->etype));
   838				memcpy(&pmask->etype, &eth_mask->h_proto,
   839				       sizeof(pmask->etype));
   840				req->features |= BIT_ULL(NPC_ETYPE);
   841			}
   842			break;
   843		case IP_USER_FLOW:
   844		case TCP_V4_FLOW:
   845		case UDP_V4_FLOW:
   846		case SCTP_V4_FLOW:
   847		case AH_V4_FLOW:
   848		case ESP_V4_FLOW:
   849			ret = otx2_prepare_ipv4_flow(fsp, req, flow_type);
   850			if (ret)
   851				return ret;
   852			break;
   853		case IPV6_USER_FLOW:
   854		case TCP_V6_FLOW:
   855		case UDP_V6_FLOW:
   856		case SCTP_V6_FLOW:
   857		case AH_V6_FLOW:
   858		case ESP_V6_FLOW:
   859			ret = otx2_prepare_ipv6_flow(fsp, req, flow_type);
   860			if (ret)
   861				return ret;
   862			break;
   863		default:
   864			return -EOPNOTSUPP;
   865		}
   866		if (fsp->flow_type & FLOW_EXT) {
   867			u16 vlan_etype;
   868	
   869			if (fsp->m_ext.vlan_etype) {
   870				/* Partial masks not supported */
   871				if (be16_to_cpu(fsp->m_ext.vlan_etype) != 0xFFFF)
   872					return -EINVAL;
   873	
   874				/* Drop rule with vlan_etype == 802.1Q
   875				 * and vlan_id == 0 is not supported
   876				 */
 > 877				if (vlan_etype == ETH_P_8021Q && !fsp->m_ext.vlan_tci &&
   878				    fsp->ring_cookie == RX_CLS_FLOW_DISC)
   879					return -EINVAL;
   880	
   881				vlan_etype = be16_to_cpu(fsp->h_ext.vlan_etype);
   882				/* Only ETH_P_8021Q and ETH_P_802AD types supported */
   883				if (vlan_etype != ETH_P_8021Q &&
   884				    vlan_etype != ETH_P_8021AD)
   885					return -EINVAL;
   886	
   887				memcpy(&pkt->vlan_etype, &fsp->h_ext.vlan_etype,
   888				       sizeof(pkt->vlan_etype));
   889				memcpy(&pmask->vlan_etype, &fsp->m_ext.vlan_etype,
   890				       sizeof(pmask->vlan_etype));
   891	
   892				if (vlan_etype == ETH_P_8021Q)
   893					req->features |= BIT_ULL(NPC_VLAN_ETYPE_CTAG);
   894				else
   895					req->features |= BIT_ULL(NPC_VLAN_ETYPE_STAG);
   896			}
   897	
   898			if (fsp->m_ext.vlan_tci) {
   899				memcpy(&pkt->vlan_tci, &fsp->h_ext.vlan_tci,
   900				       sizeof(pkt->vlan_tci));
   901				memcpy(&pmask->vlan_tci, &fsp->m_ext.vlan_tci,
   902				       sizeof(pmask->vlan_tci));
   903				req->features |= BIT_ULL(NPC_OUTER_VID);
   904			}
   905	
   906			if (fsp->m_ext.data[1]) {
   907				if (flow_type == IP_USER_FLOW) {
   908					if (be32_to_cpu(fsp->h_ext.data[1]) != IPV4_FLAG_MORE)
   909						return -EINVAL;
   910	
   911					pkt->ip_flag = be32_to_cpu(fsp->h_ext.data[1]);
   912					pmask->ip_flag = be32_to_cpu(fsp->m_ext.data[1]);
   913					req->features |= BIT_ULL(NPC_IPFRAG_IPV4);
   914				} else if (fsp->h_ext.data[1] ==
   915						cpu_to_be32(OTX2_DEFAULT_ACTION)) {
   916					/* Not Drop/Direct to queue but use action
   917					 * in default entry
   918					 */
   919					req->op = NIX_RX_ACTION_DEFAULT;
   920				}
   921			}
   922		}
   923	
   924		if (fsp->flow_type & FLOW_MAC_EXT &&
   925		    !is_zero_ether_addr(fsp->m_ext.h_dest)) {
   926			ether_addr_copy(pkt->dmac, fsp->h_ext.h_dest);
   927			ether_addr_copy(pmask->dmac, fsp->m_ext.h_dest);
   928			req->features |= BIT_ULL(NPC_DMAC);
   929		}
   930	
   931		if (!req->features)
   932			return -EOPNOTSUPP;
   933	
   934		return 0;
   935	}
   936	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2023-07-06 14:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-03 17:00 [PATCH V3] octeontx2-pf: Add additional check for MCAM rules Suman Ghosh
2023-07-03 20:01 ` Jakub Kicinski
2023-07-04 13:47 ` Simon Horman
2023-07-06 17:34   ` [EXT] " Suman Ghosh
2023-07-06 14:48 ` kernel test robot [this message]

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=202307062220.o7LjIj48-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gakula@marvell.com \
    --cc=hkelam@marvell.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=pabeni@redhat.com \
    --cc=sbhatta@marvell.com \
    --cc=sgoutham@marvell.com \
    --cc=sumang@marvell.com \
    /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.