Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jul 2007 11:53:14 -0700
From:      Julian Elischer <julian@elischer.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-current@freebsd.org, current@freebsd.org, "M. Warner Losh" <imp@bsdimp.com>
Subject:   Re: fun fun fun. no networking
Message-ID:  <4697CA1A.9060700@elischer.org>
In-Reply-To: <200707130907.37295.jhb@freebsd.org>
References:  <4659DAD1.9040609@elischer.org> <20070527.235832.-267226920.imp@bsdimp.com> <200707130907.37295.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:

> You can try this perhaps:

thanks, but it came to life again a few days later..
(I guess something else changed..)

> 
> --- //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. */
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4697CA1A.9060700>