* [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.