Received: by 2002:a17:90a:9103:0:0:0:0 with SMTP id k3csp11791575pjo; Thu, 2 Jan 2020 14:20:59 -0800 (PST) X-Google-Smtp-Source: APXvYqzSMyo8zwB042Isrm2guKmO6I8EUBWgZBKNE6Kxsp6QwM6D7R6puwq4Va2eF+rI+A0eTMYA X-Received: by 2002:aca:f484:: with SMTP id s126mr2890753oih.48.1578003659614; Thu, 02 Jan 2020 14:20:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578003659; cv=none; d=google.com; s=arc-20160816; b=ERpHZ2EEx78kT0s4B9YJG2TItH/DzWRmIHA38qgqS535xUqn+VhONsi3/UzrIDEySn FCq0jcGVh+fXRodcmlg6AVPaa9WQqJKNarolvjYLgkCXIy2RNVeJg2hNO/Xp74ksH97p 7u4v2w6Gu9Hkep5GCP/Aiopj/XL+s/93Ofh8rkrbEO01QOD3F0LNT0vD66q0IKjHS2CO pdxguWV+etjN0PYkpZXrN3XVOfTZqrW0Am8Wdi1NhU6eYXSvnBDC1iz3zKmwKD3wIhoQ z02pQqYrYluKcxyNLnaEtyHXVdWBvUYFTi8l29tGLg5IMnSpIskf4G5svUZPbWZWp4mb iAAQ== 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=Ggc4uGcomn9RMKPQt77CV+snv6b9M2s5qBfIE2zgnDA=; b=MVnb1opCPilS91InneTTnUPtMkliaLYh4iYcElNtHFFNkipzrlJOF1O1coxFy6gTw1 vmYoJ3WenM0hvY7yPcROuPgzOKE4FrfVUMAeeqdx16MPCypmzda8f8x/pAayKfPa9oDt KY7Lg/mCjWojol0dGZaGmXJR+aGGd8jCgrpvmf5+6fqZp22QKUJJXICRDXjRYjbEytoe XSQn1lHEHySP9rsmkg2tKh01ZM42VOaKUJNwtYQ7AqQkH9KVlM9+RKgOWhejAgGwnK0T CnliCf1U0z+/1pP08ofW3aDnKBhVnpVo4Tz3JYkPDd4e5TKcd549uzSVZ1vLCK429mm7 EW9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=loTBqxV+; 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 b137si28722170oii.63.2020.01.02.14.20.48; Thu, 02 Jan 2020 14:20:59 -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=loTBqxV+; 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 S1727834AbgABWUL (ORCPT + 99 others); Thu, 2 Jan 2020 17:20:11 -0500 Received: from mail.kernel.org ([198.145.29.99]:37216 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728739AbgABWUJ (ORCPT ); Thu, 2 Jan 2020 17:20:09 -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 C119B22525; Thu, 2 Jan 2020 22:20:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578003608; bh=2idXf988AH2BgbA+RFheSDzupFk2EiecZ2E97rSpuo8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=loTBqxV+lZNaQ02NxzR7DTN/WWQnHiEjPOPVbiDvj+9NHx+7UBlREHn6/EVbbLWex 2KpXCdYc4gqpiqp+K6eGdraLD2Kp7tXpW4ps8tnNAMkfc+HZZUXhjcsNyunVGWWAuQ PN/lEKlFti6INtVtHZsQWhtxlDFXJg4q1RayOVhY= 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 4.19 039/114] PCI: rpaphp: Annotate and correctly byte swap DRC properties Date: Thu, 2 Jan 2020 23:06:51 +0100 Message-Id: <20200102220033.048120228@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200102220029.183913184@linuxfoundation.org> References: <20200102220029.183913184@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 ccc6deeb9ccf..7d74fe875225 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