summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2007-05-10 17:41:51 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2007-05-10 17:41:51 +0000
commit796638b2971697dc09865edef3662108b9376553 (patch)
treed9653f9a9f1722920122007efb8529138583c802
parentda1a35721bbb934b270bbaa87984c780eee066f5 (diff)
Don't skip channels that don't have the WDCF_IRQ_WAIT flag set. Apparently
some chips generate interrupts we don't expect, but we need to ack those. Fixes the cdrom hangs on various sparc64 systems. tested by some, ok deraadt@
-rw-r--r--sys/dev/pci/pciide.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index ed48ba97073..4f5548d13e8 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.266 2007/05/02 00:53:25 jsg Exp $ */
+/* $OpenBSD: pciide.c,v 1.267 2007/05/10 17:41:50 kettenis Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -1494,9 +1494,6 @@ pciide_pci_intr(void *arg)
/* If a compat channel skip. */
if (cp->compat)
continue;
- /* if this channel not waiting for intr, skip */
- if ((wdc_cp->ch_flags & WDCF_IRQ_WAIT) == 0)
- continue;
if (pciide_intr_flag(cp) == 0)
continue;