diff options
author | 2010-10-12 00:53:32 +0000 | |
---|---|---|
committer | 2010-10-12 00:53:32 +0000 | |
commit | 1fa0cb04b55ca19a1c14d70a1c91cc92e15cac96 (patch) | |
tree | 4fa52e8cf8aa988a0a277935dc6648e50a975b0d /sys/dev | |
parent | correct MACHINE, MACHINE_ARCH (diff) | |
download | wireguard-openbsd-1fa0cb04b55ca19a1c14d70a1c91cc92e15cac96.tar.xz wireguard-openbsd-1fa0cb04b55ca19a1c14d70a1c91cc92e15cac96.zip |
Force openings to 1 for devices that can't do tagged i/o, i.e. more
than 1 i/o active at once. This reduces the chances that concurrent
i/o's for such devices will confuse the device or the adapter code.
It also eliminates a reason for adapter code to maintain its own
queues.
Tweak all drivers that fake INQUIRY results to set the SID_CmdQue
flag, thus continuing to claim to be able to do tagged i/o.
Positive feedback from matthew@ and marco@ for an earlier version.
ok dlg@
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ata/atascsi.c | 3 | ||||
-rw-r--r-- | sys/dev/i2o/ioprbs.c | 3 | ||||
-rw-r--r-- | sys/dev/ic/aac.c | 3 | ||||
-rw-r--r-- | sys/dev/ic/ami.c | 3 | ||||
-rw-r--r-- | sys/dev/ic/cac.c | 3 | ||||
-rw-r--r-- | sys/dev/ic/gdt_common.c | 3 | ||||
-rw-r--r-- | sys/dev/pci/ips.c | 3 | ||||
-rw-r--r-- | sys/dev/softraid.c | 3 |
8 files changed, 16 insertions, 8 deletions
diff --git a/sys/dev/ata/atascsi.c b/sys/dev/ata/atascsi.c index 4e65cd39f58..a4e60466714 100644 --- a/sys/dev/ata/atascsi.c +++ b/sys/dev/ata/atascsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atascsi.c,v 1.96 2010/09/23 11:44:22 dlg Exp $ */ +/* $OpenBSD: atascsi.c,v 1.97 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -596,6 +596,7 @@ atascsi_disk_inquiry(struct scsi_xfer *xs) inq.version = 0x05; /* SPC-3 */ inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; bcopy("ATA ", inq.vendor, sizeof(inq.vendor)); ata_swapcopy(ap->ap_identify.model, inq.product, sizeof(inq.product)); diff --git a/sys/dev/i2o/ioprbs.c b/sys/dev/i2o/ioprbs.c index 2eb36da18e2..f3e63671d40 100644 --- a/sys/dev/i2o/ioprbs.c +++ b/sys/dev/i2o/ioprbs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ioprbs.c,v 1.23 2010/09/20 06:17:49 krw Exp $ */ +/* $OpenBSD: ioprbs.c,v 1.24 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 2001 Niklas Hallqvist @@ -731,6 +731,7 @@ ioprbs_internal_cache_cmd(xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "I2O", sizeof inq.vendor); snprintf(inq.product, sizeof inq.product, "Container #%02d", target); diff --git a/sys/dev/ic/aac.c b/sys/dev/ic/aac.c index 5bcff17e5fa..d7490836a91 100644 --- a/sys/dev/ic/aac.c +++ b/sys/dev/ic/aac.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aac.c,v 1.50 2010/09/21 05:28:58 krw Exp $ */ +/* $OpenBSD: aac.c,v 1.51 2010/10/12 00:53:32 krw Exp $ */ /*- * Copyright (c) 2000 Michael Smith @@ -2448,6 +2448,7 @@ aac_internal_cache_cmd(struct scsi_xfer *xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "Adaptec", sizeof inq.vendor); snprintf(inq.product, sizeof inq.product, "Container #%02d", target); diff --git a/sys/dev/ic/ami.c b/sys/dev/ic/ami.c index 14af0c05ec0..b0c4573da51 100644 --- a/sys/dev/ic/ami.c +++ b/sys/dev/ic/ami.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ami.c,v 1.216 2010/09/24 01:32:09 dlg Exp $ */ +/* $OpenBSD: ami.c,v 1.217 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 2001 Michael Shalayeff @@ -1393,6 +1393,7 @@ ami_scsi_cmd(struct scsi_xfer *xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "AMI ", sizeof(inq.vendor)); snprintf(inq.product, sizeof(inq.product), "Host drive #%02d", target); diff --git a/sys/dev/ic/cac.c b/sys/dev/ic/cac.c index e6169ea840f..328041b7ac7 100644 --- a/sys/dev/ic/cac.c +++ b/sys/dev/ic/cac.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cac.c,v 1.41 2010/09/20 06:17:49 krw Exp $ */ +/* $OpenBSD: cac.c,v 1.42 2010/10/12 00:53:32 krw Exp $ */ /* $NetBSD: cac.c,v 1.15 2000/11/08 19:20:35 ad Exp $ */ /* @@ -630,6 +630,7 @@ cac_scsi_cmd(xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "Compaq ", sizeof inq.vendor); switch (CAC_GET1(dinfo->mirror)) { case 0: p = "RAID0"; break; diff --git a/sys/dev/ic/gdt_common.c b/sys/dev/ic/gdt_common.c index 4c018c97708..47eeccad850 100644 --- a/sys/dev/ic/gdt_common.c +++ b/sys/dev/ic/gdt_common.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gdt_common.c,v 1.54 2010/09/20 06:17:49 krw Exp $ */ +/* $OpenBSD: gdt_common.c,v 1.55 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 1999, 2000, 2003 Niklas Hallqvist. All rights reserved. @@ -963,6 +963,7 @@ gdt_internal_cache_cmd(struct scsi_xfer *xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "ICP ", sizeof inq.vendor); snprintf(inq.product, sizeof inq.product, "Host drive #%02d", target); diff --git a/sys/dev/pci/ips.c b/sys/dev/pci/ips.c index 3ea223970af..346e66ef29a 100644 --- a/sys/dev/pci/ips.c +++ b/sys/dev/pci/ips.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ips.c,v 1.103 2010/09/20 06:17:49 krw Exp $ */ +/* $OpenBSD: ips.c,v 1.104 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 2006, 2007, 2009 Alexander Yurchenko <grange@openbsd.org> @@ -934,6 +934,7 @@ ips_scsi_cmd(struct scsi_xfer *xs) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, "IBM", sizeof(inq.vendor)); snprintf(inq.product, sizeof(inq.product), "LD%d RAID%d", target, drive->raid); diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c index df9d63562a9..16c78026a85 100644 --- a/sys/dev/softraid.c +++ b/sys/dev/softraid.c @@ -1,4 +1,4 @@ -/* $OpenBSD: softraid.c,v 1.214 2010/09/23 18:49:39 oga Exp $ */ +/* $OpenBSD: softraid.c,v 1.215 2010/10/12 00:53:32 krw Exp $ */ /* * Copyright (c) 2007, 2008, 2009 Marco Peereboom <marco@peereboom.us> * Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org> @@ -3473,6 +3473,7 @@ sr_raid_inquiry(struct sr_workunit *wu) inq.version = 2; inq.response_format = 2; inq.additional_length = 32; + inq.flags |= SID_CmdQue; strlcpy(inq.vendor, sd->sd_meta->ssdi.ssd_vendor, sizeof(inq.vendor)); strlcpy(inq.product, sd->sd_meta->ssdi.ssd_product, |