From: Dave Olien The dynamic queue allocation appears to have exposed a long-standing bug. 25-akpm/drivers/block/DAC960.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/block/DAC960.c~dac960-oops-fix drivers/block/DAC960.c --- 25/drivers/block/DAC960.c~dac960-oops-fix Tue Aug 12 14:33:04 2003 +++ 25-akpm/drivers/block/DAC960.c Tue Aug 12 14:33:04 2003 @@ -2487,6 +2487,7 @@ static boolean DAC960_RegisterBlockDevic for (n = 0; n < DAC960_MaxLogicalDrives; n++) { struct gendisk *disk = Controller->disks[n]; + Controller->disks[n]->queue = RequestQueue; sprintf(disk->disk_name, "rd/c%dd%d", Controller->ControllerNumber, n); sprintf(disk->devfs_name, "rd/c%dd%d", Controller->ControllerNumber, n); disk->major = MajorNumber; @@ -2717,7 +2718,6 @@ DAC960_DetectController(struct pci_dev * if (!Controller->disks[i]) goto Failure; Controller->disks[i]->private_data = (void *)i; - Controller->disks[i]->queue = Controller->RequestQueue; } init_waitqueue_head(&Controller->CommandWaitQueue); init_waitqueue_head(&Controller->HealthStatusWaitQueue); _