Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3664141pxv; Tue, 13 Jul 2021 00:27:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw4uxUJfUchA6CYQNMXXmX1vIr52fCILZGa7UrWrCjLGAFA97tzO4Z5Slg1QESRad/DgMjz X-Received: by 2002:a6b:b44e:: with SMTP id d75mr2168898iof.194.1626161263692; Tue, 13 Jul 2021 00:27:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626161263; cv=none; d=google.com; s=arc-20160816; b=ZVkMZIdIThEUPVybEK5NkIqfTjsqQacZeRrYP+NiaWcMMKhodOkuI/9pQUdPrTlPdz 4oFPDPOQZNchTZ0YjkySxNZAHCKckjZJjrIUwgoHSzdFIO2mHXX9625yG1ky1vcipb4w JopUI/vC8T4469nSTw9g3HN3pNKSjwx670gJtd2D4N/CI9MqYKsTZ7c9tAlKV0Burvcc mLzraM/v672dvvQem5vgWLr217Ckwq4L/5jWwsxGLDklelTt7P0BxOEu97g+JfytcDX6 eDkR3gmKn0GHwqUeHSa6A3NtY6ABn4w/6x+il/JFsinfXEM8qNk4l/dDoxcugzsY1YM8 3jhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ueb2oXGhplDSGMEnhudHMkZjnXhD7LgCRpb7aPhf5rA=; b=WRHg3QBJZpp+XNLQzNT39cZEv1wiB60v2Bc/ZKIQLJIVELXkVGQYsfVXZ5uU6FBXUW 4r5Trn3vOGUc6gSnpO+yG/r5WVUDkEvWqVq49K881yuAxdfpddkLov6KZcOY8rjzhsNU Le282n2d2pWpGYO3sLwn0kFbcY41RX33l1V3QJN3XmZ6sg2Fsr5L62NbMA/bbg3l5qKp L7iYv3hC3e3enZI1uHVhP2cn+qsH/0dxzbOMDLrNETA74kmMAElAhjAq1WZfzj/gi7c3 7n/3NcSdFRrYCN+SxGRgCQHIbMcfRX1TfoGhChvoW3TCC9zzxYYwJ42wysKbGKcrjdYX GAjw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l13si18988618ilh.147.2021.07.13.00.27.31; Tue, 13 Jul 2021 00:27:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234205AbhGMH3w (ORCPT + 99 others); Tue, 13 Jul 2021 03:29:52 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:14075 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233762AbhGMH3w (ORCPT ); Tue, 13 Jul 2021 03:29:52 -0400 Received: from dggemv711-chm.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4GPBvN1SPwzbc2D; Tue, 13 Jul 2021 15:23:44 +0800 (CST) Received: from dggpemm500006.china.huawei.com (7.185.36.236) by dggemv711-chm.china.huawei.com (10.1.198.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 13 Jul 2021 15:27:00 +0800 Received: from thunder-town.china.huawei.com (10.174.179.0) by dggpemm500006.china.huawei.com (7.185.36.236) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 13 Jul 2021 15:27:00 +0800 From: Zhen Lei To: Bjorn Helgaas , linux-pci , linux-kernel CC: Zhen Lei Subject: [PATCH 1/1] PCI: Optimize pci_resource_len() to reduce the binary size of kernel Date: Tue, 13 Jul 2021 15:22:36 +0800 Message-ID: <20210713072236.3043-1-thunder.leizhen@huawei.com> X-Mailer: git-send-email 2.26.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.174.179.0] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpemm500006.china.huawei.com (7.185.36.236) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pci_resource_end() can be 0 only when pci_resource_start() is 0. Otherwise, it is definitely an error. In this case, pci_resource_len() should be regarded as 0. Therefore, determining whether pci_resource_start() and pci_resource_end() are both 0 can be reduced to determining only whether pci_resource_end() is 0. Although only one condition judgment is reduced, the macro function pci_resource_len() is widely referenced in the kernel. I used defconfig to compile the latest kernel on X86, and its binary code size was reduced by about 3KB. Before: [ 2] .rela.text RELA 0000000000000000 093bfcb0 0000000001a67168 0000000000000018 I 68 1 8 After: [ 2] .rela.text RELA 0000000000000000 093bfcb0 0000000001a66598 0000000000000018 I 68 1 8 Signed-off-by: Zhen Lei --- include/linux/pci.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/pci.h b/include/linux/pci.h index 540b377ca8f6..23ef1a15eb5d 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1881,9 +1881,7 @@ int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma); #define pci_resource_end(dev, bar) ((dev)->resource[(bar)].end) #define pci_resource_flags(dev, bar) ((dev)->resource[(bar)].flags) #define pci_resource_len(dev,bar) \ - ((pci_resource_start((dev), (bar)) == 0 && \ - pci_resource_end((dev), (bar)) == \ - pci_resource_start((dev), (bar))) ? 0 : \ + ((pci_resource_end((dev), (bar)) == 0) ? 0 : \ \ (pci_resource_end((dev), (bar)) - \ pci_resource_start((dev), (bar)) + 1)) -- 2.25.1