All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [pdx86-platform-drivers-x86:review-hans 11/13] sound/soc/codecs/da7213.c:1842:30: warning: dereference of NULL '*(struct da7213_priv *)MEM[(const struct device *)_63].driver_data.pdata' [CWE-476]
@ 2022-06-12  8:52 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-06-12  8:52 UTC (permalink / raw
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence bisect report"
:::::: Manual check reason: "low confidence static check first_new_problem: sound/soc/codecs/da7213.c:1842:30: warning: dereference of NULL '*(struct da7213_priv *)MEM[(const struct device *)_63].driver_data.pdata' [CWE-476] [-Wanalyzer-null-dereference]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
CC: Hans de Goede <hdegoede@redhat.com>
CC: linux-kernel(a)vger.kernel.org
TO: Hans de Goede <hdegoede@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git review-hans
head:   8c99ffaa7c4b0b81e7bf18933d530dddc9ff0f85
commit: 7e74b733f6d3905bdba30bcdb0084118b02c5803 [11/13] platform/x86: Drop the PMC_ATOM Kconfig option
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-c001 (https://download.01.org/0day-ci/archive/20220612/202206121656.pX56Ucv1-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/commit/?id=7e74b733f6d3905bdba30bcdb0084118b02c5803
        git remote add pdx86-platform-drivers-x86 https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
        git fetch --no-tags pdx86-platform-drivers-x86 review-hans
        git checkout 7e74b733f6d3905bdba30bcdb0084118b02c5803
        # save the config file
         ARCH=i386 KBUILD_USERCFLAGS='-fanalyzer -Wno-error' 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


gcc-analyzer warnings: (new ones prefixed by >>)
   sound/soc/codecs/da7213.c: In function 'da7213_probe':
>> sound/soc/codecs/da7213.c:1842:30: warning: dereference of NULL '*(struct da7213_priv *)MEM[(const struct device *)_63].driver_data.pdata' [CWE-476] [-Wanalyzer-null-dereference]
    1842 |                 switch (pdata->micbias1_lvl) {
         |                         ~~~~~^~~~~~~~~~~~~~
     'da7213_probe': events 1-4
       |
       | 1766 | static int da7213_probe(struct snd_soc_component *component)
       |      |            ^~~~~~~~~~~~
       |      |            |
       |      |            (1) entry to 'da7213_probe'
       |......
       | 1833 |         if (!da7213->pdata)
       |      |            ~
       |      |            |
       |      |            (2) following 'true' branch...
       | 1834 |                 da7213->pdata = da7213_fw_to_pdata(component);
       |      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       |      |                                 |
       |      |                                 (3) ...to here
       |      |                                 (4) calling 'da7213_fw_to_pdata' from 'da7213_probe'
       |
       +--> 'da7213_fw_to_pdata': events 5-6
              |
              | 1726 |         *da7213_fw_to_pdata(struct snd_soc_component *component)
              |      |          ^~~~~~~~~~~~~~~~~~
              |      |          |
              |      |          (5) entry to 'da7213_fw_to_pdata'
              |......
              | 1734 |         if (!pdata)
              |      |            ~
              |      |            |
              |      |            (6) following 'true' branch...
              |
            'da7213_fw_to_pdata': event 7
              |
              |cc1:
              | (7): ...to here
              |
       <------+
       |
     'da7213_probe': events 8-13
       |
       | 1834 |                 da7213->pdata = da7213_fw_to_pdata(component);
       |      |                 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       |      |                               | |
       |      |                               | (8) returning to 'da7213_probe' from 'da7213_fw_to_pdata'
       |      |                               (9) '<unknown>' is NULL
       |      |                               (10) '<unknown>' is NULL
       |......
       | 1837 |         if (da7213->pdata) {
       |      |            ~                     
       |      |            |
       |      |            (11) following 'true' branch...
       |......
       | 1842 |                 switch (pdata->micbias1_lvl) {
       |      |                         ~~~~~~~~~~~~~~~~~~~
       |      |                              |
       |      |                              (12) ...to here
       |      |                              (13) dereference of NULL '*(struct da7213_priv *)MEM[(const struct device *)_63].driver_data.pdata'
       |

vim +1842 sound/soc/codecs/da7213.c

e90996a3ea224f Adam Thomson      2015-10-07  1765  
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1766  static int da7213_probe(struct snd_soc_component *component)
ef5c2eba241259 Adam Thomson      2013-02-14  1767  {
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1768  	struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
ef5c2eba241259 Adam Thomson      2013-02-14  1769  
b2a378816d0f67 Sebastian Reichel 2020-05-11  1770  	pm_runtime_get_sync(component->dev);
b2a378816d0f67 Sebastian Reichel 2020-05-11  1771  
ef5c2eba241259 Adam Thomson      2013-02-14  1772  	/* Default to using ALC auto offset calibration mode. */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1773  	snd_soc_component_update_bits(component, DA7213_ALC_CTRL1,
ef5c2eba241259 Adam Thomson      2013-02-14  1774  			    DA7213_ALC_CALIB_MODE_MAN, 0);
ef5c2eba241259 Adam Thomson      2013-02-14  1775  	da7213->alc_calib_auto = true;
ef5c2eba241259 Adam Thomson      2013-02-14  1776  
7e28fd469624fc Adam Thomson      2016-05-10  1777  	/* Default PC counter to free-running */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1778  	snd_soc_component_update_bits(component, DA7213_PC_COUNT, DA7213_PC_FREERUN_MASK,
7e28fd469624fc Adam Thomson      2016-05-10  1779  			    DA7213_PC_FREERUN_MASK);
7e28fd469624fc Adam Thomson      2016-05-10  1780  
ef5c2eba241259 Adam Thomson      2013-02-14  1781  	/* Enable all Gain Ramps */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1782  	snd_soc_component_update_bits(component, DA7213_AUX_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1783  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1784  	snd_soc_component_update_bits(component, DA7213_AUX_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1785  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1786  	snd_soc_component_update_bits(component, DA7213_MIXIN_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1787  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1788  	snd_soc_component_update_bits(component, DA7213_MIXIN_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1789  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1790  	snd_soc_component_update_bits(component, DA7213_ADC_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1791  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1792  	snd_soc_component_update_bits(component, DA7213_ADC_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1793  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1794  	snd_soc_component_update_bits(component, DA7213_DAC_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1795  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1796  	snd_soc_component_update_bits(component, DA7213_DAC_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1797  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1798  	snd_soc_component_update_bits(component, DA7213_HP_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1799  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1800  	snd_soc_component_update_bits(component, DA7213_HP_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1801  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1802  	snd_soc_component_update_bits(component, DA7213_LINE_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1803  			    DA7213_GAIN_RAMP_EN, DA7213_GAIN_RAMP_EN);
ef5c2eba241259 Adam Thomson      2013-02-14  1804  
ef5c2eba241259 Adam Thomson      2013-02-14  1805  	/*
ef5c2eba241259 Adam Thomson      2013-02-14  1806  	 * There are two separate control bits for input and output mixers as
ef5c2eba241259 Adam Thomson      2013-02-14  1807  	 * well as headphone and line outs.
ef5c2eba241259 Adam Thomson      2013-02-14  1808  	 * One to enable corresponding amplifier and other to enable its
ef5c2eba241259 Adam Thomson      2013-02-14  1809  	 * output. As amplifier bits are related to power control, they are
ef5c2eba241259 Adam Thomson      2013-02-14  1810  	 * being managed by DAPM while other (non power related) bits are
ef5c2eba241259 Adam Thomson      2013-02-14  1811  	 * enabled here
ef5c2eba241259 Adam Thomson      2013-02-14  1812  	 */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1813  	snd_soc_component_update_bits(component, DA7213_MIXIN_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1814  			    DA7213_MIXIN_MIX_EN, DA7213_MIXIN_MIX_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1815  	snd_soc_component_update_bits(component, DA7213_MIXIN_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1816  			    DA7213_MIXIN_MIX_EN, DA7213_MIXIN_MIX_EN);
ef5c2eba241259 Adam Thomson      2013-02-14  1817  
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1818  	snd_soc_component_update_bits(component, DA7213_MIXOUT_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1819  			    DA7213_MIXOUT_MIX_EN, DA7213_MIXOUT_MIX_EN);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1820  	snd_soc_component_update_bits(component, DA7213_MIXOUT_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1821  			    DA7213_MIXOUT_MIX_EN, DA7213_MIXOUT_MIX_EN);
ef5c2eba241259 Adam Thomson      2013-02-14  1822  
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1823  	snd_soc_component_update_bits(component, DA7213_HP_L_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1824  			    DA7213_HP_AMP_OE, DA7213_HP_AMP_OE);
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1825  	snd_soc_component_update_bits(component, DA7213_HP_R_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1826  			    DA7213_HP_AMP_OE, DA7213_HP_AMP_OE);
ef5c2eba241259 Adam Thomson      2013-02-14  1827  
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1828  	snd_soc_component_update_bits(component, DA7213_LINE_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1829  			    DA7213_LINE_AMP_OE, DA7213_LINE_AMP_OE);
ef5c2eba241259 Adam Thomson      2013-02-14  1830  
e90996a3ea224f Adam Thomson      2015-10-07  1831  	/* Handle DT/Platform data */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1832  	da7213->pdata = dev_get_platdata(component->dev);
0e54153b668571 Adam Thomson      2017-05-19  1833  	if (!da7213->pdata)
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1834  		da7213->pdata = da7213_fw_to_pdata(component);
e90996a3ea224f Adam Thomson      2015-10-07  1835  
ef5c2eba241259 Adam Thomson      2013-02-14  1836  	/* Set platform data values */
ef5c2eba241259 Adam Thomson      2013-02-14  1837  	if (da7213->pdata) {
e90996a3ea224f Adam Thomson      2015-10-07  1838  		struct da7213_platform_data *pdata = da7213->pdata;
ef5c2eba241259 Adam Thomson      2013-02-14  1839  		u8 micbias_lvl = 0, dmic_cfg = 0;
ef5c2eba241259 Adam Thomson      2013-02-14  1840  
ef5c2eba241259 Adam Thomson      2013-02-14  1841  		/* Set Mic Bias voltages */
ef5c2eba241259 Adam Thomson      2013-02-14 @1842  		switch (pdata->micbias1_lvl) {
ef5c2eba241259 Adam Thomson      2013-02-14  1843  		case DA7213_MICBIAS_1_6V:
ef5c2eba241259 Adam Thomson      2013-02-14  1844  		case DA7213_MICBIAS_2_2V:
ef5c2eba241259 Adam Thomson      2013-02-14  1845  		case DA7213_MICBIAS_2_5V:
ef5c2eba241259 Adam Thomson      2013-02-14  1846  		case DA7213_MICBIAS_3_0V:
ef5c2eba241259 Adam Thomson      2013-02-14  1847  			micbias_lvl |= (pdata->micbias1_lvl <<
ef5c2eba241259 Adam Thomson      2013-02-14  1848  					DA7213_MICBIAS1_LEVEL_SHIFT);
ef5c2eba241259 Adam Thomson      2013-02-14  1849  			break;
ef5c2eba241259 Adam Thomson      2013-02-14  1850  		}
ef5c2eba241259 Adam Thomson      2013-02-14  1851  		switch (pdata->micbias2_lvl) {
ef5c2eba241259 Adam Thomson      2013-02-14  1852  		case DA7213_MICBIAS_1_6V:
ef5c2eba241259 Adam Thomson      2013-02-14  1853  		case DA7213_MICBIAS_2_2V:
ef5c2eba241259 Adam Thomson      2013-02-14  1854  		case DA7213_MICBIAS_2_5V:
ef5c2eba241259 Adam Thomson      2013-02-14  1855  		case DA7213_MICBIAS_3_0V:
ef5c2eba241259 Adam Thomson      2013-02-14  1856  			micbias_lvl |= (pdata->micbias2_lvl <<
ef5c2eba241259 Adam Thomson      2013-02-14  1857  					 DA7213_MICBIAS2_LEVEL_SHIFT);
ef5c2eba241259 Adam Thomson      2013-02-14  1858  			break;
ef5c2eba241259 Adam Thomson      2013-02-14  1859  		}
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1860  		snd_soc_component_update_bits(component, DA7213_MICBIAS_CTRL,
ef5c2eba241259 Adam Thomson      2013-02-14  1861  				    DA7213_MICBIAS1_LEVEL_MASK |
ef5c2eba241259 Adam Thomson      2013-02-14  1862  				    DA7213_MICBIAS2_LEVEL_MASK, micbias_lvl);
ef5c2eba241259 Adam Thomson      2013-02-14  1863  
ef5c2eba241259 Adam Thomson      2013-02-14  1864  		/* Set DMIC configuration */
ef5c2eba241259 Adam Thomson      2013-02-14  1865  		switch (pdata->dmic_data_sel) {
ef5c2eba241259 Adam Thomson      2013-02-14  1866  		case DA7213_DMIC_DATA_LFALL_RRISE:
ef5c2eba241259 Adam Thomson      2013-02-14  1867  		case DA7213_DMIC_DATA_LRISE_RFALL:
ef5c2eba241259 Adam Thomson      2013-02-14  1868  			dmic_cfg |= (pdata->dmic_data_sel <<
ef5c2eba241259 Adam Thomson      2013-02-14  1869  				     DA7213_DMIC_DATA_SEL_SHIFT);
ef5c2eba241259 Adam Thomson      2013-02-14  1870  			break;
ef5c2eba241259 Adam Thomson      2013-02-14  1871  		}
61559af111e417 Axel Lin          2013-05-09  1872  		switch (pdata->dmic_samplephase) {
ef5c2eba241259 Adam Thomson      2013-02-14  1873  		case DA7213_DMIC_SAMPLE_ON_CLKEDGE:
ef5c2eba241259 Adam Thomson      2013-02-14  1874  		case DA7213_DMIC_SAMPLE_BETWEEN_CLKEDGE:
61559af111e417 Axel Lin          2013-05-09  1875  			dmic_cfg |= (pdata->dmic_samplephase <<
ef5c2eba241259 Adam Thomson      2013-02-14  1876  				     DA7213_DMIC_SAMPLEPHASE_SHIFT);
ef5c2eba241259 Adam Thomson      2013-02-14  1877  			break;
ef5c2eba241259 Adam Thomson      2013-02-14  1878  		}
61559af111e417 Axel Lin          2013-05-09  1879  		switch (pdata->dmic_clk_rate) {
ef5c2eba241259 Adam Thomson      2013-02-14  1880  		case DA7213_DMIC_CLK_3_0MHZ:
ef5c2eba241259 Adam Thomson      2013-02-14  1881  		case DA7213_DMIC_CLK_1_5MHZ:
61559af111e417 Axel Lin          2013-05-09  1882  			dmic_cfg |= (pdata->dmic_clk_rate <<
ef5c2eba241259 Adam Thomson      2013-02-14  1883  				     DA7213_DMIC_CLK_RATE_SHIFT);
ef5c2eba241259 Adam Thomson      2013-02-14  1884  			break;
ef5c2eba241259 Adam Thomson      2013-02-14  1885  		}
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1886  		snd_soc_component_update_bits(component, DA7213_MIC_CONFIG,
ef5c2eba241259 Adam Thomson      2013-02-14  1887  				    DA7213_DMIC_DATA_SEL_MASK |
ef5c2eba241259 Adam Thomson      2013-02-14  1888  				    DA7213_DMIC_SAMPLEPHASE_MASK |
ef5c2eba241259 Adam Thomson      2013-02-14  1889  				    DA7213_DMIC_CLK_RATE_MASK, dmic_cfg);
6e7c4443186994 Adam Thomson      2015-10-07  1890  	}
ef5c2eba241259 Adam Thomson      2013-02-14  1891  
b2a378816d0f67 Sebastian Reichel 2020-05-11  1892  	pm_runtime_put_sync(component->dev);
b2a378816d0f67 Sebastian Reichel 2020-05-11  1893  
6e7c4443186994 Adam Thomson      2015-10-07  1894  	/* Check if MCLK provided */
2918d9ccc46a40 Kuninori Morimoto 2018-01-29  1895  	da7213->mclk = devm_clk_get(component->dev, "mclk");
6e7c4443186994 Adam Thomson      2015-10-07  1896  	if (IS_ERR(da7213->mclk)) {
6e7c4443186994 Adam Thomson      2015-10-07  1897  		if (PTR_ERR(da7213->mclk) != -ENOENT)
6e7c4443186994 Adam Thomson      2015-10-07  1898  			return PTR_ERR(da7213->mclk);
6e7c4443186994 Adam Thomson      2015-10-07  1899  		else
6e7c4443186994 Adam Thomson      2015-10-07  1900  			da7213->mclk = NULL;
5146b6a92c1194 Sebastian Reichel 2020-06-26  1901  	} else {
5146b6a92c1194 Sebastian Reichel 2020-06-26  1902  		/* Do automatic PLL handling assuming fixed clock until
5146b6a92c1194 Sebastian Reichel 2020-06-26  1903  		 * set_pll() has been called. This makes the codec usable
5146b6a92c1194 Sebastian Reichel 2020-06-26  1904  		 * with the simple-audio-card driver. */
5146b6a92c1194 Sebastian Reichel 2020-06-26  1905  		da7213->fixed_clk_auto_pll = true;
ef5c2eba241259 Adam Thomson      2013-02-14  1906  	}
e90996a3ea224f Adam Thomson      2015-10-07  1907  
ef5c2eba241259 Adam Thomson      2013-02-14  1908  	return 0;
ef5c2eba241259 Adam Thomson      2013-02-14  1909  }
ef5c2eba241259 Adam Thomson      2013-02-14  1910  

:::::: The code at line 1842 was first introduced by commit
:::::: ef5c2eba2412596f1a022c11caf74428bffd9abe ASoC: codecs: Add da7213 codec

:::::: TO: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
:::::: CC: Mark Brown <broonie@opensource.wolfsonmicro.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

only message in thread, other threads:[~2022-06-12  8:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-12  8:52 [pdx86-platform-drivers-x86:review-hans 11/13] sound/soc/codecs/da7213.c:1842:30: warning: dereference of NULL '*(struct da7213_priv *)MEM[(const struct device *)_63].driver_data.pdata' [CWE-476] 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.