On 10/27/2016 12:21 AM, Don Brace wrote: > Tell the controller to NMI when the controller deadlocks. > > Reviewed-by: Scott Benesh <scott.benesh@xxxxxxxxxxxxx> > Reviewed-by: Scott Teel <scott.teel@xxxxxxxxxxxxx> > Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx> > Signed-off-by: Don Brace <don.brace@xxxxxxxxxxxxx> > --- > drivers/scsi/hpsa.c | 6 ++++++ > drivers/scsi/hpsa_cmd.h | 1 + > 2 files changed, 7 insertions(+) > > diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c > index 798fb20..9fb739c 100644 > --- a/drivers/scsi/hpsa.c > +++ b/drivers/scsi/hpsa.c > @@ -8451,6 +8451,12 @@ static void controller_lockup_detected(struct ctlr_info *h) > "lockup detected after %d but scratchpad register is zero\n", > h->heartbeat_sample_interval / HZ); > lockup_detected = 0xffffffff; > + } else if (lockup_detected == 0xffff0000) { > + /* > + * Ring controller NMI doorbell > + */ > + dev_warn(&h->pdev->dev, "Telling controller to do an NMI\n"); > + writel(DOORBELL_GENERATE_NMI, h->vaddr + SA5_DOORBELL); > } > set_lockup_detected_for_all_cpus(h, lockup_detected); > spin_unlock_irqrestore(&h->lock, flags); > diff --git a/drivers/scsi/hpsa_cmd.h b/drivers/scsi/hpsa_cmd.h > index a584cdf..d186f80 100644 > --- a/drivers/scsi/hpsa_cmd.h > +++ b/drivers/scsi/hpsa_cmd.h > @@ -142,6 +142,7 @@ > #define DOORBELL_CTLR_RESET 0x00000004l > #define DOORBELL_CTLR_RESET2 0x00000020l > #define DOORBELL_CLEAR_EVENTS 0x00000040l > +#define DOORBELL_GENERATE_NMI 0x00000080l > > #define CFGTBL_Trans_Simple 0x00000002l > #define CFGTBL_Trans_Performant 0x00000004l > Care to elaborate a bit more here? 'Generating NMI' tends to ring some alarm bells, so I'd rather know where the NMI is actually generated, and if is could reflect back to the system ... Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html