From owner-freebsd-current@FreeBSD.ORG Fri Jul 13 13:19:36 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EBCD616A401; Fri, 13 Jul 2007 13:19:36 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.freebsd.org (Postfix) with ESMTP id 71FB913C4A6; Fri, 13 Jul 2007 13:19:36 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l6DDJVmE003637; Fri, 13 Jul 2007 09:19:31 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-current@freebsd.org Date: Fri, 13 Jul 2007 09:07:35 -0400 User-Agent: KMail/1.9.6 References: <4659DAD1.9040609@elischer.org> <20070527.235832.-267226920.imp@bsdimp.com> In-Reply-To: <20070527.235832.-267226920.imp@bsdimp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200707130907.37295.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Fri, 13 Jul 2007 09:19:31 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/3656/Fri Jul 13 07:24:51 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: julian@elischer.org, "M. Warner Losh" , current@freebsd.org Subject: Re: fun fun fun. no networking X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jul 2007 13:19:37 -0000 On Monday 28 May 2007 01:58:32 am M. Warner Losh wrote: > In message: <4659DAD1.9040609@elischer.org> > Julian Elischer writes: > : I finally rebooted my old laptop on a -current from about 3 weeks ago. > : (I did the rebuild then but the machine has been off since) > : and ta-da! no network card.. it is a Dell inspiron 7500 with > : a pccard 'ed' device card.. > : > : Was there anything broken 3 weeks ago WRT old ed driver cards? > : or pccd? > : > : It come up saying "unknown card type".. Which is odd > : as it always used to knwo what to do. > : > : This machine has a local CVS mirror on it so > : even though it's offline, I'm rebuilding from 2 months ago.. > : (I couldn't just reboot to the old system as there is really only just > : room for one kernel directory on the root partition.) > : > : More info when it comes back online > > I think, but am not sure, this is related to some changes John made to > acpi resource allocation. I get weird port allocations due to some > questionable assumptions on his part... I've not had time to look > into this in detail, but I see it on all cardbus cards that allocate > I/O ports. All of the ones that only do memory work great. You can try this perhaps: --- //depot/vendor/freebsd/src/sys/dev/acpica/acpi.c 2007/05/08 14:37:51 +++ //depot/user/jhb/acpipci/dev/acpica/acpi.c 2007/05/08 22:28:25 @@ -1030,17 +1030,18 @@ } /* - * If this is an allocation of a specific range, see if we can satisfy - * the request from our system resource regions. If we can't, pass the - * request up to the parent. + * Try to pass the request up to our parent first. If that + * doesn't work, then see if we can satisfy the request via a + * suballocation from our system resource regions. */ - if (start + count - 1 == end && rm != NULL) + res = BUS_ALLOC_RESOURCE(device_get_parent(bus), child, type, rid, + start, end, count, flags); + if (res == NULL && rm != NULL) { res = rman_reserve_resource(rm, start, end, count, flags & ~RF_ACTIVE, child); - if (res == NULL) { - res = BUS_ALLOC_RESOURCE(device_get_parent(bus), child, type, rid, - start, end, count, flags); - } else { + if (res == NULL) + goto out; + rman_set_rid(res, *rid); /* If requested, activate the resource using the parent's method. */ -- John Baldwin