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 - 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: Add some more missing crit_exit(), rel_mplock(), etc.
kernel: Use DEVMETHOD_END in the drivers.
dpt(4): Remove some old #if 0'd code from a header file.
kernel: Remove newlines from the panic messages that have one.panic() itself will add a newline.
dpt(4): Remove an old unneeded file.
kernel: Use NULL for pointers.
dpt(4): Add a missing crit_exit().
dpt(4): Remove duplicate bit in an | operation.
kernel - Implement a contiguous memory reserve for contigmalloc()* We initially reserve the lower 1/4 of memory or 256MB, whichever is smaller. The ALIST API is used to manage the memory.* Onc
kernel - Implement a contiguous memory reserve for contigmalloc()* We initially reserve the lower 1/4 of memory or 256MB, whichever is smaller. The ALIST API is used to manage the memory.* Once device initialization is complete, and before int is executed, we reduce the reserve and return pages to the normal VM paging queues. The reserve is reduced to ~16MB or 1/16 total memory, whichever is smaller.* This can be adjusted with a tunable 'vm.dma_reserved'.* contigmalloc() now tries the DMA reserve first. If it fails it falls back to the original contigmalloc() code. contigfree() determines whether the pages belong to the DMA reserve or not and will either return them to the reserve or free them to the normal paging queues as appropriate. VM pages in the reserve are left wired and not busy, and they are returned to the reserve in the same state. This greatly simplifies operations that act on the reserve.* Fix various bits of code that contigmalloc()'d but then kfree()'d instead of contigfree()'d.
kernel: Use NULL for DRIVER_MODULE()'s evh & arg (which are pointers).This is just cosmetics for easier reading.
kernel: Remove support for the EISA bus and EISA/VLB devices.Discussed-with-and-approved-by: dillon, aggelos, and others.
kernel: Remove most definitions of CDEV_MAJOR.These are no longer needed since we have devfs.A few are left in because they are added to the order in SYSINIT()s.This needs further investigation.
kernel: Remove some #ident.
kernel - gcc -Os/-O2 warnings pass* This is just a partial pass on the code to start cleaning up gcc warnings at higher optimization levels.
Put 4 more kernel files under -Werror (fix x86_64 warnings).
AMD64 - Refactor uio_resid and size_t assumptions.* uio_resid changed from int to size_t (size_t == unsigned long equivalent).* size_t assumptions in most kernel code has been refactored to opera
AMD64 - Refactor uio_resid and size_t assumptions.* uio_resid changed from int to size_t (size_t == unsigned long equivalent).* size_t assumptions in most kernel code has been refactored to operate in a 64 bit environment.* In addition, the 2G limitation for VM related system calls such as mmap() has been removed in 32 bit environments. Note however that because read() and write() return ssize_t, these functions are still limited to a 2G byte count in 32 bit environments.
Sync CAM with FreeBSD using lockmgr locks instead of mutexes.Note: This is mostly a code sync with FreeBSD which improves stabilityin addition to the items listed below. This provides a framework
Sync CAM with FreeBSD using lockmgr locks instead of mutexes.Note: This is mostly a code sync with FreeBSD which improves stabilityin addition to the items listed below. This provides a framework forreleasing the mplock, but for now it's still there.Add an xpt_print function to reduce most of the xpt_print_path/printfpairs. Convert the core code to use it.Initial cut at Basic Domain Validation.Make cam_xpt's pronouncements match camcontrol (Tagged -> Command) Queueing.Pay attention to return value from xpt_bus_register in xpt_init.Add an xpt_rescan function and a thread that will field rescan requests.The purpose of this is to allow a SIM (or other entities) to request a busrescan and have it then fielded in a different (process) context from thecaller.Check the return value from cam_periph_acquire.Drop the periph/sim lock when calling disk_destroy().Drop the topology lock before calling the periph oninvalidate and dtorvectors.For the XPT_SASYNC_CB operation, only decouple the broadcast to the busand device lists instead of decoupling the whole operation. This avoidsproblems with SIMs going away.Split the camisr into per-SIM done queues. This optimizes the locking alittle bit and allows for direct dispatch of the doneq from certaincontexts that would otherwise face recursive locking problems.Zero the CCBs when mallocing them.Only schedule the xpt_finishconfig_task once.Eliminate the use of M_TEMP.Add a helper function for registering async callbacks.Release the bus reference that is acquired when doing a CAMIOCOMMAND ioctl.Zero scsi_readcapacity allocations so we can really tell if there hasbeen data returned.Remove duplicate includes and fix typos.Add a bunch of definitions and structures to support newer drivers.When probing a newly found device, don't automatically assume that thedevice supports retrieving a serial number. Instead, first query thelist of VPD pages it does support, and only query the serial number ifit's supported, else silently move on. This eliminates a lot of noiseduring verbose booting, and will likely eliminate the need for mostNOSERIAL quirks.Reduce diffs from FreeBSD.Obtained-from: FreeBSD
Make CAM_NEW_TRAN_CODE default.As previously mentioned, this makes a huge performance difference for oneof my disks, and future work depends on this change.Obtained-from: FreeBSD
Fixes for CAM_NEW_TRAN_CODE.This commit is taken from a FreeBSD changeset, and is not intended tobe comprehensive. Some drivers will still not compile/work with theCAM_NEW_TRAN_CODE option, but
Fixes for CAM_NEW_TRAN_CODE.This commit is taken from a FreeBSD changeset, and is not intended tobe comprehensive. Some drivers will still not compile/work with theCAM_NEW_TRAN_CODE option, but this opens the door for wider testing.Obtained-from: FreeBSD
Add SHUTDOWN_PRI_DRIVER and move all driver shutdown functions fromSHUTDOWN_PRI_DEFAULT to SHUTDOWN_PRI_DRIVER. This allows the CAM subsystemto shutdown SCSI before individual SCSI drivers shutdow
Add SHUTDOWN_PRI_DRIVER and move all driver shutdown functions fromSHUTDOWN_PRI_DEFAULT to SHUTDOWN_PRI_DRIVER. This allows the CAM subsystemto shutdown SCSI before individual SCSI drivers shutdown.Reported-by: Peter Avalos <pavalos@theshell.com>Dragonfly-bug: <http://bugs.dragonflybsd.org/issue713>
Do any crash dump operation before the shutdown_post_sync event handleris invoked. Move numerous legacy device shutdown event handlers fromshutdown_final to shutdown_post_sync. Note that newer de
Do any crash dump operation before the shutdown_post_sync event handleris invoked. Move numerous legacy device shutdown event handlers fromshutdown_final to shutdown_post_sync. Note that newer devices usesthe device_shutdown DEVMETHOD.
Fix numerous spelling mistakes.
Ansify parameter declarations.
12