All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
@ 2020-09-10 10:46 kernel test robot
  2020-09-10 11:18 ` Peter Ujfalusi
  0 siblings, 1 reply; 7+ messages in thread
From: kernel test robot @ 2020-09-10 10:46 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
config: arm64-randconfig-r025-20200909 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
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
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

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

All errors (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: -z norelro ignored
   aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
   fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
   security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
   security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
   drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.o:drivers/tty/tty_io.c:1139: more undefined references to `stpcpy' follow
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_remove':
   drivers/tty/serial/fsl_lpuart.c:2663: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:2666: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_request_dma':
   drivers/tty/serial/fsl_lpuart.c:1513: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1521: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_dma_shutdown':
   drivers/tty/serial/fsl_lpuart.c:1690: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1692: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_request_dma':
   drivers/tty/serial/fsl_lpuart.c:1513: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1521: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel':
>> include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel_compat':
>> include/linux/dmaengine.h:1595: undefined reference to `__dma_request_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel':
>> include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel_compat':
>> include/linux/dmaengine.h:1595: undefined reference to `__dma_request_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_setup':
   drivers/spi/spi-pxa2xx-dma.c:209: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_release':
   drivers/spi/spi-pxa2xx-dma.c:223: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.c:228: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_probe':
   drivers/spi/spi-rockchip.c:748: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:759: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:788: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:785: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_remove':
   drivers/spi/spi-rockchip.c:816: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:818: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_release':
   drivers/spi/spi-sprd.c:580: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o:drivers/spi/spi-sprd.c:583: more undefined references to `dma_release_channel' follow
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_request':
   drivers/spi/spi-sprd.c:555: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:564: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:570: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_release':
   drivers/spi/spi-sprd.c:580: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:583: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_probe':
   drivers/spi/spi-uniphier.c:716: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:725: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:734: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:743: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_remove':
   drivers/spi/spi-uniphier.c:773: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:775: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/usb/class/usblp.o: in function `ieee1284_id_show':
   drivers/usb/class/usblp.c:1084: undefined reference to `stpcpy'

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=7547dbd3b198f309aaff54e3528898a8a196faff
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
vim +1576 include/linux/dmaengine.h

  1560	
  1561	int dma_async_device_register(struct dma_device *device);
  1562	int dmaenginem_async_device_register(struct dma_device *device);
  1563	void dma_async_device_unregister(struct dma_device *device);
  1564	int dma_async_device_channel_register(struct dma_device *device,
  1565					      struct dma_chan *chan);
  1566	void dma_async_device_channel_unregister(struct dma_device *device,
  1567						 struct dma_chan *chan);
  1568	void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
  1569	#define dma_request_channel(mask, x, y) \
  1570		__dma_request_channel(&(mask), x, y, NULL)
  1571	
  1572	/* Deprecated, please use dma_request_chan() directly */
  1573	static inline struct dma_chan * __deprecated
  1574	dma_request_slave_channel(struct device *dev, const char *name)
  1575	{
> 1576		struct dma_chan *ch = dma_request_chan(dev, name);
  1577	
  1578		return IS_ERR(ch) ? NULL : ch;
  1579	}
  1580	
  1581	static inline struct dma_chan
  1582	*dma_request_slave_channel_compat(const dma_cap_mask_t mask,
  1583					  dma_filter_fn fn, void *fn_param,
  1584					  struct device *dev, const char *name)
  1585	{
  1586		struct dma_chan *chan;
  1587	
  1588		chan = dma_request_slave_channel(dev, name);
  1589		if (chan)
  1590			return chan;
  1591	
  1592		if (!fn || !fn_param)
  1593			return NULL;
  1594	
> 1595		return __dma_request_channel(&mask, fn, fn_param, NULL);
  1596	}
  1597	

---
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: 38216 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
  2020-09-10 10:46 [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan' kernel test robot
@ 2020-09-10 11:18 ` Peter Ujfalusi
  2020-09-11  6:49   ` Peter Ujfalusi
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Ujfalusi @ 2020-09-10 11:18 UTC (permalink / raw)
  To: kbuild-all

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

Hi,

On 10/09/2020 13.46, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
> commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
> config: arm64-randconfig-r025-20200909 (attached as .config)
> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
> 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
>         # install arm64 cross compiling tool for clang build
>         # apt-get install binutils-aarch64-linux-gnu
>         git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

I'm not sure what is wrong, but can not reproduce it with GCC.

> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>    aarch64-linux-gnu-ld: warning: -z norelro ignored
>    aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
>    fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'

Is this also caused by the blaimed patch?

>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
>    security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
>    security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
>    drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>    aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o:drivers/tty/tty_io.c:1139: more undefined references to `stpcpy' follow
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_remove':
>    drivers/tty/serial/fsl_lpuart.c:2663: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:2666: undefined reference to `dma_release_channel'

#ifdef CONFIG_DMA_ENGINE
struct dma_chan *dma_request_chan(struct device *dev, const char *name);
#else
static inline struct dma_chan *dma_request_chan(struct device *dev,
						const char *name)
{
	return ERR_PTR(-ENODEV);
}
#endif

static inline struct dma_chan * __deprecated
dma_request_slave_channel(struct device *dev, const char *name)
{
	struct dma_chan *ch = dma_request_chan(dev, name);

	return IS_ERR(ch) ? NULL : ch;
}

And in the included config we have:
# CONFIG_DMADEVICES is not set
CONFIG_DMA_ENGINE=y



>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_request_dma':
>    drivers/tty/serial/fsl_lpuart.c:1513: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1521: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_dma_shutdown':
>    drivers/tty/serial/fsl_lpuart.c:1690: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1692: undefined reference to `dma_release_channel'

