From patchwork Tue May 14 13:07:55 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Hao X-Patchwork-Id: 2565881 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id 23068DF24C for ; Tue, 14 May 2013 13:08:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757523Ab3ENNIA (ORCPT ); Tue, 14 May 2013 09:08:00 -0400 Received: from mail.windriver.com ([147.11.1.11]:50289 "EHLO mail.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751846Ab3ENNIA (ORCPT ); Tue, 14 May 2013 09:08:00 -0400 Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail.windriver.com (8.14.5/8.14.3) with ESMTP id r4ED7xR2023747 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 14 May 2013 06:07:59 -0700 (PDT) Received: from pek-khao-d1.corp.ad.wrs.com (128.224.162.196) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server id 14.2.342.3; Tue, 14 May 2013 06:07:59 -0700 From: Kevin Hao To: Bjorn Helgaas CC: Subject: [PATCH 1/2] PCI: make pcibios_bus_to_resource return either success or failure Date: Tue, 14 May 2013 21:07:55 +0800 Message-ID: <1368536876-27307-2-git-send-email-haokexin@gmail.com> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1368536876-27307-1-git-send-email-haokexin@gmail.com> References: <1368536876-27307-1-git-send-email-haokexin@gmail.com> MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org In some cases we need to make sure whether the address translation is success or failure. So add a bool return value for this function. Signed-off-by: Kevin Hao --- drivers/pci/host-bridge.c | 5 ++++- include/linux/pci.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/pci/host-bridge.c b/drivers/pci/host-bridge.c index a68dc61..a31885f 100644 --- a/drivers/pci/host-bridge.c +++ b/drivers/pci/host-bridge.c @@ -68,12 +68,13 @@ static bool region_contains(struct pci_bus_region *region1, return region1->start <= region2->start && region1->end >= region2->end; } -void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, +bool pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, struct pci_bus_region *region) { struct pci_host_bridge *bridge = find_pci_host_bridge(dev); struct pci_host_bridge_window *window; resource_size_t offset = 0; + bool ret = false; list_for_each_entry(window, &bridge->windows, list) { struct pci_bus_region bus_region; @@ -86,11 +87,13 @@ void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, if (region_contains(&bus_region, region)) { offset = window->offset; + ret = true; break; } } res->start = region->start + offset; res->end = region->end + offset; + return ret; } EXPORT_SYMBOL(pcibios_bus_to_resource); diff --git a/include/linux/pci.h b/include/linux/pci.h index 3a24e4f..ea5fb61 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -714,7 +714,7 @@ void pci_fixup_cardbus(struct pci_bus *); void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, struct resource *res); -void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, +bool pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, struct pci_bus_region *region); void pcibios_scan_specific_bus(int busn); struct pci_bus *pci_find_bus(int domain, int busnr);