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 ...
Use ${} instead of $() in various makefilesAlso use ${.TARGET} and ${.ALLSRC] wherever impossible.Minor style adjustment in at(1)'s makefiles.
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: Remove libkern.h inclusion from a few files that don't need it.
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: 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/hpt*: Mangle names of foreign binary objects.We already do it for the firmware objects (.fwo). Explictly handleunpacked precompiled objects to separate them from other generic ones.These a
kernel/hpt*: Mangle names of foreign binary objects.We already do it for the firmware objects (.fwo). Explictly handleunpacked precompiled objects to separate them from other generic ones.These are not device firmware and they do run on CPU, also they havedifferent osabi tag, so without adjustment the ld.gold (default ld)will change osabi for the whole linked object.Having them seprated from the rest simplifies the depend logic, suchobjects have no source or headers dependencies other than hardcodedone in Makefiles. Add missing dependencies on .uu in kernel modules.
kernel/hpt*: Avoid empty macros.Suppresses 14 -Wempty-body warnings.
kernel: Remove some references to i386.While there, adjust some outdated paths in comments and some minor cleanup.
kernel/hptrr: Oops, fix some whitespace.
kernel: Sync hptrr(4) with FreeBSD.* A number of locking fixes, no longer grabs Giant in the ioctl() method (not relevant to us) and when scanning the bus. Also set D_MPSAFE and INTR_MPSAFE.*
kernel: Sync hptrr(4) with FreeBSD.* A number of locking fixes, no longer grabs Giant in the ioctl() method (not relevant to us) and when scanning the bus. Also set D_MPSAFE and INTR_MPSAFE.* Use bus_dmamap_load_ccb(). Thanks, sephe!* Additional fixes supplied by HighPoint.* Fix some typos in comments.
Remove FreeBSD OS/ABI from raid driver blobs.This fixes kgdb issues when the kernel was linked with ld.gold.The problem was caused by ld.gold's behaviour of setting the OS/ABI inthe output binar
Remove FreeBSD OS/ABI from raid driver blobs.This fixes kgdb issues when the kernel was linked with ld.gold.The problem was caused by ld.gold's behaviour of setting the OS/ABI inthe output binary to FreeBSD when any of the input objects is taggedwith the FreeBSD OS/ABI.The hpt27xx, hptmv and hptrr raid-drivers are using binary blobs, withthe FreeBSD OS/ABI flag, so we should just set the OS/ABI of theseobjects to none after uudecode-ing them.
kernel: Use NULL for pointers in DRIVER_MODULE* calls.
i386 removal, part 5/x: Remove i386 parts of the HighPoint RAID drivers.
Use C99 __func__ instead of __FUNCTION__.
kernel: Use DEVMETHOD_END in the drivers.
kernel: Remove some NULL checks after kmalloc(..., M_WAITOK).
hptrr(4): Add missing intrhook description.
kernel: Simplify simq releasing in some RAID drivers.
kernel: Use NULL instead of 0 for pointers, part 1/x.Found-with: Coccinelle (http://coccinelle.lip6.fr/)
hptrr(4): Add a __printflike().
Add the hptrr(4) driver for HighPoint RocketRAID 17xx, 22xx, 23xx and 25xx.The manual page mentions the following adapters to be supported:* RocketRAID 172x series* RocketRAID 174x series* Rock
Add the hptrr(4) driver for HighPoint RocketRAID 17xx, 22xx, 23xx and 25xx.The manual page mentions the following adapters to be supported:* RocketRAID 172x series* RocketRAID 174x series* RocketRAID 2210* RocketRAID 222x series* RocketRAID 2240* RocketRAID 230x series* RocketRAID 231x series* RocketRAID 232x series* RocketRAID 2340* RocketRAID 2522I have tested it with a RocketRAID 2300.Taken-from: FreeBSD