My patch cerainly not touching the dma_release_channel related functions...

>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_request_dma':
>    drivers/tty/serial/fsl_lpuart.c:1513: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:1521: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel':
>>> include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel_compat':
>>> include/linux/dmaengine.h:1595: undefined reference to `__dma_request_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel':
>>> include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel_compat':
>>> include/linux/dmaengine.h:1595: undefined reference to `__dma_request_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_setup':
>    drivers/spi/spi-pxa2xx-dma.c:209: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_release':
>    drivers/spi/spi-pxa2xx-dma.c:223: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.c:228: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_probe':
>    drivers/spi/spi-rockchip.c:748: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:759: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:788: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:785: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_remove':
>    drivers/spi/spi-rockchip.c:816: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:818: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_release':
>    drivers/spi/spi-sprd.c:580: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o:drivers/spi/spi-sprd.c:583: more undefined references to `dma_release_channel' follow
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_request':
>    drivers/spi/spi-sprd.c:555: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:564: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:570: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.o: in function `sprd_spi_dma_release':
>    drivers/spi/spi-sprd.c:580: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-sprd.c:583: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_probe':
>    drivers/spi/spi-uniphier.c:716: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:725: undefined reference to `dma_get_slave_caps'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:734: undefined reference to `dma_request_chan'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:743: undefined reference to `dma_get_slave_caps'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_remove':
>    drivers/spi/spi-uniphier.c:773: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:775: undefined reference to `dma_release_channel'
>    aarch64-linux-gnu-ld: drivers/usb/class/usblp.o: in function `ieee1284_id_show':
>    drivers/usb/class/usblp.c:1084: undefined reference to `stpcpy'
> 
> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=7547dbd3b198f309aaff54e3528898a8a196faff
> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> git fetch --no-tags linux-next master
> git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
> vim +1576 include/linux/dmaengine.h
> 
>   1560	
>   1561	int dma_async_device_register(struct dma_device *device);
>   1562	int dmaenginem_async_device_register(struct dma_device *device);
>   1563	void dma_async_device_unregister(struct dma_device *device);
>   1564	int dma_async_device_channel_register(struct dma_device *device,
>   1565					      struct dma_chan *chan);
>   1566	void dma_async_device_channel_unregister(struct dma_device *device,
>   1567						 struct dma_chan *chan);
>   1568	void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
>   1569	#define dma_request_channel(mask, x, y) \
>   1570		__dma_request_channel(&(mask), x, y, NULL)
>   1571	
>   1572	/* Deprecated, please use dma_request_chan() directly */
>   1573	static inline struct dma_chan * __deprecated
>   1574	dma_request_slave_channel(struct device *dev, const char *name)
>   1575	{
>> 1576		struct dma_chan *ch = dma_request_chan(dev, name);
>   1577	
>   1578		return IS_ERR(ch) ? NULL : ch;
>   1579	}
>   1580	
>   1581	static inline struct dma_chan
>   1582	*dma_request_slave_channel_compat(const dma_cap_mask_t mask,
>   1583					  dma_filter_fn fn, void *fn_param,
>   1584					  struct device *dev, const char *name)
>   1585	{
>   1586		struct dma_chan *chan;
>   1587	
>   1588		chan = dma_request_slave_channel(dev, name);
>   1589		if (chan)
>   1590			return chan;
>   1591	
>   1592		if (!fn || !fn_param)
>   1593			return NULL;
>   1594	
>> 1595		return __dma_request_channel(&mask, fn, fn_param, NULL);
>   1596	}
>   1597	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
  2020-09-10 11:18 ` Peter Ujfalusi
