/* This is the main interrupt service routine. hardware_lock locked upon entry. runs in interrupt context.  */
void qla4xxx_interrupt_service_routine(struct scsi_qla_host *ha, uint32_t intr_status)
/* This is the main interrupt service routine. hardware_lock locked upon entry. runs in interrupt context.  */
void qla4xxx_interrupt_service_routine(struct scsi_qla_host *ha, uint32_t intr_status)
{
	if (intr_status & CSR_SCSI_COMPLETION_INTR)
		qla4xxx_process_response_queue(ha);
	if (intr_status & CSR_SCSI_PROCESSOR_INTR) {
		qla4xxx_isr_decode_mailbox(ha,
					   readl(&ha->reg->mailbox[0]));
		writel(set_rmask(CSR_SCSI_PROCESSOR_INTR),
		       &ha->reg->ctrl_status);
		readl(&ha->reg->ctrl_status);
	}
}