summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/usb/usb.c10
-rw-r--r--sys/dev/usb/usb_mem.c10
2 files changed, 17 insertions, 3 deletions
diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c
index b7a6d0a..1b30328 100644
--- a/sys/dev/usb/usb.c
+++ b/sys/dev/usb/usb.c
@@ -56,7 +56,9 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
+#if __FreeBSD_version >= 500000
#include <sys/mutex.h>
+#endif
#if defined(__NetBSD__) || defined(__OpenBSD__)
#include <sys/device.h>
#elif defined(__FreeBSD__)
@@ -378,7 +380,7 @@ usb_event_thread(void *arg)
{
struct usb_softc *sc = arg;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) && __FreeBSD_version >= 500000
mtx_lock(&Giant);
#endif
@@ -428,7 +430,7 @@ usb_task_thread(void *arg)
struct usb_task *task;
int s;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) && __FreeBSD_version >= 500000
mtx_lock(&Giant);
#endif
@@ -547,7 +549,11 @@ usbioctl(dev_t devt, u_long cmd, caddr_t data, int flag, usb_proc_ptr p)
case FIOASYNC:
if (*(int *)data)
+#if _FreeBSD_version >= 500000
usb_async_proc = p->td_proc;
+#else
+ usb_async_proc = p;
+#endif
else
usb_async_proc = 0;
return (0);
diff --git a/sys/dev/usb/usb_mem.c b/sys/dev/usb/usb_mem.c
index ae824e1..73b309d 100644
--- a/sys/dev/usb/usb_mem.c
+++ b/sys/dev/usb/usb_mem.c
@@ -166,10 +166,18 @@ usb_block_allocmem(bus_dma_tag_t tag, size_t size, size_t align,
if (p == NULL)
return (USBD_NOMEM);
+#if __FreeBSD_version >= 500000
if (bus_dma_tag_create(tag, align, 0,
BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
size, sizeof(p->segs) / sizeof(p->segs[0]), size,
- BUS_DMA_ALLOCNOW, NULL, NULL, &p->tag) == ENOMEM) {
+ BUS_DMA_ALLOCNOW, NULL, NULL, &p->tag) == ENOMEM)
+#else
+ if (bus_dma_tag_create(tag, align, 0,
+ BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
+ size, sizeof(p->segs) / sizeof(p->segs[0]), size,
+ BUS_DMA_ALLOCNOW, &p->tag) == ENOMEM)
+#endif
+ {
goto free;
}
OpenPOWER on IntegriCloud