[linux-next:master 5601/6082] drivers/md/dm.c:2131:undefined reference to `set_dax_nocache'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   ae00c445390b349e070a64dc62f08aa878db7248
commit: 9af4599a77df42dba7f32c76a97a19f5703f44b7 [5601/6082] dm: cleanup alloc_dax() error handling
config: openrisc-randconfig-r011-20221209 (https://download.01.org/0day-ci/archive/20240213/202402131351.a0FZOgEG-lkp@xxxxxxxxx/config)
compiler: or1k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402131351.a0FZOgEG-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402131351.a0FZOgEG-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   or1k-linux-ld: drivers/md/dm.o: in function `alloc_dev':
>> drivers/md/dm.c:2131:(.text+0x9f34): undefined reference to `set_dax_nocache'
>> drivers/md/dm.c:2131:(.text+0x9f34): relocation truncated to fit: R_OR1K_INSN_REL_26 against undefined symbol `set_dax_nocache'
>> or1k-linux-ld: drivers/md/dm.c:2132:(.text+0x9f3c): undefined reference to `set_dax_nomc'
>> drivers/md/dm.c:2132:(.text+0x9f3c): relocation truncated to fit: R_OR1K_INSN_REL_26 against undefined symbol `set_dax_nomc'
   pahole: .tmp_vmlinux.btf: Invalid argument
   .btf.vmlinux.bin.o: file not recognized: file format not recognized


vim +2131 drivers/md/dm.c

