aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/firewire
diff options
context:
space:
mode:
authorAttilio Rao <attilio@FreeBSD.org>2009-05-30 15:14:44 +0000
committerAttilio Rao <attilio@FreeBSD.org>2009-05-30 15:14:44 +0000
commit1abcdbd127e95ffe08399ec75a7001edd1ca2f5f (patch)
tree073ce0f089e7f642e36b12a238c6d66778db53f5 /sys/dev/firewire
parentd68bbb81fb5d0e122aaf726957d6d93c41af9edc (diff)
Notes
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r--sys/dev/firewire/if_fwe.c7
-rw-r--r--sys/dev/firewire/if_fwip.c9
2 files changed, 11 insertions, 5 deletions
diff --git a/sys/dev/firewire/if_fwe.c b/sys/dev/firewire/if_fwe.c
index 1c88af8eaa4c..62616cfcf667 100644
--- a/sys/dev/firewire/if_fwe.c
+++ b/sys/dev/firewire/if_fwe.c
@@ -105,18 +105,19 @@ TUNABLE_INT("hw.firewire.fwe.rx_queue_len", &rx_queue_len);
#ifdef DEVICE_POLLING
static poll_handler_t fwe_poll;
-static void
+static int
fwe_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
{
struct fwe_softc *fwe;
struct firewire_comm *fc;
if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
- return;
+ return (0);
fwe = ((struct fwe_eth_softc *)ifp->if_softc)->fwe;
fc = fwe->fd.fc;
fc->poll(fc, (cmd == POLL_AND_CHECK_STATUS)?0:1, count);
+ return (0);
}
#endif /* DEVICE_POLLING */
@@ -455,6 +456,7 @@ fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
/* Disable interrupts */
fc->set_intr(fc, 0);
ifp->if_capenable |= IFCAP_POLLING;
+ ifp->if_capenable |= IFCAP_POLLING_NOCOUNT;
return (error);
}
if (!(ifr->ifr_reqcap & IFCAP_POLLING) &&
@@ -463,6 +465,7 @@ fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
/* Enable interrupts. */
fc->set_intr(fc, 1);
ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable &= ~IFCAP_POLLING_NOCOUNT;
return (error);
}
}
diff --git a/sys/dev/firewire/if_fwip.c b/sys/dev/firewire/if_fwip.c
index 90df5a52c4f8..66cdb4aba11d 100644
--- a/sys/dev/firewire/if_fwip.c
+++ b/sys/dev/firewire/if_fwip.c
@@ -112,18 +112,19 @@ TUNABLE_INT("hw.firewire.fwip.rx_queue_len", &rx_queue_len);
#ifdef DEVICE_POLLING
static poll_handler_t fwip_poll;
-static void
+static int
fwip_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
{
struct fwip_softc *fwip;
struct firewire_comm *fc;
if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
- return;
+ return (0);
fwip = ((struct fwip_eth_softc *)ifp->if_softc)->fwip;
fc = fwip->fd.fc;
fc->poll(fc, (cmd == POLL_AND_CHECK_STATUS)?0:1, count);
+ return (0);
}
#endif /* DEVICE_POLLING */
@@ -436,7 +437,8 @@ fwip_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
return(error);
/* Disable interrupts */
fc->set_intr(fc, 0);
- ifp->if_capenable |= IFCAP_POLLING;
+ ifp->if_capenable |= IFCAP_POLLING |
+ IFCAP_POLLING_NOCOUNT;
return (error);
}
@@ -446,6 +448,7 @@ fwip_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
/* Enable interrupts. */
fc->set_intr(fc, 1);
ifp->if_capenable &= ~IFCAP_POLLING;
+ ifp->if_capenable &= ~IFCAP_POLLING_NOCOUNT;
return (error);
}
}