summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-pci.h
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2008-12-16 16:04:40 +0000
committermav <mav@FreeBSD.org>2008-12-16 16:04:40 +0000
commit852a86e463c35b7c2249a10881c65659d73f9ecc (patch)
treed87c973375930c091a7c9d2897e8f106b7c02a94 /sys/dev/ata/ata-pci.h
parentf77e2d29f5d4525d4d638f07c17d5a342dd2569b (diff)
downloadFreeBSD-src-852a86e463c35b7c2249a10881c65659d73f9ecc.zip
FreeBSD-src-852a86e463c35b7c2249a10881c65659d73f9ecc.tar.gz
Call ata_legacy() only once on attach and save it's result. Scanning PCI
configuration registers (which are not going to change) on every interrupt looks expensive, especially when interrupt is shared. Profiling shows me 3% of time spent by atapci0 on pure network load due to IRQ sharing with em0.
Diffstat (limited to 'sys/dev/ata/ata-pci.h')
-rw-r--r--sys/dev/ata/ata-pci.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h
index 0cbb0d5..e5edd87 100644
--- a/sys/dev/ata/ata-pci.h
+++ b/sys/dev/ata/ata-pci.h
@@ -48,6 +48,7 @@ struct ata_pci_controller {
struct resource *r_irq;
void *handle;
struct ata_chip_id *chip;
+ int legacy;
int channels;
int (*chipinit)(device_t);
int (*suspend)(device_t);
OpenPOWER on IntegriCloud