Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Mar 2009 08:34:32 -0700 (PDT)
From:      Barney Cordoba <barney_cordoba@yahoo.com>
To:        current@freebsd.org
Subject:   pci_alloc_resource is broken
Message-ID:  <513261.38032.qm@web63907.mail.re1.yahoo.com>
In-Reply-To: <706191.48959.qm@web63902.mail.re1.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help




--- On Sat, 3/28/09, Barney Cordoba <barney_cordoba@yahoo.com> wrote:

> From: Barney Cordoba <barney_cordoba@yahoo.com>
> Subject: Re: Bus Resource busy panic
> To: current@freebsd.org
> Date: Saturday, March 28, 2009, 8:03 PM
> --- On Sat, 3/28/09, Barney Cordoba
> <barney_cordoba@yahoo.com> wrote:
> 
> > From: Barney Cordoba <barney_cordoba@yahoo.com>
> > Subject: Bus Resource busy panic
> > To: current@freebsd.org
> > Date: Saturday, March 28, 2009, 6:35 PM
> > I have a situation that results in a panic in 8 that
> runs
> > happily in 7.
> > Its a bus_alloc_resource of type SYS_RES_MEMORY that
> is
> > used by 2
> > separate devices. 
> > 
> > I see there is an RF_SHAREABLE flag. That flag
> hadn't
> > been set, but is there
> > something in 8 that now requires it?
> > 
> > As a side question, should a bus_alloc_resource call
> panic
> > the system just
> > because the resource is busy?
> > 
> > Barney
> 
> Some more info on this. The panic is in
> resource_list_alloc() and
> setting SHAREABLE doesn't fix it. I see the same code
> in 7 so 
> I'm not sure why it would work in 7 and not 8.
> 
> Basically there are 2 devices that need to do IO on a
> board, and they
> are both doing
> 
> bus_alloc_resource_any(dev, SYS_RES_MEMORY,&rid,
> RF_ACTIVE);
> 
> 
> Barney
> 

I'm not sure if anyone was reading the original thread, so I
created another with my results.

Someone broke pci_alloc_resource. In the SYS_RES_MEMORY case, when
rman_get_device() != dev (but rle->res is set), it erroneously
falls to resource_list_alloc which will panic on device resource busy.

It seems that this would preclude the sharing of a resource, as any
secondary request will not only fail, but panic the system

Barney


      



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