From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755314AbcHVPEh (ORCPT ); Mon, 22 Aug 2016 11:04:37 -0400 Received: from mail-sn1nam02on0042.outbound.protection.outlook.com ([104.47.36.42]:10464 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753882AbcHVPEe (ORCPT ); Mon, 22 Aug 2016 11:04:34 -0400 X-Greylist: delayed 917 seconds by postgrey-1.27 at vger.kernel.org; Mon, 22 Aug 2016 11:04:33 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; Message-ID: <57BB10E5.1050506@caviumnetworks.com> Date: Mon, 22 Aug 2016 07:49:09 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Bjorn Helgaas CC: Omer Khaliq , , , , , , , , , Subject: Re: [PATCH 1/2] PCI/IOV: Add function to allow Function Dependency Link override. References: <1471645933-3643-1-git-send-email-okhaliq@caviumnetworks.com> <1471645933-3643-2-git-send-email-okhaliq@caviumnetworks.com> <20160822143637.GA18628@localhost> In-Reply-To: <20160822143637.GA18628@localhost> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: CO2PR07CA0039.namprd07.prod.outlook.com (10.141.194.177) To BN4PR07MB2129.namprd07.prod.outlook.com (10.164.63.11) X-MS-Office365-Filtering-Correlation-Id: d21f5a69-949e-4092-95ea-08d3ca9b7bdf X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2129;2:tsDHUKLmhomk2miIGmFvYWGnBTXCCKcH1aaZ6jgds6GxfW3zV988JEMaDArnkRpyQZmJ0L2UDvd6IGcfOGulSiUQr7Es2hIWJFvMXwq8RX+irY7BokRuua4ONYqeTI5vcCZt1UeTNTjOZLPRR1n/Gz+hyWjPF7pJ/5MOP4Gu5wANzNnzqTyB3stBgSLj3N8w;3:xeHni1fG3yDjpnb1tTeAObnJIx/FsQ1oKoYoFJXOmx3MwCu9oJ3sZ9o1rJ32sX25JLYDeN9X+eq0j3q5bm+doKNbOhXMcZDn9vep61BP5HqVS25IazDtwAg5JO2xmdtN;25:rbxAiQOBVtVI/calfu6JKmUtlNUpsnffEP8uJc7vGEYl4UoT07njTO6MfV/rMhvI0EbP+s/5G/EFXl+yo/YGoKepHy2q9fuGSNwQL8tkRx1oNFnqwkUkUfIwLQWh86VsBOyZ38YKazAoJZGgstjNNcJEYy8crBrgndGRbx+ndztMhuzbFb1HN6OeNLUhtM0QODlKB156FD4JWlbVG8MDfrtTevRFdL90O9V5G/UC9bbTa40fx7An3CvenXy5XOFmjMdbY06dOfsSD9Zivr/D1kEKMQcy9kwFFtbSS38yu8p2XIuyvm9/9SkFv7b4m+55JcFV1jOtfBndvMV34Mn9oZY1YwDdpC6//+5D6kt8GOYW9wWXJKuwCp4MjaBCopCWI5O9uWrhyH6QYxu+rI69lB7Put29Odw2gh0uf9/PZ6Q= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2129; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2129;31:9Bl3bb0fErbXHYHBCFEjT8kMWfDSKg9+/fC94LMGYE2HI2D14AlZ2dwKX8A2zvTQCRzOpMowZhCyv2j2YffJ7Q4JDnQ14/ZNxxZiFewPbTUNhx23DGtHtkAd6o3J+t4A3bmjng6P31h5P7N8fA9cutpbRBBDP7Yq+O/lAnM35UTXIJl9jN+nT9NEhur9Wa13NjKmrgbb7NbpcXPaQApDRU/SuWOEhVMlOobfYkij2BU=;20:ha5r2uK/ojrwTRZCXRYWMMQ/blo4TUoLgCpfhe1tAv6/KZx5Nw7494DRicHP3kd19p3Efi7tDw/ylAtyAgsCw2VjlchCJdOExlNSXDZXbkglnQyrIPuP9AwFkhunERcDyh3KlN/74Li9GR7QCESHUed/FPPbpqEuF6WaM5JSrM4BSltPZmU/W2YR1y1j+wXpcENeECjIJxq/gnig+C1LPBlk8cFQDODR5VxreARxcbRgEg7d/1ZukZ+7BsyV3sP03GxI/E/sTIalYZY4fA4FKOrEaDhBN2yr+9DKw5bBteFjzmJGXPf0QP9aU2SbLqdZJRK9cLA3rnHdQ5iIVZvL0zY6+uRuszrFqtubRwBw/IoGq4kPb2ax7Lf/lLdSq9hhfbNP60ULuH1QyAuE08PmKW4zMbJNRbTL8thH0jvvIWBSH7VQISOog/Ez5ZiVaBxbhHpxBsigYlNWxq4mffINzLx++IYD2Sn9u3caj9B59G3Pc2yvLryvsgI4m2uvkaoShFuGnctc41/OmmDR9XwVnB1gLwwMUVeFuix3vxJyLByrnJZbvNo74vaj8IdrkThmITHfVFZX1OhJM6Zpwn9WUnABaaci1eVl/1j+Zytwbng= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BN4PR07MB2129;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2129; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2129;4:OtCCrGhFEKxpFP6zKI1LN8I9VWystDWlFY+0LIer5V8dLmeZWtdP7E1pPGxnMfF0bK48gStE9F+4icNpFHW0drx1c/Dzi+dWV727qlNvSHXwzbKFfTnyOdeC+hMlwNDeZPmxy7LruKzGc7PZtg8mNJGFxmIvfeyl0gKS3oEvPg/QePrM2S0H54Gokx620RYS1P+DcyoalB8qNF2QvvzeHwVY8gpxAPKG9P+J3Bu2dXwNmB/2jVctsp5FAfgb/s8Ca4Jdnd45DYG0rNxw5Vt1Yt1TReWNgteGkRalYP+D/+jvWTQmz+vSLVo0mP8RhmDPsTa6ztGTKqvqm4WfWbUuowOm85Clz0F7pwRZW2yfJUER1/eoa0dcMbHOpCjZRPYrAMFu1yzqbKkD/iYhODbPxI04Rx+EXRtDxAmL/+3cU2I= X-Forefront-PRVS: 00429279BA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(377454003)(24454002)(2950100001)(33656002)(101416001)(42186005)(189998001)(77096005)(15975445007)(105586002)(64126003)(53416004)(305945005)(7846002)(81156014)(81166006)(7736002)(47776003)(19580395003)(66066001)(65806001)(65956001)(4326007)(19580405001)(50466002)(2906002)(8676002)(68736007)(69596002)(83506001)(5660300001)(80316001)(4001430100002)(230700001)(50986999)(65816999)(54356999)(87266999)(76176999)(6116002)(23756003)(97736004)(3846002)(106356001)(4001350100001)(107886002)(110136002)(36756003)(92566002)(586003)(59896002)(422495003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR07MB2129;H:dl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BN4PR07MB2129;23:+AayEAwZNy/YInoKTbApIZ3R2LvrUbM/AjKEYu+?= =?iso-8859-1?Q?iViJK4iVMgNpU8Js8+c5bH85ORTN9dplmUV0baOWLOUj8YN7nrwNknRVWz?= =?iso-8859-1?Q?H839/sz3qf+aB7l2SZ0WtR3PzyAGlqzMxnB1dLPjkeBxQIPqyl8T2Zut4w?= =?iso-8859-1?Q?nxA8oC6OS8itEz3sk+m1w4Q6HQaI3ZhEyJAtAAslA9AMw7cBgib5FM2Hl3?= =?iso-8859-1?Q?TJqGSHsKoEV2eW21do2+Q2GGvMMHF8bRHFbCMC5x6ihnN3kXIvARM+8VzN?= =?iso-8859-1?Q?2Hlgo81n7gP/CA11HZnaHj+PhuilywS65hjEu7Zd+OTOh7ECriva+5p1qv?= =?iso-8859-1?Q?E8GMeykJuYalYP4lFkK2UOAOLszxkK4C99Zp8uZaO3wE0zrmMpGZEoOZYU?= =?iso-8859-1?Q?22XG6iCAeEJsjzKpZkjQF1sRnXzVsrxJBHgzDmNhuIjDwmIcG3heJvabys?= =?iso-8859-1?Q?j8/BD0oZPkH/M27rFjL9+0BmbAwHswOh8jjj6DbV+F6E0Kr7O7CTwz6Y1P?= =?iso-8859-1?Q?qfM0/ry8tuM8Mxk+9y4qPfOKritB23bW6flLhhSWL/E6mKxADZ90pc6gz2?= =?iso-8859-1?Q?x0OnU1IzkiCU9kMmM0mRLeQhMUefSfI/yk8E+wdIJrfQWxeB5KMmEy2lsq?= =?iso-8859-1?Q?sWan2jysb2yWqKQUXm0rfNn2+bOvM7KQgxos7JGjvL53KOwnqld0FjJRRK?= =?iso-8859-1?Q?Pk/Wv/vfnHwmoAG+J0GfB09Sa1/gyEqubohzjiK8l1Lwo74LTO3psj+YUh?= =?iso-8859-1?Q?QG9x5Eegj8PpR+TIUiVntFhfjx5ylIWnXvFp1K8VTA+EQQD0bwQ/rlik9e?= =?iso-8859-1?Q?jW+0TGR1byGBEnMpGjReEgpCsS8Ntj8WMuU36sw3UL/j2CBFX7ZUjSJOaa?= =?iso-8859-1?Q?S3w6MIm2qUMe5tmiVkE7MuRxxl/QpmbVDDZrfxCx0lzzwt5FqL66RPUMVs?= =?iso-8859-1?Q?Ya0VdGd7ky8vh2d5EUfHtqmntMrJxg0uPZR5KIgLnmTRhuQ18ZB6HJ+K4b?= =?iso-8859-1?Q?ooDIQITas5aoJ+10s7Lyp+prvZxpCrLKDPFiz7PEUFTe0kGgbsFZzxWfQi?= =?iso-8859-1?Q?k5DcSdq/GSIg2j3p8D4irlrWANmOOryXCxNnJiG7iU3Y9nrKsbtV1ZgWjp?= =?iso-8859-1?Q?6Yrc9q7KpTJr4YD2ZNUigrhaTNovTdvKwdC8HYGTzciEjH2aNmIUbfXfxP?= =?iso-8859-1?Q?CYdHfqbxAJ59BDVm5HV3+AEergMLyWvSGsOzrQYjyA4cCmTWMyQ1doc/9w?= =?iso-8859-1?Q?Z5A6dfQFFK5yDm2pjpubtamETGRIjCkXpP/tQSXQ3CsY5muuTFRA/x6XZn?= =?iso-8859-1?Q?kkRTXlnExSU3DW1gH3r9e4U6NdUEeQomaqoAPimNmLl1WtSXhuSsM5tpGK?= =?iso-8859-1?Q?IKnSL0pSMAfSaYAPCQCtqmpzvw10fI3myEHl3EH8HMyQ8+BCnVg0GDwlwy?= =?iso-8859-1?Q?wD6Gxx0hG+/Blto5euBR02fsS5Nzy3Vf3QC+wY83NojiTgvBBEWhQFzvg?= =?iso-8859-1?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2129;6:pajCX6PrrHh6o4zgcRvFO+KoDaxxORnMUANqMYn5czxROie9ZUCqbMiFRG2h/GyWRX7Ru0XszvtZIm/Cjr0tWXNxsLR76IKLO9gLVW7ISVrPcAMncpZVjd0b1cfPqflwyLv230Q6MzBJ549mflemBBdf/ByLvDcirVShdqMgQIo7VpovbEXNjOi4cNwfSvvCJXtyA7mwXbSSpaIiNZom/KO5sE0BjIcguoFcDUljt77cGe6R4znxaex7X9T0WLsrrTucKqf1EdSAP2eKeU8Ie8Z9FJXtRWMDL83CuSll5Lg=;5:dExfQfSkSInW1dD2CtyRQP55QC0+w41nrIqDBRNP1si/MRGnkewITdXDybVj/IINtOZS5li3n0cShIR/HnvQp1TE0z6KZccx1YMR0JLiaPm367ll4CNonQqOqFXyY1lI399mRj9YGymc9Mtim85NQA==;24:wds7Ox4SV7FxK8Y24suf8Dd7T07skJCOaIQ07WWqQxWzenEdYdEYrQxYqqVfXpUWcvzz8/sQsYioZZ7kbVBFvKaHDNGA5oJt7ERiM2Dn1yA=;7:pKuVvlrvrNDk0zAWR2p0of8rqaSJmlZS50OrmPmcJ3f0hp22SUOEEdYVlufFL5oD5VBHgqAVxtOUA5WTaIWhdfzejdQlGQYH0fCGhBdQPX77Peuq04UMt84LyGcqaxdol6CXnIpPzqzfYpMjSfJD+jC7ph/LdfqKLWAlaKq4HPfXvX1QOURXrT6vbWpsDehTwFQD4SNTbBAqZ7ADcTxL1d2S1or5s7lC1G2yrEdHzZNFgSOQ6jdHVF+G/LX5XUtK SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2016 14:49:12.1381 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2129 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/22/2016 07:36 AM, Bjorn Helgaas wrote: > Hi David & Omer, > > On Fri, Aug 19, 2016 at 03:32:12PM -0700, Omer Khaliq wrote: >> 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); > > We usually use quirks to work around problems in config space. That's > a nice mechanism because we don't have to add new PCI core interfaces > and it makes it clear that we're working around a hardware problem. > > Can you use a quirk here? We allocate dev->sriov in the > pci_init_capabilities() path, so it looks like a pci_fixup_final quirk > should work. > The struct pci_sriov definition is private to drivers/pci, so in order to use a quirk to fix this, we would have to put it in drivers/pci/quirks.c. I was trying to keep this very device specific code in the driver, which requires an accessor to be able to manipulate the dev->sriov->link field. If you prefer a quirk in drivers/pci/quirks.c, we can certainly do that instead. Thanks for taking the time to look at this, David Daney >> + >> +/** >> * 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 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-pci" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html