0f20972f7bf692 Mike Snitzer       2015-04-28  2050  
^1da177e4c3f41 Linus Torvalds     2005-04-16  2051  /*
^1da177e4c3f41 Linus Torvalds     2005-04-16  2052   * Allocate and initialise a blank device with a given minor.
^1da177e4c3f41 Linus Torvalds     2005-04-16  2053   */
2b06cfff12f0f8 Alasdair G Kergon  2006-06-26  2054  static struct mapped_device *alloc_dev(int minor)
^1da177e4c3f41 Linus Torvalds     2005-04-16  2055  {
115485e83f497f Mike Snitzer       2016-02-22  2056  	int r, numa_node_id = dm_get_numa_node();
c56346d999fb42 Mathieu Desnoyers  2024-02-08  2057  	struct dax_device *dax_dev;
115485e83f497f Mike Snitzer       2016-02-22  2058  	struct mapped_device *md;
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2059  	void *old_md;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2060  
856eb0916d181d Mikulas Patocka    2017-10-31  2061  	md = kvzalloc_node(sizeof(*md), GFP_KERNEL, numa_node_id);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2062  	if (!md) {
43e6c111824c75 Mikulas Patocka    2022-08-24  2063  		DMERR("unable to allocate device, out of memory.");
^1da177e4c3f41 Linus Torvalds     2005-04-16  2064  		return NULL;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2065  	}
^1da177e4c3f41 Linus Torvalds     2005-04-16  2066  
10da4f795f965f Jeff Mahoney       2006-06-26  2067  	if (!try_module_get(THIS_MODULE))
6ed7ade89657e7 Milan Broz         2008-02-08  2068  		goto bad_module_get;
10da4f795f965f Jeff Mahoney       2006-06-26  2069  
^1da177e4c3f41 Linus Torvalds     2005-04-16  2070  	/* get a minor number for the dev */
2b06cfff12f0f8 Alasdair G Kergon  2006-06-26  2071  	if (minor == DM_ANY_MINOR)
cf13ab8e02d452 Frederik Deweerdt  2008-04-24  2072  		r = next_free_minor(&minor);
2b06cfff12f0f8 Alasdair G Kergon  2006-06-26  2073  	else
cf13ab8e02d452 Frederik Deweerdt  2008-04-24  2074  		r = specific_minor(minor);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2075  	if (r < 0)
6ed7ade89657e7 Milan Broz         2008-02-08  2076  		goto bad_minor;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2077  
83d5e5b0af907d Mikulas Patocka    2013-07-10  2078  	r = init_srcu_struct(&md->io_barrier);
83d5e5b0af907d Mikulas Patocka    2013-07-10  2079  	if (r < 0)
83d5e5b0af907d Mikulas Patocka    2013-07-10  2080  		goto bad_io_barrier;
83d5e5b0af907d Mikulas Patocka    2013-07-10  2081  
115485e83f497f Mike Snitzer       2016-02-22  2082  	md->numa_node_id = numa_node_id;
591ddcfc4bfad2 Mike Snitzer       2016-01-31  2083  	md->init_tio_pdu = false;
a5664dad7e1a27 Mike Snitzer       2010-08-12  2084  	md->type = DM_TYPE_NONE;
e61290a4a23c3f Daniel Walker      2008-02-08  2085  	mutex_init(&md->suspend_lock);
a5664dad7e1a27 Mike Snitzer       2010-08-12  2086  	mutex_init(&md->type_lock);
86f1152b117a40 Benjamin Marzinski 2014-08-13  2087  	mutex_init(&md->table_devices_lock);
022c261100e156 Mikulas Patocka    2009-04-02  2088  	spin_lock_init(&md->deferred_lock);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2089  	atomic_set(&md->holders, 1);
5c6bd75d06db51 Alasdair G Kergon  2006-06-26  2090  	atomic_set(&md->open_count, 0);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2091  	atomic_set(&md->event_nr, 0);
7a8c3d3b928837 Mike Anderson      2007-10-19  2092  	atomic_set(&md->uevent_seq, 0);
7a8c3d3b928837 Mike Anderson      2007-10-19  2093  	INIT_LIST_HEAD(&md->uevent_list);
86f1152b117a40 Benjamin Marzinski 2014-08-13  2094  	INIT_LIST_HEAD(&md->table_devices);
7a8c3d3b928837 Mike Anderson      2007-10-19  2095  	spin_lock_init(&md->uevent_lock);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2096  
47ace7e012b9f7 Mike Snitzer       2020-01-27  2097  	/*
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  2098  	 * default to bio-based until DM table is loaded and md->type
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  2099  	 * established. If request-based table is loaded: blk-mq will
c62b37d96b6eb3 Christoph Hellwig  2020-07-01  2100  	 * override accordingly.
47ace7e012b9f7 Mike Snitzer       2020-01-27  2101  	 */
74fe6ba9239497 Christoph Hellwig  2021-05-21  2102  	md->disk = blk_alloc_disk(md->numa_node_id);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2103  	if (!md->disk)
0f20972f7bf692 Mike Snitzer       2015-04-28  2104  		goto bad;
74fe6ba9239497 Christoph Hellwig  2021-05-21  2105  	md->queue = md->disk->queue;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2106  
f0b04115368ff3 Jeff Mahoney       2006-06-26  2107  	init_waitqueue_head(&md->wait);
53d5914f288b67 Mikulas Patocka    2009-04-02  2108  	INIT_WORK(&md->work, dm_wq_work);
8b211aaccb915b Ming Lei           2022-06-24  2109  	INIT_WORK(&md->requeue_work, dm_wq_requeue_work);
f0b04115368ff3 Jeff Mahoney       2006-06-26  2110  	init_waitqueue_head(&md->eventq);
2995fa78e423d7 Mikulas Patocka    2014-01-13  2111  	init_completion(&md->kobj_holder.completion);
f0b04115368ff3 Jeff Mahoney       2006-06-26  2112  
8b211aaccb915b Ming Lei           2022-06-24  2113  	md->requeue_list = NULL;
a666e5c05e7c4a Mikulas Patocka    2021-02-10  2114  	md->swap_bios = get_swap_bios();
a666e5c05e7c4a Mikulas Patocka    2021-02-10  2115  	sema_init(&md->swap_bios_semaphore, md->swap_bios);
a666e5c05e7c4a Mikulas Patocka    2021-02-10  2116  	mutex_init(&md->swap_bios_lock);
a666e5c05e7c4a Mikulas Patocka    2021-02-10  2117  
^1da177e4c3f41 Linus Torvalds     2005-04-16  2118  	md->disk->major = _major;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2119  	md->disk->first_minor = minor;
74fe6ba9239497 Christoph Hellwig  2021-05-21  2120  	md->disk->minors = 1;
1ebe2e5f9d68e9 Christoph Hellwig  2021-11-22  2121  	md->disk->flags |= GENHD_FL_NO_PART;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2122  	md->disk->fops = &dm_blk_dops;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2123  	md->disk->private_data = md;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2124  	sprintf(md->disk->disk_name, "dm-%d", minor);
f26c5719b2d7b0 Dan Williams       2017-04-12  2125  
c56346d999fb42 Mathieu Desnoyers  2024-02-08  2126  	dax_dev = alloc_dax(md, &dm_dax_ops);
9af4599a77df42 Mathieu Desnoyers  2024-02-08  2127  	if (IS_ERR(dax_dev)) {
9af4599a77df42 Mathieu Desnoyers  2024-02-08  2128  		if (PTR_ERR(dax_dev) != -EOPNOTSUPP)
f26c5719b2d7b0 Dan Williams       2017-04-12  2129  			goto bad;
c56346d999fb42 Mathieu Desnoyers  2024-02-08  2130  	} else {
c56346d999fb42 Mathieu Desnoyers  2024-02-08 @2131  		set_dax_nocache(dax_dev);
c56346d999fb42 Mathieu Desnoyers  2024-02-08 @2132  		set_dax_nomc(dax_dev);
c56346d999fb42 Mathieu Desnoyers  2024-02-08  2133  		md->dax_dev = dax_dev;
c56346d999fb42 Mathieu Desnoyers  2024-02-08  2134  		if (dax_add_host(dax_dev, md->disk))
f26c5719b2d7b0 Dan Williams       2017-04-12  2135  			goto bad;
976431b02c2ef9 Dan Williams       2018-03-29  2136  	}
f26c5719b2d7b0 Dan Williams       2017-04-12  2137  
7e51f257e87297 Mike Anderson      2006-03-27  2138  	format_dev_t(md->name, MKDEV(_major, minor));
^1da177e4c3f41 Linus Torvalds     2005-04-16  2139  
c7c879eedc02a9 Michał Mirosław    2021-10-21  2140  	md->wq = alloc_workqueue("kdmflush/%s", WQ_MEM_RECLAIM, 0, md->name);
304f3f6a583013 Milan Broz         2008-02-08  2141  	if (!md->wq)
0f20972f7bf692 Mike Snitzer       2015-04-28  2142  		goto bad;
304f3f6a583013 Milan Broz         2008-02-08  2143  
9f6dc633761006 Mike Snitzer       2022-02-17  2144  	md->pending_io = alloc_percpu(unsigned long);
9f6dc633761006 Mike Snitzer       2022-02-17  2145  	if (!md->pending_io)
9f6dc633761006 Mike Snitzer       2022-02-17  2146  		goto bad;
9f6dc633761006 Mike Snitzer       2022-02-17  2147  
d3aa3e060c4a80 Jiasheng Jiang     2023-03-16  2148  	r = dm_stats_init(&md->stats);
d3aa3e060c4a80 Jiasheng Jiang     2023-03-16  2149  	if (r < 0)
d3aa3e060c4a80 Jiasheng Jiang     2023-03-16  2150  		goto bad;
fd2ed4d252701d Mikulas Patocka    2013-08-16  2151  
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2152  	/* Populate the mapping, nobody knows we exist yet */
f32c10b09940cf Jeff Mahoney       2006-06-26  2153  	spin_lock(&_minor_lock);
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2154  	old_md = idr_replace(&_minor_idr, md, minor);
f32c10b09940cf Jeff Mahoney       2006-06-26  2155  	spin_unlock(&_minor_lock);
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2156  
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2157  	BUG_ON(old_md != MINOR_ALLOCED);
ba61fdd17d73dd Jeff Mahoney       2006-06-26  2158  
^1da177e4c3f41 Linus Torvalds     2005-04-16  2159  	return md;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2160  
0f20972f7bf692 Mike Snitzer       2015-04-28  2161  bad:
0f20972f7bf692 Mike Snitzer       2015-04-28  2162  	cleanup_mapped_device(md);
83d5e5b0af907d Mikulas Patocka    2013-07-10  2163  bad_io_barrier:
^1da177e4c3f41 Linus Torvalds     2005-04-16  2164  	free_minor(minor);
6ed7ade89657e7 Milan Broz         2008-02-08  2165  bad_minor:
10da4f795f965f Jeff Mahoney       2006-06-26  2166  	module_put(THIS_MODULE);
6ed7ade89657e7 Milan Broz         2008-02-08  2167  bad_module_get:
856eb0916d181d Mikulas Patocka    2017-10-31  2168  	kvfree(md);
^1da177e4c3f41 Linus Torvalds     2005-04-16  2169  	return NULL;
^1da177e4c3f41 Linus Torvalds     2005-04-16  2170  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  2171  

:::::: The code at line 2131 was first introduced by commit
:::::: c56346d999fb4289301da112f5dbd409dc405f53 dm: treat alloc_dax() -EOPNOTSUPP failure as non-fatal

:::::: TO: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
:::::: CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux