Boot panic w/7.2-STABLE on amd64: resource_list_alloc

John Baldwin jhb at freebsd.org
Mon May 18 17:07:44 UTC 2009


On Sunday 17 May 2009 6:51:19 pm Alexander Motin wrote:
> John Baldwin wrote:
> > Sounds like the ATA driver is allocating the same BAR twice.  Hmm, yes, it 
> > allocates the resources once for each channel it seems in the ata_ali_sata 
> > attachment.  Looking in ata-chipset.c, all the other chipsets are good 
about 
> > allocating these resources in their chipinit routines rather than the 
> > per-channel allocate routine.  Well, except ata_pci_allocate() is also 
> > busted.  *sigh*  I can work on a patch for HEAD if you are willing to 
test.
> 
> ata_pci_allocate() (now known as ata_pci_ch_attach()) is a different 
> case. It uses allocation functions wrapped by the atapci "bus", so every 
> channel uses it's own pair of RIDs.

Hmm, ok.

> Problem of ALI SATA is a bit different. As I understand, controller has 
> two pairs of RIDs for 4 channels, so each channel should share resources 
> with another one, just using different offset. Is there any other way to 
> correctly handle two halves of same resource separately without teaching 
> atapci to virtualize this as interrupts or handle it on controller level?

I will just fix the ALI attachment to handle this possibly by 
using 'chipset_data' to cache resources.

-- 
John Baldwin


More information about the freebsd-stable mailing list