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