freebsd-skq/sys/dev/ata
attilio 7f42e47a67 Make the newbus subsystem Giant free by adding the new newbus sxlock.
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)
2009-08-02 14:28:40 +00:00
..
chipsets Fix Marvel SATA controllers operation, broken by rev. 188765, 2009-07-13 18:01:49 +00:00
ata_if.m Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00
ata-all.c Make the newbus subsystem Giant free by adding the new newbus sxlock. 2009-08-02 14:28:40 +00:00
ata-all.h Move non-PCI prototypes from ata-pci.h -> ata-all.h. 2009-06-24 15:38:17 +00:00
ata-card.c Check the Disk FUNCE recorded in the CIS to see if we should probe for 2009-03-12 06:30:59 +00:00
ata-cbus.c Add type specific suspend/resume ata channel functions. Add checks to avoid 2009-03-09 20:48:57 +00:00
ata-disk.c Improve kernel dumping reliability for busy ATA channels: 2009-05-01 08:03:46 +00:00
ata-disk.h Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00
ata-dma.c Move non-PCI prototypes from ata-pci.h -> ata-all.h. 2009-06-24 15:38:17 +00:00
ata-isa.c Add type specific suspend/resume ata channel functions. Add checks to avoid 2009-03-09 20:48:57 +00:00
ata-lowlevel.c Fix panic and breakage for non-DMA ATA devices e.g. powermac macio cells. 2008-05-08 17:55:44 +00:00
ata-pci.c Add experimental support for SATA interface power management. 2009-04-29 21:17:18 +00:00
ata-pci.h Move non-PCI prototypes from ata-pci.h -> ata-all.h. 2009-06-24 15:38:17 +00:00
ata-queue.c Improve kernel dumping reliability for busy ATA channels: 2009-05-01 08:03:46 +00:00
ata-raid-ddf.h Add basic support for DDF, often found on Adaptec HostRAID controllers. 2009-02-20 06:10:12 +00:00
ata-raid.c Revert my ata_identify()/ata_reinit() related changes: r189166, r189091 2009-02-28 22:07:15 +00:00
ata-raid.h Add basic support for DDF, often found on Adaptec HostRAID controllers. 2009-02-20 06:10:12 +00:00
ata-sata.c Move non-PCI prototypes from ata-pci.h -> ata-all.h. 2009-06-24 15:38:17 +00:00
ata-usb.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
atapi-cam.c Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
atapi-cd.c Revert revisions 188839 and 188868. Use of the ioctl in geom_dev.c 2009-07-08 05:56:14 +00:00
atapi-cd.h Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00
atapi-fd.c Revert my ata_identify()/ata_reinit() related changes: r189166, r189091 2009-02-28 22:07:15 +00:00
atapi-fd.h Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00
atapi-tape.c Remove unneeded device index from unit number. 2009-04-26 09:21:37 +00:00
atapi-tape.h Add experimental support for SATA Port Multipliers 2008-04-10 13:05:05 +00:00