From: kernel test robot <lkp@intel.com>
To: "Álvaro Fernández Rojas" <noltari@gmail.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC PATCH 01/10] net: dsa: b53: add support for FDB operations on 5325/5365
Date: Sun, 1 Jun 2025 07:41:23 +0800 [thread overview]
Message-ID: <202506010756.N5VMksdd-lkp@intel.com> (raw)
In-Reply-To: <20250531101308.155757-2-noltari@gmail.com>
Hi Álvaro,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
[also build test WARNING on net/main linus/master v6.15 next-20250530]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/lvaro-Fern-ndez-Rojas/net-dsa-b53-add-support-for-FDB-operations-on-5325-5365/20250531-181619
base: net-next/main
patch link: https://lore.kernel.org/r/20250531101308.155757-2-noltari%40gmail.com
patch subject: [RFC PATCH 01/10] net: dsa: b53: add support for FDB operations on 5325/5365
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250601/202506010756.N5VMksdd-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250601/202506010756.N5VMksdd-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506010756.N5VMksdd-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/dsa/b53/b53_common.c:1764:7: warning: variable 'fwd_entry' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
1764 | if (!is5325(dev) && !is5365(dev))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1767:39: note: uninitialized use occurs here
1767 | b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
| ^~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1764:3: note: remove the 'if' if its condition is always true
1764 | if (!is5325(dev) && !is5365(dev))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1765 | b53_read32(dev, B53_ARLIO_PAGE,
>> drivers/net/dsa/b53/b53_common.c:1764:7: warning: variable 'fwd_entry' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized]
1764 | if (!is5325(dev) && !is5365(dev))
| ^~~~~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1767:39: note: uninitialized use occurs here
1767 | b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
| ^~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1764:7: note: remove the '&&' if its condition is always true
1764 | if (!is5325(dev) && !is5365(dev))
| ^~~~~~~~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1759:16: note: initialize the variable 'fwd_entry' to silence this warning
1759 | u32 fwd_entry;
| ^
| = 0
>> drivers/net/dsa/b53/b53_common.c:1927:13: warning: variable 'fwd_entry' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
1927 | } else if (is5365(dev)) {
| ^~~~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1936:38: note: uninitialized use occurs here
1936 | b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
| ^~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1927:9: note: remove the 'if' if its condition is always false
1927 | } else if (is5365(dev)) {
| ^~~~~~~~~~~~~~~~~~
1928 | b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1929 | &mac_vid);
| ~~~~~~~~~~
1930 | } else {
| ~~~~~~
drivers/net/dsa/b53/b53_common.c:1924:6: warning: variable 'fwd_entry' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
1924 | if (is5325(dev)) {
| ^~~~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1936:38: note: uninitialized use occurs here
1936 | b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
| ^~~~~~~~~
drivers/net/dsa/b53/b53_common.c:1924:2: note: remove the 'if' if its condition is always false
1924 | if (is5325(dev)) {
| ^~~~~~~~~~~~~~~~~~
1925 | b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1926 | &mac_vid);
| ~~~~~~~~~~
1927 | } else if (is5365(dev)) {
| ~~~~~~
drivers/net/dsa/b53/b53_common.c:1922:15: note: initialize the variable 'fwd_entry' to silence this warning
1922 | u32 fwd_entry;
| ^
| = 0
4 warnings generated.
vim +1764 drivers/net/dsa/b53/b53_common.c
1742
1743 static int b53_arl_read(struct b53_device *dev, u64 mac,
1744 u16 vid, struct b53_arl_entry *ent, u8 *idx)
1745 {
1746 DECLARE_BITMAP(free_bins, B53_ARLTBL_MAX_BIN_ENTRIES);
1747 unsigned int i;
1748 int ret;
1749
1750 ret = b53_arl_op_wait(dev);
1751 if (ret)
1752 return ret;
1753
1754 bitmap_zero(free_bins, dev->num_arl_bins);
1755
1756 /* Read the bins */
1757 for (i = 0; i < dev->num_arl_bins; i++) {
1758 u64 mac_vid;
1759 u32 fwd_entry;
1760
1761 b53_read64(dev, B53_ARLIO_PAGE,
1762 B53_ARLTBL_MAC_VID_ENTRY(i), &mac_vid);
1763
> 1764 if (!is5325(dev) && !is5365(dev))
1765 b53_read32(dev, B53_ARLIO_PAGE,
1766 B53_ARLTBL_DATA_ENTRY(i), &fwd_entry);
1767 b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
1768
1769 if (!(fwd_entry & ARLTBL_VALID)) {
1770 set_bit(i, free_bins);
1771 continue;
1772 }
1773 if ((mac_vid & ARLTBL_MAC_MASK) != mac)
1774 continue;
1775 if (dev->vlan_enabled &&
1776 ((mac_vid >> ARLTBL_VID_S) & ARLTBL_VID_MASK) != vid)
1777 continue;
1778 *idx = i;
1779 return 0;
1780 }
1781
1782 *idx = find_first_bit(free_bins, dev->num_arl_bins);
1783 return *idx >= dev->num_arl_bins ? -ENOSPC : -ENOENT;
1784 }
1785
1786 static int b53_arl_op(struct b53_device *dev, int op, int port,
1787 const unsigned char *addr, u16 vid, bool is_valid)
1788 {
1789 struct b53_arl_entry ent;
1790 u32 fwd_entry;
1791 u64 mac, mac_vid = 0;
1792 u8 idx = 0;
1793 int ret;
1794
1795 /* Convert the array into a 64-bit MAC */
1796 mac = ether_addr_to_u64(addr);
1797
1798 /* Perform a read for the given MAC and VID */
1799 b53_write48(dev, B53_ARLIO_PAGE, B53_MAC_ADDR_IDX, mac);
1800 if (!is5325(dev))
1801 b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid);
1802
1803 /* Issue a read operation for this MAC */
1804 ret = b53_arl_rw_op(dev, 1);
1805 if (ret)
1806 return ret;
1807
1808 ret = b53_arl_read(dev, mac, vid, &ent, &idx);
1809
1810 /* If this is a read, just finish now */
1811 if (op)
1812 return ret;
1813
1814 switch (ret) {
1815 case -ETIMEDOUT:
1816 return ret;
1817 case -ENOSPC:
1818 dev_dbg(dev->dev, "{%pM,%.4d} no space left in ARL\n",
1819 addr, vid);
1820 return is_valid ? ret : 0;
1821 case -ENOENT:
1822 /* We could not find a matching MAC, so reset to a new entry */
1823 dev_dbg(dev->dev, "{%pM,%.4d} not found, using idx: %d\n",
1824 addr, vid, idx);
1825 fwd_entry = 0;
1826 break;
1827 default:
1828 dev_dbg(dev->dev, "{%pM,%.4d} found, using idx: %d\n",
1829 addr, vid, idx);
1830 break;
1831 }
1832
1833 /* For multicast address, the port is a bitmask and the validity
1834 * is determined by having at least one port being still active
1835 */
1836 if (!is_multicast_ether_addr(addr)) {
1837 ent.port = port;
1838 ent.is_valid = is_valid;
1839 } else {
1840 if (is_valid)
1841 ent.port |= BIT(port);
1842 else
1843 ent.port &= ~BIT(port);
1844
1845 ent.is_valid = !!(ent.port);
1846 }
1847
1848 ent.vid = vid;
1849 ent.is_static = true;
1850 ent.is_age = false;
1851 memcpy(ent.mac, addr, ETH_ALEN);
1852 b53_arl_from_entry(dev, &mac_vid, &fwd_entry, &ent);
1853
1854 b53_write64(dev, B53_ARLIO_PAGE,
1855 B53_ARLTBL_MAC_VID_ENTRY(idx), mac_vid);
1856
1857 if (!is5325(dev) && !is5365(dev))
1858 b53_write32(dev, B53_ARLIO_PAGE,
1859 B53_ARLTBL_DATA_ENTRY(idx), fwd_entry);
1860
1861 return b53_arl_rw_op(dev, 0);
1862 }
1863
1864 int b53_fdb_add(struct dsa_switch *ds, int port,
1865 const unsigned char *addr, u16 vid,
1866 struct dsa_db db)
1867 {
1868 struct b53_device *priv = ds->priv;
1869 int ret;
1870
1871 mutex_lock(&priv->arl_mutex);
1872 ret = b53_arl_op(priv, 0, port, addr, vid, true);
1873 mutex_unlock(&priv->arl_mutex);
1874
1875 return ret;
1876 }
1877 EXPORT_SYMBOL(b53_fdb_add);
1878
1879 int b53_fdb_del(struct dsa_switch *ds, int port,
1880 const unsigned char *addr, u16 vid,
1881 struct dsa_db db)
1882 {
1883 struct b53_device *priv = ds->priv;
1884 int ret;
1885
1886 mutex_lock(&priv->arl_mutex);
1887 ret = b53_arl_op(priv, 0, port, addr, vid, false);
1888 mutex_unlock(&priv->arl_mutex);
1889
1890 return ret;
1891 }
1892 EXPORT_SYMBOL(b53_fdb_del);
1893
1894 static int b53_arl_search_wait(struct b53_device *dev)
1895 {
1896 unsigned int timeout = 1000;
1897 u8 reg, offset;
1898
1899 if (is5325(dev) || is5365(dev))
1900 offset = B53_ARL_SRCH_CTL_25;
1901 else
1902 offset = B53_ARL_SRCH_CTL;
1903
1904 do {
1905 b53_read8(dev, B53_ARLIO_PAGE, offset, ®);
1906 if (!(reg & ARL_SRCH_STDN))
1907 return 0;
1908
1909 if (reg & ARL_SRCH_VLID)
1910 return 0;
1911
1912 usleep_range(1000, 2000);
1913 } while (timeout--);
1914
1915 return -ETIMEDOUT;
1916 }
1917
1918 static void b53_arl_search_rd(struct b53_device *dev, u8 idx,
1919 struct b53_arl_entry *ent)
1920 {
1921 u64 mac_vid;
1922 u32 fwd_entry;
1923
1924 if (is5325(dev)) {
1925 b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25,
1926 &mac_vid);
> 1927 } else if (is5365(dev)) {
1928 b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65,
1929 &mac_vid);
1930 } else {
1931 b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_MACVID(idx),
1932 &mac_vid);
1933 b53_read32(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL(idx),
1934 &fwd_entry);
1935 }
1936 b53_arl_to_entry(dev, ent, mac_vid, fwd_entry);
1937 }
1938
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-05-31 23:41 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-31 10:12 [RFC PATCH 00/10] net: dsa: b53: fix BCM5325 support Álvaro Fernández Rojas
2025-05-31 10:12 ` [RFC PATCH 01/10] net: dsa: b53: add support for FDB operations on 5325/5365 Álvaro Fernández Rojas
2025-05-31 23:41 ` kernel test robot [this message]
2025-06-02 18:22 ` Florian Fainelli
2025-06-02 20:09 ` Jonas Gorski
2025-05-31 10:13 ` [RFC PATCH 02/10] net: dsa: b53: prevent FAST_AGE access on BCM5325 Álvaro Fernández Rojas
2025-06-02 9:37 ` Vladimir Oltean
2025-06-02 18:01 ` Florian Fainelli
2025-06-03 10:19 ` Vladimir Oltean
2025-05-31 10:13 ` [RFC PATCH 03/10] net: dsa: b53: prevent SWITCH_CTRL " Álvaro Fernández Rojas
2025-06-02 18:03 ` Florian Fainelli
2025-05-31 10:13 ` [RFC PATCH 04/10] net: dsa: b53: fix IP_MULTICAST_CTRL " Álvaro Fernández Rojas
2025-06-02 18:06 ` Florian Fainelli
2025-06-02 19:59 ` Jonas Gorski
2025-06-03 10:50 ` Álvaro Fernández Rojas
2025-05-31 10:13 ` [RFC PATCH 05/10] net: dsa: b53: prevent DIS_LEARNING access " Álvaro Fernández Rojas
2025-06-02 9:40 ` Vladimir Oltean
2025-05-31 10:13 ` [RFC PATCH 06/10] net: dsa: b53: prevent BRCM_HDR " Álvaro Fernández Rojas
2025-06-02 18:07 ` Florian Fainelli
2025-05-31 10:13 ` [RFC PATCH 07/10] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL " Álvaro Fernández Rojas
2025-06-02 18:08 ` Florian Fainelli
2025-05-31 10:13 ` [RFC PATCH 08/10] net: dsa: b53: fix unicast/multicast flooding " Álvaro Fernández Rojas
2025-06-02 9:44 ` Vladimir Oltean
2025-06-02 18:09 ` Florian Fainelli
2025-06-02 20:08 ` Jonas Gorski
2025-06-03 10:18 ` Álvaro Fernández Rojas
2025-06-03 10:31 ` Jonas Gorski
2025-05-31 10:13 ` [RFC PATCH 09/10] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325 Álvaro Fernández Rojas
2025-06-02 18:11 ` Florian Fainelli
2025-06-03 10:12 ` Álvaro Fernández Rojas
2025-05-31 10:13 ` [RFC PATCH 10/10] net: dsa: b53: ensure BCM5325 PHYs are enabled Álvaro Fernández Rojas
2025-06-02 16:00 ` Florian Fainelli
2025-06-03 10:13 ` Álvaro Fernández Rojas
2025-06-02 20:14 ` [RFC PATCH 00/10] net: dsa: b53: fix BCM5325 support Jonas Gorski
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=202506010756.N5VMksdd-lkp@intel.com \
--to=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=noltari@gmail.com \
--cc=oe-kbuild-all@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 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.