Re: 2.6.8-rc4-mm1

Bjorn Helgaas
2004-08-12T23:22:37Z

On Thursday 12 August 2004 12:49 pm, Paul Blazejowski wrote:
> I managed to caputre the serial console output of the boot process
> with the error. Below is the full log.

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);
}