lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202506171615.p1kpBZuQ-lkp@intel.com>
Date: Tue, 17 Jun 2025 17:30:13 +0800
From: kernel test robot <lkp@...el.com>
To: Alexander Kochetkov <al.kochet@...il.com>,
	Vinod Koul <vkoul@...nel.org>, dmaengine@...r.kernel.org,
	linux-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	Nishad Saraf <nishads@....com>, Lizhi Hou <lizhi.hou@....com>,
	Jacky Huang <ychuang3@...oton.com>,
	Shan-Chun Hung <schung@...oton.com>,
	Florian Fainelli <florian.fainelli@...adcom.com>,
	Ray Jui <rjui@...adcom.com>, Scott Branden <sbranden@...adcom.com>,
	Lars-Peter Clausen <lars@...afoo.de>,
	Paul Cercueil <paul@...pouillou.net>,
	Eugeniy Paltsev <Eugeniy.Paltsev@...opsys.com>,
	Manivannan Sadhasivam <mani@...nel.org>,
	Frank Li <Frank.Li@....com>, Zhou Wang <wangzhou1@...ilicon.com>,
	Longfang Liu <liulongfang@...wei.com>,
	Andy Shevchenko <andy@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
	Sascha Hauer <s.hauer@...gutronix.de>,
	Pengutronix Kernel Team <kernel@...gutronix.de>,
	Fabio Estevam <festevam@...il.com>,
	Keguang Zhang <keguang.zhang@...il.com>,
	Sean Wang <sean.wang@...iatek.com>,
	Matthias Brugger <matthias.bgg@...il.com>,
	AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
	Andreas Färber <afaerber@...e.de>,
	Daniel Mack <daniel@...que.org>,
	Haojian Zhuang <haojian.zhuang@...il.com>,
	Robert Jarzmik <robert.jarzmik@...e.fr>
Subject: Re: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users
 on ARM64 platform

