All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [RFC PATCH net-next 4/4] net: dp83869: Add RGMII internal delay configuration
Date: Tue, 26 May 2020 16:31:49 +0300	[thread overview]
Message-ID: <20200526133149.GS30374@kadam> (raw)
In-Reply-To: <20200521174834.3234-5-dmurphy@ti.com>

[-- Attachment #1: Type: text/plain, Size: 6729 bytes --]

Hi Dan,

url:    https://github.com/0day-ci/linux/commits/Dan-Murphy/RGMII-Internal-delay-common-property/20200522-015509
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git de1b99ef2aa1e982c86b15853e013c6e3dbc1e7a

config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make ARCH=i386

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/net/phy/dp83869.c:221 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

Old smatch warnings:
drivers/net/phy/dp83869.c:231 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

# https://github.com/0day-ci/linux/commit/c27cb3ace00f1b89679d6542f9ee2eb8faa76112
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout c27cb3ace00f1b89679d6542f9ee2eb8faa76112
vim +/dp83869_internal_delay +221 drivers/net/phy/dp83869.c

01db923e83779b Dan Murphy 2019-11-13  174  static int dp83869_of_init(struct phy_device *phydev)
01db923e83779b Dan Murphy 2019-11-13  175  {
01db923e83779b Dan Murphy 2019-11-13  176  	struct dp83869_private *dp83869 = phydev->priv;
01db923e83779b Dan Murphy 2019-11-13  177  	struct device *dev = &phydev->mdio.dev;
01db923e83779b Dan Murphy 2019-11-13  178  	struct device_node *of_node = dev->of_node;
c27cb3ace00f1b Dan Murphy 2020-05-21  179  	int delay_size = ARRAY_SIZE(dp83869_internal_delay);
01db923e83779b Dan Murphy 2019-11-13  180  	int ret;
01db923e83779b Dan Murphy 2019-11-13  181  
01db923e83779b Dan Murphy 2019-11-13  182  	if (!of_node)
01db923e83779b Dan Murphy 2019-11-13  183  		return -ENODEV;
01db923e83779b Dan Murphy 2019-11-13  184  
01db923e83779b Dan Murphy 2019-11-13  185  	dp83869->io_impedance = -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  186  
01db923e83779b Dan Murphy 2019-11-13  187  	/* Optional configuration */
01db923e83779b Dan Murphy 2019-11-13  188  	ret = of_property_read_u32(of_node, "ti,clk-output-sel",
01db923e83779b Dan Murphy 2019-11-13  189  				   &dp83869->clk_output_sel);
01db923e83779b Dan Murphy 2019-11-13  190  	if (ret || dp83869->clk_output_sel > DP83869_CLK_O_SEL_REF_CLK)
01db923e83779b Dan Murphy 2019-11-13  191  		dp83869->clk_output_sel = DP83869_CLK_O_SEL_REF_CLK;
01db923e83779b Dan Murphy 2019-11-13  192  
01db923e83779b Dan Murphy 2019-11-13  193  	ret = of_property_read_u32(of_node, "ti,op-mode", &dp83869->mode);
01db923e83779b Dan Murphy 2019-11-13  194  	if (ret == 0) {
01db923e83779b Dan Murphy 2019-11-13  195  		if (dp83869->mode < DP83869_RGMII_COPPER_ETHERNET ||
01db923e83779b Dan Murphy 2019-11-13  196  		    dp83869->mode > DP83869_SGMII_COPPER_ETHERNET)
01db923e83779b Dan Murphy 2019-11-13  197  			return -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  198  	}
01db923e83779b Dan Murphy 2019-11-13  199  
01db923e83779b Dan Murphy 2019-11-13  200  	if (of_property_read_bool(of_node, "ti,max-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  201  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MAX;
01db923e83779b Dan Murphy 2019-11-13  202  	else if (of_property_read_bool(of_node, "ti,min-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  203  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MIN;
01db923e83779b Dan Murphy 2019-11-13  204  
01db923e83779b Dan Murphy 2019-11-13  205  	if (of_property_read_bool(of_node, "enet-phy-lane-swap"))
01db923e83779b Dan Murphy 2019-11-13  206  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_EN;
01db923e83779b Dan Murphy 2019-11-13  207  	else
01db923e83779b Dan Murphy 2019-11-13  208  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_DIS;
01db923e83779b Dan Murphy 2019-11-13  209  
01db923e83779b Dan Murphy 2019-11-13  210  	if (of_property_read_u32(of_node, "rx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  211  				 &dp83869->rx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  212  		dp83869->rx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  213  
01db923e83779b Dan Murphy 2019-11-13  214  	if (of_property_read_u32(of_node, "tx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  215  				 &dp83869->tx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  216  		dp83869->tx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  217  
c27cb3ace00f1b Dan Murphy 2020-05-21  218  	dp83869->rx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  219  	ret = of_property_read_u32(of_node, "rx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  220  				   &dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21 @221  	if (!ret && dp83869->rx_id_delay > dp83869_internal_delay[delay_size]) {
                                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Out of bounds.  Not clear what was intended here.

c27cb3ace00f1b Dan Murphy 2020-05-21  222  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  223  			   "rx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  224  			   dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  225  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  226  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  227  
c27cb3ace00f1b Dan Murphy 2020-05-21  228  	dp83869->tx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  229  	ret = of_property_read_u32(of_node, "tx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  230  				   &dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  231  	if (!ret && dp83869->tx_id_delay > dp83869_internal_delay[delay_size]) {
                                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Also out of bounds.

c27cb3ace00f1b Dan Murphy 2020-05-21  232  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  233  			   "tx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  234  			   dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  235  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  236  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  237  
786c4a5372e119 Dan Murphy 2019-11-26  238  	return ret;
01db923e83779b Dan Murphy 2019-11-13  239  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 72497 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC PATCH net-next 4/4] net: dp83869: Add RGMII internal delay configuration
Date: Tue, 26 May 2020 16:31:49 +0300	[thread overview]
Message-ID: <20200526133149.GS30374@kadam> (raw)
In-Reply-To: <20200521174834.3234-5-dmurphy@ti.com>

[-- Attachment #1: Type: text/plain, Size: 6729 bytes --]

Hi Dan,

url:    https://github.com/0day-ci/linux/commits/Dan-Murphy/RGMII-Internal-delay-common-property/20200522-015509
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git de1b99ef2aa1e982c86b15853e013c6e3dbc1e7a

config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make ARCH=i386

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/net/phy/dp83869.c:221 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

Old smatch warnings:
drivers/net/phy/dp83869.c:231 dp83869_of_init() error: buffer overflow 'dp83869_internal_delay' 16 <= 16

# https://github.com/0day-ci/linux/commit/c27cb3ace00f1b89679d6542f9ee2eb8faa76112
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout c27cb3ace00f1b89679d6542f9ee2eb8faa76112
vim +/dp83869_internal_delay +221 drivers/net/phy/dp83869.c

01db923e83779b Dan Murphy 2019-11-13  174  static int dp83869_of_init(struct phy_device *phydev)
01db923e83779b Dan Murphy 2019-11-13  175  {
01db923e83779b Dan Murphy 2019-11-13  176  	struct dp83869_private *dp83869 = phydev->priv;
01db923e83779b Dan Murphy 2019-11-13  177  	struct device *dev = &phydev->mdio.dev;
01db923e83779b Dan Murphy 2019-11-13  178  	struct device_node *of_node = dev->of_node;
c27cb3ace00f1b Dan Murphy 2020-05-21  179  	int delay_size = ARRAY_SIZE(dp83869_internal_delay);
01db923e83779b Dan Murphy 2019-11-13  180  	int ret;
01db923e83779b Dan Murphy 2019-11-13  181  
01db923e83779b Dan Murphy 2019-11-13  182  	if (!of_node)
01db923e83779b Dan Murphy 2019-11-13  183  		return -ENODEV;
01db923e83779b Dan Murphy 2019-11-13  184  
01db923e83779b Dan Murphy 2019-11-13  185  	dp83869->io_impedance = -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  186  
01db923e83779b Dan Murphy 2019-11-13  187  	/* Optional configuration */
01db923e83779b Dan Murphy 2019-11-13  188  	ret = of_property_read_u32(of_node, "ti,clk-output-sel",
01db923e83779b Dan Murphy 2019-11-13  189  				   &dp83869->clk_output_sel);
01db923e83779b Dan Murphy 2019-11-13  190  	if (ret || dp83869->clk_output_sel > DP83869_CLK_O_SEL_REF_CLK)
01db923e83779b Dan Murphy 2019-11-13  191  		dp83869->clk_output_sel = DP83869_CLK_O_SEL_REF_CLK;
01db923e83779b Dan Murphy 2019-11-13  192  
01db923e83779b Dan Murphy 2019-11-13  193  	ret = of_property_read_u32(of_node, "ti,op-mode", &dp83869->mode);
01db923e83779b Dan Murphy 2019-11-13  194  	if (ret == 0) {
01db923e83779b Dan Murphy 2019-11-13  195  		if (dp83869->mode < DP83869_RGMII_COPPER_ETHERNET ||
01db923e83779b Dan Murphy 2019-11-13  196  		    dp83869->mode > DP83869_SGMII_COPPER_ETHERNET)
01db923e83779b Dan Murphy 2019-11-13  197  			return -EINVAL;
01db923e83779b Dan Murphy 2019-11-13  198  	}
01db923e83779b Dan Murphy 2019-11-13  199  
01db923e83779b Dan Murphy 2019-11-13  200  	if (of_property_read_bool(of_node, "ti,max-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  201  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MAX;
01db923e83779b Dan Murphy 2019-11-13  202  	else if (of_property_read_bool(of_node, "ti,min-output-impedance"))
01db923e83779b Dan Murphy 2019-11-13  203  		dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MIN;
01db923e83779b Dan Murphy 2019-11-13  204  
01db923e83779b Dan Murphy 2019-11-13  205  	if (of_property_read_bool(of_node, "enet-phy-lane-swap"))
01db923e83779b Dan Murphy 2019-11-13  206  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_EN;
01db923e83779b Dan Murphy 2019-11-13  207  	else
01db923e83779b Dan Murphy 2019-11-13  208  		dp83869->port_mirroring = DP83869_PORT_MIRRORING_DIS;
01db923e83779b Dan Murphy 2019-11-13  209  
01db923e83779b Dan Murphy 2019-11-13  210  	if (of_property_read_u32(of_node, "rx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  211  				 &dp83869->rx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  212  		dp83869->rx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  213  
01db923e83779b Dan Murphy 2019-11-13  214  	if (of_property_read_u32(of_node, "tx-fifo-depth",
01db923e83779b Dan Murphy 2019-11-13  215  				 &dp83869->tx_fifo_depth))
01db923e83779b Dan Murphy 2019-11-13  216  		dp83869->tx_fifo_depth = DP83869_PHYCR_FIFO_DEPTH_4_B_NIB;
01db923e83779b Dan Murphy 2019-11-13  217  
c27cb3ace00f1b Dan Murphy 2020-05-21  218  	dp83869->rx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  219  	ret = of_property_read_u32(of_node, "rx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  220  				   &dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21 @221  	if (!ret && dp83869->rx_id_delay > dp83869_internal_delay[delay_size]) {
                                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Out of bounds.  Not clear what was intended here.

c27cb3ace00f1b Dan Murphy 2020-05-21  222  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  223  			   "rx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  224  			   dp83869->rx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  225  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  226  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  227  
c27cb3ace00f1b Dan Murphy 2020-05-21  228  	dp83869->tx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
c27cb3ace00f1b Dan Murphy 2020-05-21  229  	ret = of_property_read_u32(of_node, "tx-internal-delay",
c27cb3ace00f1b Dan Murphy 2020-05-21  230  				   &dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  231  	if (!ret && dp83869->tx_id_delay > dp83869_internal_delay[delay_size]) {
                                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Also out of bounds.

c27cb3ace00f1b Dan Murphy 2020-05-21  232  		phydev_err(phydev,
c27cb3ace00f1b Dan Murphy 2020-05-21  233  			   "tx-internal-delay value of %u out of range\n",
c27cb3ace00f1b Dan Murphy 2020-05-21  234  			   dp83869->tx_id_delay);
c27cb3ace00f1b Dan Murphy 2020-05-21  235  		return -EINVAL;
c27cb3ace00f1b Dan Murphy 2020-05-21  236  	}
c27cb3ace00f1b Dan Murphy 2020-05-21  237  
786c4a5372e119 Dan Murphy 2019-11-26  238  	return ret;
01db923e83779b Dan Murphy 2019-11-13  239  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 72497 bytes --]

  parent reply	other threads:[~2020-05-26 13:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21 17:48 [RFC PATCH net-next 0/4] RGMII Internal delay common property Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 1/4] dt-bindings: net: Add tx and rx internal delays Dan Murphy
2020-05-21 18:06   ` Florian Fainelli
2020-05-21 17:48 ` [RFC PATCH net-next 2/4] net: phy: Add a helper to return the index for of the internal delay Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 3/4] dt-bindings: net: Add RGMII internal delay for DP83869 Dan Murphy
2020-05-21 17:48 ` [RFC PATCH net-next 4/4] net: dp83869: Add RGMII internal delay configuration Dan Murphy
2020-05-23 14:58   ` Andrew Lunn
2020-05-26 13:31   ` Dan Carpenter [this message]
2020-05-26 13:31     ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-05-23 12:49 kbuild test robot

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=20200526133149.GS30374@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /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.