#
ddb8683e |
| 06-Feb-2003 |
Scott Long <scottl@FreeBSD.org> |
Teach the CAM module how to deregister itself so it can be unloaded.
|
#
a761a1ca |
| 06-Feb-2003 |
Scott Long <scottl@FreeBSD.org> |
Free the container and sim objects on detach. Convert several uses of MALLOC to malloc.
|
#
5f54d522 |
| 06-Feb-2003 |
Scott Long <scottl@FreeBSD.org> |
Don't include aac_cam.h, since it was nuked in the last commit. Deregister the shutdown eventhandler on unload.
|
#
70545d1a |
| 06-Feb-2003 |
Scott Long <scottl@FreeBSD.org> |
Various cleanups: - Move the command timeout check from a separate repeating timeout to the kthread since the kthread is already running periodically. - Move printing the hardware print buffer t
Various cleanups: - Move the command timeout check from a separate repeating timeout to the kthread since the kthread is already running periodically. - Move printing the hardware print buffer to the kthread. - Properly shut down the kernel thread on detach. - Detach the child array devices on detach. - Don't issue a controller halt command on detach. Doing so requires a PCI reset to wake the controller back up. The driver can now be unloaded as long as CAM support is not enabled.
show more ...
|
#
128aa5a0 |
| 23-Jan-2003 |
Scott Long <scottl@FreeBSD.org> |
Hack around a bug in the 2200 and 2120 controllers that connot DMA commands from below the first 8K of physical memory. A better fix is to modify the busdma api to allow either inclusion ranges or m
Hack around a bug in the 2200 and 2120 controllers that connot DMA commands from below the first 8K of physical memory. A better fix is to modify the busdma api to allow either inclusion ranges or multiple exclusion ranges, but that debate is for another day.
MFC After: 2 days
show more ...
|
Revision tags: release/5.0.0_cvs, release/5.0.0 |
|
#
f30ac74c |
| 11-Jan-2003 |
Scott Long <scottl@FreeBSD.org> |
Major bugfixes for large memory and fast systems.
aac.c: Re-arrange the interrupt handler to optimize the common case of the adapter interrupting us because one or more commands are
Major bugfixes for large memory and fast systems.
aac.c: Re-arrange the interrupt handler to optimize the common case of the adapter interrupting us because one or more commands are complete, and do a read across the pci bus to ensure that all posted status writes are flushed. This should close a race that could cause command completion interrupts to be lost. Follow the spec a bit closer when filling out command structures. Enable the Fast Response feature to eliminate the need for the card to DMA successfull command completions back into host memory. Tell the controller how much physical memory we have. Without this there was a chance that our DMA regions would collide with the memory window used by the cache on the controller. The result would be massive data corruption. This seemed to mainly affect systems with >2GB of memory. Fix a few whitespace problems.
aac_debug.c: Add an extra diagnostic when printing out commands.
aac_disk.c: Add extra sanity checks.
aacreg.h: Prepare for making this 64-bit clean by reducing the use of enumeration types in structures.
Many thanks to Justin Gibbs for helping track these down.
show more ...
|
#
9e9466ba |
| 27-Dec-2002 |
Robert Watson <rwatson@FreeBSD.org> |
Use OPERATOR instead of WHEEL for make_dev(), use 0640 instead of 0644 for disk devices to be consistent with other storage devices.
Submitted by: kris Reviewed by: scottl
|
#
4294d700 |
| 20-Oct-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Fix mis-indentation.
Approved by: scottl
|
Revision tags: release/4.7.0_cvs |
|
#
316ec49a |
| 02-Oct-2002 |
Scott Long <scottl@FreeBSD.org> |
Some kernel threads try to do significant work, and the default KSTACK_PAGES doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of
Some kernel threads try to do significant work, and the default KSTACK_PAGES doesn't give them enough stack to do much before blowing away the pcb. This adds MI and MD code to allow the allocation of an alternate kstack who's size can be speficied when calling kthread_create. Passing the value 0 prevents the alternate kstack from being created. Note that the ia64 MD code is missing for now, and PowerPC was only partially written due to the pmap.c being incomplete there. Though this patch does not modify anything to make use of the alternate kstack, acpi and usb are good candidates.
Reviewed by: jake, peter, jhb
show more ...
|
#
7419815d |
| 25-Sep-2002 |
Scott Long <scottl@FreeBSD.org> |
The AAC_COMPAT_LINUX option was really annoying, since it made the aac driver dependent on the linux emulation module. This was especially bad for the release engineers who tried to move the aac dri
The AAC_COMPAT_LINUX option was really annoying, since it made the aac driver dependent on the linux emulation module. This was especially bad for the release engineers who tried to move the aac driver from the kernel onto the drivers floppy. The linux compat bits for this driver are now in their own driver, aac_linux. It can be loaded as a module or compiled into the kernel. For the latter case, the AAC_COMPAT_LINUX option is needed, along with the COMPAT_LINUX option.
I've tested this in every configuration I can think of. This is an MFC candidate for 4.7.
Idea from: rwatson MFC after: 3 days
show more ...
|
#
eb3025b3 |
| 30-Aug-2002 |
Scott Long <scottl@FreeBSD.org> |
The aac driver needs 256K of contiguous physical memory in order to attach. If it can't get that (highly likely if loaded as a module on a system that's been up for a while), give a more descriptive
The aac driver needs 256K of contiguous physical memory in order to attach. If it can't get that (highly likely if loaded as a module on a system that's been up for a while), give a more descriptive error message. Also clean up some nearby style nits.
MFC after: 2 days
show more ...
|
#
d49fa1ca |
| 17-Aug-2002 |
Robert Watson <rwatson@FreeBSD.org> |
In continuation of early fileop credential changes, modify fo_ioctl() to accept an 'active_cred' argument reflecting the credential of the thread initiating the ioctl operation.
- Change fo_ioctl()
In continuation of early fileop credential changes, modify fo_ioctl() to accept an 'active_cred' argument reflecting the credential of the thread initiating the ioctl operation.
- Change fo_ioctl() to accept active_cred; change consumers of the fo_ioctl() interface to generally pass active_cred from td->td_ucred. - In fifofs, initialize filetmp.f_cred to ap->a_cred so that the invocations of soo_ioctl() are provided access to the calling f_cred. Pass ap->a_td->td_ucred as the active_cred, but note that this is required because we don't yet distinguish file_cred and active_cred in invoking VOP's. - Update kqueue_ioctl() for its new argument. - Update pipe_ioctl() for its new argument, pass active_cred rather than td_ucred to MAC for authorization. - Update soo_ioctl() for its new argument. - Update vn_ioctl() for its new argument, use active_cred rather than td->td_ucred to authorize VOP_IOCTL() and the associated VOP_GETATTR().
Obtained from: TrustedBSD Project Sponsored by: DARPA, NAI Labs
show more ...
|
Revision tags: release/4.6.2_cvs, release/4.6.2, release/4.6.1, release/4.6.0_cvs |
|
#
39ee03c3 |
| 03-May-2002 |
Scott Long <scottl@FreeBSD.org> |
bzero out the sync command buffer when sending commands. This was causing problems when enumerating multiple arrays.
This is an MFC candidate.
|
#
fe3cb0e1 |
| 27-Apr-2002 |
Scott Long <scottl@FreeBSD.org> |
Add a CAM interface to the aac driver. This is useful in case you should ever connect a SCSI Cdrom/Tape/Jukebox/Scanner/Printer/kitty-litter-scooper to your high-end RAID controller. The interface
Add a CAM interface to the aac driver. This is useful in case you should ever connect a SCSI Cdrom/Tape/Jukebox/Scanner/Printer/kitty-litter-scooper to your high-end RAID controller. The interface to the arrays is still via the block interface; this merely provides a way to circumvent the RAID functionality and access the SCSI buses directly. Note that for somewhat obvious reasons, hard drives are not exposed to the da driver through this interface, though you can still talk to them via the pass driver. Be the first on your block to low-level format unsuspecting drives that are part of an array!
To enable this, add the 'aacp' device to your kernel config.
MFC after: 3 days
show more ...
|
#
cbfd045b |
| 24-Apr-2002 |
Scott Long <scottl@FreeBSD.org> |
Prepare for a major update to the aac driver: Update the aac driver with the new crashdump api. Protect sync fibs with a mutex. Align all DMA buffers on a PAGE_SIZE boundary.
MFC after: 3 days
|
#
fe94b852 |
| 06-Feb-2002 |
Scott Long <scottl@FreeBSD.org> |
Don't attach to Dell PERC2/QC cards that have a firmware rev of 1.x. This check is complicated by the fact that the Adaptec 5400S cards claim to use 1.x firmware also. PERC2/QC 1.x firmware is not
Don't attach to Dell PERC2/QC cards that have a firmware rev of 1.x. This check is complicated by the fact that the Adaptec 5400S cards claim to use 1.x firmware also. PERC2/QC 1.x firmware is not compatible with this driver and will cause a system hang.
MFC after: 3 days
show more ...
|
Revision tags: release/4.5.0_cvs, release/4.4.0_cvs |
|
#
a4db4953 |
| 14-Jan-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Replace ffind_* with fget calls.
Make fget MPsafe.
Make fgetvp and fgetsock use the fget subsystem to reduce code bloat.
Push giant down in fpathconf().
|
#
9e209b12 |
| 13-Jan-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution.
Requested by: jhb
|
#
426da3bc |
| 13-Jan-2002 |
Alfred Perlstein <alfred@FreeBSD.org> |
SMP Lock struct file, filedesc and the global file list.
Seigo Tanimura (tanimura) posted the initial delta.
I've polished it quite a bit reducing the need for locking and adapting it for KSE.
Loc
SMP Lock struct file, filedesc and the global file list.
Seigo Tanimura (tanimura) posted the initial delta.
I've polished it quite a bit reducing the need for locking and adapting it for KSE.
Locks:
1 mutex in each filedesc protects all the fields. protects "struct file" initialization, while a struct file is being changed from &badfileops -> &pipeops or something the filedesc should be locked.
1 mutex in each struct file protects the refcount fields. doesn't protect anything else. the flags used for garbage collection have been moved to f_gcflag which was the FILLER short, this doesn't need locking because the garbage collection is a single threaded container. could likely be made to use a pool mutex.
1 sx lock for the global filelist.
struct file * fhold(struct file *fp); /* increments reference count on a file */
struct file * fhold_locked(struct file *fp); /* like fhold but expects file to locked */
struct file * ffind_hold(struct thread *, int fd); /* finds the struct file in thread, adds one reference and returns it unlocked */
struct file * ffind_lock(struct thread *, int fd); /* ffind_hold, but returns file locked */
I still have to smp-safe the fget cruft, I'll get to that asap.
show more ...
|
#
e45bef2a |
| 09-Jan-2002 |
Mike Smith <msmith@FreeBSD.org> |
Staticise the aac devclass.
|
#
c3d15322 |
| 03-Dec-2001 |
Scott Long <scottl@FreeBSD.org> |
Use d_thread_t to reduce diffs between current and stable. Spell ACQUIRE correctly.
|
#
b3457b51 |
| 02-Dec-2001 |
Scott Long <scottl@FreeBSD.org> |
Add functionality and fix bugs so the driver will work with soon-to-be released management apps.
1. Implement poll(). This will check for queued aif's so that a subsequent ioctl call to retrie
Add functionality and fix bugs so the driver will work with soon-to-be released management apps.
1. Implement poll(). This will check for queued aif's so that a subsequent ioctl call to retrieve the next aif will not block. 2. Don't catch signals when sleeping on a fib sent from userland. This causes a race and panic due to the pthread context switcher waking up the tsleep at inopportune times. 3. Fix some whitespace nits.
MFC after: 3 days
show more ...
|
#
282873e2 |
| 26-Oct-2001 |
John Baldwin <jhb@FreeBSD.org> |
- Change the taskqueue locking to protect the necessary parts of a task 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 need
- Change the taskqueue locking to protect the necessary parts of a task 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
show more ...
|
#
1de1c550 |
| 26-Oct-2001 |
John Baldwin <jhb@FreeBSD.org> |
Add locking to taskqueues. There is one mutex per task, one mutex per queue, and a mutex to protect the global list of taskqueues. The only visible change is that a TASK_DESTROY() macro has been ad
Add locking to taskqueues. There is one mutex per task, one mutex per 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>
show more ...
|
#
b40ce416 |
| 12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
KSE Milestone 2 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 fu
KSE Milestone 2 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
show more ...
|