From patchwork Thu Oct 8 07:24:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Fedin X-Patchwork-Id: 7349481 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9159C9F1D5 for ; Thu, 8 Oct 2015 07:24:42 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CC16B20644 for ; Thu, 8 Oct 2015 07:24:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CF2E52063D for ; Thu, 8 Oct 2015 07:24:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753742AbbJHHYj (ORCPT ); Thu, 8 Oct 2015 03:24:39 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:39229 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753730AbbJHHYf (ORCPT ); Thu, 8 Oct 2015 03:24:35 -0400 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NVW003TH4KWT590@mailout4.w1.samsung.com>; Thu, 08 Oct 2015 08:24:32 +0100 (BST) X-AuditID: cbfec7f5-f794b6d000001495-6e-56161a3020d1 Received: from eusync4.samsung.com ( [203.254.199.214]) by eucpsbgm2.samsung.com (EUCPMTA) with SMTP id 5E.FA.05269.03A16165; Thu, 8 Oct 2015 08:24:32 +0100 (BST) Received: from fedinw7x64.rnd.samsung.ru ([106.109.131.169]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0NVW00AG84KQJI10@eusync4.samsung.com>; Thu, 08 Oct 2015 08:24:32 +0100 (BST) From: Pavel Fedin To: linux-pci@vger.kernel.org, devicetree@vger.kernel.org Cc: Rob Herring , Frank Rowand , Grant Likely Subject: [PATCH v2 2/2] PCI: of: Ignore resources with failed translation Date: Thu, 08 Oct 2015 10:24:26 +0300 Message-id: <3604931244806840dd12ff9663671b52d2acd951.1444288748.git.p.fedin@samsung.com> X-Mailer: git-send-email 2.4.4 In-reply-to: References: In-reply-to: References: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprGLMWRmVeSWpSXmKPExsVy+t/xa7oGUmJhBnumalvMP3KO1WLmm/9s Fgf+7GC0ODvvOJtF694j7A6sHjtn3WX32LSqk83jzrU9bB6fN8kFsERx2aSk5mSWpRbp2yVw ZdzfHVvwiK3i34Uu9gbG7axdjJwcEgImEk/mXWWBsMUkLtxbz9bFyMUhJLCUUeL0gU5mkISQ QBuTxNKvuSA2m4C6xOmvH8AaRAQsJXY33WYEsZkFSiVWbVoMVi8s4Cmxe8sisAUsAqoSbfuu A9kcHLwC0RLPzxdC7JKTuHJ9OhtImFPAXOLVFUYQU0jATOLoD1nsohMY+RcwMqxiFE0tTS4o TkrPNdIrTswtLs1L10vOz93ECAmtrzsYlx6zOsQowMGoxMP7w1gkTIg1say4MvcQowQHs5II rwmXWJgQb0piZVVqUX58UWlOavEhRmkOFiVx3pm73ocICaQnlqRmp6YWpBbBZJk4OKUaGM9O ftZvmD79YfK1ua7fX6X23wpsZQp+90WVM700mdFZ3T9Ca/XnGXq+l5VUukUNj858phnBpvr0 QHOipEI8x/dDWVw/TaXbl7+JtHQRF9x0+Fuh/AvVBwHrvPZuXhQwa75h7nlnngm/Vt5vORqt Pyc7a9tvFc1gvnVbJ0zK0ttbenN9wczlq5RYijMSDbWYi4oTAeSp7AQpAgAA Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch allows PCI host controller to function even if part of resources is unusable for some reason. An example is non-LPAE kernel on a machine which has some 64-bit resources. Unusable resources will be just skipped instead of a complete failure. Signed-off-by: Pavel Fedin --- drivers/of/of_pci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c index 5751dc5..ea7c2b6 100644 --- a/drivers/of/of_pci.c +++ b/drivers/of/of_pci.c @@ -223,8 +223,10 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, } err = of_pci_range_to_resource(&range, dev, res); - if (err) - goto conversion_failed; + if (err) { + kfree(res); + continue; + } if (resource_type(res) == IORESOURCE_IO) { if (!io_base) {