Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4112395imm; Tue, 25 Sep 2018 11:32:01 -0700 (PDT) X-Google-Smtp-Source: ACcGV60kmxwWXJDee/2YJ1OQrn9/2x6pOt9teehWwwxFqLTF3zXmLISKPKnvXJd8MAoD7bZX1YDb X-Received: by 2002:a17:902:8b86:: with SMTP id ay6-v6mr2389795plb.25.1537900321164; Tue, 25 Sep 2018 11:32:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537900321; cv=none; d=google.com; s=arc-20160816; b=MjdF1utUmgVeW5tRf7Krzrx5MSqt504J4+lmRZcDoJWRPAICIGrj6oxDXemit6LinE u3cJiduHKJ4uJhNe1MlAwYUgLPLnYWYTTxDBP0KtjU2Yw42leTQ1rLGjIR6qcDRjSI/2 /dAuijh5DYL9FpR8gbiLjfqpo7fysgs08HKUC0myHderRhcyGNI5DZKKKbpBmDdQ2c7K qy2VOx0Lip5dRPpu6uVjqP0/5ouJg2Zy3cpasPw5GhaK1qrc/CoKQ8pUn1ifpLcxIcip VBuYx6EuBqWjmdYV5pjBU5yBBjwzC8IMEmN6RGWLX6dlFE/docupLc2LwQW6B/oLPUTZ vGDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id; bh=JJNp99YKvB4C1KvbWuHkn+/C4r9dypVuTN/kyAdvvVU=; b=KN1aOFBZx1jhENVnyGRnTx2SeHTI7NqRaaYcQM6eJNj1JNDZKPWfOjjDLdrq0sox+O W/EA+5Gb0bveoCMILRJmxYtIoCbdWOzx31yr/SXCrDsrxFXzpTWydIjr9pIru4ZHM2XM zZ/5d3i8QjmGeFsGqRGbM4xxWzJAZpuYZH5vZD3st4tgXZAQubQ1T+5NoSI7yzurKSU7 S/3AWx6Zp9E1R9nmWnvNe80guE/e6bnOY92aLebGnTsoIOpSWlvHCqAYKE1zTviaw6tS b2PwzMgyp+EmcsS6LPmnUy1HQw17UkWd7mt8gopGrUO9YHSNuaNTeEql4zI9MHhinq9j Dvtw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s17-v6si2984069plq.339.2018.09.25.11.31.45; Tue, 25 Sep 2018 11:32:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727429AbeIZAkL (ORCPT + 99 others); Tue, 25 Sep 2018 20:40:11 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:38973 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726589AbeIZAkL (ORCPT ); Tue, 25 Sep 2018 20:40:11 -0400 Received: by mail-pg1-f196.google.com with SMTP id 85-v6so9103436pge.6; Tue, 25 Sep 2018 11:31:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=JJNp99YKvB4C1KvbWuHkn+/C4r9dypVuTN/kyAdvvVU=; b=MZjZJna+t5PHM7n9XPreAR/9yQbvTqlZZCC0Uf93hiWcN21+YFBDXp5wyxdiWRumXb k1GjQ53W/FjC/wJb3ve+YcsVYSho1dyWBBLRhmzYJ/l1uJ3dXqex69hBc7BfCN0hMnBW 5VxuOK/+bocTXPcIAeFr0EavnPUk70YB+BQcLEZyY+EitIird4xQXzzs8HsFBrKTPcLt /mz3gCXSpbAeb0knkxSruSxTQ3nbUmIIOMsF6U6rBD5eKATetKejmimSZRVFzZKzZGa/ h+Z1DryTOGPpHG86+s3tSyKlVRDanfxh9/B26AjeEsX1NGVg8qG2fYkQhijtY7HJUzR9 FUyQ== X-Gm-Message-State: ABuFfojNgRjR/JfyY2XlJqXSboKYStgzrdzkHazCDFX2L9X1A2NYKl98 wwFIRF/8E03MM3NJgvMmOxI= X-Received: by 2002:a65:58c3:: with SMTP id e3-v6mr2172967pgu.117.1537900282182; Tue, 25 Sep 2018 11:31:22 -0700 (PDT) Received: from ?IPv6:2620:15c:2cd:203:5cdc:422c:7b28:ebb5? ([2620:15c:2cd:203:5cdc:422c:7b28:ebb5]) by smtp.gmail.com with ESMTPSA id z11-v6sm10320054pgz.62.2018.09.25.11.31.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 25 Sep 2018 11:31:21 -0700 (PDT) Message-ID: <1537900280.11137.30.camel@acm.org> Subject: Re: [PATCH v7 02/13] PCI/P2PDMA: Add sysfs group to display p2pmem stats From: Bart Van Assche To: Logan Gunthorpe , linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-block@vger.kernel.org Cc: Stephen Bates , Christoph Hellwig , Keith Busch , Sagi Grimberg , Bjorn Helgaas , Jason Gunthorpe , Max Gurtovoy , Dan Williams , =?ISO-8859-1?Q?J=E9r=F4me?= Glisse , Benjamin Herrenschmidt , Alex Williamson , Christian =?ISO-8859-1?Q?K=F6nig?= , Jens Axboe Date: Tue, 25 Sep 2018 11:31:20 -0700 In-Reply-To: <9241a6af-9826-d1ff-c13b-882cb3b6a34a@deltatee.com> References: <20180925162231.4354-1-logang@deltatee.com> <20180925162231.4354-3-logang@deltatee.com> <1537896555.11137.22.camel@acm.org> <9241a6af-9826-d1ff-c13b-882cb3b6a34a@deltatee.com> Content-Type: text/plain; charset="UTF-7" X-Mailer: Evolution 3.26.2-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2018-09-25 at 12:15 -0600, Logan Gunthorpe wrote: +AD4 On 2018-09-25 11:29 a.m., Bart Van Assche wrote: +AD4 +AD4 On Tue, 2018-09-25 at 10:22 -0600, Logan Gunthorpe wrote: +AD4 +AD4 +AD4 +AEAAQA -83,9 +-132,14 +AEAAQA static int pci+AF8-p2pdma+AF8-setup(struct pci+AF8-dev +ACo-pdev) +AD4 +AD4 +AD4 +AD4 +AD4 +AD4 pdev-+AD4-p2pdma +AD0 p2p+ADs +AD4 +AD4 +AD4 +AD4 +AD4 +AD4 +- error +AD0 sysfs+AF8-create+AF8-group(+ACY-pdev-+AD4-dev.kobj, +ACY-p2pmem+AF8-group)+ADs +AD4 +AD4 +AD4 +- if (error) +AD4 +AD4 +AD4 +- goto out+AF8-pool+AF8-destroy+ADs +AD4 +AD4 +AD4 +- +AD4 +AD4 +AD4 return 0+ADs +AD4 +AD4 +AD4 +AD4 +AD4 +AD4 out+AF8-pool+AF8-destroy: +AD4 +AD4 +AD4 +- pdev-+AD4-p2pdma +AD0 NULL+ADs +AD4 +AD4 +AD4 gen+AF8-pool+AF8-destroy(p2p-+AD4-pool)+ADs +AD4 +AD4 +AD4 out: +AD4 +AD4 +AD4 devm+AF8-kfree(+ACY-pdev-+AD4-dev, p2p)+ADs +AD4 +AD4 +AD4 +AD4 This doesn't look right to me. Shouldn't devm+AF8-remove+AF8-action() be called instead +AD4 +AD4 of devm+AF8-kfree() if sysfs+AF8-create+AF8-group() fails? +AD4 +AD4 That makes no sense to me. We are reversing a devm+AF8-kzalloc() not a +AD4 custom action.... In case what I wrote was not clear: both devm+AF8-kzalloc() and devm+AF8-add+AF8-action+AF8-or+AF8-reset() have to be reversed if sysfs+AF8-create+AF8-group() fails. devm+AF8-add+AF8-action+AF8-or+AF8-reset() calls devres+AF8-add(). The latter function adds an element to the dev-+AD4-devres+AF8-head list. So I think that only calling devm+AF8-kfree() if sysfs+AF8-create+AF8-group() fails will lead to corruption of the dev-+AD4-devres+AF8-head list. Bart.