From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e23smtp09.au.ibm.com ([202.81.31.142]:37065 "EHLO e23smtp09.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933521AbbHKAw6 (ORCPT ); Mon, 10 Aug 2015 20:52:58 -0400 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 11 Aug 2015 10:52:56 +1000 Date: Tue, 11 Aug 2015 10:52:02 +1000 From: Gavin Shan To: Frank Rowand Cc: Gavin Shan , linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, benh@kernel.crashing.org, mpe@ellerman.id.au, bhelgaas@google.com, grant.likely@linaro.org, robherring2@gmail.com, panto@antoniou-consulting.com, aik@ozlabs.ru Subject: Re: [PATCH v6 40/42] drivers/of: Return allocated memory chunk from of_fdt_unflatten_tree() Message-ID: <20150811005202.GA20729@gwshan> Reply-To: Gavin Shan References: <1438834307-26960-1-git-send-email-gwshan@linux.vnet.ibm.com> <1438834307-26960-41-git-send-email-gwshan@linux.vnet.ibm.com> <55C928D8.3040200@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <55C928D8.3040200@gmail.com> Sender: linux-pci-owner@vger.kernel.org List-ID: On Mon, Aug 10, 2015 at 03:42:32PM -0700, Frank Rowand wrote: >On 8/5/2015 9:11 PM, Gavin Shan wrote: Frank, thanks for your comments. All of them will be included in next revision. Thanks, Gavin >> This changes of_fdt_unflatten_tree() so that it returns the allocated >> memory chunk for unflattened device-tree, which can be released once >> it's obsoleted. >> >> Signed-off-by: Gavin Shan >> --- >> drivers/of/fdt.c | 11 ++++++----- >> include/linux/of_fdt.h | 2 +- >> 2 files changed, 7 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c >> index 074870a..8e1ba7e 100644 >> --- a/drivers/of/fdt.c >> +++ b/drivers/of/fdt.c >> @@ -408,7 +408,7 @@ static void *unflatten_dt_node(const void *blob, >> * @dt_alloc: An allocator that provides a virtual address to memory >> * for the resulting tree >> */ >> -static void __unflatten_device_tree(const void *blob, >> +static void *__unflatten_device_tree(const void *blob, >> struct device_node *dad, >> struct device_node **mynodes, >> void * (*dt_alloc)(u64 size, u64 align)) > >Please add a description of the return value to the documentation header. > > >> @@ -421,7 +421,7 @@ static void __unflatten_device_tree(const void *blob, >> >> if (!blob) { >> pr_debug("No device tree pointer\n"); >> - return; >> + return NULL; >> } >> >> pr_debug("Unflattening device tree:\n"); >> @@ -431,7 +431,7 @@ static void __unflatten_device_tree(const void *blob, >> >> if (fdt_check_header(blob)) { >> pr_err("Invalid device tree blob header\n"); >> - return; >> + return NULL; >> } >> >> /* First pass, scan for size */ >> @@ -458,6 +458,7 @@ static void __unflatten_device_tree(const void *blob, >> be32_to_cpup(mem + size)); >> >> pr_debug(" <- unflatten_device_tree()\n"); >> + return mem; >> } >> >> static void *kernel_tree_alloc(u64 size, u64 align) >> @@ -473,11 +474,11 @@ static void *kernel_tree_alloc(u64 size, u64 align) >> * pointers of the nodes so the normal device-tree walking functions >> * can be used. >> */ >> -void of_fdt_unflatten_tree(const unsigned long *blob, >> +void *of_fdt_unflatten_tree(const unsigned long *blob, > >Please add a description of the return value to the documentation header. > > >> struct device_node *dad, >> struct device_node **mynodes) >> { >> - __unflatten_device_tree(blob, dad, mynodes, &kernel_tree_alloc); >> + return __unflatten_device_tree(blob, dad, mynodes, &kernel_tree_alloc); >> } >> EXPORT_SYMBOL_GPL(of_fdt_unflatten_tree); >> >> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h >> index 3644960..00db279 100644 >> --- a/include/linux/of_fdt.h >> +++ b/include/linux/of_fdt.h >> @@ -37,7 +37,7 @@ extern bool of_fdt_is_big_endian(const void *blob, >> unsigned long node); >> extern int of_fdt_match(const void *blob, unsigned long node, >> const char *const *compat); >> -extern void of_fdt_unflatten_tree(const unsigned long *blob, >> +extern void *of_fdt_unflatten_tree(const unsigned long *blob, >> struct device_node *dad, >> struct device_node **mynodes); >> >> > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gavin Shan Subject: Re: [PATCH v6 40/42] drivers/of: Return allocated memory chunk from of_fdt_unflatten_tree() Date: Tue, 11 Aug 2015 10:52:02 +1000 Message-ID: <20150811005202.GA20729@gwshan> References: <1438834307-26960-1-git-send-email-gwshan@linux.vnet.ibm.com> <1438834307-26960-41-git-send-email-gwshan@linux.vnet.ibm.com> <55C928D8.3040200@gmail.com> Reply-To: Gavin Shan Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <55C928D8.3040200@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Frank Rowand Cc: devicetree@vger.kernel.org, aik@ozlabs.ru, panto@antoniou-consulting.com, Gavin Shan , grant.likely@linaro.org, robherring2@gmail.com, linux-pci@vger.kernel.org, bhelgaas@google.com, linuxppc-dev@lists.ozlabs.org List-Id: devicetree@vger.kernel.org T24gTW9uLCBBdWcgMTAsIDIwMTUgYXQgMDM6NDI6MzJQTSAtMDcwMCwgRnJhbmsgUm93YW5kIHdy b3RlOgo+T24gOC81LzIwMTUgOToxMSBQTSwgR2F2aW4gU2hhbiB3cm90ZToKCkZyYW5rLCB0aGFu a3MgZm9yIHlvdXIgY29tbWVudHMuIEFsbCBvZiB0aGVtIHdpbGwgYmUgaW5jbHVkZWQKaW4gbmV4 dCByZXZpc2lvbi4KClRoYW5rcywKR2F2aW4KCj4+IFRoaXMgY2hhbmdlcyBvZl9mZHRfdW5mbGF0 dGVuX3RyZWUoKSBzbyB0aGF0IGl0IHJldHVybnMgdGhlIGFsbG9jYXRlZAo+PiBtZW1vcnkgY2h1 bmsgZm9yIHVuZmxhdHRlbmVkIGRldmljZS10cmVlLCB3aGljaCBjYW4gYmUgcmVsZWFzZWQgb25j ZQo+PiBpdCdzIG9ic29sZXRlZC4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEdhdmluIFNoYW4gPGd3 c2hhbkBsaW51eC52bmV0LmlibS5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9vZi9mZHQuYyAgICAg ICB8IDExICsrKysrKy0tLS0tCj4+ICBpbmNsdWRlL2xpbnV4L29mX2ZkdC5oIHwgIDIgKy0KPj4g IDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+PiAKPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvZmR0LmMgYi9kcml2ZXJzL29mL2ZkdC5jCj4+IGluZGV4 IDA3NDg3MGEuLjhlMWJhN2UgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvb2YvZmR0LmMKPj4gKysr IGIvZHJpdmVycy9vZi9mZHQuYwo+PiBAQCAtNDA4LDcgKzQwOCw3IEBAIHN0YXRpYyB2b2lkICp1 bmZsYXR0ZW5fZHRfbm9kZShjb25zdCB2b2lkICpibG9iLAo+PiAgICogQGR0X2FsbG9jOiBBbiBh bGxvY2F0b3IgdGhhdCBwcm92aWRlcyBhIHZpcnR1YWwgYWRkcmVzcyB0byBtZW1vcnkKPj4gICAq IGZvciB0aGUgcmVzdWx0aW5nIHRyZWUKPj4gICAqLwo+PiAtc3RhdGljIHZvaWQgX191bmZsYXR0 ZW5fZGV2aWNlX3RyZWUoY29uc3Qgdm9pZCAqYmxvYiwKPj4gK3N0YXRpYyB2b2lkICpfX3VuZmxh dHRlbl9kZXZpY2VfdHJlZShjb25zdCB2b2lkICpibG9iLAo+PiAgCQkJICAgICBzdHJ1Y3QgZGV2 aWNlX25vZGUgKmRhZCwKPj4gIAkJCSAgICAgc3RydWN0IGRldmljZV9ub2RlICoqbXlub2RlcywK Pj4gIAkJCSAgICAgdm9pZCAqICgqZHRfYWxsb2MpKHU2NCBzaXplLCB1NjQgYWxpZ24pKQo+Cj5Q bGVhc2UgYWRkIGEgZGVzY3JpcHRpb24gb2YgdGhlIHJldHVybiB2YWx1ZSB0byB0aGUgZG9jdW1l bnRhdGlvbiBoZWFkZXIuCj4KPgo+PiBAQCAtNDIxLDcgKzQyMSw3IEBAIHN0YXRpYyB2b2lkIF9f dW5mbGF0dGVuX2RldmljZV90cmVlKGNvbnN0IHZvaWQgKmJsb2IsCj4+ICAKPj4gIAlpZiAoIWJs b2IpIHsKPj4gIAkJcHJfZGVidWcoIk5vIGRldmljZSB0cmVlIHBvaW50ZXJcbiIpOwo+PiAtCQly ZXR1cm47Cj4+ICsJCXJldHVybiBOVUxMOwo+PiAgCX0KPj4gIAo+PiAgCXByX2RlYnVnKCJVbmZs YXR0ZW5pbmcgZGV2aWNlIHRyZWU6XG4iKTsKPj4gQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0aWMg dm9pZCBfX3VuZmxhdHRlbl9kZXZpY2VfdHJlZShjb25zdCB2b2lkICpibG9iLAo+PiAgCj4+ICAJ aWYgKGZkdF9jaGVja19oZWFkZXIoYmxvYikpIHsKPj4gIAkJcHJfZXJyKCJJbnZhbGlkIGRldmlj ZSB0cmVlIGJsb2IgaGVhZGVyXG4iKTsKPj4gLQkJcmV0dXJuOwo+PiArCQlyZXR1cm4gTlVMTDsK Pj4gIAl9Cj4+ICAKPj4gIAkvKiBGaXJzdCBwYXNzLCBzY2FuIGZvciBzaXplICovCj4+IEBAIC00 NTgsNiArNDU4LDcgQEAgc3RhdGljIHZvaWQgX191bmZsYXR0ZW5fZGV2aWNlX3RyZWUoY29uc3Qg dm9pZCAqYmxvYiwKPj4gIAkJCSAgIGJlMzJfdG9fY3B1cChtZW0gKyBzaXplKSk7Cj4+ICAKPj4g IAlwcl9kZWJ1ZygiIDwtIHVuZmxhdHRlbl9kZXZpY2VfdHJlZSgpXG4iKTsKPj4gKwlyZXR1cm4g bWVtOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgdm9pZCAqa2VybmVsX3RyZWVfYWxsb2ModTY0IHNp emUsIHU2NCBhbGlnbikKPj4gQEAgLTQ3MywxMSArNDc0LDExIEBAIHN0YXRpYyB2b2lkICprZXJu ZWxfdHJlZV9hbGxvYyh1NjQgc2l6ZSwgdTY0IGFsaWduKQo+PiAgICogcG9pbnRlcnMgb2YgdGhl IG5vZGVzIHNvIHRoZSBub3JtYWwgZGV2aWNlLXRyZWUgd2Fsa2luZyBmdW5jdGlvbnMKPj4gICAq IGNhbiBiZSB1c2VkLgo+PiAgICovCj4+IC12b2lkIG9mX2ZkdF91bmZsYXR0ZW5fdHJlZShjb25z dCB1bnNpZ25lZCBsb25nICpibG9iLAo+PiArdm9pZCAqb2ZfZmR0X3VuZmxhdHRlbl90cmVlKGNv bnN0IHVuc2lnbmVkIGxvbmcgKmJsb2IsCj4KPlBsZWFzZSBhZGQgYSBkZXNjcmlwdGlvbiBvZiB0 aGUgcmV0dXJuIHZhbHVlIHRvIHRoZSBkb2N1bWVudGF0aW9uIGhlYWRlci4KPgo+Cj4+ICAJCQlz dHJ1Y3QgZGV2aWNlX25vZGUgKmRhZCwKPj4gIAkJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqKm15bm9k ZXMpCj4+ICB7Cj4+IC0JX191bmZsYXR0ZW5fZGV2aWNlX3RyZWUoYmxvYiwgZGFkLCBteW5vZGVz LCAma2VybmVsX3RyZWVfYWxsb2MpOwo+PiArCXJldHVybiBfX3VuZmxhdHRlbl9kZXZpY2VfdHJl ZShibG9iLCBkYWQsIG15bm9kZXMsICZrZXJuZWxfdHJlZV9hbGxvYyk7Cj4+ICB9Cj4+ICBFWFBP UlRfU1lNQk9MX0dQTChvZl9mZHRfdW5mbGF0dGVuX3RyZWUpOwo+PiAgCj4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L29mX2ZkdC5oIGIvaW5jbHVkZS9saW51eC9vZl9mZHQuaAo+PiBpbmRl eCAzNjQ0OTYwLi4wMGRiMjc5IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L29mX2ZkdC5o Cj4+ICsrKyBiL2luY2x1ZGUvbGludXgvb2ZfZmR0LmgKPj4gQEAgLTM3LDcgKzM3LDcgQEAgZXh0 ZXJuIGJvb2wgb2ZfZmR0X2lzX2JpZ19lbmRpYW4oY29uc3Qgdm9pZCAqYmxvYiwKPj4gIAkJCQkg dW5zaWduZWQgbG9uZyBub2RlKTsKPj4gIGV4dGVybiBpbnQgb2ZfZmR0X21hdGNoKGNvbnN0IHZv aWQgKmJsb2IsIHVuc2lnbmVkIGxvbmcgbm9kZSwKPj4gIAkJCWNvbnN0IGNoYXIgKmNvbnN0ICpj b21wYXQpOwo+PiAtZXh0ZXJuIHZvaWQgb2ZfZmR0X3VuZmxhdHRlbl90cmVlKGNvbnN0IHVuc2ln bmVkIGxvbmcgKmJsb2IsCj4+ICtleHRlcm4gdm9pZCAqb2ZfZmR0X3VuZmxhdHRlbl90cmVlKGNv bnN0IHVuc2lnbmVkIGxvbmcgKmJsb2IsCj4+ICAJCQkgICAgICAgc3RydWN0IGRldmljZV9ub2Rl ICpkYWQsCj4+ICAJCQkgICAgICAgc3RydWN0IGRldmljZV9ub2RlICoqbXlub2Rlcyk7Cj4+ICAK Pj4gCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxp bnV4cHBjLWRldiBtYWlsaW5nIGxpc3QKTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKaHR0 cHM6Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldg==