From patchwork Wed Nov 14 22:28:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Grant Likely X-Patchwork-Id: 199039 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 8CE2E2C00B4 for ; Thu, 15 Nov 2012 09:28:53 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423528Ab2KNW2i (ORCPT ); Wed, 14 Nov 2012 17:28:38 -0500 Received: from mail-wi0-f172.google.com ([209.85.212.172]:63254 "EHLO mail-wi0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1423527Ab2KNW2h (ORCPT ); Wed, 14 Nov 2012 17:28:37 -0500 Received: by mail-wi0-f172.google.com with SMTP id hj6so831237wib.1 for ; Wed, 14 Nov 2012 14:28:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer :x-gm-message-state; bh=VTUYdIEAypjLj0j35w9KDT/gL1togoZGCnk//ZnT1UI=; b=MQUXUZmQSJiGxALpv+5XYeseebnMtUo6n0zaKeDXpRgCJaypXa0hqpsXlnlBls0r5U 8aoWX7ssx9RoPI7WOFm23Qk0xdEar2dlsaAul333KF9XE3DvcWUOLfDtuLFYT/2e92iM P9pMYH0TIn4b5WRfUP85M/WPLRBEZcHfyXdf7QZY3vlqEIW4zN23YK76i/hfo7SNgXJH ciMZdZPq4QwlJz9RQ0JQ/dzTGBiwwKakSfGiLsatUiTzJ5r7tPLIY6urLDyhAf9AXsEx QE0nGV97vo1XLhrKxs95SphmECiem1+yAei+bWI2ElYImX0Bbtdff1HpoGxVID+682pJ 6OeA== Received: by 10.180.100.132 with SMTP id ey4mr9144406wib.9.1352932115636; Wed, 14 Nov 2012 14:28:35 -0800 (PST) Received: from localhost (host86-182-21-215.range86-182.btcentralplus.com. [86.182.21.215]) by mx.google.com with ESMTPS id r10sm4553238wiz.0.2012.11.14.14.28.33 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 14 Nov 2012 14:28:34 -0800 (PST) Received: by localhost (Postfix, from userid 1000) id 153A33E0E2B; Wed, 14 Nov 2012 22:28:33 +0000 (GMT) From: Grant Likely To: linux-kernel@vger.kernel.org, devicetree-discuss@lists.ozlabs.org Cc: sparclinux@vger.kernel.org, Grant Likely , Benjamin Herrenschmidt , "David S. Miller" Subject: [PATCH] drivers/of: Constify device_node->name and ->path_component_name Date: Wed, 14 Nov 2012 22:28:27 +0000 Message-Id: <1352932107-14782-1-git-send-email-grant.likely@secretlab.ca> X-Mailer: git-send-email 1.7.10.4 X-Gm-Message-State: ALoCoQks0E75A5TJ4RAK5qE0NYyTGoWMYyc9yoDcyjBEHVyeDnIKGdKY1UtX6c8UdQh7aHagSx6c Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org Neither of these should ever be changed once set. Make them const Build tested with defconfigs on ARM, PowerPC, Sparc, MIPS, x86 among others. Signed-off-by: Grant Likely Cc: Benjamin Herrenschmidt Cc: "David S. Miller" --- arch/powerpc/platforms/powermac/pfunc_core.c | 2 +- arch/powerpc/platforms/pseries/reconfig.c | 3 +-- arch/powerpc/sysdev/fsl_pci.c | 2 +- arch/sparc/kernel/pci_impl.h | 2 +- drivers/of/fdt.c | 10 +++++----- include/linux/of.h | 4 ++-- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c index b0c3777..d588e48 100644 --- a/arch/powerpc/platforms/powermac/pfunc_core.c +++ b/arch/powerpc/platforms/powermac/pfunc_core.c @@ -686,7 +686,7 @@ static int pmf_add_functions(struct pmf_device *dev, void *driverdata) int count = 0; for (pp = dev->node->properties; pp != 0; pp = pp->next) { - char *name; + const char *name; if (strncmp(pp->name, PP_PREFIX, plen) != 0) continue; name = pp->name + plen; diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c index 39f71fb..2f46681 100644 --- a/arch/powerpc/platforms/pseries/reconfig.c +++ b/arch/powerpc/platforms/pseries/reconfig.c @@ -281,12 +281,11 @@ static struct property *new_property(const char *name, const int length, if (!new) return NULL; - if (!(new->name = kmalloc(strlen(name) + 1, GFP_KERNEL))) + if (!(new->name = kstrdup(name, GFP_KERNEL))) goto cleanup; if (!(new->value = kmalloc(length + 1, GFP_KERNEL))) goto cleanup; - strcpy(new->name, name); memcpy(new->value, value, length); *(((char *)new->value) + length) = 0; new->length = length; diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index ffb93ae..01b62a6 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -136,7 +136,7 @@ static void __init setup_pci_atmu(struct pci_controller *hose, u32 pcicsrbar = 0, pcicsrbar_sz; u32 piwar = PIWAR_EN | PIWAR_PF | PIWAR_TGI_LOCAL | PIWAR_READ_SNOOP | PIWAR_WRITE_SNOOP; - char *name = hose->dn->full_name; + const char *name = hose->dn->full_name; const u64 *reg; int len; diff --git a/arch/sparc/kernel/pci_impl.h b/arch/sparc/kernel/pci_impl.h index 918a203..5f68853 100644 --- a/arch/sparc/kernel/pci_impl.h +++ b/arch/sparc/kernel/pci_impl.h @@ -88,7 +88,7 @@ struct pci_pbm_info { int chip_revision; /* Name used for top-level resources. */ - char *name; + const char *name; /* OBP specific information. */ struct platform_device *op; diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 91a375f..4aded3b 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -198,10 +198,10 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob, np = unflatten_dt_alloc(&mem, sizeof(struct device_node) + allocl, __alignof__(struct device_node)); if (allnextpp) { + char *fn; memset(np, 0, sizeof(*np)); - np->full_name = ((char *)np) + sizeof(struct device_node); + np->full_name = fn = ((char *)np) + sizeof(*np); if (new_format) { - char *fn = np->full_name; /* rebuild full path for new format */ if (dad && dad->parent) { strcpy(fn, dad->full_name); @@ -215,9 +215,9 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob, fn += strlen(fn); } *(fn++) = '/'; - memcpy(fn, pathp, l); - } else - memcpy(np->full_name, pathp, l); + } + memcpy(fn, pathp, l); + prev_pp = &np->properties; **allnextpp = np; *allnextpp = &np->allnext; diff --git a/include/linux/of.h b/include/linux/of.h index b4e50d5..857dde9 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -46,7 +46,7 @@ struct device_node { const char *name; const char *type; phandle phandle; - char *full_name; + const char *full_name; struct property *properties; struct property *deadprops; /* removed properties */ @@ -60,7 +60,7 @@ struct device_node { unsigned long _flags; void *data; #if defined(CONFIG_SPARC) - char *path_component_name; + const char *path_component_name; unsigned int unique_id; struct of_irq_controller *irq_trans; #endif