* [linux-nvdimm:libnvdimm-for-next 5/15] drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax'
@ 2019-06-20 7:07 kbuild test robot
2019-06-20 9:23 ` Pankaj Gupta
0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2019-06-20 7:07 UTC (permalink / raw)
To: Pankaj Gupta; +Cc: kbuild-all, linux-nvdimm
tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git libnvdimm-for-next
head: 3b6047778c09037615e7b919c922081ef1a37a7f
commit: fee8be32c5bab110c34884dfc4a68dd0105d2607 [5/15] libnvdimm: add dax_dev sync flag
config: s390-debug_defconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout fee8be32c5bab110c34884dfc4a68dd0105d2607
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/s390//block/dcssblk.c: In function 'dcssblk_add_store':
>> drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax'
dev_info->dax_dev = alloc_dax(dev_info, dev_info->gd->disk_name,
^~~~~~~~~
In file included from drivers/s390//block/dcssblk.c:23:0:
include/linux/dax.h:43:20: note: declared here
struct dax_device *alloc_dax(void *private, const char *host,
^~~~~~~~~
vim +/alloc_dax +681 drivers/s390//block/dcssblk.c
b2300b9efe Hongjie Yang 2008-10-10 542
b2300b9efe Hongjie Yang 2008-10-10 543 /*
^1da177e4c Linus Torvalds 2005-04-16 544 * device attribute for adding devices
^1da177e4c Linus Torvalds 2005-04-16 545 */
^1da177e4c Linus Torvalds 2005-04-16 546 static ssize_t
e404e274f6 Yani Ioannou 2005-05-17 547 dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
^1da177e4c Linus Torvalds 2005-04-16 548 {
b2300b9efe Hongjie Yang 2008-10-10 549 int rc, i, j, num_of_segments;
^1da177e4c Linus Torvalds 2005-04-16 550 struct dcssblk_dev_info *dev_info;
b2300b9efe Hongjie Yang 2008-10-10 551 struct segment_info *seg_info, *temp;
^1da177e4c Linus Torvalds 2005-04-16 552 char *local_buf;
^1da177e4c Linus Torvalds 2005-04-16 553 unsigned long seg_byte_size;
^1da177e4c Linus Torvalds 2005-04-16 554
^1da177e4c Linus Torvalds 2005-04-16 555 dev_info = NULL;
b2300b9efe Hongjie Yang 2008-10-10 556 seg_info = NULL;
^1da177e4c Linus Torvalds 2005-04-16 557 if (dev != dcssblk_root_dev) {
^1da177e4c Linus Torvalds 2005-04-16 558 rc = -EINVAL;
^1da177e4c Linus Torvalds 2005-04-16 559 goto out_nobuf;
^1da177e4c Linus Torvalds 2005-04-16 560 }
b2300b9efe Hongjie Yang 2008-10-10 561 if ((count < 1) || (buf[0] == '\0') || (buf[0] == '\n')) {
b2300b9efe Hongjie Yang 2008-10-10 562 rc = -ENAMETOOLONG;
b2300b9efe Hongjie Yang 2008-10-10 563 goto out_nobuf;
b2300b9efe Hongjie Yang 2008-10-10 564 }
b2300b9efe Hongjie Yang 2008-10-10 565
^1da177e4c Linus Torvalds 2005-04-16 566 local_buf = kmalloc(count + 1, GFP_KERNEL);
^1da177e4c Linus Torvalds 2005-04-16 567 if (local_buf == NULL) {
^1da177e4c Linus Torvalds 2005-04-16 568 rc = -ENOMEM;
^1da177e4c Linus Torvalds 2005-04-16 569 goto out_nobuf;
^1da177e4c Linus Torvalds 2005-04-16 570 }
b2300b9efe Hongjie Yang 2008-10-10 571
^1da177e4c Linus Torvalds 2005-04-16 572 /*
^1da177e4c Linus Torvalds 2005-04-16 573 * parse input
^1da177e4c Linus Torvalds 2005-04-16 574 */
b2300b9efe Hongjie Yang 2008-10-10 575 num_of_segments = 0;
3a9f9183bd Ameen Ali 2015-02-24 576 for (i = 0; (i < count && (buf[i] != '\0') && (buf[i] != '\n')); i++) {
42cfc6b590 Martin Schwidefsky 2015-08-19 577 for (j = i; j < count &&
42cfc6b590 Martin Schwidefsky 2015-08-19 578 (buf[j] != ':') &&
b2300b9efe Hongjie Yang 2008-10-10 579 (buf[j] != '\0') &&
42cfc6b590 Martin Schwidefsky 2015-08-19 580 (buf[j] != '\n'); j++) {
b2300b9efe Hongjie Yang 2008-10-10 581 local_buf[j-i] = toupper(buf[j]);
b2300b9efe Hongjie Yang 2008-10-10 582 }
b2300b9efe Hongjie Yang 2008-10-10 583 local_buf[j-i] = '\0';
b2300b9efe Hongjie Yang 2008-10-10 584 if (((j - i) == 0) || ((j - i) > 8)) {
^1da177e4c Linus Torvalds 2005-04-16 585 rc = -ENAMETOOLONG;
b2300b9efe Hongjie Yang 2008-10-10 586 goto seg_list_del;
^1da177e4c Linus Torvalds 2005-04-16 587 }
b2300b9efe Hongjie Yang 2008-10-10 588
b2300b9efe Hongjie Yang 2008-10-10 589 rc = dcssblk_load_segment(local_buf, &seg_info);
b2300b9efe Hongjie Yang 2008-10-10 590 if (rc < 0)
b2300b9efe Hongjie Yang 2008-10-10 591 goto seg_list_del;
^1da177e4c Linus Torvalds 2005-04-16 592 /*
^1da177e4c Linus Torvalds 2005-04-16 593 * get a struct dcssblk_dev_info
^1da177e4c Linus Torvalds 2005-04-16 594 */
b2300b9efe Hongjie Yang 2008-10-10 595 if (num_of_segments == 0) {
b2300b9efe Hongjie Yang 2008-10-10 596 dev_info = kzalloc(sizeof(struct dcssblk_dev_info),
b2300b9efe Hongjie Yang 2008-10-10 597 GFP_KERNEL);
^1da177e4c Linus Torvalds 2005-04-16 598 if (dev_info == NULL) {
^1da177e4c Linus Torvalds 2005-04-16 599 rc = -ENOMEM;
^1da177e4c Linus Torvalds 2005-04-16 600 goto out;
^1da177e4c Linus Torvalds 2005-04-16 601 }
^1da177e4c Linus Torvalds 2005-04-16 602 strcpy(dev_info->segment_name, local_buf);
b2300b9efe Hongjie Yang 2008-10-10 603 dev_info->segment_type = seg_info->segment_type;
b2300b9efe Hongjie Yang 2008-10-10 604 INIT_LIST_HEAD(&dev_info->seg_list);
b2300b9efe Hongjie Yang 2008-10-10 605 }
b2300b9efe Hongjie Yang 2008-10-10 606 list_add_tail(&seg_info->lh, &dev_info->seg_list);
b2300b9efe Hongjie Yang 2008-10-10 607 num_of_segments++;
b2300b9efe Hongjie Yang 2008-10-10 608 i = j;
b2300b9efe Hongjie Yang 2008-10-10 609
b2300b9efe Hongjie Yang 2008-10-10 610 if ((buf[j] == '\0') || (buf[j] == '\n'))
b2300b9efe Hongjie Yang 2008-10-10 611 break;
b2300b9efe Hongjie Yang 2008-10-10 612 }
b2300b9efe Hongjie Yang 2008-10-10 613
b2300b9efe Hongjie Yang 2008-10-10 614 /* no trailing colon at the end of the input */
b2300b9efe Hongjie Yang 2008-10-10 615 if ((i > 0) && (buf[i-1] == ':')) {
b2300b9efe Hongjie Yang 2008-10-10 616 rc = -ENAMETOOLONG;
b2300b9efe Hongjie Yang 2008-10-10 617 goto seg_list_del;
b2300b9efe Hongjie Yang 2008-10-10 618 }
b2300b9efe Hongjie Yang 2008-10-10 619 strlcpy(local_buf, buf, i + 1);
b2300b9efe Hongjie Yang 2008-10-10 620 dev_info->num_of_segments = num_of_segments;
b2300b9efe Hongjie Yang 2008-10-10 621 rc = dcssblk_is_continuous(dev_info);
b2300b9efe Hongjie Yang 2008-10-10 622 if (rc < 0)
b2300b9efe Hongjie Yang 2008-10-10 623 goto seg_list_del;
b2300b9efe Hongjie Yang 2008-10-10 624
b2300b9efe Hongjie Yang 2008-10-10 625 dev_info->start = dcssblk_find_lowest_addr(dev_info);
b2300b9efe Hongjie Yang 2008-10-10 626 dev_info->end = dcssblk_find_highest_addr(dev_info);
b2300b9efe Hongjie Yang 2008-10-10 627
ef283688f5 Kees Cook 2014-06-10 628 dev_set_name(&dev_info->dev, "%s", dev_info->segment_name);
^1da177e4c Linus Torvalds 2005-04-16 629 dev_info->dev.release = dcssblk_release_segment;
521b3d790c Sebastian Ott 2012-10-01 630 dev_info->dev.groups = dcssblk_dev_attr_groups;
^1da177e4c Linus Torvalds 2005-04-16 631 INIT_LIST_HEAD(&dev_info->lh);
^1da177e4c Linus Torvalds 2005-04-16 632 dev_info->gd = alloc_disk(DCSSBLK_MINORS_PER_DISK);
^1da177e4c Linus Torvalds 2005-04-16 633 if (dev_info->gd == NULL) {
^1da177e4c Linus Torvalds 2005-04-16 634 rc = -ENOMEM;
b2300b9efe Hongjie Yang 2008-10-10 635 goto seg_list_del;
^1da177e4c Linus Torvalds 2005-04-16 636 }
^1da177e4c Linus Torvalds 2005-04-16 637 dev_info->gd->major = dcssblk_major;
^1da177e4c Linus Torvalds 2005-04-16 638 dev_info->gd->fops = &dcssblk_devops;
^1da177e4c Linus Torvalds 2005-04-16 639 dev_info->dcssblk_queue = blk_alloc_queue(GFP_KERNEL);
^1da177e4c Linus Torvalds 2005-04-16 640 dev_info->gd->queue = dev_info->dcssblk_queue;
^1da177e4c Linus Torvalds 2005-04-16 641 dev_info->gd->private_data = dev_info;
c5411dba58 Heiko Carstens 2008-02-05 642 blk_queue_make_request(dev_info->dcssblk_queue, dcssblk_make_request);
e1defc4ff0 Martin K. Petersen 2009-05-22 643 blk_queue_logical_block_size(dev_info->dcssblk_queue, 4096);
8b904b5b6b Bart Van Assche 2018-03-07 644 blk_queue_flag_set(QUEUE_FLAG_DAX, dev_info->dcssblk_queue);
b2300b9efe Hongjie Yang 2008-10-10 645
^1da177e4c Linus Torvalds 2005-04-16 646 seg_byte_size = (dev_info->end - dev_info->start + 1);
^1da177e4c Linus Torvalds 2005-04-16 647 set_capacity(dev_info->gd, seg_byte_size >> 9); // size in sectors
93098bf015 Hongjie Yang 2008-12-25 648 pr_info("Loaded %s with total size %lu bytes and capacity %lu "
93098bf015 Hongjie Yang 2008-12-25 649 "sectors\n", local_buf, seg_byte_size, seg_byte_size >> 9);
^1da177e4c Linus Torvalds 2005-04-16 650
^1da177e4c Linus Torvalds 2005-04-16 651 dev_info->save_pending = 0;
^1da177e4c Linus Torvalds 2005-04-16 652 dev_info->is_shared = 1;
^1da177e4c Linus Torvalds 2005-04-16 653 dev_info->dev.parent = dcssblk_root_dev;
^1da177e4c Linus Torvalds 2005-04-16 654
^1da177e4c Linus Torvalds 2005-04-16 655 /*
^1da177e4c Linus Torvalds 2005-04-16 656 *get minor, add to list
^1da177e4c Linus Torvalds 2005-04-16 657 */
^1da177e4c Linus Torvalds 2005-04-16 658 down_write(&dcssblk_devices_sem);
b2300b9efe Hongjie Yang 2008-10-10 659 if (dcssblk_get_segment_by_name(local_buf)) {
04f64b5756 Gerald Schaefer 2008-08-21 660 rc = -EEXIST;
b2300b9efe Hongjie Yang 2008-10-10 661 goto release_gd;
04f64b5756 Gerald Schaefer 2008-08-21 662 }
^1da177e4c Linus Torvalds 2005-04-16 663 rc = dcssblk_assign_free_minor(dev_info);
b2300b9efe Hongjie Yang 2008-10-10 664 if (rc)
b2300b9efe Hongjie Yang 2008-10-10 665 goto release_gd;
^1da177e4c Linus Torvalds 2005-04-16 666 sprintf(dev_info->gd->disk_name, "dcssblk%d",
d0591485e1 Gerald Schaefer 2009-06-12 667 dev_info->gd->first_minor);
^1da177e4c Linus Torvalds 2005-04-16 668 list_add_tail(&dev_info->lh, &dcssblk_devices);
^1da177e4c Linus Torvalds 2005-04-16 669
^1da177e4c Linus Torvalds 2005-04-16 670 if (!try_module_get(THIS_MODULE)) {
^1da177e4c Linus Torvalds 2005-04-16 671 rc = -ENODEV;
b2300b9efe Hongjie Yang 2008-10-10 672 goto dev_list_del;
^1da177e4c Linus Torvalds 2005-04-16 673 }
^1da177e4c Linus Torvalds 2005-04-16 674 /*
^1da177e4c Linus Torvalds 2005-04-16 675 * register the device
^1da177e4c Linus Torvalds 2005-04-16 676 */
^1da177e4c Linus Torvalds 2005-04-16 677 rc = device_register(&dev_info->dev);
^1da177e4c Linus Torvalds 2005-04-16 678 if (rc)
521b3d790c Sebastian Ott 2012-10-01 679 goto put_dev;
^1da177e4c Linus Torvalds 2005-04-16 680
7a2765f6e8 Dan Williams 2017-01-26 @681 dev_info->dax_dev = alloc_dax(dev_info, dev_info->gd->disk_name,
7a2765f6e8 Dan Williams 2017-01-26 682 &dcssblk_dax_ops);
7a2765f6e8 Dan Williams 2017-01-26 683 if (!dev_info->dax_dev) {
7a2765f6e8 Dan Williams 2017-01-26 684 rc = -ENOMEM;
7a2765f6e8 Dan Williams 2017-01-26 685 goto put_dev;
7a2765f6e8 Dan Williams 2017-01-26 686 }
7a2765f6e8 Dan Williams 2017-01-26 687
521b3d790c Sebastian Ott 2012-10-01 688 get_device(&dev_info->dev);
fef912bf86 Hannes Reinecke 2018-09-28 689 device_add_disk(&dev_info->dev, dev_info->gd, NULL);
436d1bc7fe Christian Borntraeger 2007-12-04 690
^1da177e4c Linus Torvalds 2005-04-16 691 switch (dev_info->segment_type) {
^1da177e4c Linus Torvalds 2005-04-16 692 case SEG_TYPE_SR:
^1da177e4c Linus Torvalds 2005-04-16 693 case SEG_TYPE_ER:
^1da177e4c Linus Torvalds 2005-04-16 694 case SEG_TYPE_SC:
^1da177e4c Linus Torvalds 2005-04-16 695 set_disk_ro(dev_info->gd,1);
^1da177e4c Linus Torvalds 2005-04-16 696 break;
^1da177e4c Linus Torvalds 2005-04-16 697 default:
^1da177e4c Linus Torvalds 2005-04-16 698 set_disk_ro(dev_info->gd,0);
^1da177e4c Linus Torvalds 2005-04-16 699 break;
^1da177e4c Linus Torvalds 2005-04-16 700 }
^1da177e4c Linus Torvalds 2005-04-16 701 up_write(&dcssblk_devices_sem);
^1da177e4c Linus Torvalds 2005-04-16 702 rc = count;
^1da177e4c Linus Torvalds 2005-04-16 703 goto out;
^1da177e4c Linus Torvalds 2005-04-16 704
521b3d790c Sebastian Ott 2012-10-01 705 put_dev:
^1da177e4c Linus Torvalds 2005-04-16 706 list_del(&dev_info->lh);
1312f40e11 Al Viro 2006-03-12 707 blk_cleanup_queue(dev_info->dcssblk_queue);
^1da177e4c Linus Torvalds 2005-04-16 708 dev_info->gd->queue = NULL;
^1da177e4c Linus Torvalds 2005-04-16 709 put_disk(dev_info->gd);
b2300b9efe Hongjie Yang 2008-10-10 710 list_for_each_entry(seg_info, &dev_info->seg_list, lh) {
b2300b9efe Hongjie Yang 2008-10-10 711 segment_unload(seg_info->segment_name);
b2300b9efe Hongjie Yang 2008-10-10 712 }
^1da177e4c Linus Torvalds 2005-04-16 713 put_device(&dev_info->dev);
^1da177e4c Linus Torvalds 2005-04-16 714 up_write(&dcssblk_devices_sem);
^1da177e4c Linus Torvalds 2005-04-16 715 goto out;
b2300b9efe Hongjie Yang 2008-10-10 716 dev_list_del:
^1da177e4c Linus Torvalds 2005-04-16 717 list_del(&dev_info->lh);
b2300b9efe Hongjie Yang 2008-10-10 718 release_gd:
1312f40e11 Al Viro 2006-03-12 719 blk_cleanup_queue(dev_info->dcssblk_queue);
^1da177e4c Linus Torvalds 2005-04-16 720 dev_info->gd->queue = NULL;
^1da177e4c Linus Torvalds 2005-04-16 721 put_disk(dev_info->gd);
b2300b9efe Hongjie Yang 2008-10-10 722 up_write(&dcssblk_devices_sem);
b2300b9efe Hongjie Yang 2008-10-10 723 seg_list_del:
b2300b9efe Hongjie Yang 2008-10-10 724 if (dev_info == NULL)
b2300b9efe Hongjie Yang 2008-10-10 725 goto out;
b2300b9efe Hongjie Yang 2008-10-10 726 list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) {
b2300b9efe Hongjie Yang 2008-10-10 727 list_del(&seg_info->lh);
b2300b9efe Hongjie Yang 2008-10-10 728 segment_unload(seg_info->segment_name);
b2300b9efe Hongjie Yang 2008-10-10 729 kfree(seg_info);
b2300b9efe Hongjie Yang 2008-10-10 730 }
^1da177e4c Linus Torvalds 2005-04-16 731 kfree(dev_info);
^1da177e4c Linus Torvalds 2005-04-16 732 out:
^1da177e4c Linus Torvalds 2005-04-16 733 kfree(local_buf);
^1da177e4c Linus Torvalds 2005-04-16 734 out_nobuf:
^1da177e4c Linus Torvalds 2005-04-16 735 return rc;
^1da177e4c Linus Torvalds 2005-04-16 736 }
^1da177e4c Linus Torvalds 2005-04-16 737
:::::: The code at line 681 was first introduced by commit
:::::: 7a2765f6e82063f348ebce78c28eceff741689d4 dcssblk: add dax_operations support
:::::: TO: Dan Williams <dan.j.williams@intel.com>
:::::: CC: Dan Williams <dan.j.williams@intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [linux-nvdimm:libnvdimm-for-next 5/15] drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax'
2019-06-20 7:07 [linux-nvdimm:libnvdimm-for-next 5/15] drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax' kbuild test robot
@ 2019-06-20 9:23 ` Pankaj Gupta
0 siblings, 0 replies; 2+ messages in thread
From: Pankaj Gupta @ 2019-06-20 9:23 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-nvdimm
Thanks for the email. Apologies for s390 build failure.
Below patch(untested) should fix this.
Thanks,
Pankaj
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
> libnvdimm-for-next
> head: 3b6047778c09037615e7b919c922081ef1a37a7f
> commit: fee8be32c5bab110c34884dfc4a68dd0105d2607 [5/15] libnvdimm: add
> dax_dev sync flag
> config: s390-debug_defconfig (attached as .config)
> compiler: s390-linux-gcc (GCC) 7.4.0
> reproduce:
> wget
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross
> -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout fee8be32c5bab110c34884dfc4a68dd0105d2607
> # save the attached .config to linux build tree
> GCC_VERSION=7.4.0 make.cross ARCH=s390
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
+++ b/drivers/s390/block/dcssblk.c
@@ -679,7 +679,7 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
goto put_dev;
dev_info->dax_dev = alloc_dax(dev_info, dev_info->gd->disk_name,
- &dcssblk_dax_ops);
+ &dcssblk_dax_ops, DAXDEV_F_SYNC);
>
> All errors (new ones prefixed by >>):
>
> drivers/s390//block/dcssblk.c: In function 'dcssblk_add_store':
> >> drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function
> >> 'alloc_dax'
> dev_info->dax_dev = alloc_dax(dev_info, dev_info->gd->disk_name,
> ^~~~~~~~~
> In file included from drivers/s390//block/dcssblk.c:23:0:
> include/linux/dax.h:43:20: note: declared here
> struct dax_device *alloc_dax(void *private, const char *host,
> ^~~~~~~~~
>
> vim +/alloc_dax +681 drivers/s390//block/dcssblk.c
>
> b2300b9efe Hongjie Yang 2008-10-10 542
> b2300b9efe Hongjie Yang 2008-10-10 543 /*
> ^1da177e4c Linus Torvalds 2005-04-16 544 * device attribute for
> adding devices
> ^1da177e4c Linus Torvalds 2005-04-16 545 */
> ^1da177e4c Linus Torvalds 2005-04-16 546 static ssize_t
> e404e274f6 Yani Ioannou 2005-05-17 547 dcssblk_add_store(struct
> device *dev, struct device_attribute *attr, const char *buf, size_t count)
> ^1da177e4c Linus Torvalds 2005-04-16 548 {
> b2300b9efe Hongjie Yang 2008-10-10 549 int rc, i, j,
> num_of_segments;
> ^1da177e4c Linus Torvalds 2005-04-16 550 struct dcssblk_dev_info
> *dev_info;
> b2300b9efe Hongjie Yang 2008-10-10 551 struct segment_info
> *seg_info, *temp;
> ^1da177e4c Linus Torvalds 2005-04-16 552 char *local_buf;
> ^1da177e4c Linus Torvalds 2005-04-16 553 unsigned long
> seg_byte_size;
> ^1da177e4c Linus Torvalds 2005-04-16 554
> ^1da177e4c Linus Torvalds 2005-04-16 555 dev_info = NULL;
> b2300b9efe Hongjie Yang 2008-10-10 556 seg_info = NULL;
> ^1da177e4c Linus Torvalds 2005-04-16 557 if (dev !=
> dcssblk_root_dev) {
> ^1da177e4c Linus Torvalds 2005-04-16 558 rc = -EINVAL;
> ^1da177e4c Linus Torvalds 2005-04-16 559 goto out_nobuf;
> ^1da177e4c Linus Torvalds 2005-04-16 560 }
> b2300b9efe Hongjie Yang 2008-10-10 561 if ((count < 1) || (buf[0]
> == '\0') || (buf[0] == '\n')) {
> b2300b9efe Hongjie Yang 2008-10-10 562 rc = -ENAMETOOLONG;
> b2300b9efe Hongjie Yang 2008-10-10 563 goto out_nobuf;
> b2300b9efe Hongjie Yang 2008-10-10 564 }
> b2300b9efe Hongjie Yang 2008-10-10 565
> ^1da177e4c Linus Torvalds 2005-04-16 566 local_buf = kmalloc(count
> + 1, GFP_KERNEL);
> ^1da177e4c Linus Torvalds 2005-04-16 567 if (local_buf == NULL) {
> ^1da177e4c Linus Torvalds 2005-04-16 568 rc = -ENOMEM;
> ^1da177e4c Linus Torvalds 2005-04-16 569 goto out_nobuf;
> ^1da177e4c Linus Torvalds 2005-04-16 570 }
> b2300b9efe Hongjie Yang 2008-10-10 571
> ^1da177e4c Linus Torvalds 2005-04-16 572 /*
> ^1da177e4c Linus Torvalds 2005-04-16 573 * parse input
> ^1da177e4c Linus Torvalds 2005-04-16 574 */
> b2300b9efe Hongjie Yang 2008-10-10 575 num_of_segments = 0;
> 3a9f9183bd Ameen Ali 2015-02-24 576 for (i = 0; (i < count &&
> (buf[i] != '\0') && (buf[i] != '\n')); i++) {
> 42cfc6b590 Martin Schwidefsky 2015-08-19 577 for (j = i; j < count &&
> 42cfc6b590 Martin Schwidefsky 2015-08-19 578 (buf[j] != ':') &&
> b2300b9efe Hongjie Yang 2008-10-10 579 (buf[j] != '\0') &&
> 42cfc6b590 Martin Schwidefsky 2015-08-19 580 (buf[j] != '\n'); j++) {
> b2300b9efe Hongjie Yang 2008-10-10 581 local_buf[j-i] =
> toupper(buf[j]);
> b2300b9efe Hongjie Yang 2008-10-10 582 }
> b2300b9efe Hongjie Yang 2008-10-10 583 local_buf[j-i] = '\0';
> b2300b9efe Hongjie Yang 2008-10-10 584 if (((j - i) == 0) || ((j
> - i) > 8)) {
> ^1da177e4c Linus Torvalds 2005-04-16 585 rc = -ENAMETOOLONG;
> b2300b9efe Hongjie Yang 2008-10-10 586 goto seg_list_del;
> ^1da177e4c Linus Torvalds 2005-04-16 587 }
> b2300b9efe Hongjie Yang 2008-10-10 588
> b2300b9efe Hongjie Yang 2008-10-10 589 rc =
> dcssblk_load_segment(local_buf, &seg_info);
> b2300b9efe Hongjie Yang 2008-10-10 590 if (rc < 0)
> b2300b9efe Hongjie Yang 2008-10-10 591 goto seg_list_del;
> ^1da177e4c Linus Torvalds 2005-04-16 592 /*
> ^1da177e4c Linus Torvalds 2005-04-16 593 * get a struct
> dcssblk_dev_info
> ^1da177e4c Linus Torvalds 2005-04-16 594 */
> b2300b9efe Hongjie Yang 2008-10-10 595 if (num_of_segments == 0)
> {
> b2300b9efe Hongjie Yang 2008-10-10 596 dev_info =
> kzalloc(sizeof(struct dcssblk_dev_info),
> b2300b9efe Hongjie Yang 2008-10-10 597 GFP_KERNEL);
> ^1da177e4c Linus Torvalds 2005-04-16 598 if (dev_info == NULL) {
> ^1da177e4c Linus Torvalds 2005-04-16 599 rc = -ENOMEM;
> ^1da177e4c Linus Torvalds 2005-04-16 600 goto out;
> ^1da177e4c Linus Torvalds 2005-04-16 601 }
> ^1da177e4c Linus Torvalds 2005-04-16 602
> strcpy(dev_info->segment_name, local_buf);
> b2300b9efe Hongjie Yang 2008-10-10 603 dev_info->segment_type =
> seg_info->segment_type;
> b2300b9efe Hongjie Yang 2008-10-10 604
> INIT_LIST_HEAD(&dev_info->seg_list);
> b2300b9efe Hongjie Yang 2008-10-10 605 }
> b2300b9efe Hongjie Yang 2008-10-10 606
> list_add_tail(&seg_info->lh, &dev_info->seg_list);
> b2300b9efe Hongjie Yang 2008-10-10 607 num_of_segments++;
> b2300b9efe Hongjie Yang 2008-10-10 608 i = j;
> b2300b9efe Hongjie Yang 2008-10-10 609
> b2300b9efe Hongjie Yang 2008-10-10 610 if ((buf[j] == '\0') ||
> (buf[j] == '\n'))
> b2300b9efe Hongjie Yang 2008-10-10 611 break;
> b2300b9efe Hongjie Yang 2008-10-10 612 }
> b2300b9efe Hongjie Yang 2008-10-10 613
> b2300b9efe Hongjie Yang 2008-10-10 614 /* no trailing colon at
> the end of the input */
> b2300b9efe Hongjie Yang 2008-10-10 615 if ((i > 0) && (buf[i-1]
> == ':')) {
> b2300b9efe Hongjie Yang 2008-10-10 616 rc = -ENAMETOOLONG;
> b2300b9efe Hongjie Yang 2008-10-10 617 goto seg_list_del;
> b2300b9efe Hongjie Yang 2008-10-10 618 }
> b2300b9efe Hongjie Yang 2008-10-10 619 strlcpy(local_buf, buf, i
> + 1);
> b2300b9efe Hongjie Yang 2008-10-10 620 dev_info->num_of_segments
> = num_of_segments;
> b2300b9efe Hongjie Yang 2008-10-10 621 rc =
> dcssblk_is_continuous(dev_info);
> b2300b9efe Hongjie Yang 2008-10-10 622 if (rc < 0)
> b2300b9efe Hongjie Yang 2008-10-10 623 goto seg_list_del;
> b2300b9efe Hongjie Yang 2008-10-10 624
> b2300b9efe Hongjie Yang 2008-10-10 625 dev_info->start =
> dcssblk_find_lowest_addr(dev_info);
> b2300b9efe Hongjie Yang 2008-10-10 626 dev_info->end =
> dcssblk_find_highest_addr(dev_info);
> b2300b9efe Hongjie Yang 2008-10-10 627
> ef283688f5 Kees Cook 2014-06-10 628
> dev_set_name(&dev_info->dev, "%s", dev_info->segment_name);
> ^1da177e4c Linus Torvalds 2005-04-16 629 dev_info->dev.release =
> dcssblk_release_segment;
> 521b3d790c Sebastian Ott 2012-10-01 630 dev_info->dev.groups =
> dcssblk_dev_attr_groups;
> ^1da177e4c Linus Torvalds 2005-04-16 631
> INIT_LIST_HEAD(&dev_info->lh);
> ^1da177e4c Linus Torvalds 2005-04-16 632 dev_info->gd =
> alloc_disk(DCSSBLK_MINORS_PER_DISK);
> ^1da177e4c Linus Torvalds 2005-04-16 633 if (dev_info->gd == NULL)
> {
> ^1da177e4c Linus Torvalds 2005-04-16 634 rc = -ENOMEM;
> b2300b9efe Hongjie Yang 2008-10-10 635 goto seg_list_del;
> ^1da177e4c Linus Torvalds 2005-04-16 636 }
> ^1da177e4c Linus Torvalds 2005-04-16 637 dev_info->gd->major =
> dcssblk_major;
> ^1da177e4c Linus Torvalds 2005-04-16 638 dev_info->gd->fops =
> &dcssblk_devops;
> ^1da177e4c Linus Torvalds 2005-04-16 639 dev_info->dcssblk_queue =
> blk_alloc_queue(GFP_KERNEL);
> ^1da177e4c Linus Torvalds 2005-04-16 640 dev_info->gd->queue =
> dev_info->dcssblk_queue;
> ^1da177e4c Linus Torvalds 2005-04-16 641 dev_info->gd->private_data
> = dev_info;
> c5411dba58 Heiko Carstens 2008-02-05 642
> blk_queue_make_request(dev_info->dcssblk_queue, dcssblk_make_request);
> e1defc4ff0 Martin K. Petersen 2009-05-22 643
> blk_queue_logical_block_size(dev_info->dcssblk_queue, 4096);
> 8b904b5b6b Bart Van Assche 2018-03-07 644
> blk_queue_flag_set(QUEUE_FLAG_DAX, dev_info->dcssblk_queue);
> b2300b9efe Hongjie Yang 2008-10-10 645
> ^1da177e4c Linus Torvalds 2005-04-16 646 seg_byte_size =
> (dev_info->end - dev_info->start + 1);
> ^1da177e4c Linus Torvalds 2005-04-16 647 set_capacity(dev_info->gd,
> seg_byte_size >> 9); // size in sectors
> 93098bf015 Hongjie Yang 2008-12-25 648 pr_info("Loaded %s with
> total size %lu bytes and capacity %lu "
> 93098bf015 Hongjie Yang 2008-12-25 649 "sectors\n", local_buf,
> seg_byte_size, seg_byte_size >> 9);
> ^1da177e4c Linus Torvalds 2005-04-16 650
> ^1da177e4c Linus Torvalds 2005-04-16 651 dev_info->save_pending =
> 0;
> ^1da177e4c Linus Torvalds 2005-04-16 652 dev_info->is_shared = 1;
> ^1da177e4c Linus Torvalds 2005-04-16 653 dev_info->dev.parent =
> dcssblk_root_dev;
> ^1da177e4c Linus Torvalds 2005-04-16 654
> ^1da177e4c Linus Torvalds 2005-04-16 655 /*
> ^1da177e4c Linus Torvalds 2005-04-16 656 *get minor, add to list
> ^1da177e4c Linus Torvalds 2005-04-16 657 */
> ^1da177e4c Linus Torvalds 2005-04-16 658
> down_write(&dcssblk_devices_sem);
> b2300b9efe Hongjie Yang 2008-10-10 659 if
> (dcssblk_get_segment_by_name(local_buf)) {
> 04f64b5756 Gerald Schaefer 2008-08-21 660 rc = -EEXIST;
> b2300b9efe Hongjie Yang 2008-10-10 661 goto release_gd;
> 04f64b5756 Gerald Schaefer 2008-08-21 662 }
> ^1da177e4c Linus Torvalds 2005-04-16 663 rc =
> dcssblk_assign_free_minor(dev_info);
> b2300b9efe Hongjie Yang 2008-10-10 664 if (rc)
> b2300b9efe Hongjie Yang 2008-10-10 665 goto release_gd;
> ^1da177e4c Linus Torvalds 2005-04-16 666
> sprintf(dev_info->gd->disk_name, "dcssblk%d",
> d0591485e1 Gerald Schaefer 2009-06-12 667
> dev_info->gd->first_minor);
> ^1da177e4c Linus Torvalds 2005-04-16 668
> list_add_tail(&dev_info->lh, &dcssblk_devices);
> ^1da177e4c Linus Torvalds 2005-04-16 669
> ^1da177e4c Linus Torvalds 2005-04-16 670 if
> (!try_module_get(THIS_MODULE)) {
> ^1da177e4c Linus Torvalds 2005-04-16 671 rc = -ENODEV;
> b2300b9efe Hongjie Yang 2008-10-10 672 goto dev_list_del;
> ^1da177e4c Linus Torvalds 2005-04-16 673 }
> ^1da177e4c Linus Torvalds 2005-04-16 674 /*
> ^1da177e4c Linus Torvalds 2005-04-16 675 * register the device
> ^1da177e4c Linus Torvalds 2005-04-16 676 */
> ^1da177e4c Linus Torvalds 2005-04-16 677 rc =
> device_register(&dev_info->dev);
> ^1da177e4c Linus Torvalds 2005-04-16 678 if (rc)
> 521b3d790c Sebastian Ott 2012-10-01 679 goto put_dev;
> ^1da177e4c Linus Torvalds 2005-04-16 680
> 7a2765f6e8 Dan Williams 2017-01-26 @681 dev_info->dax_dev =
> alloc_dax(dev_info, dev_info->gd->disk_name,
> 7a2765f6e8 Dan Williams 2017-01-26 682 &dcssblk_dax_ops);
> 7a2765f6e8 Dan Williams 2017-01-26 683 if (!dev_info->dax_dev) {
> 7a2765f6e8 Dan Williams 2017-01-26 684 rc = -ENOMEM;
> 7a2765f6e8 Dan Williams 2017-01-26 685 goto put_dev;
> 7a2765f6e8 Dan Williams 2017-01-26 686 }
> 7a2765f6e8 Dan Williams 2017-01-26 687
> 521b3d790c Sebastian Ott 2012-10-01 688
> get_device(&dev_info->dev);
> fef912bf86 Hannes Reinecke 2018-09-28 689
> device_add_disk(&dev_info->dev, dev_info->gd, NULL);
> 436d1bc7fe Christian Borntraeger 2007-12-04 690
> ^1da177e4c Linus Torvalds 2005-04-16 691 switch
> (dev_info->segment_type) {
> ^1da177e4c Linus Torvalds 2005-04-16 692 case SEG_TYPE_SR:
> ^1da177e4c Linus Torvalds 2005-04-16 693 case SEG_TYPE_ER:
> ^1da177e4c Linus Torvalds 2005-04-16 694 case SEG_TYPE_SC:
> ^1da177e4c Linus Torvalds 2005-04-16 695
> set_disk_ro(dev_info->gd,1);
> ^1da177e4c Linus Torvalds 2005-04-16 696 break;
> ^1da177e4c Linus Torvalds 2005-04-16 697 default:
> ^1da177e4c Linus Torvalds 2005-04-16 698
> set_disk_ro(dev_info->gd,0);
> ^1da177e4c Linus Torvalds 2005-04-16 699 break;
> ^1da177e4c Linus Torvalds 2005-04-16 700 }
> ^1da177e4c Linus Torvalds 2005-04-16 701
> up_write(&dcssblk_devices_sem);
> ^1da177e4c Linus Torvalds 2005-04-16 702 rc = count;
> ^1da177e4c Linus Torvalds 2005-04-16 703 goto out;
> ^1da177e4c Linus Torvalds 2005-04-16 704
> 521b3d790c Sebastian Ott 2012-10-01 705 put_dev:
> ^1da177e4c Linus Torvalds 2005-04-16 706 list_del(&dev_info->lh);
> 1312f40e11 Al Viro 2006-03-12 707
> blk_cleanup_queue(dev_info->dcssblk_queue);
> ^1da177e4c Linus Torvalds 2005-04-16 708 dev_info->gd->queue =
> NULL;
> ^1da177e4c Linus Torvalds 2005-04-16 709 put_disk(dev_info->gd);
> b2300b9efe Hongjie Yang 2008-10-10 710
> list_for_each_entry(seg_info, &dev_info->seg_list, lh) {
> b2300b9efe Hongjie Yang 2008-10-10 711
> segment_unload(seg_info->segment_name);
> b2300b9efe Hongjie Yang 2008-10-10 712 }
> ^1da177e4c Linus Torvalds 2005-04-16 713
> put_device(&dev_info->dev);
> ^1da177e4c Linus Torvalds 2005-04-16 714
> up_write(&dcssblk_devices_sem);
> ^1da177e4c Linus Torvalds 2005-04-16 715 goto out;
> b2300b9efe Hongjie Yang 2008-10-10 716 dev_list_del:
> ^1da177e4c Linus Torvalds 2005-04-16 717 list_del(&dev_info->lh);
> b2300b9efe Hongjie Yang 2008-10-10 718 release_gd:
> 1312f40e11 Al Viro 2006-03-12 719
> blk_cleanup_queue(dev_info->dcssblk_queue);
> ^1da177e4c Linus Torvalds 2005-04-16 720 dev_info->gd->queue =
> NULL;
> ^1da177e4c Linus Torvalds 2005-04-16 721 put_disk(dev_info->gd);
> b2300b9efe Hongjie Yang 2008-10-10 722
> up_write(&dcssblk_devices_sem);
> b2300b9efe Hongjie Yang 2008-10-10 723 seg_list_del:
> b2300b9efe Hongjie Yang 2008-10-10 724 if (dev_info == NULL)
> b2300b9efe Hongjie Yang 2008-10-10 725 goto out;
> b2300b9efe Hongjie Yang 2008-10-10 726
> list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) {
> b2300b9efe Hongjie Yang 2008-10-10 727 list_del(&seg_info->lh);
> b2300b9efe Hongjie Yang 2008-10-10 728
> segment_unload(seg_info->segment_name);
> b2300b9efe Hongjie Yang 2008-10-10 729 kfree(seg_info);
> b2300b9efe Hongjie Yang 2008-10-10 730 }
> ^1da177e4c Linus Torvalds 2005-04-16 731 kfree(dev_info);
> ^1da177e4c Linus Torvalds 2005-04-16 732 out:
> ^1da177e4c Linus Torvalds 2005-04-16 733 kfree(local_buf);
> ^1da177e4c Linus Torvalds 2005-04-16 734 out_nobuf:
> ^1da177e4c Linus Torvalds 2005-04-16 735 return rc;
> ^1da177e4c Linus Torvalds 2005-04-16 736 }
> ^1da177e4c Linus Torvalds 2005-04-16 737
>
> :::::: The code at line 681 was first introduced by commit
> :::::: 7a2765f6e82063f348ebce78c28eceff741689d4 dcssblk: add dax_operations
> support
>
> :::::: TO: Dan Williams <dan.j.williams@intel.com>
> :::::: CC: Dan Williams <dan.j.williams@intel.com>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-20 9:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-20 7:07 [linux-nvdimm:libnvdimm-for-next 5/15] drivers/s390//block/dcssblk.c:681:22: error: too few arguments to function 'alloc_dax' kbuild test robot
2019-06-20 9:23 ` Pankaj Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox