All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 2780/4316] drivers/net/dsa/motorcomm/chip.c:1792 yt921x_acl_rule_ext_parse_flow_entries() warn: missing unwind goto?
@ 2026-09-08  8:23 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-08  8:23 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-08  8:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-08  8:23 [linux-next:master 2780/4316] drivers/net/dsa/motorcomm/chip.c:1792 yt921x_acl_rule_ext_parse_flow_entries() warn: missing unwind goto? kernel test robot

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.