busdma - Remove filter functionality- Remove filtfunc and filtarg arguments from bus_dma_tag_create() and fix all callers. All callers use NULL today for both filterfunc and filterarg with one
busdma - Remove filter functionality- Remove filtfunc and filtarg arguments from bus_dma_tag_create() and fix all callers. All callers use NULL today for both filterfunc and filterarg with one exception: if_jme.- Remove filter functionality internally and parent tag tracking. Without filter functions, we do not need to keep track of tag ancestry. All inheritance of the parent tag's parameters occurs when creating the new child tag.- rename run_filter() to addr_needs_bounce().- FreeBSD keeps the filtfunc and filtarg arguments but requires them to be NULL.- Drop filterfunc usage from if_jme. In case of "JMC260 chip full mask revision 2", which has a hardware bug when it comes to DMA transfers crossing the 4 GB bounday, the parent buffer tag already limits DMA memory to 32bit address space. As such it should be safe to drop the filterfunc. The filterfunc was checking if the lower 32bits of the physical address used for DMA are all 0. In case of a 32bit address space, the only address where all lower 32-bits are all zero is 0 itself and I am here assuming that the physical address 0 is not used for DMA transfers!Mainly obtained from: FreeBSD (commits 7cb028de, 900907f4, 1228b93b, 3933ff56)
show more ...
kernel - Rewrite the callout_*() API* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has
kernel - Rewrite the callout_*() API* Rewrite the entire API from scratch and improve compatibility with FreeBSD. This is not an attempt to achieve full API compatibility, as FreeBSD's API has unnecessary complexity that coders would frequently make mistakes interpreting.* Remove the IPI mechanisms in favor of fine-grained spin-locks instead.* Add some robustness features in an attempt to track down corrupted callwheel lists due to originating subsystems freeing structures out from under an active callout.* The code supports a full-blown type-stable/adhoc-reuse structural separation between the front-end and the back-end, but this feature is currently not operational and may be removed at some future point. Instead we currently just embed the struct _callout inside the struct callout.* Replace callout_stop_sync() with callout_cancel().* callout_drain() is now implemented as a synchronous cancel instead of an asynchronous stop, which is closer to the FreeBSD API and expected operation for ported code (usb stack in particular). We will just have to fix any deadlocks which we come across.* Retain our callout_terminate() function as the 'better' way to stop using a callout, as it will not only cancel the callout but also de-flag the structure so it can no longer be used.
kernel - Change callout in struct ccb_hdr* Change the callout declaration in struct ccb_hdr from an embedded structure to a pointer, add padding to get the whole structure to its original size
kernel - Change callout in struct ccb_hdr* Change the callout declaration in struct ccb_hdr from an embedded structure to a pointer, add padding to get the whole structure to its original size (prior to the recent callout patch).* This removes an improper ABI dependency on the kernel struct callout structure which was causing 'camcontrol', and 'smartctl' (from smartmontools) to fail.Testing: dillon, tuxillo
kernel: Change CFLAGS -> KCFLAGS also in commented out Makefile lines.
kernel: Remove unused *.h files from SRCS in kernel module Makefiles.They were found by checking the preprocessed code of the filesin SRCS to see if the header was included at some point.After r
kernel: Remove unused *.h files from SRCS in kernel module Makefiles.They were found by checking the preprocessed code of the filesin SRCS to see if the header was included at some point.After removal, the preprocessed source of a build with the oldMakefiles was compared against one with the changes (for variouskernel configurations and when building just from /usr/src) toverify that the commit leads to no functional change.
kernel/disk: Remove use of "%b" format.Switch to args safe "%pb%i" internal format.
kernel: Remove two final \ in macro definitions.
kernel - Cleanup gcc warnings* Cleanup gcc warnings at higher optimization levels. This will allow us to build kernels -O2 or -O3.
kernel, world - Remove the remaining vestiges of linux emul* Remove the remaining bits of the 32-bit linux emulation code. This code hasn't been used in ages and we have no plans to implement a
kernel, world - Remove the remaining vestiges of linux emul* Remove the remaining bits of the 32-bit linux emulation code. This code hasn't been used in ages and we have no plans to implement a 64-bit linux emulation.
kernel: Use the new auto-created sysctl ctx/tree in various drivers.Everywhere where we formerly rolled a hw.fooX.* per-device ctx/treeourselves.This commit switches it to dev.foo.X.*
kernel: Add some more missing crit_exit(), rel_mplock(), etc.
aac(4): Sync with FreeBSD.Some bug fixes, static/const, etc.Also, add MSI support and use callout_init_mp().
kernel: Use callout_stop_sync() in a number of drivers.
kernel - Change time_second to time_uptime for all expiration calculations* Vet the entire kernel and change use cases for expiration calculations using time_second to use time_uptime instead.*
kernel - Change time_second to time_uptime for all expiration calculations* Vet the entire kernel and change use cases for expiration calculations using time_second to use time_uptime instead.* Protects these expiration calculations from step changes in the wall time, particularly needed for route table entries.* Probably requires further variable type adjustments but the use of time_uptime instead if time_second is highly unlikely to ever overrun any demotions to int still present.
kernel: Remove some unused externs.
kernel/raid: Match xpt_alloc_ccb() and xpt_free_ccb() for rescan callbacks.
kernel: Use DEVMETHOD_END in the drivers.
kern - More work replacing %DUse hexncpy() for special cases where, for example,a different separator might be needed.
kernel/aac: sge64 is only used on x86_64.
kernel: Replace the remaining __amd64__ with __x86_64__ for consistency.
aac(4): Add a missing unlock.
aac(4): Sync with FreeBSD.Nothing spectacular. Race fixes, some cleanup and a sysctl for displayingthe firmware version.
kernel: Add descriptions to the intrhooks that miss them.The description is printed in the"**WARNING** waiting for the following device to finish configuring: ..."messages we occasionally see,
kernel: Add descriptions to the intrhooks that miss them.The description is printed in the"**WARNING** waiting for the following device to finish configuring: ..."messages we occasionally see, from run_interrupt_driven_config_hooks(),most of the times for xpt.Some of them had been accidentally removed in past synchronizations withFreeBSD (mostly by me).
kernel: Pass a real format string to functions which expect one.This is safer than just passing a random string.A few of these changes might be overly cautious but it doesn'thurt to stick with u
kernel: Pass a real format string to functions which expect one.This is safer than just passing a random string.A few of these changes might be overly cautious but it doesn'thurt to stick with using formats where they are expected moreor less generally.
kernel: Use NULL for pointers.
12345