* 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