diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 5f1e1cc6165a91b5b5388dcabc8bac06d13db782..f5521051a8dc4355c622b1350c13377f02c537ea 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -3546,6 +3546,10 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
 	for (j = 0; j <= hba[i]->highest_lun; j++)
 		add_disk(hba[i]->gendisk[j]);
 
+	/* we must register the controller even if no disks exist */
+	if (hba[i]->highest_lun == -1)
+		add_disk(hba[i]->gendisk[0]);
+
 	return 1;
 
       clean4: