0 day kernel build service
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [linux-next:master 2780/4316] drivers/net/dsa/motorcomm/chip.c:1792 yt921x_acl_rule_ext_parse_flow_entries() warn: missing unwind goto?
Date: Tue, 08 Sep 2026 16:23:51 +0800	[thread overview]
Message-ID: <202609081618.41PJOZvZ-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: David Yang <mmyangfl@gmail.com>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Andrew Lunn <andrew@lunn.ch>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   944a035ecca915ae947905dcfb03f2b9dc6d032c
commit: 9c472a0d7c3893e568e1b61728d443a9d10bb3a8 [2780/4316] net: dsa: motorcomm: Move to subdirectory
:::::: branch date: 18 hours ago
:::::: commit date: 5 days ago
config: arm-randconfig-r071-20260908 (https://download.01.org/0day-ci/archive/20260908/202609081618.41PJOZvZ-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 2362eeb5f75560740146975e9eabe84c6bd25a0d)
smatch: v0.5.0-9187-g5189e3fb

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202609081618.41PJOZvZ-lkp@intel.com/

smatch warnings:
drivers/net/dsa/motorcomm/chip.c:1792 yt921x_acl_rule_ext_parse_flow_entries() warn: missing unwind goto?

vim +1792 drivers/net/dsa/motorcomm/chip.c

8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1666  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1667  static int
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1668  yt921x_acl_rule_ext_parse_flow_entries(struct yt921x_acl_rule_ext *ruleext,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1669  				       const struct flow_cls_offload *cls)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1670  {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1671  	const struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1672  	struct yt921x_acl_entry *entries = ruleext->r.entries;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1673  	struct netlink_ext_ack *extack = cls->common.extack;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1674  	const struct flow_dissector *dissector;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1675  	struct yt921x_acl_entry *entry;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1676  	unsigned int size = 0;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1677  	bool use_dport;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1678  	bool use_sport;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1679  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1680  	/* Incomplete and probably won't, since it supports custom u32 filters.
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1681  	 * New adapters are welcome.
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1682  	 */
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1683  	dissector = rule->match.dissector;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1684  	if (dissector->used_keys &
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1685  	    ~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1686  	      BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1687  	      BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1688  	      BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1689  	      BIT_ULL(FLOW_DISSECTOR_KEY_PORTS) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1690  	      BIT_ULL(FLOW_DISSECTOR_KEY_PORTS_RANGE) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1691  	      BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1692  	      BIT_ULL(FLOW_DISSECTOR_KEY_IP) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1693  	      BIT_ULL(FLOW_DISSECTOR_KEY_TCP))) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1694  		NL_SET_ERR_MSG_MOD(extack, "Unsupported keys used");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1695  		return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1696  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1697  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1698  	/* Entries */
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1699  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1700  		struct flow_match_ipv4_addrs match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1701  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1702  		flow_rule_match_ipv4_addrs(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1703  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1704  		if (match.mask->dst) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1705  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1706  						       YT921X_ACL_TYPE_IPV4_DA);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1707  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1708  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1709  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1710  			entry->key[0] |= ntohl(match.key->dst);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1711  			entry->mask[0] |= ntohl(match.mask->dst);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1712  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1713  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1714  		if (match.mask->src) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1715  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1716  						       YT921X_ACL_TYPE_IPV4_SA);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1717  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1718  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1719  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1720  			entry->key[0] |= ntohl(match.key->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1721  			entry->mask[0] |= ntohl(match.mask->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1722  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1723  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1724  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1725  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IPV6_ADDRS)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1726  		struct flow_match_ipv6_addrs match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1727  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1728  		flow_rule_match_ipv6_addrs(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1729  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1730  		for (unsigned int i = 0; i < 4; i++) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1731  			if (!match.mask->dst.s6_addr32[i])
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1732  				continue;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1733  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1734  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1735  						       YT921X_ACL_TYPE_IPV6_DA0 + i);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1736  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1737  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1738  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1739  			entry->key[0] |= ntohl(match.key->dst.s6_addr32[i]);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1740  			entry->mask[0] |= ntohl(match.mask->dst.s6_addr32[i]);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1741  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1742  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1743  		for (unsigned int i = 0; i < 4; i++) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1744  			if (!match.mask->src.s6_addr32[i])
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1745  				continue;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1746  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1747  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1748  						       YT921X_ACL_TYPE_IPV6_SA0 + i);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1749  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1750  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1751  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1752  			entry->key[0] |= ntohl(match.key->src.s6_addr32[i]);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1753  			entry->mask[0] |= ntohl(match.mask->src.s6_addr32[i]);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1754  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1755  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1756  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1757  	use_dport = false;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1758  	use_sport = false;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1759  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1760  		struct flow_match_ports match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1761  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1762  		entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1763  					       YT921X_ACL_TYPE_L4);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1764  		if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1765  			goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1766  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1767  		flow_rule_match_ports(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1768  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1769  		use_dport = !!match.mask->dst;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1770  		use_sport = !!match.mask->src;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1771  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1772  		entry->key[0] |= (ntohs(match.key->dst) << 16) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1773  				 ntohs(match.key->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1774  		entry->mask[0] |= (ntohs(match.mask->dst) << 16) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1775  				  ntohs(match.mask->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1776  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1777  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1778  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS_RANGE)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1779  		struct flow_match_ports_range match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1780  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1781  		entry = yt921x_acl_entries_find(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1782  						YT921X_ACL_TYPE_L4);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1783  		if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1784  			goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1785  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1786  		flow_rule_match_ports_range(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1787  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1788  		if ((use_dport && match.mask->tp.dst) ||
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1789  		    (use_sport && match.mask->tp.src)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1790  			NL_SET_ERR_MSG_MOD(extack,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1791  					   "Port mask and range are mutually exclusive");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06 @1792  			return -EINVAL;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1793  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1794  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1795  		if (match.mask->tp.dst) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1796  			entry->key[0] |= ntohs(match.key->tp_min.dst) << 16;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1797  			entry->key[1] |= YT921X_ACL_KEYb_L4_DPORT_RANGE_EN;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1798  			entry->mask[0] |= ntohs(match.key->tp_max.dst) << 16;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1799  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1800  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1801  		if (match.mask->tp.src) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1802  			entry->key[0] |= ntohs(match.key->tp_min.src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1803  			entry->key[1] |= YT921X_ACL_KEYb_L4_SPORT_RANGE_EN;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1804  			entry->mask[0] |= ntohs(match.key->tp_max.src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1805  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1806  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1807  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1808  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1809  		struct flow_match_eth_addrs match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1810  		u32 mask;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1811  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1812  		flow_rule_match_eth_addrs(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1813  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1814  		mask = ethaddr_hi4_to_u32(match.mask->dst);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1815  		if (mask) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1816  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1817  						       YT921X_ACL_TYPE_MAC_DA0);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1818  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1819  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1820  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1821  			entry->key[0] |= ethaddr_hi4_to_u32(match.key->dst);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1822  			entry->mask[0] |= mask;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1823  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1824  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1825  		mask = ethaddr_hi4_to_u32(match.mask->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1826  		if (mask) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1827  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1828  						       YT921X_ACL_TYPE_MAC_SA0);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1829  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1830  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1831  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1832  			entry->key[0] |= ethaddr_hi4_to_u32(match.key->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1833  			entry->mask[0] |= mask;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1834  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1835  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1836  		mask = (ethaddr_lo2_to_u32(match.mask->dst) << 16) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1837  		       ethaddr_lo2_to_u32(match.mask->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1838  		if (mask) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1839  			entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1840  						       YT921X_ACL_TYPE_MAC_DA1_SA1);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1841  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1842  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1843  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1844  			entry->key[0] |= (ethaddr_lo2_to_u32(match.key->dst) << 16) |
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1845  					 ethaddr_lo2_to_u32(match.key->src);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1846  			entry->mask[0] |= mask;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1847  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1848  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1849  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1850  	/* Entries + Misc */
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1851  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1852  		struct flow_match_basic match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1853  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1854  		flow_rule_match_basic(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1855  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1856  		if (match.mask->n_proto) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1857  			enum yt921x_l3_type l3type = YT921X_L3_TYPE_OTHER;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1858  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1859  			if (match.mask->n_proto == htons(~0))
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1860  				switch (match.key->n_proto) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1861  				case htons(ETH_P_IP):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1862  					l3type = YT921X_L3_TYPE_IPV4;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1863  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1864  				case htons(ETH_P_IPV6):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1865  					l3type = YT921X_L3_TYPE_IPV6;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1866  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1867  				case htons(ETH_P_ARP):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1868  					l3type = YT921X_L3_TYPE_ARP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1869  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1870  				case htons(ETH_P_LLDP):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1871  					l3type = YT921X_L3_TYPE_LLDP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1872  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1873  				case htons(ETH_P_PAE):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1874  					l3type = YT921X_L3_TYPE_PAE;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1875  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1876  				case htons(ETH_P_CFM):
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1877  					l3type = YT921X_L3_TYPE_ERP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1878  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1879  				}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1880  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1881  			if (l3type != YT921X_L3_TYPE_OTHER) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1882  				size = yt921x_acl_entries_set_l3_type(entries,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1883  								      size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1884  								      l3type);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1885  				if (!size)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1886  					goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1887  			} else {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1888  				entry = yt921x_acl_entries_new(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1889  							       YT921X_ACL_TYPE_ETHERTYPE);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1890  				if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1891  					goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1892  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1893  				entry->key[0] |= ntohs(match.key->n_proto);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1894  				entry->mask[0] |= ntohs(match.mask->n_proto);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1895  			}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1896  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1897  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1898  		if (match.mask->ip_proto) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1899  			enum yt921x_l4_type l4type = YT921X_L4_TYPE_OTHER;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1900  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1901  			if (match.mask->ip_proto == (u8)~0)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1902  				switch (match.key->ip_proto) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1903  				case IPPROTO_TCP:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1904  					l4type = YT921X_L4_TYPE_TCP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1905  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1906  				case IPPROTO_UDP:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1907  					l4type = YT921X_L4_TYPE_UDP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1908  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1909  				case IPPROTO_UDPLITE:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1910  					l4type = YT921X_L4_TYPE_UDPLITE;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1911  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1912  				case IPPROTO_ICMP:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1913  					l4type = YT921X_L4_TYPE_ICMP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1914  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1915  				case IPPROTO_IGMP:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1916  					l4type = YT921X_L4_TYPE_IGMP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1917  					break;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1918  				}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1919  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1920  			if (l4type != YT921X_L4_TYPE_OTHER) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1921  				size = yt921x_acl_entries_set_l4_type(entries,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1922  								      size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1923  								      l4type);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1924  				if (!size)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1925  					goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1926  			} else {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1927  				entry = yt921x_acl_entries_find(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1928  								YT921X_ACL_TYPE_MISC);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1929  				if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1930  					goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1931  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1932  				entry->key[0] |= YT921X_ACL_BINa_MISC_IP_PROTO(match.key->ip_proto);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1933  				entry->mask[0] |= YT921X_ACL_BINa_MISC_IP_PROTO(match.mask->ip_proto);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1934  			}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1935  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1936  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1937  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1938  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_CONTROL)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1939  		u32 supp_flags = FLOW_DIS_IS_FRAGMENT | FLOW_DIS_FIRST_FRAG;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1940  		struct flow_match_control match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1941  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1942  		flow_rule_match_control(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1943  		if (!flow_rule_is_supp_control_flags(supp_flags,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1944  						     match.mask->flags, extack))
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1945  			return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1946  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1947  		if (match.mask->flags & FLOW_DIS_IS_FRAGMENT) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1948  			bool set = match.key->flags & FLOW_DIS_IS_FRAGMENT;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1949  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1950  			size = yt921x_acl_entries_set_is_fragment(entries, size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1951  								  set);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1952  			if (!size)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1953  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1954  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1955  		if (match.mask->flags & FLOW_DIS_FIRST_FRAG) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1956  			bool set = match.key->flags & FLOW_DIS_FIRST_FRAG;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1957  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1958  			size = yt921x_acl_entries_set_first_frag(entries, size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1959  								 set);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1960  			if (!size)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1961  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1962  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1963  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1964  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1965  	/* Misc only */
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1966  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_IP)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1967  		struct flow_match_ip match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1968  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1969  		flow_rule_match_ip(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1970  		if (match.mask->ttl) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1971  			NL_SET_ERR_MSG_MOD(extack,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1972  					   "Matching on TTL not supported");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1973  			return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1974  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1975  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1976  		if (match.mask->tos) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1977  			entry = yt921x_acl_entries_find(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1978  							YT921X_ACL_TYPE_MISC);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1979  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1980  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1981  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1982  			entry->key[0] |= YT921X_ACL_BINa_MISC_TOS(match.key->tos);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1983  			entry->mask[0] |= YT921X_ACL_BINa_MISC_TOS(match.mask->tos);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1984  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1985  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1986  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1987  	if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_TCP)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1988  		struct flow_match_tcp match;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1989  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1990  		flow_rule_match_tcp(rule, &match);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1991  		if (match.mask->flags & htons(~0xff)) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1992  			NL_SET_ERR_MSG_MOD(extack, "Unsupported TCP flags");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1993  			return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1994  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1995  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1996  		if (match.mask->flags) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1997  			entry = yt921x_acl_entries_find(entries, &size,
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1998  							YT921X_ACL_TYPE_MISC);
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  1999  			if (!entry)
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2000  				goto err;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2001  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2002  			entry->key[0] |= YT921X_ACL_BINa_MISC_TCP_FLAGS(ntohs(match.key->flags));
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2003  			entry->mask[0] |= YT921X_ACL_BINa_MISC_TCP_FLAGS(ntohs(match.mask->flags));
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2004  		}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2005  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2006  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2007  	if (!size) {
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2008  		NL_SET_ERR_MSG_MOD(extack, "Empty rule generated, this should not happen");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2009  		return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2010  	}
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2011  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2012  	ruleext->r.mask = (1 << size) - 1;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2013  	return 0;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2014  
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2015  err:
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2016  	NL_SET_ERR_MSG_MOD(extack, "Rule too complex");
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2017  	return -EOPNOTSUPP;
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2018  }
8eb9e7520b17ab drivers/net/dsa/yt921x.c David Yang 2026-06-06  2019  

:::::: The code at line 1792 was first introduced by commit
:::::: 8eb9e7520b17abdea1a0308f483990ae019aa1c1 net: dsa: yt921x: Add ACL support

:::::: TO: David Yang <mmyangfl@gmail.com>
:::::: CC: Jakub Kicinski <kuba@kernel.org>

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

                 reply	other threads:[~2026-09-08  8:24 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202609081618.41PJOZvZ-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox