summaryrefslogtreecommitdiffstats
path: root/sys/dev/ips/ips_disk.c
Commit message (Collapse)AuthorAgeFilesLines
* Separate the hardware definitions into ipsreg.h so they can be used byscottl2005-11-291-0/+1
| | | | future userland tools.
* Overhaul error handling in the IPS driver. Don't use a magic value forscottl2005-09-251-3/+3
| | | | | | | | | driver-induced errors, instead be better about propagating error status upwards. Add more error definitions, courtesy of the linux driver. Fix a command leak in the ioctl handler. Re-arrange some of the command handlers to localize error handling. MFC After: 3 days
* Add crashdump support to the ips driver. It only works for the more modernscottl2005-01-301-1/+133
| | | | | | | | | ServeRAID 4 - 7 models right now. Support for older cards is possible, but I don't have any hardware to experiment with. Thanks to Jack Hammer at Adaptec for providing debugging hints. Sponsored by: ImproWare AG, Switzerland
* Lock the IPS driver and bring it out from under Giant. Also do somescottl2005-01-281-3/+3
| | | | | | | | | | | | | | | | significant clean up and optimizations: - don't call bioq_disksort() on every command, the hardware will do that for us. - remove all of the complicated bio deferral code. bio's that can't be serviced immediately can just wait on the bioq. - Only reserve one command object for doing control commands to the card. This simplifies a lot of code and significantly reduces the size of the command struct. - Allocate commands out of a slab instead of embedding them into the softc. - Call the command action method directly instead of having ips_get_free_cmd() call it indirectly. MFC After: 1 week
* Switch from using mutexes to using semaphores to protect against earlyscottl2004-02-281-2/+8
| | | | | | | completion of synchronous commands. Also switch to a per-array bioq as it appears to improve performance. Submitted by: mbr, imp.ch (bioq change)
* Change the disk(9) API in order to make device removal more robust.phk2004-02-181-14/+17
| | | | | | | | | | | | | | | | | | | | | | | | Previously the "struct disk" were owned by the device driver and this gave us problems when the device disappared and the users of that device were not immediately disappearing. Now the struct disk is allocate with a new call, disk_alloc() and owned by geom_disk and just abandonned by the device driver when disk_create() is called. Unfortunately, this results in a ton of "s/\./->/" changes to device drivers. Since I'm doing the sweep anyway, a couple of other API improvements have been carried out at the same time: The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to DISKFLAG_NEEDSGIANT A version number have been added to disk_create() so that we can detect, report and ignore binary drivers with old ABI in the future. Manual page update to follow shortly.
* Add an off_t cast to prevent overflow on media size. This shouldnjl2003-09-221-1/+1
| | | | | | fix issues with geometry not matching drive size. Submitted by: Clive Lin <clive@tongi.org>
* Use __FBSDID().obrien2003-08-241-4/+3
| | | | Also some minor style cleanups.
* Fix pointer/int warnings so this compiles on amd64. The driver wantspeter2003-06-271-2/+2
| | | | | | | to store an int in the bio->bio_driver1 (a void *). It is big enough, but you have to match the int sizes first before doing the cast. Glanced at by: scottl
* Add the 'ips' driver for the IBM (now Adaptec) ServeRAID controllerscottl2003-05-111-0/+162
series. This driver was generously developed and released by David Jeffreys and Adaptec. I've updated it to work with 5.x and fixed a few bugs. MFC After: 1 week
OpenPOWER on IntegriCloud