aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/pst
Commit message (Collapse)AuthorAgeFilesLines
* MFC 196403: Temporarily revert the new-bus locking for 8.0 release.John Baldwin2009-08-201-2/+0
| | | | | | | Approved by: re (kib) Notes: svn path=/stable/8/; revision=196405
* Make the newbus subsystem Giant free by adding the new newbus sxlock.Attilio Rao2009-08-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races. Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped. For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens. Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing. Bump __FreeBSD_version in order to reflect the newbus lock introduction. Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith) Notes: svn path=/head/; revision=196037
* o break newbus api: add a new argument of type driver_filter_t toPaolo Pisati2007-02-231-1/+1
| | | | | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@ Notes: svn path=/head/; revision=166901
* Use BUS_PROBE_DEFAULT for pci probe return valueWarner Losh2005-03-051-2/+2
| | | | Notes: svn path=/head/; revision=143158
* Use the correct type for iop_attach().Stefan Farfeleder2004-10-032-4/+6
| | | | Notes: svn path=/head/; revision=136094
* Flush the queue of minor fixes to pst.Søren Schmidt2004-09-153-5/+3
| | | | Notes: svn path=/head/; revision=135267
* Convert callers to the new bus_alloc_resource_any(9) API.Nate Lawson2004-03-171-3/+3
| | | | | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde Notes: svn path=/head/; revision=127135
* Change the disk(9) API in order to make device removal more robust.Poul-Henning Kamp2004-02-181-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=125975
* Dont re-arm the timeout twice on a timeout error.Søren Schmidt2003-09-081-5/+0
| | | | | | | | | | The problem with the first timeout still exsists though, but not it doesn't enter a groundbound spin loop :) Found by: Aaron Smith <aaron@mutex.org> Notes: svn path=/head/; revision=119874
* Use __FBSDID().David E. O'Brien2003-08-243-6/+9
| | | | | | | Also some minor style cleanups. Notes: svn path=/head/; revision=119418
* Prefer new location of pci include files (which have only been in theWarner Losh2003-08-223-6/+6
| | | | | | | | tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD. Notes: svn path=/head/; revision=119285
* Pull the pst driver out from under GAINT.Søren Schmidt2003-04-284-75/+151
| | | | Notes: svn path=/head/; revision=114154
* Instead of not grapping a request binfinish(ENOMEM) it if malloc fails.Søren Schmidt2003-04-021-1/+2
| | | | Notes: svn path=/head/; revision=112977
* Use bioq_flush() to drain a bio queue with a specific error code.Poul-Henning Kamp2003-04-011-2/+2
| | | | | | | | | | | Retain the mistake of not updating the devstat API for now. Spell bioq_disksort() consistently with the remaining bioq_*(). #include <geom/geom_disk.h> where this is more appropriate. Notes: svn path=/head/; revision=112946
* Centralize the devstat handling for all GEOM disk device driversPoul-Henning Kamp2003-03-081-12/+4
| | | | | | | | | | | 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. Notes: svn path=/head/; revision=111979
* NO_GEOM cleanup:Poul-Henning Kamp2003-02-251-25/+12
| | | | | | | | | | Move to "struct disk *" centric API. Add NULL check to a malloc(9) return value. Ok'ed by: sos Notes: svn path=/head/; revision=111472
* Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,Jens Schweikhardt2003-01-011-7/+7
| | | | | | | especially in troff files. Notes: svn path=/head/; revision=108533
* Fxi support for the Promise SuperTrak 100, the PCI id was wrong.Søren Schmidt2002-12-201-2/+2
| | | | Notes: svn path=/head/; revision=108126
* Fix so it compiles with the new disklabel stuff.Søren Schmidt2002-09-271-5/+5
| | | | Notes: svn path=/head/; revision=104066
* use __packed.Alfred Perlstein2002-09-231-25/+25
| | | | Notes: svn path=/head/; revision=103870
* (This commit touches about 15 disk device drivers in a very consistentPoul-Henning Kamp2002-09-201-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and predictable way, and I apologize if I have gotten it wrong anywhere, getting prior review on a patch like this is not feasible, considering the number of people involved and hardware availability etc.) If struct disklabel is the messenger: kill the messenger. Inside struct disk we had a struct disklabel which disk drivers used to communicate certain metrics to the disklayer above (GEOM or the disk mini-layer). This commit changes this communication to use four explicit fields instead. Amongst the benefits is that the fields do not get overwritten by wrong or bogus on-disk disklabels. Once that is clear, <sys/disk.h> which is included in the drivers no longer need to pull <sys/disklabel.h> and <sys/diskslice.h> in, the few places that needs them, have gotten explicit #includes for them. The disklabel inside struct disk is now only for internal use in the disk mini-layer, so instead of embedding it, we malloc it as we need it. This concludes (modulus any mistakes) the series of disklabel related commits. I belive it all amounts to a NOP for all the rest of you :-) Sponsored by: DARPA & NAI Labs. Notes: svn path=/head/; revision=103714
* Fix args for contigmalloc, cosmetics.Søren Schmidt2002-08-183-85/+88
| | | | Notes: svn path=/head/; revision=102058
* Finally first shot at a driver for the Promise SuperTrak SX6000 ATA RAIDSøren Schmidt2002-07-314-0/+1599
controller. Some testing has already been done, but its still greenish. RAID's has to be setup via the BIOS on the SuperTrak, but all RAID types are supported by the driver. The SuperTrak rebuilds failed arrays on the fly and supports spare disks etc etc... Add "device pst" to your config file to use. As usual bugsreports, suggestions etc are welcome... Development sponsored by: Advanis Hardware donated by: Promise Inc. Notes: svn path=/head/; revision=101100