Hi Alexander,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on shawnguo/for-next sunxi/sunxi/for-next lee-mfd/for-mfd-next linus/master v6.16-rc2 next-20250617]
[cannot apply to atorgue-stm32/stm32-next lee-mfd/for-mfd-fixes]
[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/Alexander-Kochetkov/dmaengine-virt-dma-convert-tasklet-to-BH-workqueue-for-callback-invocation/20250616-205118
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20250616124934.141782-3-al.kochet%40gmail.com
patch subject: [PATCH v2 2/2] !!! TESTING ONLY !!! Allow compile virt-dma users on ARM64 platform
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506171615.p1kpBZuQ-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506171615.p1kpBZuQ-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/dma/qcom/qcom_adm.c:245:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
     245 |                 src = &achan->slave.src_addr;
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/qcom/qcom_adm.c:251:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
     251 |                 dst = &achan->slave.dst_addr;
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/qcom/qcom_adm.c:309:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
     309 |                 src = &achan->slave.src_addr;
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/qcom/qcom_adm.c:313:7: error: incompatible pointer types assigning to 'u32 *' (aka 'unsigned int *') from 'phys_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types]
     313 |                 dst = &achan->slave.dst_addr;
         |                     ^ ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/dma/qcom/qcom_adm.c:848:59: warning: implicit conversion from 'unsigned long' to 'unsigned int' changes value from 18446744072371568648 to 2956984328 [-Wconstant-conversion]
     848 |         writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
         |         ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
     849 |                ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
         |                ~~~~~~~~~~~~~~~~~~~~
   1 warning and 4 errors generated.


vim +848 drivers/dma/qcom/qcom_adm.c

03de6b273805b3 Arnd Bergmann     2021-11-22  745  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  746  static int adm_dma_probe(struct platform_device *pdev)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  747  {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  748  	struct adm_device *adev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  749  	int ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  750  	u32 i;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  751  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  752  	adev = devm_kzalloc(&pdev->dev, sizeof(*adev), GFP_KERNEL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  753  	if (!adev)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  754  		return -ENOMEM;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  755  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  756  	adev->dev = &pdev->dev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  757  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  758  	adev->regs = devm_platform_ioremap_resource(pdev, 0);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  759  	if (IS_ERR(adev->regs))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  760  		return PTR_ERR(adev->regs);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  761  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  762  	adev->irq = platform_get_irq(pdev, 0);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  763  	if (adev->irq < 0)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  764  		return adev->irq;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  765  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  766  	ret = of_property_read_u32(pdev->dev.of_node, "qcom,ee", &adev->ee);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  767  	if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  768  		dev_err(adev->dev, "Execution environment unspecified\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  769  		return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  770  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  771  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  772  	adev->core_clk = devm_clk_get(adev->dev, "core");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  773  	if (IS_ERR(adev->core_clk))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  774  		return PTR_ERR(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  775  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  776  	adev->iface_clk = devm_clk_get(adev->dev, "iface");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  777  	if (IS_ERR(adev->iface_clk))
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  778  		return PTR_ERR(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  779  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  780  	adev->clk_reset = devm_reset_control_get_exclusive(&pdev->dev, "clk");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  781  	if (IS_ERR(adev->clk_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  782  		dev_err(adev->dev, "failed to get ADM0 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  783  		return PTR_ERR(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  784  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  785  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  786  	adev->c0_reset = devm_reset_control_get_exclusive(&pdev->dev, "c0");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  787  	if (IS_ERR(adev->c0_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  788  		dev_err(adev->dev, "failed to get ADM0 C0 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  789  		return PTR_ERR(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  790  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  791  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  792  	adev->c1_reset = devm_reset_control_get_exclusive(&pdev->dev, "c1");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  793  	if (IS_ERR(adev->c1_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  794  		dev_err(adev->dev, "failed to get ADM0 C1 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  795  		return PTR_ERR(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  796  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  797  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  798  	adev->c2_reset = devm_reset_control_get_exclusive(&pdev->dev, "c2");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  799  	if (IS_ERR(adev->c2_reset)) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  800  		dev_err(adev->dev, "failed to get ADM0 C2 reset\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  801  		return PTR_ERR(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  802  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  803  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  804  	ret = clk_prepare_enable(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  805  	if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  806  		dev_err(adev->dev, "failed to prepare/enable core clock\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  807  		return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  808  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  809  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  810  	ret = clk_prepare_enable(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  811  	if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  812  		dev_err(adev->dev, "failed to prepare/enable iface clock\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  813  		goto err_disable_core_clk;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  814  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  815  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  816  	reset_control_assert(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  817  	reset_control_assert(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  818  	reset_control_assert(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  819  	reset_control_assert(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  820  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  821  	udelay(2);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  822  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  823  	reset_control_deassert(adev->clk_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  824  	reset_control_deassert(adev->c0_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  825  	reset_control_deassert(adev->c1_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  826  	reset_control_deassert(adev->c2_reset);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  827  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  828  	adev->channels = devm_kcalloc(adev->dev, ADM_MAX_CHANNELS,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  829  				      sizeof(*adev->channels), GFP_KERNEL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  830  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  831  	if (!adev->channels) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  832  		ret = -ENOMEM;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  833  		goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  834  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  835  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  836  	/* allocate and initialize channels */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  837  	INIT_LIST_HEAD(&adev->common.channels);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  838  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  839  	for (i = 0; i < ADM_MAX_CHANNELS; i++)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  840  		adm_channel_init(adev, &adev->channels[i], i);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  841  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  842  	/* reset CRCIs */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  843  	for (i = 0; i < 16; i++)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  844  		writel(ADM_CRCI_CTL_RST, adev->regs +
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  845  			ADM_CRCI_CTL(i, adev->ee));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  846  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  847  	/* configure client interfaces */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14 @848  	writel(ADM_CI_RANGE_START(0x40) | ADM_CI_RANGE_END(0xb0) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  849  	       ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(0));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  850  	writel(ADM_CI_RANGE_START(0x2a) | ADM_CI_RANGE_END(0x2c) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  851  	       ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(1));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  852  	writel(ADM_CI_RANGE_START(0x12) | ADM_CI_RANGE_END(0x28) |
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  853  	       ADM_CI_BURST_8_WORDS, adev->regs + ADM_CI_CONF(2));
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  854  	writel(ADM_GP_CTL_LP_EN | ADM_GP_CTL_LP_CNT(0xf),
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  855  	       adev->regs + ADM_GP_CTL);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  856  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  857  	ret = devm_request_irq(adev->dev, adev->irq, adm_dma_irq,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  858  			       0, "adm_dma", adev);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  859  	if (ret)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  860  		goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  861  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  862  	platform_set_drvdata(pdev, adev);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  863  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  864  	adev->common.dev = adev->dev;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  865  	adev->common.dev->dma_parms = &adev->dma_parms;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  866  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  867  	/* set capabilities */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  868  	dma_cap_zero(adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  869  	dma_cap_set(DMA_SLAVE, adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  870  	dma_cap_set(DMA_PRIVATE, adev->common.cap_mask);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  871  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  872  	/* initialize dmaengine apis */
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  873  	adev->common.directions = BIT(DMA_DEV_TO_MEM | DMA_MEM_TO_DEV);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  874  	adev->common.residue_granularity = DMA_RESIDUE_GRANULARITY_DESCRIPTOR;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  875  	adev->common.src_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  876  	adev->common.dst_addr_widths = DMA_SLAVE_BUSWIDTH_4_BYTES;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  877  	adev->common.device_free_chan_resources = adm_free_chan;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  878  	adev->common.device_prep_slave_sg = adm_prep_slave_sg;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  879  	adev->common.device_issue_pending = adm_issue_pending;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  880  	adev->common.device_tx_status = adm_tx_status;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  881  	adev->common.device_terminate_all = adm_terminate_all;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  882  	adev->common.device_config = adm_slave_config;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  883  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  884  	ret = dma_async_device_register(&adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  885  	if (ret) {
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  886  		dev_err(adev->dev, "failed to register dma async device\n");
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  887  		goto err_disable_clks;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  888  	}
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  889  
03de6b273805b3 Arnd Bergmann     2021-11-22  890  	ret = of_dma_controller_register(pdev->dev.of_node, adm_dma_xlate,
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  891  					 &adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  892  	if (ret)
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  893  		goto err_unregister_dma;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  894  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  895  	return 0;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  896  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  897  err_unregister_dma:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  898  	dma_async_device_unregister(&adev->common);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  899  err_disable_clks:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  900  	clk_disable_unprepare(adev->iface_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  901  err_disable_core_clk:
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  902  	clk_disable_unprepare(adev->core_clk);
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  903  
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  904  	return ret;
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  905  }
5c9f8c2dbdbe53 Jonathan McDowell 2020-11-14  906  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