]> git.hungrycats.org Git - linux/commitdiff
[PATCH] cciss: rmmod oops fix
authorAndrew Morton <akpm@osdl.org>
Sun, 8 Feb 2004 01:44:08 +0000 (17:44 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Sun, 8 Feb 2004 01:44:08 +0000 (17:44 -0800)
From: mikem@beardog.cca.cpqcorp.net

This patch fixes an Oops when unloading the driver.  Bug fix.  Please
consider this for inclusion.

All of the patches sent out are needed to get the driver in the 2.6 tree up
to the level of the driver that is in the 2.4 tree, excluding this patch
which is not required in 2.4.

More patches will be coming.  They include multi-path failover support,
support for more than 8 controllers, and msi support.  Presently working on a
per logical volume queueing scheme.

drivers/block/cciss.c

index 62641560eb16eccc6b40154bac10f066adda6708..74aa58bf101f16831fe9d5fc00be77ac1144aa81 100644 (file)
@@ -2685,7 +2685,6 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev)
        pci_set_drvdata(pdev, NULL);
        iounmap((void*)hba[i]->vaddr);
        cciss_unregister_scsi(i);  /* unhook from SCSI subsystem */
-       blk_cleanup_queue(hba[i]->queue);
        unregister_blkdev(COMPAQ_CISS_MAJOR+i, hba[i]->devname);
        remove_proc_entry(hba[i]->devname, proc_cciss); 
        
@@ -2696,6 +2695,7 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev)
                        del_gendisk(disk);
        }
 
+       blk_cleanup_queue(hba[i]->queue);
        pci_free_consistent(hba[i]->pdev, NR_CMDS * sizeof(CommandList_struct),
                            hba[i]->cmd_pool, hba[i]->cmd_pool_dhandle);
        pci_free_consistent(hba[i]->pdev, NR_CMDS * sizeof( ErrorInfo_struct),