@ 2020-09-11  6:49   ` Peter Ujfalusi
  2020-09-11 10:00     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Ujfalusi @ 2020-09-11  6:49 UTC (permalink / raw)
  To: kbuild-all

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



On 10/09/2020 14.18, Peter Ujfalusi wrote:
> Hi,
> 
> On 10/09/2020 13.46, kernel test robot wrote:
>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>> head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
>> commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
>> config: arm64-randconfig-r025-20200909 (attached as .config)
>> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
>> 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
>>         # install arm64 cross compiling tool for clang build
>>         # apt-get install binutils-aarch64-linux-gnu
>>         git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
>>         # save the attached .config to linux build tree
>>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> I'm not sure what is wrong, but can not reproduce it with GCC.

I have tried with clang/llvm (10.0.1) without luck to reproduce.

>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All errors (new ones prefixed by >>):
>>
>>    aarch64-linux-gnu-ld: warning: -z norelro ignored
>>    aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
>>    fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'
> 
> Is this also caused by the blaimed patch?
> 
>>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
>>    security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
>>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
>>    security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
>>    drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o:drivers/tty/tty_io.c:1139: more undefined references to `stpcpy' follow
>>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_remove':
>>    drivers/tty/serial/fsl_lpuart.c:2663: undefined reference to `dma_release_channel'
>>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:2666: undefined reference to `dma_release_channel'
> 
> #ifdef CONFIG_DMA_ENGINE
> struct dma_chan *dma_request_chan(struct device *dev, const char *name);
> #else
> static inline struct dma_chan *dma_request_chan(struct device *dev,
> 						const char *name)
> {
> 	return ERR_PTR(-ENODEV);
> }
> #endif
> 
> static inline struct dma_chan * __deprecated
> dma_request_slave_channel(struct device *dev, const char *name)
> {
> 	struct dma_chan *ch = dma_request_chan(dev, name);
> 
> 	return IS_ERR(ch) ? NULL : ch;
> }
> 
> And in the included config we have:
> # CONFIG_DMADEVICES is not set
> CONFIG_DMA_ENGINE=y

The .config get corrected all the time and the CONFIG_DMA_ENGINE goes
away, I can not make it stick.

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
  2020-09-11  6:49   ` Peter Ujfalusi
@ 2020-09-11 10:00     ` Andy Shevchenko
  2020-09-11 11:16       ` Peter Ujfalusi
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2020-09-11 10:00 UTC (permalink / raw)
  To: kbuild-all

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

On Fri, Sep 11, 2020 at 9:49 AM Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> On 10/09/2020 14.18, Peter Ujfalusi wrote:
> > On 10/09/2020 13.46, kernel test robot wrote:
> >> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> >> head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
> >> commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
> >> config: arm64-randconfig-r025-20200909 (attached as .config)
> >> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)

^^^

> >> 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
> >>         # install arm64 cross compiling tool for clang build
> >>         # apt-get install binutils-aarch64-linux-gnu
> >>         git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
> >>         # save the attached .config to linux build tree
> >>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
> >
> > I'm not sure what is wrong, but can not reproduce it with GCC.
>
> I have tried with clang/llvm (10.0.1) without luck to reproduce.

^^^

12.0.0 != 10.0.1

> >> If you fix the issue, kindly add following tag as appropriate
> >> Reported-by: kernel test robot <lkp@intel.com>
> >>
> >> All errors (new ones prefixed by >>):
> >>
> >>    aarch64-linux-gnu-ld: warning: -z norelro ignored
> >>    aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
> >>    fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'
> >
> > Is this also caused by the blaimed patch?

I think this is a part of the long (recent) discussion about clang
optimisations.

> >>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
> >>    security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
> >>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
> >>    security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
> >>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
> >>    drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
> >>    aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
> >>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o:drivers/tty/tty_io.c:1139: more undefined references to `stpcpy' follow
> >>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_remove':
> >>    drivers/tty/serial/fsl_lpuart.c:2663: undefined reference to `dma_release_channel'
> >>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:2666: undefined reference to `dma_release_channel'
> >
> > #ifdef CONFIG_DMA_ENGINE
> > struct dma_chan *dma_request_chan(struct device *dev, const char *name);
> > #else
> > static inline struct dma_chan *dma_request_chan(struct device *dev,
> >                                               const char *name)
> > {
> >       return ERR_PTR(-ENODEV);
> > }
> > #endif
> >
> > static inline struct dma_chan * __deprecated
> > dma_request_slave_channel(struct device *dev, const char *name)
> > {
> >       struct dma_chan *ch = dma_request_chan(dev, name);
> >
> >       return IS_ERR(ch) ? NULL : ch;
> > }
> >
> > And in the included config we have:
> > # CONFIG_DMADEVICES is not set
> > CONFIG_DMA_ENGINE=y
>
> The .config get corrected all the time and the CONFIG_DMA_ENGINE goes
> away, I can not make it stick.


