From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15B10C433E1 for ; Thu, 16 Jul 2020 08:20:38 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BF4DE206C1 for ; Thu, 16 Jul 2020 08:20:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BF4DE206C1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=ACULAB.COM Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4B6nJ34QtgzDqxh for ; Thu, 16 Jul 2020 18:20:35 +1000 (AEST) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=aculab.com (client-ip=185.58.86.151; helo=eu-smtp-delivery-151.mimecast.com; envelope-from=david.laight@aculab.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=ACULAB.COM Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.86.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4B6nG32w2YzDqs3 for ; Thu, 16 Jul 2020 18:18:50 +1000 (AEST) Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-49-8A3qEGEvNG-fIwJc6vWVRQ-1; Thu, 16 Jul 2020 09:18:43 +0100 X-MC-Unique: 8A3qEGEvNG-fIwJc6vWVRQ-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Thu, 16 Jul 2020 09:18:41 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Thu, 16 Jul 2020 09:18:41 +0100 From: David Laight To: 'Bjorn Helgaas' Subject: RE: [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86 Thread-Topic: [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86 Thread-Index: AQHWWnPXll7fc/pDfESpF9qKWOuIcakIsKIAgABwtYCAALseUA== Date: Thu, 16 Jul 2020 08:18:41 +0000 Message-ID: References: <4c994d9a804b4a2c8555c50b63e20772@AcuMS.aculab.com> <20200715220135.GA563272@bjorn-Precision-5520> In-Reply-To: <20200715220135.GA563272@bjorn-Precision-5520> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Keith Busch , Paul Mackerras , sparclinux , Toan Le , Kjetil Oftedal , Greg Ungerer , Marek Vasut , Rob Herring , Lorenzo Pieralisi , Sagi Grimberg , Russell King , Ley Foon Tan , Christoph Hellwig , Geert Uytterhoeven , Kevin Hilman , linux-pci , Jakub Kicinski , Matt Turner , "linux-kernel-mentees@lists.linuxfoundation.org" , Guenter Roeck , 'Arnd Bergmann' , Ray Jui , Jens Axboe , Ivan Kokshaysky , Shuah Khan , "bjorn@helgaas.com" , Boris Ostrovsky , Richard Henderson , Juergen Gross , Bjorn Helgaas , Thomas Bogendoerfer , Scott Branden , Jingoo Han , "Saheed O. Bolarinwa" , "linux-kernel@vger.kernel.org" , Philipp Zabel , Greg Kroah-Hartman , Gustavo Pimentel , linuxppc-dev , "David S. Miller" , Heiner Kallweit Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Bjorn Helgaas > Sent: 15 July 2020 23:02 >=20 > On Wed, Jul 15, 2020 at 02:24:21PM +0000, David Laight wrote: > > From: Arnd Bergmann > > > Sent: 15 July 2020 07:47 > > > On Wed, Jul 15, 2020 at 1:46 AM Bjorn Helgaas wr= ote: > > > > > > So something like: > > > > > > > > void pci_read_config_word(struct pci_dev *dev, int where, u16 *va= l) > > > > > > > > and where we used to return anything non-zero, we just set *val =3D= ~0 > > > > instead? I think we do that already in most, maybe all, cases. > > > > > > Right, this is what I had in mind. If we start by removing the handli= ng > > > of the return code in all files that clearly don't need it, looking a= t > > > whatever remains will give a much better idea of what a good interfac= e > > > should be. > > > > It would be best to get rid of that nasty 'u16 *' parameter. >=20 > Do you mean nasty because it's basically a return value, but not > returned as the *function's* return value? I agree that if we were > starting from scratch it would nicer to have: >=20 > u16 pci_read_config_word(struct pci_dev *dev, int where) >=20 > but I don't think it's worth changing the thousands of callers just > for that. It'll shrink the kernel text size somewhat. It could also be 'fixed' with a static inline. Actually you don't even want the result to be u16. Even though the domain of the value is 0..65535 keeping the type as int (or unsigned int) will save the compiler having to generate lots of masking instructions. Code performance here will be overwhelmed by the time taken for the config space access. But more generally all local variables should really be the size of cpu registers. On x86-64 you need to use 'unsigned int' for anything used as array subscripts to avoid the 'sign extend' instructions. In some code paths it may matter... =09David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1= PT, UK Registration No: 1397386 (Wales)