Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760733AbYC0RVS (ORCPT ); Thu, 27 Mar 2008 13:21:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756205AbYC0RVE (ORCPT ); Thu, 27 Mar 2008 13:21:04 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:55357 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756180AbYC0RVC (ORCPT ); Thu, 27 Mar 2008 13:21:02 -0400 Date: Thu, 27 Mar 2008 10:12:10 -0700 (PDT) From: Linus Torvalds To: Ivan Kokshaysky cc: Gary Hade , Ingo Molnar , Thomas Meyer , Stefan Richter , Thomas Gleixner , "Rafael J. Wysocki" , LKML , Adrian Bunk , Andrew Morton , Natalie Protasevich , Benjamin Herrenschmidt , pm@debian.org Subject: Re: [patch] pci: revert "PCI: remove transparent bridge sizing" In-Reply-To: Message-ID: References: <47E969E1.6080608@m3y3r.de> <20080326101450.GA9060@jurassic.park.msu.ru> <20080326135458.GA27621@elte.hu> <20080326180701.GA6249@us.ibm.com> <20080326203012.GB6249@us.ibm.com> <20080326205828.GA15225@jurassic.park.msu.ru> <20080326232922.GA15784@jurassic.park.msu.ru> User-Agent: Alpine 1.00 (LFD 882 2007-12-20) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1851 Lines: 43 On Wed, 26 Mar 2008, Linus Torvalds wrote: > On Thu, 27 Mar 2008, Ivan Kokshaysky wrote: > > > > If the new "align" field (and then, maybe, "size" instead of "end"?) > > is OK, then I'm definitely willing to give it a try. > > Adding an alignment field should be a non-issue: the size of this > structure is not likely to be a big deal (yeah, we have something like 12 > of them in each PCI device etc, so smaller is better, but it's still not > going to be something anybody really notices). Actually, before we go any further, there might be a less intrusive alternative: add just a couple of flags to the resource flags field (we still have something like 8 unused bits on 32-bit), and use those to implement a generic "resource_alignment()" routine. Two flags would do it: - IORESOURCE_SIZEALIGN: size indicates alignment (regular PCI device resources) - IORESOURCE_STARTALIGN: start field is alignment (PCI bus resources during probing) and then the case of both flags zero (or both bits set) would actually be "invalid", and we would also clear the IORESOURCE_STARTALIGN flag when we actually allocate the resource (so that we don't use the "start" field as alignment incorrectly when it no longer indicates alignment). That wouldn't be totally generic, but it would have the nice property of automatically at least add sanity checking for that whole "res->start has the odd meaning of 'alignment' during probing" and remove the need for a new field, and it would allow us to have a generic "resource_alignment()" routine that just gets a resource pointer. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/