-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
  2020-09-11 10:00     ` Andy Shevchenko
@ 2020-09-11 11:16       ` Peter Ujfalusi
  2020-09-11 12:21         ` Vinod Koul
  0 siblings, 1 reply; 7+ messages in thread
From: Peter Ujfalusi @ 2020-09-11 11:16 UTC (permalink / raw)
  To: kbuild-all

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



On 11/09/2020 13.00, Andy Shevchenko wrote:
> On Fri, Sep 11, 2020 at 9:49 AM Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
>> On 10/09/2020 14.18, Peter Ujfalusi wrote:
>>> On 10/09/2020 13.46, kernel test robot wrote:
>>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>>> head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
>>>> commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
>>>> config: arm64-randconfig-r025-20200909 (attached as .config)
>>>> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
> 
> ^^^
> 
>>>> 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
>>>>         # install arm64 cross compiling tool for clang build
>>>>         # apt-get install binutils-aarch64-linux-gnu
>>>>         git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
>>>>         # save the attached .config to linux build tree
>>>>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
>>>
>>> I'm not sure what is wrong, but can not reproduce it with GCC.
>>
>> I have tried with clang/llvm (10.0.1) without luck to reproduce.
> 
> ^^^
> 
> 12.0.0 != 10.0.1

Yes, I have noticed that.
11.0.0 is at rc2, 12.0.0 is only in master w/o tag.

I _could_ install sys-devel/clang-12.0.0.9999 locally, after all it
would go to different slot, but I would rather not.

>>>> If you fix the issue, kindly add following tag as appropriate
>>>> Reported-by: kernel test robot <lkp@intel.com>
>>>>
>>>> All errors (new ones prefixed by >>):
>>>>
>>>>    aarch64-linux-gnu-ld: warning: -z norelro ignored
>>>>    aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
>>>>    fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'
>>>
>>> Is this also caused by the blaimed patch?
> 
> I think this is a part of the long (recent) discussion about clang
> optimisations.

Right, is there anything I could do or are we going to have similar mail
coming every day?

> 
>>>>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
>>>>    security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
>>>>    aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
>>>>    security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
>>>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
>>>>    drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>>>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
>>>>    aarch64-linux-gnu-ld: drivers/tty/tty_io.o:drivers/tty/tty_io.c:1139: more undefined references to `stpcpy' follow
>>>>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.o: in function `lpuart_remove':
>>>>    drivers/tty/serial/fsl_lpuart.c:2663: undefined reference to `dma_release_channel'
>>>>    aarch64-linux-gnu-ld: drivers/tty/serial/fsl_lpuart.c:2666: undefined reference to `dma_release_channel'
>>>
>>> #ifdef CONFIG_DMA_ENGINE
>>> struct dma_chan *dma_request_chan(struct device *dev, const char *name);
>>> #else
>>> static inline struct dma_chan *dma_request_chan(struct device *dev,
>>>                                               const char *name)
>>> {
>>>       return ERR_PTR(-ENODEV);
>>> }
>>> #endif
>>>
>>> static inline struct dma_chan * __deprecated
>>> dma_request_slave_channel(struct device *dev, const char *name)
>>> {
>>>       struct dma_chan *ch = dma_request_chan(dev, name);
>>>
>>>       return IS_ERR(ch) ? NULL : ch;
>>> }
>>>
>>> And in the included config we have:
>>> # CONFIG_DMADEVICES is not set
>>> CONFIG_DMA_ENGINE=y
>>
>> The .config get corrected all the time and the CONFIG_DMA_ENGINE goes
>> away, I can not make it stick.
> 
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
  2020-09-11 11:16       ` Peter Ujfalusi
