Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cciss: do not use bit 2 doorbell reset

It causes NMIs which are undesirable at best, unsurvivable at worst.
Prefer the soft reset instead.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>

authored by

Stephen M. Cameron and committed by
Jens Axboe
063d2cf7 ec52d5f1

+8 -2
+8 -2
drivers/block/cciss.c
··· 4673 4673 use_doorbell = DOORBELL_CTLR_RESET2; 4674 4674 } else { 4675 4675 use_doorbell = misc_fw_support & MISC_FW_DOORBELL_RESET; 4676 - if (use_doorbell) 4677 - use_doorbell = DOORBELL_CTLR_RESET; 4676 + if (use_doorbell) { 4677 + dev_warn(&pdev->dev, "Controller claims that " 4678 + "'Bit 2 doorbell reset' is " 4679 + "supported, but not 'bit 5 doorbell reset'. " 4680 + "Firmware update is recommended.\n"); 4681 + rc = -ENOTSUPP; /* use the soft reset */ 4682 + goto unmap_cfgtable; 4683 + } 4678 4684 } 4679 4685 4680 4686 rc = cciss_controller_hard_reset(pdev, vaddr, use_doorbell);