summaryrefslogtreecommitdiffstats
path: root/sys/pci/if_sis.c
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-01-10 09:56:47 +0000
committerru <ru@FreeBSD.org>2005-01-10 09:56:47 +0000
commit5556612cc1981ebd07ac334e60c4732d21b9b38b (patch)
tree10c15588155f6aee661b9865017b383eae984a20 /sys/pci/if_sis.c
parent7b52fab5af4a0c3274078b3c24859026d8d68eaf (diff)
downloadFreeBSD-src-5556612cc1981ebd07ac334e60c4732d21b9b38b.zip
FreeBSD-src-5556612cc1981ebd07ac334e60c4732d21b9b38b.tar.gz
Reimplement the fix in rev. 1.126.
OK'ed by: phk
Diffstat (limited to 'sys/pci/if_sis.c')
-rw-r--r--sys/pci/if_sis.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/pci/if_sis.c b/sys/pci/if_sis.c
index 071db9e..4c1609c 100644
--- a/sys/pci/if_sis.c
+++ b/sys/pci/if_sis.c
@@ -1641,12 +1641,12 @@ sis_intr(void *arg)
SIS_LOCK(sc);
#ifdef DEVICE_POLLING
- if ((ifp->if_flags & IFF_POLLING) ||
- ((ifp->if_capenable & IFCAP_POLLING) &&
- ether_poll_register(sis_poll, ifp))) { /* ok, disable interrupts */
+ if (ifp->if_flags & IFF_POLLING)
+ goto done;
+ if ((ifp->if_capenable & IFCAP_POLLING) &&
+ ether_poll_register(sis_poll, ifp)) { /* ok, disable interrupts */
CSR_WRITE_4(sc, SIS_IER, 0);
- SIS_UNLOCK(sc);
- return;
+ goto done;
}
#endif /* DEVICE_POLLING */
@@ -1687,6 +1687,9 @@ sis_intr(void *arg)
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
sis_startl(ifp);
+#ifdef DEVICE_POLLING
+done:
+#endif /* DEVICE_POLLING */
SIS_UNLOCK(sc);
}
OpenPOWER on IntegriCloud