linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* drivers/s390/block/dcssblk.c:718:undefined reference to `kill_dax'
@ 2025-04-29  8:27 kernel test robot
  2025-04-29 14:52 ` Gerald Schaefer
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2025-04-29  8:27 UTC (permalink / raw)
  To: Dan Williams
  Cc: oe-kbuild-all, linux-kernel, Andrew Morton,
	Linux Memory Management List, Gerald Schaefer

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   ca91b9500108d4cf083a635c2e11c884d5dd20ea
commit: 653d7825c149932f254e0cd22153ccc945e7e545 dcssblk: mark DAX broken, remove FS_DAX_LIMITED support
date:   6 weeks ago
config: s390-randconfig-r132-20250428 (https://download.01.org/0day-ci/archive/20250429/202504291604.pvjonhWX-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce: (https://download.01.org/0day-ci/archive/20250429/202504291604.pvjonhWX-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504291604.pvjonhWX-lkp@intel.com/

All errors (new ones prefixed by >>):

   s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_add_store':
>> drivers/s390/block/dcssblk.c:718:(.text+0x1b98): undefined reference to `kill_dax'
>> s390x-linux-ld: drivers/s390/block/dcssblk.c:719:(.text+0x1bb6): undefined reference to `put_dax'
   s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_shared_store':
   drivers/s390/block/dcssblk.c:417:(.text+0x2c2a): undefined reference to `kill_dax'
   s390x-linux-ld: drivers/s390/block/dcssblk.c:418:(.text+0x2c48): undefined reference to `put_dax'
   s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_remove_store':
   drivers/s390/block/dcssblk.c:803:(.text+0x42e2): undefined reference to `kill_dax'
   s390x-linux-ld: drivers/s390/block/dcssblk.c:804:(.text+0x4300): undefined reference to `put_dax'


vim +718 drivers/s390/block/dcssblk.c

653d7825c14993 Dan Williams          2025-02-28  551  
^1da177e4c3f41 Linus Torvalds        2005-04-16  552  /*
^1da177e4c3f41 Linus Torvalds        2005-04-16  553   * device attribute for adding devices
^1da177e4c3f41 Linus Torvalds        2005-04-16  554   */
^1da177e4c3f41 Linus Torvalds        2005-04-16  555  static ssize_t
e404e274f62665 Yani Ioannou          2005-05-17  556  dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
^1da177e4c3f41 Linus Torvalds        2005-04-16  557  {
af190c53c995bf Christoph Hellwig     2024-02-15  558  	struct queue_limits lim = {
af190c53c995bf Christoph Hellwig     2024-02-15  559  		.logical_block_size	= 4096,
f467fee48da450 Christoph Hellwig     2024-06-17  560  		.features		= BLK_FEAT_DAX,
af190c53c995bf Christoph Hellwig     2024-02-15  561  	};
b2300b9efe1b81 Hongjie Yang          2008-10-10  562  	int rc, i, j, num_of_segments;
^1da177e4c3f41 Linus Torvalds        2005-04-16  563  	struct dcssblk_dev_info *dev_info;
b2300b9efe1b81 Hongjie Yang          2008-10-10  564  	struct segment_info *seg_info, *temp;
^1da177e4c3f41 Linus Torvalds        2005-04-16  565  	char *local_buf;
^1da177e4c3f41 Linus Torvalds        2005-04-16  566  	unsigned long seg_byte_size;
^1da177e4c3f41 Linus Torvalds        2005-04-16  567  
^1da177e4c3f41 Linus Torvalds        2005-04-16  568  	dev_info = NULL;
b2300b9efe1b81 Hongjie Yang          2008-10-10  569  	seg_info = NULL;
^1da177e4c3f41 Linus Torvalds        2005-04-16  570  	if (dev != dcssblk_root_dev) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  571  		rc = -EINVAL;
^1da177e4c3f41 Linus Torvalds        2005-04-16  572  		goto out_nobuf;
^1da177e4c3f41 Linus Torvalds        2005-04-16  573  	}
b2300b9efe1b81 Hongjie Yang          2008-10-10  574  	if ((count < 1) || (buf[0] == '\0') || (buf[0] == '\n')) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  575  		rc = -ENAMETOOLONG;
b2300b9efe1b81 Hongjie Yang          2008-10-10  576  		goto out_nobuf;
b2300b9efe1b81 Hongjie Yang          2008-10-10  577  	}
b2300b9efe1b81 Hongjie Yang          2008-10-10  578  
^1da177e4c3f41 Linus Torvalds        2005-04-16  579  	local_buf = kmalloc(count + 1, GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds        2005-04-16  580  	if (local_buf == NULL) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  581  		rc = -ENOMEM;
^1da177e4c3f41 Linus Torvalds        2005-04-16  582  		goto out_nobuf;
^1da177e4c3f41 Linus Torvalds        2005-04-16  583  	}
b2300b9efe1b81 Hongjie Yang          2008-10-10  584  
^1da177e4c3f41 Linus Torvalds        2005-04-16  585  	/*
^1da177e4c3f41 Linus Torvalds        2005-04-16  586  	 * parse input
^1da177e4c3f41 Linus Torvalds        2005-04-16  587  	 */
b2300b9efe1b81 Hongjie Yang          2008-10-10  588  	num_of_segments = 0;
3a9f9183bdd341 Ameen Ali             2015-02-24  589  	for (i = 0; (i < count && (buf[i] != '\0') && (buf[i] != '\n')); i++) {
42cfc6b590c5eb Martin Schwidefsky    2015-08-19  590  		for (j = i; j < count &&
42cfc6b590c5eb Martin Schwidefsky    2015-08-19  591  			(buf[j] != ':') &&
b2300b9efe1b81 Hongjie Yang          2008-10-10  592  			(buf[j] != '\0') &&
42cfc6b590c5eb Martin Schwidefsky    2015-08-19  593  			(buf[j] != '\n'); j++) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  594  			local_buf[j-i] = toupper(buf[j]);
b2300b9efe1b81 Hongjie Yang          2008-10-10  595  		}
b2300b9efe1b81 Hongjie Yang          2008-10-10  596  		local_buf[j-i] = '\0';
b2300b9efe1b81 Hongjie Yang          2008-10-10  597  		if (((j - i) == 0) || ((j - i) > 8)) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  598  			rc = -ENAMETOOLONG;
b2300b9efe1b81 Hongjie Yang          2008-10-10  599  			goto seg_list_del;
^1da177e4c3f41 Linus Torvalds        2005-04-16  600  		}
b2300b9efe1b81 Hongjie Yang          2008-10-10  601  
b2300b9efe1b81 Hongjie Yang          2008-10-10  602  		rc = dcssblk_load_segment(local_buf, &seg_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  603  		if (rc < 0)
b2300b9efe1b81 Hongjie Yang          2008-10-10  604  			goto seg_list_del;
^1da177e4c3f41 Linus Torvalds        2005-04-16  605  		/*
^1da177e4c3f41 Linus Torvalds        2005-04-16  606  		 * get a struct dcssblk_dev_info
^1da177e4c3f41 Linus Torvalds        2005-04-16  607  		 */
b2300b9efe1b81 Hongjie Yang          2008-10-10  608  		if (num_of_segments == 0) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  609  			dev_info = kzalloc(sizeof(struct dcssblk_dev_info),
b2300b9efe1b81 Hongjie Yang          2008-10-10  610  					GFP_KERNEL);
^1da177e4c3f41 Linus Torvalds        2005-04-16  611  			if (dev_info == NULL) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  612  				rc = -ENOMEM;
^1da177e4c3f41 Linus Torvalds        2005-04-16  613  				goto out;
^1da177e4c3f41 Linus Torvalds        2005-04-16  614  			}
^1da177e4c3f41 Linus Torvalds        2005-04-16  615  			strcpy(dev_info->segment_name, local_buf);
b2300b9efe1b81 Hongjie Yang          2008-10-10  616  			dev_info->segment_type = seg_info->segment_type;
b2300b9efe1b81 Hongjie Yang          2008-10-10  617  			INIT_LIST_HEAD(&dev_info->seg_list);
b2300b9efe1b81 Hongjie Yang          2008-10-10  618  		}
b2300b9efe1b81 Hongjie Yang          2008-10-10  619  		list_add_tail(&seg_info->lh, &dev_info->seg_list);
b2300b9efe1b81 Hongjie Yang          2008-10-10  620  		num_of_segments++;
b2300b9efe1b81 Hongjie Yang          2008-10-10  621  		i = j;
b2300b9efe1b81 Hongjie Yang          2008-10-10  622  
b2300b9efe1b81 Hongjie Yang          2008-10-10  623  		if ((buf[j] == '\0') || (buf[j] == '\n'))
b2300b9efe1b81 Hongjie Yang          2008-10-10  624  			break;
b2300b9efe1b81 Hongjie Yang          2008-10-10  625  	}
b2300b9efe1b81 Hongjie Yang          2008-10-10  626  
b2300b9efe1b81 Hongjie Yang          2008-10-10  627  	/* no trailing colon at the end of the input */
b2300b9efe1b81 Hongjie Yang          2008-10-10  628  	if ((i > 0) && (buf[i-1] == ':')) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  629  		rc = -ENAMETOOLONG;
b2300b9efe1b81 Hongjie Yang          2008-10-10  630  		goto seg_list_del;
b2300b9efe1b81 Hongjie Yang          2008-10-10  631  	}
820109fb11f24b Wolfram Sang          2022-08-18  632  	strscpy(local_buf, buf, i + 1);
b2300b9efe1b81 Hongjie Yang          2008-10-10  633  	dev_info->num_of_segments = num_of_segments;
b2300b9efe1b81 Hongjie Yang          2008-10-10  634  	rc = dcssblk_is_continuous(dev_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  635  	if (rc < 0)
b2300b9efe1b81 Hongjie Yang          2008-10-10  636  		goto seg_list_del;
b2300b9efe1b81 Hongjie Yang          2008-10-10  637  
b2300b9efe1b81 Hongjie Yang          2008-10-10  638  	dev_info->start = dcssblk_find_lowest_addr(dev_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  639  	dev_info->end = dcssblk_find_highest_addr(dev_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  640  
ef283688f54cc8 Kees Cook             2014-06-10  641  	dev_set_name(&dev_info->dev, "%s", dev_info->segment_name);
^1da177e4c3f41 Linus Torvalds        2005-04-16  642  	dev_info->dev.release = dcssblk_release_segment;
521b3d790c16fa Sebastian Ott         2012-10-01  643  	dev_info->dev.groups = dcssblk_dev_attr_groups;
^1da177e4c3f41 Linus Torvalds        2005-04-16  644  	INIT_LIST_HEAD(&dev_info->lh);
af190c53c995bf Christoph Hellwig     2024-02-15  645  	dev_info->gd = blk_alloc_disk(&lim, NUMA_NO_NODE);
74fa8f9c553f7b Christoph Hellwig     2024-02-15  646  	if (IS_ERR(dev_info->gd)) {
74fa8f9c553f7b Christoph Hellwig     2024-02-15  647  		rc = PTR_ERR(dev_info->gd);
b2300b9efe1b81 Hongjie Yang          2008-10-10  648  		goto seg_list_del;
^1da177e4c3f41 Linus Torvalds        2005-04-16  649  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  650  	dev_info->gd->major = dcssblk_major;
0692ef289f067d Christoph Hellwig     2021-05-21  651  	dev_info->gd->minors = DCSSBLK_MINORS_PER_DISK;
^1da177e4c3f41 Linus Torvalds        2005-04-16  652  	dev_info->gd->fops = &dcssblk_devops;
^1da177e4c3f41 Linus Torvalds        2005-04-16  653  	dev_info->gd->private_data = dev_info;
a41a11b4009580 Gerald Schaefer       2022-10-27  654  	dev_info->gd->flags |= GENHD_FL_NO_PART;
b2300b9efe1b81 Hongjie Yang          2008-10-10  655  
^1da177e4c3f41 Linus Torvalds        2005-04-16  656  	seg_byte_size = (dev_info->end - dev_info->start + 1);
^1da177e4c3f41 Linus Torvalds        2005-04-16  657  	set_capacity(dev_info->gd, seg_byte_size >> 9); // size in sectors
93098bf0157876 Hongjie Yang          2008-12-25  658  	pr_info("Loaded %s with total size %lu bytes and capacity %lu "
93098bf0157876 Hongjie Yang          2008-12-25  659  		"sectors\n", local_buf, seg_byte_size, seg_byte_size >> 9);
^1da177e4c3f41 Linus Torvalds        2005-04-16  660  
^1da177e4c3f41 Linus Torvalds        2005-04-16  661  	dev_info->save_pending = 0;
^1da177e4c3f41 Linus Torvalds        2005-04-16  662  	dev_info->is_shared = 1;
^1da177e4c3f41 Linus Torvalds        2005-04-16  663  	dev_info->dev.parent = dcssblk_root_dev;
^1da177e4c3f41 Linus Torvalds        2005-04-16  664  
^1da177e4c3f41 Linus Torvalds        2005-04-16  665  	/*
^1da177e4c3f41 Linus Torvalds        2005-04-16  666  	 *get minor, add to list
^1da177e4c3f41 Linus Torvalds        2005-04-16  667  	 */
^1da177e4c3f41 Linus Torvalds        2005-04-16  668  	down_write(&dcssblk_devices_sem);
b2300b9efe1b81 Hongjie Yang          2008-10-10  669  	if (dcssblk_get_segment_by_name(local_buf)) {
04f64b5756872b Gerald Schaefer       2008-08-21  670  		rc = -EEXIST;
b2300b9efe1b81 Hongjie Yang          2008-10-10  671  		goto release_gd;
04f64b5756872b Gerald Schaefer       2008-08-21  672  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  673  	rc = dcssblk_assign_free_minor(dev_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  674  	if (rc)
b2300b9efe1b81 Hongjie Yang          2008-10-10  675  		goto release_gd;
^1da177e4c3f41 Linus Torvalds        2005-04-16  676  	sprintf(dev_info->gd->disk_name, "dcssblk%d",
d0591485e15ccd Gerald Schaefer       2009-06-12  677  		dev_info->gd->first_minor);
^1da177e4c3f41 Linus Torvalds        2005-04-16  678  	list_add_tail(&dev_info->lh, &dcssblk_devices);
^1da177e4c3f41 Linus Torvalds        2005-04-16  679  
^1da177e4c3f41 Linus Torvalds        2005-04-16  680  	if (!try_module_get(THIS_MODULE)) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  681  		rc = -ENODEV;
b2300b9efe1b81 Hongjie Yang          2008-10-10  682  		goto dev_list_del;
^1da177e4c3f41 Linus Torvalds        2005-04-16  683  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  684  	/*
^1da177e4c3f41 Linus Torvalds        2005-04-16  685  	 * register the device
^1da177e4c3f41 Linus Torvalds        2005-04-16  686  	 */
^1da177e4c3f41 Linus Torvalds        2005-04-16  687  	rc = device_register(&dev_info->dev);
b2300b9efe1b81 Hongjie Yang          2008-10-10  688  	if (rc)
521b3d790c16fa Sebastian Ott         2012-10-01  689  		goto put_dev;
^1da177e4c3f41 Linus Torvalds        2005-04-16  690  
653d7825c14993 Dan Williams          2025-02-28  691  	rc = dcssblk_setup_dax(dev_info);
fb08a1908cb119 Christoph Hellwig     2021-11-29  692  	if (rc)
fb08a1908cb119 Christoph Hellwig     2021-11-29  693  		goto out_dax;
7a2765f6e82063 Dan Williams          2017-01-26  694  
521b3d790c16fa Sebastian Ott         2012-10-01  695  	get_device(&dev_info->dev);
1a5db707c859a4 Gerald Schaefer       2021-09-27  696  	rc = device_add_disk(&dev_info->dev, dev_info->gd, NULL);
1a5db707c859a4 Gerald Schaefer       2021-09-27  697  	if (rc)
fb08a1908cb119 Christoph Hellwig     2021-11-29  698  		goto out_dax_host;
436d1bc7fe6e78 Christian Borntraeger 2007-12-04  699  
^1da177e4c3f41 Linus Torvalds        2005-04-16  700  	switch (dev_info->segment_type) {
^1da177e4c3f41 Linus Torvalds        2005-04-16  701  		case SEG_TYPE_SR:
^1da177e4c3f41 Linus Torvalds        2005-04-16  702  		case SEG_TYPE_ER:
^1da177e4c3f41 Linus Torvalds        2005-04-16  703  		case SEG_TYPE_SC:
^1da177e4c3f41 Linus Torvalds        2005-04-16  704  			set_disk_ro(dev_info->gd,1);
^1da177e4c3f41 Linus Torvalds        2005-04-16  705  			break;
^1da177e4c3f41 Linus Torvalds        2005-04-16  706  		default:
^1da177e4c3f41 Linus Torvalds        2005-04-16  707  			set_disk_ro(dev_info->gd,0);
^1da177e4c3f41 Linus Torvalds        2005-04-16  708  			break;
^1da177e4c3f41 Linus Torvalds        2005-04-16  709  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  710  	up_write(&dcssblk_devices_sem);
^1da177e4c3f41 Linus Torvalds        2005-04-16  711  	rc = count;
^1da177e4c3f41 Linus Torvalds        2005-04-16  712  	goto out;
^1da177e4c3f41 Linus Torvalds        2005-04-16  713  
fb08a1908cb119 Christoph Hellwig     2021-11-29  714  out_dax_host:
c8f40a0bccefd6 Gerald Schaefer       2023-08-10  715  	put_device(&dev_info->dev);
fb08a1908cb119 Christoph Hellwig     2021-11-29  716  	dax_remove_host(dev_info->gd);
1a5db707c859a4 Gerald Schaefer       2021-09-27  717  out_dax:
1a5db707c859a4 Gerald Schaefer       2021-09-27 @718  	kill_dax(dev_info->dax_dev);
1a5db707c859a4 Gerald Schaefer       2021-09-27 @719  	put_dax(dev_info->dax_dev);
521b3d790c16fa Sebastian Ott         2012-10-01  720  put_dev:
^1da177e4c3f41 Linus Torvalds        2005-04-16  721  	list_del(&dev_info->lh);
8b9ab62662048a Christoph Hellwig     2022-06-19  722  	put_disk(dev_info->gd);
b2300b9efe1b81 Hongjie Yang          2008-10-10  723  	list_for_each_entry(seg_info, &dev_info->seg_list, lh) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  724  		segment_unload(seg_info->segment_name);
b2300b9efe1b81 Hongjie Yang          2008-10-10  725  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  726  	put_device(&dev_info->dev);
^1da177e4c3f41 Linus Torvalds        2005-04-16  727  	up_write(&dcssblk_devices_sem);
^1da177e4c3f41 Linus Torvalds        2005-04-16  728  	goto out;
b2300b9efe1b81 Hongjie Yang          2008-10-10  729  dev_list_del:
^1da177e4c3f41 Linus Torvalds        2005-04-16  730  	list_del(&dev_info->lh);
b2300b9efe1b81 Hongjie Yang          2008-10-10  731  release_gd:
8b9ab62662048a Christoph Hellwig     2022-06-19  732  	put_disk(dev_info->gd);
b2300b9efe1b81 Hongjie Yang          2008-10-10  733  	up_write(&dcssblk_devices_sem);
b2300b9efe1b81 Hongjie Yang          2008-10-10  734  seg_list_del:
b2300b9efe1b81 Hongjie Yang          2008-10-10  735  	if (dev_info == NULL)
b2300b9efe1b81 Hongjie Yang          2008-10-10  736  		goto out;
b2300b9efe1b81 Hongjie Yang          2008-10-10  737  	list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) {
b2300b9efe1b81 Hongjie Yang          2008-10-10  738  		list_del(&seg_info->lh);
b2300b9efe1b81 Hongjie Yang          2008-10-10  739  		segment_unload(seg_info->segment_name);
b2300b9efe1b81 Hongjie Yang          2008-10-10  740  		kfree(seg_info);
b2300b9efe1b81 Hongjie Yang          2008-10-10  741  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  742  	kfree(dev_info);
^1da177e4c3f41 Linus Torvalds        2005-04-16  743  out:
^1da177e4c3f41 Linus Torvalds        2005-04-16  744  	kfree(local_buf);
^1da177e4c3f41 Linus Torvalds        2005-04-16  745  out_nobuf:
^1da177e4c3f41 Linus Torvalds        2005-04-16  746  	return rc;
^1da177e4c3f41 Linus Torvalds        2005-04-16  747  }
^1da177e4c3f41 Linus Torvalds        2005-04-16  748  

:::::: The code at line 718 was first introduced by commit
:::::: 1a5db707c859a4f63c1066c5b88864d3f1c21c12 s390/block/dcssblk: add error handling support for add_disk()

:::::: TO: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
:::::: CC: Vasily Gorbik <gor@linux.ibm.com>

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


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

* Re: drivers/s390/block/dcssblk.c:718:undefined reference to `kill_dax'
  2025-04-29  8:27 drivers/s390/block/dcssblk.c:718:undefined reference to `kill_dax' kernel test robot
@ 2025-04-29 14:52 ` Gerald Schaefer
  0 siblings, 0 replies; 2+ messages in thread
From: Gerald Schaefer @ 2025-04-29 14:52 UTC (permalink / raw)
  To: Dan Williams
  Cc: Alistair Popple, linux-kernel, Andrew Morton,
	Linux Memory Management List, linux-s390

On Tue, 29 Apr 2025 16:27:39 +0800
kernel test robot <lkp@intel.com> wrote:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   ca91b9500108d4cf083a635c2e11c884d5dd20ea
> commit: 653d7825c149932f254e0cd22153ccc945e7e545 dcssblk: mark DAX broken, remove FS_DAX_LIMITED support
> date:   6 weeks ago
> config: s390-randconfig-r132-20250428 (https://download.01.org/0day-ci/archive/20250429/202504291604.pvjonhWX-lkp@intel.com/config)
> compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
> reproduce: (https://download.01.org/0day-ci/archive/20250429/202504291604.pvjonhWX-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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202504291604.pvjonhWX-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>    s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_add_store':
> >> drivers/s390/block/dcssblk.c:718:(.text+0x1b98): undefined reference to `kill_dax'
> >> s390x-linux-ld: drivers/s390/block/dcssblk.c:719:(.text+0x1bb6): undefined reference to `put_dax'  
>    s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_shared_store':
>    drivers/s390/block/dcssblk.c:417:(.text+0x2c2a): undefined reference to `kill_dax'
>    s390x-linux-ld: drivers/s390/block/dcssblk.c:418:(.text+0x2c48): undefined reference to `put_dax'
>    s390x-linux-ld: drivers/s390/block/dcssblk.o: in function `dcssblk_remove_store':
>    drivers/s390/block/dcssblk.c:803:(.text+0x42e2): undefined reference to `kill_dax'
>    s390x-linux-ld: drivers/s390/block/dcssblk.c:804:(.text+0x4300): undefined reference to `put_dax'

This is because it's now possible to have CONFIG_DCSSBLK=y, but CONFIG_DAX=m
with randconfig, since commit 653d7825c149 ("dcssblk: mark DAX broken,
remove FS_DAX_LIMITED support") moved the "select DAX" from config DCSSBLK
to the new config DCSSBLK_DAX.

To fix this, I think the "select DAX" can be moved back to config DCSSBLK.
It is still ensured that the dcssblk driver does not actually use DAX,
because of the check for CONFIG_DCSSBLK_DAX in dcssblk_setup_dax(). The
remaining calls to kill_dax() etc. will just pass NULL as dax_dev, and are
ignored.

Will fix this via s390 tree.

BTW, Dan, your commit said "remove FS_DAX_LIMITED support", but it does
not really remove all the special handling in common code, only makes
sure that dcssblk (the only user of it) does not use it anymore.

I'm pretty sure that there initially also was a version that did remove
all the now useless FS_DAX_LIMITED handling in common code. Did you leave
that out on purpose, maybe defer until after Alistairs "Remove pXX_devmap
page table bit and pfn_t type" series?
(https://lore.kernel.org/lkml/cover.95ff0627bc727f2bae44bea4c00ad7a83fbbcfac.1739941374.git-series.apopple@nvidia.com/)

From s390/dcssblk perspective, FS_DAX_LIMITED can finally be removed.
We will either switch to proper ZONE_DEVICE if Alistairs series makes it,
and ZONE_DEVICE won't need the extra pagetable bit, or completely remove
DAX support for dcssblk eventually.


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

end of thread, other threads:[~2025-04-29 14:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-29  8:27 drivers/s390/block/dcssblk.c:718:undefined reference to `kill_dax' kernel test robot
2025-04-29 14:52 ` Gerald Schaefer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox