summaryrefslogtreecommitdiffstats
path: root/sys/dev/mly
Commit message (Collapse)AuthorAgeFilesLines
* Fixed a memory leak.ru2004-01-181-0/+1
| | | | Reported by: Stanford Metacompilation research group
* Use PCIR_BAR(x) instead of PCIR_MAPS.jhb2003-09-021-1/+1
| | | | | Glanced over by: imp, gibbs Tested by: i386 LINT
* Prefer new location of pci include files (which have only been in theimp2003-08-221-2/+2
| | | | | tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
* Don't provide mutexes for static busdma allocations.scottl2003-08-111-19/+22
|
* Mega busdma API commit.scottl2003-07-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
* Centralize the devstat handling for all GEOM disk device driversphk2003-03-081-1/+0
| | | | | | | | in geom_disk.c. As a side effect this makes a lot of #include <sys/devicestat.h> lines not needed and some biofinish() calls can be reduced to biodone() again.
* Gigacommit to improve device-driver source compatibility betweenphk2003-03-031-13/+5
| | | | | | | | | | | | | branches: Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values. This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386. Approved by: re(scottl)
* Use canonical name for cdevsw initialization.phk2003-03-021-13/+13
|
* Introduce a new taskqueue that runs completely free of Giant, and inscottl2003-02-261-1/+1
| | | | | | | turns runs its tasks free of Giant too. It is intended that as drivers become locked down, they will move out of the old, Giant-bound taskqueue and into this new one. The old taskqueue has been renamed to taskqueue_swi_giant, and the new one keeps the name taskqueue_swi.
* Back out M_* changes, per decision of the TRB.imp2003-02-191-1/+1
| | | | Approved by: trb
* Fixup printf format.alfred2003-02-111-1/+1
|
* Terminate 'e' event messages with a newline.scottl2003-02-111-0/+1
| | | | PR: 33202
* Fix the mly driver! If card resources became unavailable, the driver wouldscottl2003-02-062-0/+48
| | | | | | | | | | | | correctly tell CAM to requeue the command and then freeze it's queue. The problem was that when resources became available again, it wouldn't tell CAM to unfreeze it's queue, so no more commands would ever be delivered. This is simialr to the bug that was fixed in the cciss driver last year. This is a bug in 4-STABLE also, but is probably masked by the OS being fast enough to drain the completion queue before it fills up. Also add some diagnostics avaialble when compiled with MLY_DEBUG. Thanks very much to LSI Corp for donating equipment to track this down, and Vaidus Damosevicius for pestering me long enough to get it fixed.
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-211-1/+1
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Destroy the management device when detaching the driver.scottl2003-01-081-0/+3
|
* Pass correct parameters to bus_space_barrier() instead of 0mux2002-11-141-2/+4
| | | | so that this code compiles on alpha.
* Be consistent about functions being static.phk2002-10-161-8/+8
| | | | Spotted by: FlexeLint.
* use __packed.alfred2002-09-231-43/+43
|
* Replace (ab)uses of "NULL" where "0" is really meant.archie2002-08-221-2/+2
|
* Rework the kernel environment subsystem. We now convert the staticmux2002-04-171-1/+1
| | | | | | | | | | | | | | | | | environment needed at boot time to a dynamic subsystem when VM is up. The dynamic kernel environment is protected by an sx lock. This adds some new functions to manipulate the kernel environment : freeenv(), setenv(), unsetenv() and testenv(). freeenv() has to be called after every getenv() when you have finished using the string. testenv() only tests if an environment variable is present, and doesn't require a freeenv() call. setenv() and unsetenv() are self explanatory. The kenv(2) syscall exports these new functionalities to userland, mainly for kenv(1). Reviewed by: peter
* Fix warnings (comment out unused tables that are taking space in thepeter2002-02-271-0/+4
| | | | kernel)
* Update to C99, s/__FUNCTION__/__func__/,obrien2001-12-101-2/+2
| | | | also don't use ANSI string concatenation.
* - Change the taskqueue locking to protect the necessary parts of a taskjhb2001-10-261-4/+0
| | | | | | | | while it is on a queue with the queue lock and remove the per-task locks. - Remove TASK_DESTROY now that it is no longer needed. - Go back to inlining TASK_INIT now that it is short again. Inspired by: dfr
* Add locking to taskqueues. There is one mutex per task, one mutex perjhb2001-10-261-0/+4
| | | | | | | | queue, and a mutex to protect the global list of taskqueues. The only visible change is that a TASK_DESTROY() macro has been added to mirror the TASK_INIT() macro to destroy a task before it is free'd. Submitted by: Andrew Reiter <awr@watson.org>
* Fix reversed virtual/physical bus check, whoops!msmith2001-10-221-1/+1
| | | | Submitted by: HIROSHI OOTA <oota@LSi.nec.co.jp>
* KSE Milestone 2julian2001-09-121-3/+4
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Fix typo (* -> &)msmith2001-07-261-1/+1
| | | | Submitted by: Andrew Doran <ad@netbsd.org>
* Merge with latest version of the Mylex 6+ driver.msmith2001-07-146-1420/+1318
| | | | | | | | | | | | | | - All sources are built in a single object, reducing namespace pollution. - Kill the ready queue, and handle a busy response to mly_start in callers rather than deferring the command. - Improve our interaction with CAM: - Don't advertise physical channels as SCSI busses by default. - use the SIM queue freeze capability rather than queueing CDBs internally. - force bus reprobe at module load time. - Clean up more resources in mly_free. - Tidy up debugging levels. - Tidy up handling of events (mostly just code cleanliness). - Use explanatory macros for operations on bus/target/channel numbers.
* Fix warning: 110: initialization makes pointer from integer without a castpeter2001-06-151-2/+1
| | | | | This was passing a (d_kqfilter_t *)-1 as the kqfilter function pointer. Fortunately there was no D_KQFILTER in d_flags, so this was harmless.
* Avoid divide-by-zero for devices that the adapter has not negotiated amsmith2001-04-211-1/+5
| | | | transfer speed with.
* Turn on interrupt-entropy harvesting for all/any mass storage devicesmarkm2001-03-011-1/+1
| | | | | | | I could find. I have no doubt missed a couple. Interrupt entropy harvesting is still conditional on the kern.random.sys.harvest_interrupt sysctl.
* Major update and bugfix for the 'mly' driver.msmith2001-02-255-354/+599
| | | | | | | | | | | | | | | | | - Convert to a more efficient queueing implementation. - Don't allocate command buffers on the fly; simply work from a static pool. - Add a control device interface, for later use. - Handle controller overload better as a consequence of the improved queue implementation. - Add support for the XPT_GET_TRAN_SETTINGS ccb, and correctly set the virtual SCSI channels up for multiple outstanding I/Os. - Update copyrights for 2001. - Some whitespace fixes to improve readability. Due to a misunderstanding on my part, previous versions of the driver were limited to a single outstanding I/O per virtual drive. Needless to say, this update improves performance substantially.
* Further use of M_ZERO.dwmalone2000-11-181-4/+2
| | | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Approved by: msmith
* Convert all users of fldoff() to offsetof(). fldoff() is badphk2000-10-271-6/+3
| | | | | | | | | | | | | | | | | | | | | | | because it only takes a struct tag which makes it impossible to use unions, typedefs etc. Define __offsetof() in <machine/ansi.h> Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h> Remove myriad of local offsetof() definitions. Remove includes of <stddef.h> in kernel code. NB: Kernelcode should *never* include from /usr/include ! Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API. Deprecate <struct.h> with a warning. The warning turns into an error on 01-12-2000 and the file gets removed entirely on 01-01-2001. Paritials reviews by: various. Significant brucifications by: bde
* Don't rely on <sys/queue.h> to bogusly include <struct.h>.phk2000-10-221-0/+3
| | | | | Bogusly include <struct.h> until we have a better place to get fldoff() from.
* Remove unneeded #include <machine/clock.h>phk2000-10-151-1/+0
|
* This is the initial import of a new driver for the current family ofmsmith2000-08-236-0/+4842
PCI:SCSI RAID controllers from Mylex.
OpenPOWER on IntegriCloud