* [nvdimm:libnvdimm-pending 15/22] drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
@ 2020-07-13 12:24 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-07-13 12:24 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 7000 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 17c5211450a8fb964757f9f51cae1dc9f973e5ee
commit: 79aac412b5c4763acdd1b7eba01aae8be5b6f22d [15/22] device-dax: Add an allocation interface for device-dax instances
config: x86_64-randconfig-m001-20200710 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
# https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/commit/?id=79aac412b5c4763acdd1b7eba01aae8be5b6f22d
git remote add nvdimm https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git
git remote update nvdimm
git checkout 79aac412b5c4763acdd1b7eba01aae8be5b6f22d
vim +/ERR_PTR +564 drivers/dax/bus.c
0997a0b7870fef Dan Williams 2020-01-06 481 struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data)
9567da0b408a25 Dan Williams 2017-07-12 482 {
0997a0b7870fef Dan Williams 2020-01-06 483 struct dax_region *dax_region = data->dax_region;
9567da0b408a25 Dan Williams 2017-07-12 484 struct device *parent = dax_region->dev;
9567da0b408a25 Dan Williams 2017-07-12 485 struct dax_device *dax_dev;
9567da0b408a25 Dan Williams 2017-07-12 486 struct dev_dax *dev_dax;
9567da0b408a25 Dan Williams 2017-07-12 487 struct inode *inode;
9567da0b408a25 Dan Williams 2017-07-12 488 struct device *dev;
79aac412b5c476 Dan Williams 2020-01-08 489 int rc;
9567da0b408a25 Dan Williams 2017-07-12 490
0997a0b7870fef Dan Williams 2020-01-06 491 if (data->id < 0)
9567da0b408a25 Dan Williams 2017-07-12 492 return ERR_PTR(-EINVAL);
9567da0b408a25 Dan Williams 2017-07-12 493
9567da0b408a25 Dan Williams 2017-07-12 494 dev_dax = kzalloc(sizeof(*dev_dax), GFP_KERNEL);
9567da0b408a25 Dan Williams 2017-07-12 495 if (!dev_dax)
9567da0b408a25 Dan Williams 2017-07-12 496 return ERR_PTR(-ENOMEM);
9567da0b408a25 Dan Williams 2017-07-12 497
79aac412b5c476 Dan Williams 2020-01-08 498 dev_dax->region = dax_region;
79aac412b5c476 Dan Williams 2020-01-08 499 dev = &dev_dax->dev;
79aac412b5c476 Dan Williams 2020-01-08 500 device_initialize(dev);
79aac412b5c476 Dan Williams 2020-01-08 501 dev_set_name(dev, "dax%d.%d", dax_region->id, data->id);
79aac412b5c476 Dan Williams 2020-01-08 502
79aac412b5c476 Dan Williams 2020-01-08 503 rc = alloc_dev_dax_range(dev_dax, data->size);
79aac412b5c476 Dan Williams 2020-01-08 504 if (rc)
79aac412b5c476 Dan Williams 2020-01-08 505 goto err_range;
79aac412b5c476 Dan Williams 2020-01-08 506
84cb8b1780cc7b Dan Williams 2020-01-06 507 if (data->pgmap) {
79aac412b5c476 Dan Williams 2020-01-08 508 dev_WARN_ONCE(parent, !is_static(dax_region),
79aac412b5c476 Dan Williams 2020-01-08 509 "custom dev_pagemap requires a static dax_region\n");
79aac412b5c476 Dan Williams 2020-01-08 510
84cb8b1780cc7b Dan Williams 2020-01-06 511 dev_dax->pgmap = kmemdup(data->pgmap,
84cb8b1780cc7b Dan Williams 2020-01-06 512 sizeof(struct dev_pagemap), GFP_KERNEL);
84cb8b1780cc7b Dan Williams 2020-01-06 513 if (!dev_dax->pgmap)
84cb8b1780cc7b Dan Williams 2020-01-06 514 goto err_pgmap;
Needs an "rc = -ENOMEM;"
84cb8b1780cc7b Dan Williams 2020-01-06 515 }
89ec9f2cfa36cc Dan Williams 2018-10-29 516
9567da0b408a25 Dan Williams 2017-07-12 517 /*
9567da0b408a25 Dan Williams 2017-07-12 518 * No 'host' or dax_operations since there is no access to this
9567da0b408a25 Dan Williams 2017-07-12 519 * device outside of mmap of the resulting character device.
9567da0b408a25 Dan Williams 2017-07-12 520 */
fefc1d97fa4b5e Pankaj Gupta 2019-07-05 521 dax_dev = alloc_dax(dev_dax, NULL, NULL, DAXDEV_F_SYNC);
4e4ced93794acb Vivek Goyal 2020-04-01 522 if (IS_ERR(dax_dev)) {
4e4ced93794acb Vivek Goyal 2020-04-01 523 rc = PTR_ERR(dax_dev);
84cb8b1780cc7b Dan Williams 2020-01-06 524 goto err_alloc_dax;
4e4ced93794acb Vivek Goyal 2020-04-01 525 }
9567da0b408a25 Dan Williams 2017-07-12 526
9567da0b408a25 Dan Williams 2017-07-12 527 /* a device_dax instance is dead while the driver is not attached */
9567da0b408a25 Dan Williams 2017-07-12 528 kill_dax(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 529
84cb8b1780cc7b Dan Williams 2020-01-06 530 /* from here on we're committed to teardown via dev_dax_release() */
9567da0b408a25 Dan Williams 2017-07-12 531 dev_dax->dax_dev = dax_dev;
8fc5c73554db0a Dan Williams 2018-11-09 532 dev_dax->target_node = dax_region->target_node;
9567da0b408a25 Dan Williams 2017-07-12 533 kref_get(&dax_region->kref);
9567da0b408a25 Dan Williams 2017-07-12 534
9567da0b408a25 Dan Williams 2017-07-12 535 inode = dax_inode(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 536 dev->devt = inode->i_rdev;
0997a0b7870fef Dan Williams 2020-01-06 537 if (data->subsys == DEV_DAX_BUS)
9567da0b408a25 Dan Williams 2017-07-12 538 dev->bus = &dax_bus_type;
730926c3b09989 Dan Williams 2017-07-16 539 else
730926c3b09989 Dan Williams 2017-07-16 540 dev->class = dax_class;
9567da0b408a25 Dan Williams 2017-07-12 541 dev->parent = parent;
770619a9510634 Dan Williams 2019-11-12 542 dev->type = &dev_dax_type;
9567da0b408a25 Dan Williams 2017-07-12 543
9567da0b408a25 Dan Williams 2017-07-12 544 rc = device_add(dev);
9567da0b408a25 Dan Williams 2017-07-12 545 if (rc) {
9567da0b408a25 Dan Williams 2017-07-12 546 kill_dev_dax(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 547 put_device(dev);
9567da0b408a25 Dan Williams 2017-07-12 548 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 549 }
9567da0b408a25 Dan Williams 2017-07-12 550
9567da0b408a25 Dan Williams 2017-07-12 551 rc = devm_add_action_or_reset(dax_region->dev, unregister_dev_dax, dev);
9567da0b408a25 Dan Williams 2017-07-12 552 if (rc)
9567da0b408a25 Dan Williams 2017-07-12 553 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 554
9567da0b408a25 Dan Williams 2017-07-12 555 return dev_dax;
79aac412b5c476 Dan Williams 2020-01-08 556
84cb8b1780cc7b Dan Williams 2020-01-06 557 err_alloc_dax:
84cb8b1780cc7b Dan Williams 2020-01-06 558 kfree(dev_dax->pgmap);
84cb8b1780cc7b Dan Williams 2020-01-06 559 err_pgmap:
79aac412b5c476 Dan Williams 2020-01-08 560 free_dev_dax_range(dev_dax);
79aac412b5c476 Dan Williams 2020-01-08 561 err_range:
9567da0b408a25 Dan Williams 2017-07-12 562 kfree(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 563
9567da0b408a25 Dan Williams 2017-07-12 @564 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 565 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36754 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [nvdimm:libnvdimm-pending 15/22] drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
@ 2020-07-13 12:24 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-07-13 12:24 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7000 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 17c5211450a8fb964757f9f51cae1dc9f973e5ee
commit: 79aac412b5c4763acdd1b7eba01aae8be5b6f22d [15/22] device-dax: Add an allocation interface for device-dax instances
config: x86_64-randconfig-m001-20200710 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
# https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/commit/?id=79aac412b5c4763acdd1b7eba01aae8be5b6f22d
git remote add nvdimm https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git
git remote update nvdimm
git checkout 79aac412b5c4763acdd1b7eba01aae8be5b6f22d
vim +/ERR_PTR +564 drivers/dax/bus.c
0997a0b7870fef Dan Williams 2020-01-06 481 struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data)
9567da0b408a25 Dan Williams 2017-07-12 482 {
0997a0b7870fef Dan Williams 2020-01-06 483 struct dax_region *dax_region = data->dax_region;
9567da0b408a25 Dan Williams 2017-07-12 484 struct device *parent = dax_region->dev;
9567da0b408a25 Dan Williams 2017-07-12 485 struct dax_device *dax_dev;
9567da0b408a25 Dan Williams 2017-07-12 486 struct dev_dax *dev_dax;
9567da0b408a25 Dan Williams 2017-07-12 487 struct inode *inode;
9567da0b408a25 Dan Williams 2017-07-12 488 struct device *dev;
79aac412b5c476 Dan Williams 2020-01-08 489 int rc;
9567da0b408a25 Dan Williams 2017-07-12 490
0997a0b7870fef Dan Williams 2020-01-06 491 if (data->id < 0)
9567da0b408a25 Dan Williams 2017-07-12 492 return ERR_PTR(-EINVAL);
9567da0b408a25 Dan Williams 2017-07-12 493
9567da0b408a25 Dan Williams 2017-07-12 494 dev_dax = kzalloc(sizeof(*dev_dax), GFP_KERNEL);
9567da0b408a25 Dan Williams 2017-07-12 495 if (!dev_dax)
9567da0b408a25 Dan Williams 2017-07-12 496 return ERR_PTR(-ENOMEM);
9567da0b408a25 Dan Williams 2017-07-12 497
79aac412b5c476 Dan Williams 2020-01-08 498 dev_dax->region = dax_region;
79aac412b5c476 Dan Williams 2020-01-08 499 dev = &dev_dax->dev;
79aac412b5c476 Dan Williams 2020-01-08 500 device_initialize(dev);
79aac412b5c476 Dan Williams 2020-01-08 501 dev_set_name(dev, "dax%d.%d", dax_region->id, data->id);
79aac412b5c476 Dan Williams 2020-01-08 502
79aac412b5c476 Dan Williams 2020-01-08 503 rc = alloc_dev_dax_range(dev_dax, data->size);
79aac412b5c476 Dan Williams 2020-01-08 504 if (rc)
79aac412b5c476 Dan Williams 2020-01-08 505 goto err_range;
79aac412b5c476 Dan Williams 2020-01-08 506
84cb8b1780cc7b Dan Williams 2020-01-06 507 if (data->pgmap) {
79aac412b5c476 Dan Williams 2020-01-08 508 dev_WARN_ONCE(parent, !is_static(dax_region),
79aac412b5c476 Dan Williams 2020-01-08 509 "custom dev_pagemap requires a static dax_region\n");
79aac412b5c476 Dan Williams 2020-01-08 510
84cb8b1780cc7b Dan Williams 2020-01-06 511 dev_dax->pgmap = kmemdup(data->pgmap,
84cb8b1780cc7b Dan Williams 2020-01-06 512 sizeof(struct dev_pagemap), GFP_KERNEL);
84cb8b1780cc7b Dan Williams 2020-01-06 513 if (!dev_dax->pgmap)
84cb8b1780cc7b Dan Williams 2020-01-06 514 goto err_pgmap;
Needs an "rc = -ENOMEM;"
84cb8b1780cc7b Dan Williams 2020-01-06 515 }
89ec9f2cfa36cc Dan Williams 2018-10-29 516
9567da0b408a25 Dan Williams 2017-07-12 517 /*
9567da0b408a25 Dan Williams 2017-07-12 518 * No 'host' or dax_operations since there is no access to this
9567da0b408a25 Dan Williams 2017-07-12 519 * device outside of mmap of the resulting character device.
9567da0b408a25 Dan Williams 2017-07-12 520 */
fefc1d97fa4b5e Pankaj Gupta 2019-07-05 521 dax_dev = alloc_dax(dev_dax, NULL, NULL, DAXDEV_F_SYNC);
4e4ced93794acb Vivek Goyal 2020-04-01 522 if (IS_ERR(dax_dev)) {
4e4ced93794acb Vivek Goyal 2020-04-01 523 rc = PTR_ERR(dax_dev);
84cb8b1780cc7b Dan Williams 2020-01-06 524 goto err_alloc_dax;
4e4ced93794acb Vivek Goyal 2020-04-01 525 }
9567da0b408a25 Dan Williams 2017-07-12 526
9567da0b408a25 Dan Williams 2017-07-12 527 /* a device_dax instance is dead while the driver is not attached */
9567da0b408a25 Dan Williams 2017-07-12 528 kill_dax(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 529
84cb8b1780cc7b Dan Williams 2020-01-06 530 /* from here on we're committed to teardown via dev_dax_release() */
9567da0b408a25 Dan Williams 2017-07-12 531 dev_dax->dax_dev = dax_dev;
8fc5c73554db0a Dan Williams 2018-11-09 532 dev_dax->target_node = dax_region->target_node;
9567da0b408a25 Dan Williams 2017-07-12 533 kref_get(&dax_region->kref);
9567da0b408a25 Dan Williams 2017-07-12 534
9567da0b408a25 Dan Williams 2017-07-12 535 inode = dax_inode(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 536 dev->devt = inode->i_rdev;
0997a0b7870fef Dan Williams 2020-01-06 537 if (data->subsys == DEV_DAX_BUS)
9567da0b408a25 Dan Williams 2017-07-12 538 dev->bus = &dax_bus_type;
730926c3b09989 Dan Williams 2017-07-16 539 else
730926c3b09989 Dan Williams 2017-07-16 540 dev->class = dax_class;
9567da0b408a25 Dan Williams 2017-07-12 541 dev->parent = parent;
770619a9510634 Dan Williams 2019-11-12 542 dev->type = &dev_dax_type;
9567da0b408a25 Dan Williams 2017-07-12 543
9567da0b408a25 Dan Williams 2017-07-12 544 rc = device_add(dev);
9567da0b408a25 Dan Williams 2017-07-12 545 if (rc) {
9567da0b408a25 Dan Williams 2017-07-12 546 kill_dev_dax(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 547 put_device(dev);
9567da0b408a25 Dan Williams 2017-07-12 548 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 549 }
9567da0b408a25 Dan Williams 2017-07-12 550
9567da0b408a25 Dan Williams 2017-07-12 551 rc = devm_add_action_or_reset(dax_region->dev, unregister_dev_dax, dev);
9567da0b408a25 Dan Williams 2017-07-12 552 if (rc)
9567da0b408a25 Dan Williams 2017-07-12 553 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 554
9567da0b408a25 Dan Williams 2017-07-12 555 return dev_dax;
79aac412b5c476 Dan Williams 2020-01-08 556
84cb8b1780cc7b Dan Williams 2020-01-06 557 err_alloc_dax:
84cb8b1780cc7b Dan Williams 2020-01-06 558 kfree(dev_dax->pgmap);
84cb8b1780cc7b Dan Williams 2020-01-06 559 err_pgmap:
79aac412b5c476 Dan Williams 2020-01-08 560 free_dev_dax_range(dev_dax);
79aac412b5c476 Dan Williams 2020-01-08 561 err_range:
9567da0b408a25 Dan Williams 2017-07-12 562 kfree(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 563
9567da0b408a25 Dan Williams 2017-07-12 @564 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 565 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36754 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [nvdimm:libnvdimm-pending 15/22] drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
@ 2020-07-10 17:39 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-07-10 17:39 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 7554 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Dan Williams <dan.j.williams@intel.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 17c5211450a8fb964757f9f51cae1dc9f973e5ee
commit: 79aac412b5c4763acdd1b7eba01aae8be5b6f22d [15/22] device-dax: Add an allocation interface for device-dax instances
:::::: branch date: 13 hours ago
:::::: commit date: 16 hours ago
config: x86_64-randconfig-m001-20200710 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR'
# https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/commit/?id=79aac412b5c4763acdd1b7eba01aae8be5b6f22d
git remote add nvdimm https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git
git remote update nvdimm
git checkout 79aac412b5c4763acdd1b7eba01aae8be5b6f22d
vim +/ERR_PTR +564 drivers/dax/bus.c
9567da0b408a25 Dan Williams 2017-07-12 480
0997a0b7870fef Dan Williams 2020-01-06 481 struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data)
9567da0b408a25 Dan Williams 2017-07-12 482 {
0997a0b7870fef Dan Williams 2020-01-06 483 struct dax_region *dax_region = data->dax_region;
9567da0b408a25 Dan Williams 2017-07-12 484 struct device *parent = dax_region->dev;
9567da0b408a25 Dan Williams 2017-07-12 485 struct dax_device *dax_dev;
9567da0b408a25 Dan Williams 2017-07-12 486 struct dev_dax *dev_dax;
9567da0b408a25 Dan Williams 2017-07-12 487 struct inode *inode;
9567da0b408a25 Dan Williams 2017-07-12 488 struct device *dev;
79aac412b5c476 Dan Williams 2020-01-08 489 int rc;
9567da0b408a25 Dan Williams 2017-07-12 490
0997a0b7870fef Dan Williams 2020-01-06 491 if (data->id < 0)
9567da0b408a25 Dan Williams 2017-07-12 492 return ERR_PTR(-EINVAL);
9567da0b408a25 Dan Williams 2017-07-12 493
9567da0b408a25 Dan Williams 2017-07-12 494 dev_dax = kzalloc(sizeof(*dev_dax), GFP_KERNEL);
9567da0b408a25 Dan Williams 2017-07-12 495 if (!dev_dax)
9567da0b408a25 Dan Williams 2017-07-12 496 return ERR_PTR(-ENOMEM);
9567da0b408a25 Dan Williams 2017-07-12 497
79aac412b5c476 Dan Williams 2020-01-08 498 dev_dax->region = dax_region;
79aac412b5c476 Dan Williams 2020-01-08 499 dev = &dev_dax->dev;
79aac412b5c476 Dan Williams 2020-01-08 500 device_initialize(dev);
79aac412b5c476 Dan Williams 2020-01-08 501 dev_set_name(dev, "dax%d.%d", dax_region->id, data->id);
79aac412b5c476 Dan Williams 2020-01-08 502
79aac412b5c476 Dan Williams 2020-01-08 503 rc = alloc_dev_dax_range(dev_dax, data->size);
79aac412b5c476 Dan Williams 2020-01-08 504 if (rc)
79aac412b5c476 Dan Williams 2020-01-08 505 goto err_range;
79aac412b5c476 Dan Williams 2020-01-08 506
84cb8b1780cc7b Dan Williams 2020-01-06 507 if (data->pgmap) {
79aac412b5c476 Dan Williams 2020-01-08 508 dev_WARN_ONCE(parent, !is_static(dax_region),
79aac412b5c476 Dan Williams 2020-01-08 509 "custom dev_pagemap requires a static dax_region\n");
79aac412b5c476 Dan Williams 2020-01-08 510
84cb8b1780cc7b Dan Williams 2020-01-06 511 dev_dax->pgmap = kmemdup(data->pgmap,
84cb8b1780cc7b Dan Williams 2020-01-06 512 sizeof(struct dev_pagemap), GFP_KERNEL);
84cb8b1780cc7b Dan Williams 2020-01-06 513 if (!dev_dax->pgmap)
84cb8b1780cc7b Dan Williams 2020-01-06 514 goto err_pgmap;
84cb8b1780cc7b Dan Williams 2020-01-06 515 }
89ec9f2cfa36cc Dan Williams 2018-10-29 516
9567da0b408a25 Dan Williams 2017-07-12 517 /*
9567da0b408a25 Dan Williams 2017-07-12 518 * No 'host' or dax_operations since there is no access to this
9567da0b408a25 Dan Williams 2017-07-12 519 * device outside of mmap of the resulting character device.
9567da0b408a25 Dan Williams 2017-07-12 520 */
fefc1d97fa4b5e Pankaj Gupta 2019-07-05 521 dax_dev = alloc_dax(dev_dax, NULL, NULL, DAXDEV_F_SYNC);
4e4ced93794acb Vivek Goyal 2020-04-01 522 if (IS_ERR(dax_dev)) {
4e4ced93794acb Vivek Goyal 2020-04-01 523 rc = PTR_ERR(dax_dev);
84cb8b1780cc7b Dan Williams 2020-01-06 524 goto err_alloc_dax;
4e4ced93794acb Vivek Goyal 2020-04-01 525 }
9567da0b408a25 Dan Williams 2017-07-12 526
9567da0b408a25 Dan Williams 2017-07-12 527 /* a device_dax instance is dead while the driver is not attached */
9567da0b408a25 Dan Williams 2017-07-12 528 kill_dax(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 529
84cb8b1780cc7b Dan Williams 2020-01-06 530 /* from here on we're committed to teardown via dev_dax_release() */
9567da0b408a25 Dan Williams 2017-07-12 531 dev_dax->dax_dev = dax_dev;
8fc5c73554db0a Dan Williams 2018-11-09 532 dev_dax->target_node = dax_region->target_node;
9567da0b408a25 Dan Williams 2017-07-12 533 kref_get(&dax_region->kref);
9567da0b408a25 Dan Williams 2017-07-12 534
9567da0b408a25 Dan Williams 2017-07-12 535 inode = dax_inode(dax_dev);
9567da0b408a25 Dan Williams 2017-07-12 536 dev->devt = inode->i_rdev;
0997a0b7870fef Dan Williams 2020-01-06 537 if (data->subsys == DEV_DAX_BUS)
9567da0b408a25 Dan Williams 2017-07-12 538 dev->bus = &dax_bus_type;
730926c3b09989 Dan Williams 2017-07-16 539 else
730926c3b09989 Dan Williams 2017-07-16 540 dev->class = dax_class;
9567da0b408a25 Dan Williams 2017-07-12 541 dev->parent = parent;
770619a9510634 Dan Williams 2019-11-12 542 dev->type = &dev_dax_type;
9567da0b408a25 Dan Williams 2017-07-12 543
9567da0b408a25 Dan Williams 2017-07-12 544 rc = device_add(dev);
9567da0b408a25 Dan Williams 2017-07-12 545 if (rc) {
9567da0b408a25 Dan Williams 2017-07-12 546 kill_dev_dax(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 547 put_device(dev);
9567da0b408a25 Dan Williams 2017-07-12 548 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 549 }
9567da0b408a25 Dan Williams 2017-07-12 550
9567da0b408a25 Dan Williams 2017-07-12 551 rc = devm_add_action_or_reset(dax_region->dev, unregister_dev_dax, dev);
9567da0b408a25 Dan Williams 2017-07-12 552 if (rc)
9567da0b408a25 Dan Williams 2017-07-12 553 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 554
9567da0b408a25 Dan Williams 2017-07-12 555 return dev_dax;
79aac412b5c476 Dan Williams 2020-01-08 556
84cb8b1780cc7b Dan Williams 2020-01-06 557 err_alloc_dax:
84cb8b1780cc7b Dan Williams 2020-01-06 558 kfree(dev_dax->pgmap);
84cb8b1780cc7b Dan Williams 2020-01-06 559 err_pgmap:
79aac412b5c476 Dan Williams 2020-01-08 560 free_dev_dax_range(dev_dax);
79aac412b5c476 Dan Williams 2020-01-08 561 err_range:
9567da0b408a25 Dan Williams 2017-07-12 562 kfree(dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 563
9567da0b408a25 Dan Williams 2017-07-12 @564 return ERR_PTR(rc);
9567da0b408a25 Dan Williams 2017-07-12 565 }
0997a0b7870fef Dan Williams 2020-01-06 566 EXPORT_SYMBOL_GPL(devm_create_dev_dax);
9567da0b408a25 Dan Williams 2017-07-12 567
:::::: The code at line 564 was first introduced by commit
:::::: 9567da0b408a2553d32ca83cba4f1fc5a8aad459 device-dax: Introduce bus + driver model
:::::: TO: Dan Williams <dan.j.williams@intel.com>
:::::: CC: Dan Williams <dan.j.williams@intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36754 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-07-13 12:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-13 12:24 [nvdimm:libnvdimm-pending 15/22] drivers/dax/bus.c:564 devm_create_dev_dax() warn: passing zero to 'ERR_PTR' Dan Carpenter
2020-07-13 12:24 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2020-07-10 17:39 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.