Commit 0e4b3163 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix DAC960 oops

From: Dave Olien <dmo@osdl.org>

The dynamic queue allocation appears to have exposed a long-standing bug.
parent 229326a9
...@@ -2487,6 +2487,8 @@ static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller) ...@@ -2487,6 +2487,8 @@ static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller)
for (n = 0; n < DAC960_MaxLogicalDrives; n++) { for (n = 0; n < DAC960_MaxLogicalDrives; n++) {
struct gendisk *disk = Controller->disks[n]; struct gendisk *disk = Controller->disks[n];
disk->queue = RequestQueue;
sprintf(disk->disk_name, "rd/c%dd%d", Controller->ControllerNumber, n); sprintf(disk->disk_name, "rd/c%dd%d", Controller->ControllerNumber, n);
sprintf(disk->devfs_name, "rd/c%dd%d", Controller->ControllerNumber, n); sprintf(disk->devfs_name, "rd/c%dd%d", Controller->ControllerNumber, n);
disk->major = MajorNumber; disk->major = MajorNumber;
...@@ -2717,7 +2719,6 @@ DAC960_DetectController(struct pci_dev *PCI_Device, ...@@ -2717,7 +2719,6 @@ DAC960_DetectController(struct pci_dev *PCI_Device,
if (!Controller->disks[i]) if (!Controller->disks[i])
goto Failure; goto Failure;
Controller->disks[i]->private_data = (void *)i; Controller->disks[i]->private_data = (void *)i;
Controller->disks[i]->queue = Controller->RequestQueue;
} }
init_waitqueue_head(&Controller->CommandWaitQueue); init_waitqueue_head(&Controller->CommandWaitQueue);
init_waitqueue_head(&Controller->HealthStatusWaitQueue); init_waitqueue_head(&Controller->HealthStatusWaitQueue);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment