summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2010-10-12 00:53:32 +0000
committerkrw <krw@openbsd.org>2010-10-12 00:53:32 +0000
commit1fa0cb04b55ca19a1c14d70a1c91cc92e15cac96 (patch)
tree4fa52e8cf8aa988a0a277935dc6648e50a975b0d /sys/dev
parentcorrect MACHINE, MACHINE_ARCH (diff)
downloadwireguard-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.c3
-rw-r--r--sys/dev/i2o/ioprbs.c3
-rw-r--r--sys/dev/ic/aac.c3
-rw-r--r--sys/dev/ic/ami.c3
-rw-r--r--sys/dev/ic/cac.c3
-rw-r--r--sys/dev/ic/gdt_common.c3
-rw-r--r--sys/dev/pci/ips.c3
-rw-r--r--sys/dev/softraid.c3
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,