Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp17929177ybl; Thu, 2 Jan 2020 15:01:34 -0800 (PST) X-Google-Smtp-Source: APXvYqyrkFyLBY17ucjfJZrC9DZqT5mL+9ROTxcpxD37VUtNgkRA7dOM7nkJZwyiCGQvbh+uI5Sh X-Received: by 2002:a9d:7f11:: with SMTP id j17mr98311270otq.281.1578006094614; Thu, 02 Jan 2020 15:01:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578006094; cv=none; d=google.com; s=arc-20160816; b=FuADJksWXSdv4+IJy/xnSEtTi0lMR8dewwtG7YmczySCcBuJ3r3uBF89l8WK4/r8VI PEPTFYdpTrdesnKmtDWp9VxRM9XFjlJrVpboXr5AKG6a6mN/xrCyKfNbVo0fNoNHUX+U 9ZPrWj8KHq5eizipIFUyjoMCBDej5zbxUBJruZ7w1hvdeISg0252853ncpJVpNY7P91C w6JUamjvnFnzdA0mBKYPZ2NOZqvpLz6h1So0t8FOEqAUawAPgzeKvLWSLrIXAhJ8R1uU 00BfhTGOV1cUZSalJ9OZMTMrCraA3cYvxdTDCPco1IiG6ULjicI+vdtzkgSN+kDMSRWc ziEg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Sd2GF6vf5TeT9h5BwE3NZG9bWHdBEojtoZpJ+c3iw/M=; b=g13mHaOsaCR4yuSu7HWvZlCO7t/79yiqnaZkFaH9hxtswTQ4338KWLZ+eY5UAg0vCY ngKIvehradsO8DkONLFdJ0rjDV4Bx24RPkOrjFvHOoNGwCJQyTE9mV5RRdw1bvfU3YIV Yk82mPW/x10uTji9MdDGL11PP7yTqpZMC+zh3NOA13ZPO20+esVB4MOW+lEjwUr3sYUm MzcUB2FvMAwhZTPidwJ2VFVJwcbezt6w4PYuZHAaMqtpBvYfwONOOkHaNF2e1RvRbRhD w91e7fq1A0JKO3jVq23x013DEAhMwUAaMqUZJFGwpJibH7T9Lb8nh9vEXD1q7Ep7Pm3L 8aOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wCRgWwG7; 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 k89si26805127otk.173.2020.01.02.15.01.22; Thu, 02 Jan 2020 15:01:34 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=wCRgWwG7; 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 S1727729AbgABWNi (ORCPT + 99 others); Thu, 2 Jan 2020 17:13:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:53414 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727711AbgABWNe (ORCPT ); Thu, 2 Jan 2020 17:13:34 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C28BB227BF; Thu, 2 Jan 2020 22:13:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578003213; bh=PnzNLiDnWas2XHdCagKVmGcoV2eKhA9wVBfBVy19N4U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wCRgWwG7fX/RrRvRYvnP8bn/r/86K1T1/5Ny4egoPhQK/osfAIEzF9/ct6KR+f89f f9z3fWHhrrwiD+jE34ba2ETHwed8xDGLr7tcxmQEsA59XJtiYt4z3K/tunnVKpE1WA LSiLNWofdJG7mSBWtNvjm5x+3aa1qeYHqw9352OY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tyrel Datwyler , Bjorn Helgaas , Michael Ellerman , Sasha Levin Subject: [PATCH 5.4 067/191] PCI: rpaphp: Annotate and correctly byte swap DRC properties Date: Thu, 2 Jan 2020 23:05:49 +0100 Message-Id: <20200102215837.141166366@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200102215829.911231638@linuxfoundation.org> References: <20200102215829.911231638@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tyrel Datwyler [ Upstream commit 0737686778c6dbe0908d684dd5b9c05b127526ba ] The device tree is in big endian format and any properties directly retrieved using OF helpers that don't explicitly byte swap should be annotated. In particular there are several places where we grab the opaque property value for the old ibm,drc-* properties and the ibm,my-drc-index property. Fix this for better static checking by annotating values we know to explicitly big endian, and byte swap where appropriate. Signed-off-by: Tyrel Datwyler Acked-by: Bjorn Helgaas Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/1573449697-5448-9-git-send-email-tyreld@linux.ibm.com Signed-off-by: Sasha Levin --- drivers/pci/hotplug/rpaphp_core.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c index e18e9a0e959c..abb10b3c0b70 100644 --- a/drivers/pci/hotplug/rpaphp_core.c +++ b/drivers/pci/hotplug/rpaphp_core.c @@ -154,11 +154,11 @@ static enum pci_bus_speed get_max_bus_speed(struct slot *slot) return speed; } -static int get_children_props(struct device_node *dn, const int **drc_indexes, - const int **drc_names, const int **drc_types, - const int **drc_power_domains) +static int get_children_props(struct device_node *dn, const __be32 **drc_indexes, + const __be32 **drc_names, const __be32 **drc_types, + const __be32 **drc_power_domains) { - const int *indexes, *names, *types, *domains; + const __be32 *indexes, *names, *types, *domains; indexes = of_get_property(dn, "ibm,drc-indexes", NULL); names = of_get_property(dn, "ibm,drc-names", NULL); @@ -194,8 +194,8 @@ static int rpaphp_check_drc_props_v1(struct device_node *dn, char *drc_name, char *drc_type, unsigned int my_index) { char *name_tmp, *type_tmp; - const int *indexes, *names; - const int *types, *domains; + const __be32 *indexes, *names; + const __be32 *types, *domains; int i, rc; rc = get_children_props(dn->parent, &indexes, &names, &types, &domains); @@ -208,7 +208,7 @@ static int rpaphp_check_drc_props_v1(struct device_node *dn, char *drc_name, /* Iterate through parent properties, looking for my-drc-index */ for (i = 0; i < be32_to_cpu(indexes[0]); i++) { - if ((unsigned int) indexes[i + 1] == my_index) + if (be32_to_cpu(indexes[i + 1]) == my_index) break; name_tmp += (strlen(name_tmp) + 1); @@ -267,7 +267,7 @@ static int rpaphp_check_drc_props_v2(struct device_node *dn, char *drc_name, int rpaphp_check_drc_props(struct device_node *dn, char *drc_name, char *drc_type) { - const unsigned int *my_index; + const __be32 *my_index; my_index = of_get_property(dn, "ibm,my-drc-index", NULL); if (!my_index) { @@ -277,10 +277,10 @@ int rpaphp_check_drc_props(struct device_node *dn, char *drc_name, if (of_find_property(dn->parent, "ibm,drc-info", NULL)) return rpaphp_check_drc_props_v2(dn, drc_name, drc_type, - *my_index); + be32_to_cpu(*my_index)); else return rpaphp_check_drc_props_v1(dn, drc_name, drc_type, - *my_index); + be32_to_cpu(*my_index)); } EXPORT_SYMBOL_GPL(rpaphp_check_drc_props); @@ -311,10 +311,11 @@ static int is_php_type(char *drc_type) * for built-in pci slots (even when the built-in slots are * dlparable.) */ -static int is_php_dn(struct device_node *dn, const int **indexes, - const int **names, const int **types, const int **power_domains) +static int is_php_dn(struct device_node *dn, const __be32 **indexes, + const __be32 **names, const __be32 **types, + const __be32 **power_domains) { - const int *drc_types; + const __be32 *drc_types; int rc; rc = get_children_props(dn, indexes, names, &drc_types, power_domains); @@ -349,7 +350,7 @@ int rpaphp_add_slot(struct device_node *dn) struct slot *slot; int retval = 0; int i; - const int *indexes, *names, *types, *power_domains; + const __be32 *indexes, *names, *types, *power_domains; char *name, *type; if (!dn->name || strcmp(dn->name, "pci")) -- 2.20.1