@ 2020-09-11 12:21         ` Vinod Koul
  0 siblings, 0 replies; 7+ messages in thread
From: Vinod Koul @ 2020-09-11 12:21 UTC (permalink / raw)
  To: kbuild-all

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

On 11-09-20, 14:16, Peter Ujfalusi wrote:
> 
> 
> On 11/09/2020 13.00, Andy Shevchenko wrote:
> > On Fri, Sep 11, 2020 at 9:49 AM Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> >> On 10/09/2020 14.18, Peter Ujfalusi wrote:
> >>> On 10/09/2020 13.46, kernel test robot wrote:
> >>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> >>>> head:   7ce53e3a447bced7b85ed181c4d027e93c062e07
> >>>> commit: 7547dbd3b198f309aaff54e3528898a8a196faff [4238/6654] dmaengine: Mark dma_request_slave_channel() deprecated
> >>>> config: arm64-randconfig-r025-20200909 (attached as .config)
> >>>> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
> > 
> > ^^^
> > 
> >>>> reproduce (this is a W=1 build):
> >>>>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross

see this

> >>>>         chmod +x ~/bin/make.cross
> >>>>         # install arm64 cross compiling tool for clang build
> >>>>         # apt-get install binutils-aarch64-linux-gnu
> >>>>         git checkout 7547dbd3b198f309aaff54e3528898a8a196faff
> >>>>         # save the attached .config to linux build tree
> >>>>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
> >>>
> >>> I'm not sure what is wrong, but can not reproduce it with GCC.
> >>
> >> I have tried with clang/llvm (10.0.1) without luck to reproduce.
> > 
> > ^^^
> > 
> > 12.0.0 != 10.0.1
> 
> Yes, I have noticed that.
> 11.0.0 is at rc2, 12.0.0 is only in master w/o tag.
> 
> I _could_ install sys-devel/clang-12.0.0.9999 locally, after all it
> would go to different slot, but I would rather not.

This bot has toolchains and you can install them and use to check

-- 
~Vinod

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan'
       [not found] <20200911155419.GA3933165@ubuntu-n2-xlarge-x86>
@ 2020-09-14 14:19 ` Peter Ujfalusi
  0 siblings, 0 replies; 7+ messages in thread
From: Peter Ujfalusi @ 2020-09-14 14:19 UTC (permalink / raw)
  To: kbuild-all

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

Hi Nathan,

On 11/09/2020 18.54, Nathan Chancellor wrote:
> For what it's worth, I can reproduce this failure at that particular
> commit and I see a Kconfig warning along with it:
> 
> WARNING: unmet direct dependencies detected for DMA_ENGINE
>   Depends on [n]: DMADEVICES [=n]
>   Selected by [m]:
>   - DRM_ZYNQMP_DPSUB [=m] && HAS_IOMEM [=y] && (ARCH_ZYNQMP [=y] || COMPILE_TEST [=n]) && COMMON_CLK [=y] && DRM [=y] && OF [=y]
> 
> However, at tip of -next, the config is fine. It appears this is fixed
> with the commit that fixes that warning:
> 
> https://git.kernel.org/next/linux-next/c/3e8b2403545efd46c6347002e27eae4708205fd4

Right, this is fixing the incorrect config.
Without DMADEVICES the drivers/dma is not going to be built, and the
header (include/linux/dmaengine.h) checks for CONFIG_DMA_ENGINE to
decide if the drivers/dma/dmaengine.o is built or not.

In the failure we have
DMADEVICES=n
DMA_ENGINE=y

yet, the dmaengine is not built as the whole drivers/dma/ is skipped.

Interesting case.
If we make DMA_ENGINE to depend on DMADEVICES then this should not
happen (and also DMA_ACPI and DMA_OF ?)

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-09-14 14:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-10 10:46 [linux-next:master 4238/6654] include/linux/dmaengine.h:1576: undefined reference to `dma_request_chan' kernel test robot
2020-09-10 11:18 ` Peter Ujfalusi
2020-09-11  6:49   ` Peter Ujfalusi
2020-09-11 10:00     ` Andy Shevchenko
2020-09-11 11:16       ` Peter Ujfalusi
2020-09-11 12:21         ` Vinod Koul
     [not found] <20200911155419.GA3933165@ubuntu-n2-xlarge-x86>
2020-09-14 14:19 ` Peter Ujfalusi

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.