mirror of
https://github.com/rtlsdrblog/rtl-sdr-blog.git
synced 2024-11-10 04:37:37 +01:00
lib: disable usbfs zero-copy support by default
Although we added a detection mechanism for the presence of the Kernel bug earlier, reading from the incorrectly mapped memory might cause a bus error on some ARM systems. With the overall performance benefit being rather minimal for the data rates of rtl-sdr, disable zero-copy by default.
This commit is contained in:
parent
be1d1206bf
commit
81833a1cf6
@ -126,6 +126,14 @@ else (DETACH_KERNEL_DRIVER)
|
|||||||
message (STATUS "Building with kernel driver detaching disabled, use -DDETACH_KERNEL_DRIVER=ON to enable")
|
message (STATUS "Building with kernel driver detaching disabled, use -DDETACH_KERNEL_DRIVER=ON to enable")
|
||||||
endif (DETACH_KERNEL_DRIVER)
|
endif (DETACH_KERNEL_DRIVER)
|
||||||
|
|
||||||
|
option(ENABLE_ZEROCOPY "Enable usbfs zero-copy support" OFF)
|
||||||
|
if (ENABLE_ZEROCOPY)
|
||||||
|
message (STATUS "Building with usbfs zero-copy support enabled")
|
||||||
|
add_definitions(-DENABLE_ZEROCOPY=1)
|
||||||
|
else (ENABLE_ZEROCOPY)
|
||||||
|
message (STATUS "Building with usbfs zero-copy support disabled, use -DENABLE_ZEROCOPY=ON to enable")
|
||||||
|
endif (ENABLE_ZEROCOPY)
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# Add subdirectories
|
# Add subdirectories
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -101,6 +101,12 @@ AC_ARG_ENABLE(driver-detach,
|
|||||||
CFLAGS="$CFLAGS -DDETACH_KERNEL_DRIVER"
|
CFLAGS="$CFLAGS -DDETACH_KERNEL_DRIVER"
|
||||||
fi])
|
fi])
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(zerocopy,
|
||||||
|
[ --enable-zerocopy Enable usbfs zero-copy support (disabled by default)],
|
||||||
|
[if test x$enableval = xyes; then
|
||||||
|
CFLAGS="$CFLAGS -DENABLE_ZEROCOPY"
|
||||||
|
fi])
|
||||||
|
|
||||||
dnl Generate the output
|
dnl Generate the output
|
||||||
AC_CONFIG_HEADER(config.h)
|
AC_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
|
@ -1751,7 +1751,7 @@ static int _rtlsdr_alloc_async_buffers(rtlsdr_dev_t *dev)
|
|||||||
dev->xfer_buf = malloc(dev->xfer_buf_num * sizeof(unsigned char *));
|
dev->xfer_buf = malloc(dev->xfer_buf_num * sizeof(unsigned char *));
|
||||||
memset(dev->xfer_buf, 0, dev->xfer_buf_num * sizeof(unsigned char *));
|
memset(dev->xfer_buf, 0, dev->xfer_buf_num * sizeof(unsigned char *));
|
||||||
|
|
||||||
#if defined (__linux__) && LIBUSB_API_VERSION >= 0x01000105
|
#if defined(ENABLE_ZEROCOPY) && defined (__linux__) && LIBUSB_API_VERSION >= 0x01000105
|
||||||
fprintf(stderr, "Allocating %d zero-copy buffers\n", dev->xfer_buf_num);
|
fprintf(stderr, "Allocating %d zero-copy buffers\n", dev->xfer_buf_num);
|
||||||
|
|
||||||
dev->use_zerocopy = 1;
|
dev->use_zerocopy = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user