Bjorn, Thank you for the patch. I applied it and now the kernel boots fine. Attached is the dmesg from successful boot. Regards, Paul -- FreeBSD the Power to Serve! On Thu, 12 Aug 2004 17:21:46 -0600, Bjorn Helgaas wrote: > > Thank you very much for the pictures and the transcript. I found a > couple bugs in the iteraid driver. Could you please try the attached > patch? > > --- 2.6.8-rc4-mm1/drivers/scsi/iteraid.h.orig 2004-08-12 16:50:38.483419878 -0600 > +++ 2.6.8-rc4-mm1/drivers/scsi/iteraid.h 2004-08-12 17:16:08.569338635 -0600 > @@ -1203,8 +1203,8 @@ > typedef struct _Adapter { > char *name; /* Adapter's name */ > u8 num_channels; /* How many channels support */ > - u8 irq; /* irq number */ > - u8 irqOwned; /* If any irq is use */ > + unsigned int irq; /* irq number */ > + unsigned int irqOwned; /* If any irq is use */ > u8 pci_bus; /* PCI bus number */ > u8 devfn; /* Device and function number */ > u8 offline; /* On line or off line */ > --- 2.6.8-rc4-mm1/drivers/scsi/iteraid.c.orig 2004-08-12 16:43:38.700221895 -0600 > +++ 2.6.8-rc4-mm1/drivers/scsi/iteraid.c 2004-08-12 17:18:19.419922969 -0600 > @@ -4798,6 +4798,7 @@ > pAdap->name); > return -1; > } > + printk("%s: IRQ %d for device at %s\n", __FUNCTION__, pAdap->irq, pci_name(pPciDev)); > pAdap->irqOwned = pAdap->irq; > } > > @@ -4901,12 +4902,17 @@ > if (PCI_FUNC(pPciDev->devfn)) > continue; > > + if (pci_enable_device(pPciDev)) > + continue; > + > + printk("%s: device at %s\n", __FUNCTION__, pci_name(pPciDev)); > /* > * Allocate memory for Adapter. > */ > pAdap = (PITE_ADAPTER) kmalloc(sizeof(ITE_ADAPTER), GFP_ATOMIC); > if (pAdap == NULL) { > printk("iteraid_detect: pAdap allocate failed.\n"); > + pci_disable_device(pPciDev); > continue; > } > memset(pAdap, 0, sizeof(ITE_ADAPTER)); > @@ -5016,6 +5022,7 @@ > if (pAdap->IDEChannel != NULL) { > kfree(pAdap->IDEChannel); > } > + pci_disable_device(pAdap->pci_dev); > if (pAdap != NULL) { > kfree(pAdap); > } >