From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753847AbdBJTTy (ORCPT ); Fri, 10 Feb 2017 14:19:54 -0500 Received: from ale.deltatee.com ([207.54.116.67]:37290 "EHLO ale.deltatee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751913AbdBJTTx (ORCPT ); Fri, 10 Feb 2017 14:19:53 -0500 From: Logan Gunthorpe To: Dan Williams , Johannes Thumshirn , "Paul E. McKenney" , "Sajjan Vikas C" , Arnd Bergmann , Jan Kara Cc: linux-kernel@vger.kernel.org, Greg Kroah-Hartman , linux-nvdimm@ml01.01.org, Logan Gunthorpe Date: Fri, 10 Feb 2017 12:19:30 -0700 Message-Id: <1486754370-3057-1-git-send-email-logang@deltatee.com> X-Mailer: git-send-email 2.1.4 X-SA-Exim-Connect-IP: 172.16.1.31 X-SA-Exim-Rcpt-To: dan.j.williams@intel.com, jthumshirn@suse.de, paulmck@linux.vnet.ibm.com, vikas.cha.sajjan@hpe.com, arnd@arndb.de, jack@suse.cz, linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org, linux-nvdimm@lists.01.org, logang@deltatee.com X-SA-Exim-Mail-From: gunthorp@deltatee.com Subject: [PATCH] device-dax: don't set kobj parent during cdev init X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on ale.deltatee.com) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I copied this code and per feedback from Greg Kroah-Hartman [1] the cdev's kobject's parent should not be set to the related device. This should have minor consequences but isn't doing what anyone expects it to. This patch then fixes device-dax so it doesn't make the same mistake. [1] https://lkml.org/lkml/2017/2/10/370 Signed-off-by: Logan Gunthorpe --- drivers/dax/dax.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/dax/dax.c b/drivers/dax/dax.c index ed758b7..24e53b7 100644 --- a/drivers/dax/dax.c +++ b/drivers/dax/dax.c @@ -699,13 +699,9 @@ struct dax_dev *devm_create_dax_dev(struct dax_region *dax_region, goto err_inode; } - /* device_initialize() so cdev can reference kobj parent */ - device_initialize(dev); - cdev = &dax_dev->cdev; cdev_init(cdev, &dax_fops); cdev->owner = parent->driver->owner; - cdev->kobj.parent = &dev->kobj; rc = cdev_add(&dax_dev->cdev, dev_t, 1); if (rc) goto err_cdev; @@ -722,7 +718,7 @@ struct dax_dev *devm_create_dax_dev(struct dax_region *dax_region, dev->groups = dax_attribute_groups; dev->release = dax_dev_release; dev_set_name(dev, "dax%d.%d", dax_region->id, dax_dev->id); - rc = device_add(dev); + rc = device_register(dev); if (rc) { put_device(dev); return ERR_PTR(rc); -- 2.1.4