From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755829AbcHTBF4 (ORCPT ); Fri, 19 Aug 2016 21:05:56 -0400 Received: from mail-bn3nam01on0055.outbound.protection.outlook.com ([104.47.33.55]:36621 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755223AbcHTBFy (ORCPT ); Fri, 19 Aug 2016 21:05:54 -0400 X-Greylist: delayed 3671 seconds by postgrey-1.27 at vger.kernel.org; Fri, 19 Aug 2016 21:05:53 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Omer.Khaliq@cavium.com; From: Omer Khaliq To: , , , , , , , , CC: Omer Khaliq Subject: [PATCH 1/2] PCI/IOV: Add function to allow Function Dependency Link override. Date: Fri, 19 Aug 2016 15:32:12 -0700 Message-ID: <1471645933-3643-2-git-send-email-okhaliq@caviumnetworks.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1471645933-3643-1-git-send-email-okhaliq@caviumnetworks.com> References: <1471645933-3643-1-git-send-email-okhaliq@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: BN6PR07CA0038.namprd07.prod.outlook.com (10.172.104.24) To CY4PR07MB2951.namprd07.prod.outlook.com (10.169.253.13) X-MS-Office365-Filtering-Correlation-Id: 567fc997-5793-4ba4-a063-08d3c880c4d2 X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB2951;2:5l0Z9k+Drl1jnSXK1TMdzwnVfaS+KeAfRvfjeAOU3ZQWWWzTNkU/eWPusni9Fc1f8nNkBqBL3KI8eD4JaZfhcbwMzMJDD8fggxpCH9rm1QYfAf34+LVb1dY4BjV4Xoph7vMSWO3jnJjORPwmRZAv4mNAf0t5+kDImb0pUro3IA5tSZCVzYJUoMLxIXo1stl9;3:MMWvqJaFRmf8cbVDLCWeUWwptstNeLs6VO4yGvJvGJshkEFUiRp0xU2Hfo7nhHfdj7KSLqDXIYmn8JSXYPqMjebHpXw18ZSw0mqXbyFNCGpytjom7aMUeDvDv0jnHjUj X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR07MB2951; X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB2951;25:KCPLvmB/nGi4j6CG0CwK8Kb9swYG/kffW5Radml4P+IrKmchN/wT4triXaBQnaDCTFhISgvP6yNounCqEueRXOy0fHK7Wd0edl6stRrjDshT1EsRU849W1bURyZOkR6/wzbRIGbxzAF9Hxd1Ucth7H/K+570B6BmD0hkoLMEPLTGoMHYQp+5qrRmLKlqd6ovcMOECLiJ8GZBQLMoiZ8UISkcWRjMIMzRGv754sov2Rf5wk7V52aqJCFT+3PPSdWgNJg7ri+1WGiLT92NqPcRcnmsd9FshEw2ku0c4ftmwIcUJprhuB084e2mtKFbR0y43mDAsTfAtFf0Vn9cOegtI4+uYqmdRtBHpkZHF4cRZ7JFcUvgbNg+8m+MiYGAX1eJnsV+NxJK8meIALzEqZnnyOiQ83HpSlfgH6xXc7BHViHHSz0obTHELdpGOUxPK41dNeJ923AQ0B2HrvlOTgTsCoEJ+okBm+klFjIBwuTTq18cfrQOpP/RBGBahDfNzbgiEPH+pTs9qfacLnJB9e/v/wkNjto3KU4TtJORlkM91uM2kCNbCjRTePYy5dhIM1JAbTHEi7QApjxNLw+0SrgJrZDt2wA1hFHnVfgtTFtX/DcEA2xWId4RKP25dgQ63DgFSEBcUxPT1IdRrNiCjmHI0PzUAmq0o+7Q6BWkDx50E/hZ/kYm4SVjsFHahzLxYKYTgHbIIAqLPZ52NqxpN8Z5BNI5iEQlq7HqeVhW67XjaksnafOVikj72ui5s09wXoWKt+3jcJ7F251bd5Vfc+sPEA== X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB2951;31:Kjp5Tmi5c17E+cpo57PDHJlZegzm9YJnLxKtKvKFanCCtYZDe8D2HK/MELSsxZ62Ss+wpXOuiwHmXDJXewcbMQqmZ0Kyd/u1qBjz2fZoTwOF8OCHwNvSRP7PG2FrHCP2GcwxKk4ou1NEe9rgHFwr+MiznmIIv/9a2Rj6yQIKj/9Yx6kYccZWO3u44hRPoZBmQRSz2FdH3b0cijT3NQVJrBnWiDaH2uRN5SdUVFH0Wng=;20:O2qT+dgGyILTB26i+u86SfWWLs/TLDr44rPp6tSH+aT0Lf+Z2Nh2D8LYFhGm9tHpal0d8vHfLcW3833vrpFx5YMSGuaCQabL7o4gikRp13ZpNQc7z8P39/TSU4ZmYP6gi5X0i83ewjjKacxxGkq/8JuRCGWRLG7O5O+ixURQ4SN4YlrDYYM8hm8t17qlawewU3qIAVUtKJKFrA/zWPk8CIh2uiw75qoqC6/NfU52OfY6Ez7LizGT8RoXwUtIaFFhj/IIK9wB2OG7S9tO9E3TuyYMew65jVxy+JJEFTD9QfcYoogV6T5NB7/c1ZwoxVtjzW2dfexDc3VTf+dFIC61eR/vuorTVgx/D1wWPr73MuVM7i56EKF9TMIsxOTdteN5a0k7arx94ykLa1vuU6OH/vuvPPL7jmbDCgPIbNIvcpqsBx8LFi/urGiLiWCF/MQBuNV6H1T4sf21Qw6iJmrLI0oaVNFi4JzQUj5qUNKj3H3+yRXI175UfjZkiJjWpgbXR7vu+zfm2NI7cqrwmIJBRaA9F42srDwKzyCKXCD6+xQavi8rYKFFPSgfjxopcg64wBNpHnG1v8D10dIhr8fPp6ZoEbOrsO0Fc/k2basrO2k= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CY4PR07MB2951;BCL:0;PCL:0;RULEID:;SRVR:CY4PR07MB2951; X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB2951;4:jBJxFkCAHGZvFgWCNV6rMmIvxHkCG0Fuo08jg2m+cK0aQ1vRlTNDBnBMSJqYWUh2HsHPu6rAItG/DIlrzhkNSJKtxN4ly0vQKrjHscpiKF1oGO/9zZP6FrlSJXnPaWek5yzYX/kyNZL24ZpTfhiyjOJuJ/V00EISx9rEoS1vl0W5oc1tYMJnlkriyUMkRqpfBl7pQ3CFYeh805HVq5grqnCi3dXoiHy9ZR0HNeLLvBEj/9OuWxmH1Xkl0qIiLOi5JhhgmVra9b4qa5voMTog6Qc2OvQTf8fG4EUVDM8AiXkJLNR8YgDQkkGn2J/rWP29bsL90wKSEBpAQOFRJNfT7okJErEHVubf2Dx5U+DRzgVBrRgyvGIkET8JnxEaXE2T6Y7buNuIyaGReLVsnTDOLA== X-Forefront-PRVS: 0039C6E5C5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(47776003)(33646002)(48376002)(50226002)(7846002)(5001770100001)(586003)(7736002)(4326007)(97736004)(101416001)(19580405001)(66066001)(305945005)(50466002)(5003940100001)(107886002)(2950100001)(189998001)(3846002)(76176999)(19580395003)(6116002)(4001450100002)(42186005)(4001430100002)(36756003)(2201001)(77096005)(81166006)(8676002)(229853001)(106356001)(81156014)(105586002)(50986999)(92566002)(68736007)(2906002)(5660300001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR07MB2951;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR07MB2951;23:5izEFcC+D+JV2mXTJIsrjZTgrilarqH1/U45bbV1m?= =?us-ascii?Q?umC0V2ropxr3ictcZn/fsWOZ8xm2GfKFovYe0WNm05Wj1omRC24GlxlR+TVK?= =?us-ascii?Q?XcAo4bSHTg1peMe1wBZk5KxPwbxSlewxAyJgecPsc88eHFRPegjUxh0MBkNY?= =?us-ascii?Q?RT/e04gVDUF/jScZp2RknVcpKKTpbX4zi7w+AZ47F5kkHPQyFNOXREwOCyAC?= =?us-ascii?Q?0HdcE6f8oEKtLndeHF3J1+qVhlkj2MtAV170OD0DlN/sFrdiZE4PIuL0YmSp?= =?us-ascii?Q?b1QdokEPUDxl1pYXoqJ76ZJiCvZeQ3FBQT1dTy3oOTt9hHen8k9IyLA3KJMg?= =?us-ascii?Q?5T4YVE6XaaGUApOB5zbBTDEkZp/y/jju7F/66xWNjGUEsDu9UVDIEe0pG88/?= =?us-ascii?Q?m6k/L/Z+B3IWyX+h9UUCwaJ3rNmp4FBdW5+FyCyTEqVQuuqiaezmVtsIpBBs?= =?us-ascii?Q?kBE28VZ+30dUnCd7mjaUBU9+w0uZinR9pLDGMMKlChWm/k2TpDolwkfaIcev?= =?us-ascii?Q?n3Cqkxwm3/r6x8DiDTD5kcAx+0lDHoutr37AjD955Tvo9R/nXdirF8jh+ClE?= =?us-ascii?Q?8D0owqnPv984JQJN1NFzjci0GTrNzA58f3PfXLV6CRgA3uMN7eTw1KZM/R4W?= =?us-ascii?Q?m8silcITLBoKZ2zLocVo2BQDajJk/OcjXY99NnfO+uqXFMRTj7gHQVRBnsEk?= =?us-ascii?Q?z3biEtVgBQsyh2Sstww+lbJhMKXat4EOB3+QKV98o+wC3RptHn+re7c/pCIn?= =?us-ascii?Q?8i4VkFpYCrK0Y4w0b9QNV37mohY4loVh/Okv2ZPi7WHCtexlnka7Vv8uRRqG?= =?us-ascii?Q?a5wpUitO6XcKgf7RCZOpFGhTqPbeorvbKzdE39u6bPPtri5yfSexmbkNNhYw?= =?us-ascii?Q?HmcAZtkFmFETtC8bJ3eRU1yJnz7DHNgg5tK8PL0iXXFV0/emjuQngXzSV6xh?= =?us-ascii?Q?81SzXSI6S4DM/M5W6PowUyhElcHr6VO+1CUVrV78NAYSbKRZ3ernW0hQVOTf?= =?us-ascii?Q?lEG0jqTcU7RKw0uz8aoN7CMSdKyEOGdf7hVcA/5OoTVcYd2Uh9kn1v/q4OjB?= =?us-ascii?Q?2qlkG8a9MryZWyY5t/7lentG+ArOQ4M1od4+Hh5/HX63e203Pw4pabUkxq8/?= =?us-ascii?Q?LOPGI5hgvcR/Ck93WRzfOp2rtLSVoDs9Wfv3xX64euHz9/KnKQAP2TFIZQcJ?= =?us-ascii?Q?ydgWUX2HNDsuYQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB2951;6:WPV8CYwnkoMuUz2CX8GM1mkyOzK6pzeLPOQ+BDmS1eZGyRKjRHaJVHzIH+gm9rhpru+Xnj+6Gy3xtE6inImRm9O4f5nZB3jPVKx7Jtz80skqmV7Qc2lC9BcyeiaJPjFx11p+Kalj4N13cdTYF1Xy63aFNFsSOE4o3Wqj/FCly32JsmX1TE4OxlpckX+2NUhugke+ptIVSzW9K/Pme4PlFQWuqBQRAew5vZ/5yIUi/yxe1dkAHmyx03aVkYZdUqYNZQv9ZXpYh7DCbDQRKnsdYlx9MKTa5p5BGxn3ZTNaoI8=;5:Ed5tOiVKo1fu+W9sjbyS1/e9qZ0ggTDVqAbbFynYIjwT/yxHsB9Ux514Cd5y7FCXZbWiQD3huLhkiQyTWc+J6zn/ZbNCySt6KsAFXodZvvjMCxHV/Os6oMTripM/misBgEvM121vtxS0nM5ijSZ/5Q==;24:ZragDqb0clXb4maSzP/LmvApPNECtj6EVAqEI8topRbEBbJQs8vFtexfjb2QNfQbcD2No5oUF46dQxr9F6ZAQpvgOYI7DrUBmbOqjVM6iYc=;7:DiGZuhJwAAlrNOITdDTPoQbqCDNEFzoOSOZEX5SvXswxHBXE/rX4hzXWeuV/Yg0086aJ8l4tf5snj8+684C7fpHclZAdzqn41tjj0ISV1QdvL18sZeonZjsDBQet1f7micSRHGk3pe8f6oEwC245Sm2MXgNroS2qLmWX+P2U12rPneESatHQA2ar6Jomg3v9Ae/S8EoaXSrNwjGkPrnx17hoEFM9ECi/cSdNC/AeRXQLofUK9iNKux3/V4KtrMTk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2016 22:32:55.8346 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB2951 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Daney Some hardware presents an incorrect SR-IOV Function Dependency Link, add a function to allow this to be overridden in the PF driver for such devices. Signed-off-by: David Daney Signed-off-by: Omer Khaliq --- drivers/pci/iov.c | 14 ++++++++++++++ include/linux/pci.h | 1 + 2 files changed, 15 insertions(+) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index 2194b44..81f0672 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -640,6 +640,20 @@ int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn) EXPORT_SYMBOL_GPL(pci_enable_sriov); /** + * pci_sriov_fdl_override - fix incorrect Function Dependency Link + * @dev: the PCI device + * @fdl: the corrected Function Dependency Link value + * + * For hardware presenting an incorrect Function Dependency Link in + * the SR-IOV Extended Capability, allow a driver to override it. + */ +void pci_sriov_fdl_override(struct pci_dev *dev, u8 fdl) +{ + dev->sriov->link = fdl; +} +EXPORT_SYMBOL_GPL(pci_sriov_fdl_override); + +/** * pci_disable_sriov - disable the SR-IOV capability * @dev: the PCI device */ diff --git a/include/linux/pci.h b/include/linux/pci.h index 2599a98..da8a5b3 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1823,6 +1823,7 @@ int pci_num_vf(struct pci_dev *dev); int pci_vfs_assigned(struct pci_dev *dev); int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs); int pci_sriov_get_totalvfs(struct pci_dev *dev); +void pci_sriov_fdl_override(struct pci_dev *dev, u8 fdl); resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno); #else static inline int pci_iov_virtfn_bus(struct pci_dev *dev, int id) -- 1.9.1