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, ð_hdr->h_proto,
837 sizeof(pkt->etype));
838 memcpy(&pmask->etype, ð_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
prev 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.