Module Name:    src
Committed By:   jdolecek
Date:           Fri Oct 20 07:06:08 UTC 2017

Modified Files:
        src/sys/arch/acorn32/eb7500atx: rside.c
        src/sys/arch/acorn32/mainbus: wdc_pioc.c
        src/sys/arch/acorn32/podulebus: icside.c rapide.c simide.c
        src/sys/arch/amiga/dev: efa.c wdc_acafh.c wdc_amiga.c wdc_buddha.c
            wdc_xsurf.c
        src/sys/arch/arm/gemini: obio_wdc.c
        src/sys/arch/atari/dev: wdc_mb.c
        src/sys/arch/dreamcast/dev/g1: wdc_g1.c
        src/sys/arch/evbarm/iq31244: wdc_obio.c
        src/sys/arch/evbarm/tsarm: wdc_ts.c
        src/sys/arch/evbppc/mpc85xx: wdc_obio.c
        src/sys/arch/i386/pnpbios: pciide_pnpbios.c
        src/sys/arch/landisk/dev: wdc_obio.c
        src/sys/arch/mac68k/obio: wdc_obio.c
        src/sys/arch/macppc/dev: kauai.c wdc_obio.c
        src/sys/arch/mips/adm5120/dev: wdc_extio.c
        src/sys/arch/mmeye/dev: wdc_mainbus.c
        src/sys/arch/playstation2/dev: wdc_spd.c
        src/sys/arch/prep/pnpbus: wdc_pnpbus.c
        src/sys/dev/ata: ata.c ata_subr.c
        src/sys/dev/ic: ahcisata_core.c ninjaata32.c siisata.c wdc.c wdc_upc.c
        src/sys/dev/isa: wdc_isa.c
        src/sys/dev/isapnp: wdc_isapnp.c
        src/sys/dev/ofisa: wdc_ofisa.c
        src/sys/dev/pci: artsata.c cmdide.c cypide.c pciide_common.c pdcsata.c
            satalink.c viaide.c
        src/sys/dev/pcmcia: wdc_pcmcia.c
        src/sys/dev/podulebus: dtide.c hcide.c
        src/sys/dev/usb: umass_isdata.c

Log Message:
move ata_queue_alloc(1) and ata_queue_free() calls to ata_channel_init()
and ata_channel_destroy() respectively, to make attachment code simpler,
and to make it easier to spot special queue manipulation like cmdide(4)

on topic of PR kern/52606


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/acorn32/eb7500atx/rside.c
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/acorn32/mainbus/wdc_pioc.c
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/acorn32/podulebus/icside.c
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/acorn32/podulebus/rapide.c
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/acorn32/podulebus/simide.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/amiga/dev/efa.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/amiga/dev/wdc_acafh.c \
    src/sys/arch/amiga/dev/wdc_xsurf.c
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/amiga/dev/wdc_amiga.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/amiga/dev/wdc_buddha.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/gemini/obio_wdc.c
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/atari/dev/wdc_mb.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/dreamcast/dev/g1/wdc_g1.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbarm/iq31244/wdc_obio.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/evbarm/tsarm/wdc_ts.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbppc/mpc85xx/wdc_obio.c
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/i386/pnpbios/pciide_pnpbios.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/landisk/dev/wdc_obio.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/mac68k/obio/wdc_obio.c
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/macppc/dev/kauai.c
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/macppc/dev/wdc_obio.c
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/mips/adm5120/dev/wdc_extio.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/mmeye/dev/wdc_mainbus.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/playstation2/dev/wdc_spd.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/prep/pnpbus/wdc_pnpbus.c
cvs rdiff -u -r1.139 -r1.140 src/sys/dev/ata/ata.c
cvs rdiff -u -r1.3 -r1.4 src/sys/dev/ata/ata_subr.c
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/ic/ahcisata_core.c
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/ic/ninjaata32.c
cvs rdiff -u -r1.34 -r1.35 src/sys/dev/ic/siisata.c
cvs rdiff -u -r1.287 -r1.288 src/sys/dev/ic/wdc.c
cvs rdiff -u -r1.30 -r1.31 src/sys/dev/ic/wdc_upc.c
cvs rdiff -u -r1.60 -r1.61 src/sys/dev/isa/wdc_isa.c
cvs rdiff -u -r1.43 -r1.44 src/sys/dev/isapnp/wdc_isapnp.c
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/ofisa/wdc_ofisa.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/pci/artsata.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/pci/cmdide.c
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/pci/cypide.c
cvs rdiff -u -r1.64 -r1.65 src/sys/dev/pci/pciide_common.c
cvs rdiff -u -r1.28 -r1.29 src/sys/dev/pci/pdcsata.c
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/pci/satalink.c
cvs rdiff -u -r1.85 -r1.86 src/sys/dev/pci/viaide.c
cvs rdiff -u -r1.125 -r1.126 src/sys/dev/pcmcia/wdc_pcmcia.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/podulebus/dtide.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/podulebus/hcide.c
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/usb/umass_isdata.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/acorn32/eb7500atx/rside.c
diff -u src/sys/arch/acorn32/eb7500atx/rside.c:1.15 src/sys/arch/acorn32/eb7500atx/rside.c:1.16
--- src/sys/arch/acorn32/eb7500atx/rside.c:1.15	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/acorn32/eb7500atx/rside.c	Fri Oct 20 07:06:05 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: rside.c,v 1.15 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: rside.c,v 1.16 2017/10/20 07:06:05 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 2004 Christopher Gilbert
@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rside.c,v 1.15 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rside.c,v 1.16 2017/10/20 07:06:05 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -198,7 +198,6 @@ rside_attach(device_t parent, device_t s
 
 		cp->ch_channel = channel;
 		cp->ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ch_queue = ata_queue_alloc(1);
 		wdr->cmd_iot = wdr->ctl_iot = &sc->sc_tag;
 		if (bus_space_map(wdr->cmd_iot,
 		    rside_info[channel].drive_registers,

Index: src/sys/arch/acorn32/mainbus/wdc_pioc.c
diff -u src/sys/arch/acorn32/mainbus/wdc_pioc.c:1.29 src/sys/arch/acorn32/mainbus/wdc_pioc.c:1.30
--- src/sys/arch/acorn32/mainbus/wdc_pioc.c:1.29	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/acorn32/mainbus/wdc_pioc.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_pioc.c,v 1.29 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: wdc_pioc.c,v 1.30 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1997-1998 Mark Brinicombe.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_pioc.c,v 1.29 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pioc.c,v 1.30 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -179,7 +179,6 @@ wdc_pioc_attach(device_t parent, device_
 	sc->sc_wdcdev.sc_atac.atac_nchannels = 1;
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
 
 	wdc_init_shadow_regs(wdr);
 

Index: src/sys/arch/acorn32/podulebus/icside.c
diff -u src/sys/arch/acorn32/podulebus/icside.c:1.33 src/sys/arch/acorn32/podulebus/icside.c:1.34
--- src/sys/arch/acorn32/podulebus/icside.c:1.33	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/acorn32/podulebus/icside.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: icside.c,v 1.33 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: icside.c,v 1.34 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1997-1998 Mark Brinicombe
@@ -42,7 +42,7 @@
 
 #include <sys/param.h>
 
-__KERNEL_RCSID(0, "$NetBSD: icside.c,v 1.33 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: icside.c,v 1.34 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/systm.h>
 #include <sys/conf.h>
@@ -269,7 +269,6 @@ icside_attach(device_t parent, device_t 
 
 		cp->ch_channel = channel;
 		cp->ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ch_queue = ata_queue_alloc(1);
 		wdr->cmd_iot = &sc->sc_tag;
 		wdr->ctl_iot = &sc->sc_tag;
 		if (ide->modspace)

Index: src/sys/arch/acorn32/podulebus/rapide.c
diff -u src/sys/arch/acorn32/podulebus/rapide.c:1.31 src/sys/arch/acorn32/podulebus/rapide.c:1.32
--- src/sys/arch/acorn32/podulebus/rapide.c:1.31	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/acorn32/podulebus/rapide.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: rapide.c,v 1.31 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: rapide.c,v 1.32 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1997-1998 Mark Brinicombe
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rapide.c,v 1.31 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rapide.c,v 1.32 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -258,7 +258,6 @@ rapide_attach(device_t parent, device_t 
 
 		cp->ch_channel = channel;
 		cp->ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ch_queue = ata_queue_alloc(1);
 		wdr->cmd_iot = iot;
 		wdr->ctl_iot = iot;
 		wdr->data32iot = iot;

Index: src/sys/arch/acorn32/podulebus/simide.c
diff -u src/sys/arch/acorn32/podulebus/simide.c:1.30 src/sys/arch/acorn32/podulebus/simide.c:1.31
--- src/sys/arch/acorn32/podulebus/simide.c:1.30	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/acorn32/podulebus/simide.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: simide.c,v 1.30 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: simide.c,v 1.31 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1997-1998 Mark Brinicombe
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: simide.c,v 1.30 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: simide.c,v 1.31 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -257,7 +257,6 @@ simide_attach(device_t parent, device_t 
 
 		cp->ch_channel = channel;
 		cp->ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ch_queue = ata_queue_alloc(1);
 		wdr->cmd_iot = wdr->ctl_iot = &sc->sc_tag;
 		iobase = pa->pa_podule->mod_base;
 		if (bus_space_map(wdr->cmd_iot, iobase +

Index: src/sys/arch/amiga/dev/efa.c
diff -u src/sys/arch/amiga/dev/efa.c:1.14 src/sys/arch/amiga/dev/efa.c:1.15
--- src/sys/arch/amiga/dev/efa.c:1.14	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/amiga/dev/efa.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: efa.c,v 1.14 2017/10/07 16:05:31 jdolecek Exp $ */
+/*	$NetBSD: efa.c,v 1.15 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -208,7 +208,6 @@ efa_attach_channel(struct efa_softc *sc,
 
 	sc->sc_ports[chnum].chan.ch_channel = chnum;
 	sc->sc_ports[chnum].chan.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_ports[chnum].chan.ch_queue = ata_queue_alloc(1);
 
 	if (!sc->sc_32bit_io)
 		efa_select_regset(sc, chnum, 0); /* Start in PIO0. */

Index: src/sys/arch/amiga/dev/wdc_acafh.c
diff -u src/sys/arch/amiga/dev/wdc_acafh.c:1.5 src/sys/arch/amiga/dev/wdc_acafh.c:1.6
--- src/sys/arch/amiga/dev/wdc_acafh.c:1.5	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/amiga/dev/wdc_acafh.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_acafh.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $ */
+/*	$NetBSD: wdc_acafh.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2000, 2003, 2013 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_acafh.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_acafh.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -153,7 +153,6 @@ wdc_acafh_attach_channel(struct wdc_acaf
 	memset(&sc->sc_slots[chnum],0,sizeof(struct wdc_acafh_slot));
 	sc->sc_slots[chnum].channel.ch_channel = chnum;
 	sc->sc_slots[chnum].channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_slots[chnum].channel.ch_queue = ata_queue_alloc(1);
 
 	wdc_acafh_map_channel(sc, chnum);
 
Index: src/sys/arch/amiga/dev/wdc_xsurf.c
diff -u src/sys/arch/amiga/dev/wdc_xsurf.c:1.5 src/sys/arch/amiga/dev/wdc_xsurf.c:1.6
--- src/sys/arch/amiga/dev/wdc_xsurf.c:1.5	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/amiga/dev/wdc_xsurf.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*      $NetBSD: wdc_xsurf.c,v 1.5 2017/10/07 16:05:31 jdolecek Exp $ */
+/*      $NetBSD: wdc_xsurf.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -164,7 +164,6 @@ wdc_xsurf_attach_channel(struct wdc_xsur
 	memset(&sc->sc_ports[chnum],0,sizeof(struct wdc_xsurf_port));
 	sc->sc_ports[chnum].channel.ch_channel = chnum;
 	sc->sc_ports[chnum].channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_ports[chnum].channel.ch_queue = ata_queue_alloc(1);
 
 	wdc_xsurf_map_channel(sc, chnum);	
 

Index: src/sys/arch/amiga/dev/wdc_amiga.c
diff -u src/sys/arch/amiga/dev/wdc_amiga.c:1.39 src/sys/arch/amiga/dev/wdc_amiga.c:1.40
--- src/sys/arch/amiga/dev/wdc_amiga.c:1.39	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/amiga/dev/wdc_amiga.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_amiga.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $ */
+/*	$NetBSD: wdc_amiga.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2000, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_amiga.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_amiga.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -135,7 +135,6 @@ wdc_amiga_attach(device_t parent, device
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
 
 	wdc_init_shadow_regs(wdr);
 

Index: src/sys/arch/amiga/dev/wdc_buddha.c
diff -u src/sys/arch/amiga/dev/wdc_buddha.c:1.9 src/sys/arch/amiga/dev/wdc_buddha.c:1.10
--- src/sys/arch/amiga/dev/wdc_buddha.c:1.9	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/amiga/dev/wdc_buddha.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_buddha.c,v 1.9 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: wdc_buddha.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -128,12 +128,6 @@ wdc_buddha_attach(device_t parent, devic
 
 		cp->ch_channel = ch;
 		cp->ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ch_queue = ata_queue_alloc(1);
-		if (cp->ch_queue == NULL) {
-			aprint_error_dev(self,
-			    "can't allocate memory for command queue\n");
-			return;
-		}
 
 		/*
 		 * XXX According to the Buddha docs, we should use a method

Index: src/sys/arch/arm/gemini/obio_wdc.c
diff -u src/sys/arch/arm/gemini/obio_wdc.c:1.7 src/sys/arch/arm/gemini/obio_wdc.c:1.8
--- src/sys/arch/arm/gemini/obio_wdc.c:1.7	Sat Oct  7 19:58:53 2017
+++ src/sys/arch/arm/gemini/obio_wdc.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: obio_wdc.c,v 1.7 2017/10/07 19:58:53 jdolecek Exp $	*/
+/*	$NetBSD: obio_wdc.c,v 1.8 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /* adapted from iq31244/wdc_obio.c:
  *	NetBSD: wdc_obio.c,v 1.5 2008/04/28 20:23:16 martin Exp
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: obio_wdc.c,v 1.7 2017/10/07 19:58:53 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: obio_wdc.c,v 1.8 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include "locators.h"
 
@@ -140,7 +140,7 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/arch/atari/dev/wdc_mb.c
diff -u src/sys/arch/atari/dev/wdc_mb.c:1.39 src/sys/arch/atari/dev/wdc_mb.c:1.40
--- src/sys/arch/atari/dev/wdc_mb.c:1.39	Sat Oct  7 16:05:31 2017
+++ src/sys/arch/atari/dev/wdc_mb.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_mb.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $	*/
+/*	$NetBSD: wdc_mb.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_mb.c,v 1.39 2017/10/07 16:05:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_mb.c,v 1.40 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -199,7 +199,7 @@ wdc_mb_attach(device_t parent, device_t 
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	/*

Index: src/sys/arch/dreamcast/dev/g1/wdc_g1.c
diff -u src/sys/arch/dreamcast/dev/g1/wdc_g1.c:1.2 src/sys/arch/dreamcast/dev/g1/wdc_g1.c:1.3
--- src/sys/arch/dreamcast/dev/g1/wdc_g1.c:1.2	Sat Oct  7 19:58:53 2017
+++ src/sys/arch/dreamcast/dev/g1/wdc_g1.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: wdc_g1.c,v 1.2 2017/10/07 19:58:53 jdolecek Exp $ */
+/* $NetBSD: wdc_g1.c,v 1.3 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -163,7 +163,7 @@ wdc_g1_attach(struct device *parent, str
 	sc->sc_wdcdev.reset = wdc_g1_do_reset;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal(": %s\n", sysasic_intr_string(SYSASIC_IRL9));

Index: src/sys/arch/evbarm/iq31244/wdc_obio.c
diff -u src/sys/arch/evbarm/iq31244/wdc_obio.c:1.10 src/sys/arch/evbarm/iq31244/wdc_obio.c:1.11
--- src/sys/arch/evbarm/iq31244/wdc_obio.c:1.10	Sat Oct  7 19:58:53 2017
+++ src/sys/arch/evbarm/iq31244/wdc_obio.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_obio.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $ */
+/*	$NetBSD: wdc_obio.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003, 2005 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -111,7 +111,7 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/arch/evbarm/tsarm/wdc_ts.c
diff -u src/sys/arch/evbarm/tsarm/wdc_ts.c:1.10 src/sys/arch/evbarm/tsarm/wdc_ts.c:1.11
--- src/sys/arch/evbarm/tsarm/wdc_ts.c:1.10	Sat Oct  7 19:58:53 2017
+++ src/sys/arch/evbarm/tsarm/wdc_ts.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_ts.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $ */
+/*	$NetBSD: wdc_ts.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_ts.c,v 1.10 2017/10/07 19:58:53 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_ts.c,v 1.11 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -109,7 +109,7 @@ wdc_ts_attach(device_t parent, device_t 
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/arch/evbppc/mpc85xx/wdc_obio.c
diff -u src/sys/arch/evbppc/mpc85xx/wdc_obio.c:1.5 src/sys/arch/evbppc/mpc85xx/wdc_obio.c:1.6
--- src/sys/arch/evbppc/mpc85xx/wdc_obio.c:1.5	Sat Oct  7 19:58:54 2017
+++ src/sys/arch/evbppc/mpc85xx/wdc_obio.c	Fri Oct 20 07:06:06 2017
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.6 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/cpu.h>
@@ -161,9 +161,8 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
-	wdc_init_shadow_regs(wdr);
 
+	wdc_init_shadow_regs(wdr);
 
 	/* 
 	 * The interrupt line is controlled by a jumper.  We can't detect 

Index: src/sys/arch/i386/pnpbios/pciide_pnpbios.c
diff -u src/sys/arch/i386/pnpbios/pciide_pnpbios.c:1.32 src/sys/arch/i386/pnpbios/pciide_pnpbios.c:1.33
--- src/sys/arch/i386/pnpbios/pciide_pnpbios.c:1.32	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/i386/pnpbios/pciide_pnpbios.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pciide_pnpbios.c,v 1.32 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: pciide_pnpbios.c,v 1.33 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1999 Soren S. Jorvang.  All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pciide_pnpbios.c,v 1.32 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pciide_pnpbios.c,v 1.33 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -118,12 +118,6 @@ pciide_pnpbios_attach(device_t parent, d
 	sc->wdc_chanarray[0] = &cp->ata_channel;
 	cp->ata_channel.ch_channel = 0;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error_dev(self, "unable to allocate memory for command "
-		    "queue\n");
-		return;
-	}
 
 	sc->sc_dma_ok = 1;
 	for (i = 0; i < IDEDMA_NREGS; i++) {

Index: src/sys/arch/landisk/dev/wdc_obio.c
diff -u src/sys/arch/landisk/dev/wdc_obio.c:1.9 src/sys/arch/landisk/dev/wdc_obio.c:1.10
--- src/sys/arch/landisk/dev/wdc_obio.c:1.9	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/landisk/dev/wdc_obio.c	Fri Oct 20 07:06:06 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_obio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: wdc_obio.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.10 2017/10/20 07:06:06 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -166,7 +166,6 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
 
 	wdc_init_shadow_regs(wdr);
 

Index: src/sys/arch/mac68k/obio/wdc_obio.c
diff -u src/sys/arch/mac68k/obio/wdc_obio.c:1.28 src/sys/arch/mac68k/obio/wdc_obio.c:1.29
--- src/sys/arch/mac68k/obio/wdc_obio.c:1.28	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/mac68k/obio/wdc_obio.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_obio.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $ */
+/*	$NetBSD: wdc_obio.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $ */
 
 /*
  * Copyright (c) 2002 Takeshi Shibagaki  All rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -215,7 +215,7 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	chp->ch_channel = 0;
 	chp->ch_atac = &sc->sc_wdcdev.sc_atac;
-	chp->ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/arch/macppc/dev/kauai.c
diff -u src/sys/arch/macppc/dev/kauai.c:1.37 src/sys/arch/macppc/dev/kauai.c:1.38
--- src/sys/arch/macppc/dev/kauai.c:1.37	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/macppc/dev/kauai.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: kauai.c,v 1.37 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: kauai.c,v 1.38 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2003 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kauai.c,v 1.37 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kauai.c,v 1.38 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -211,7 +211,7 @@ kauai_attach(device_t parent, device_t s
 
 	chp->ch_channel = 0;
 	chp->ch_atac = &sc->sc_wdcdev.sc_atac;
-	chp->ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	wdcattach(chp);

Index: src/sys/arch/macppc/dev/wdc_obio.c
diff -u src/sys/arch/macppc/dev/wdc_obio.c:1.60 src/sys/arch/macppc/dev/wdc_obio.c:1.61
--- src/sys/arch/macppc/dev/wdc_obio.c:1.60	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/macppc/dev/wdc_obio.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_obio.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: wdc_obio.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_obio.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -236,9 +236,9 @@ wdc_obio_attach(device_t parent, device_
 	sc->sc_wdcdev.dma_init = wdc_obio_dma_init;
 	sc->sc_wdcdev.dma_start = wdc_obio_dma_start;
 	sc->sc_wdcdev.dma_finish = wdc_obio_dma_finish;
+
 	chp->ch_channel = 0;
 	chp->ch_atac = &sc->sc_wdcdev.sc_atac;
-	chp->ch_queue = ata_queue_alloc(1);
 
 	wdc_init_shadow_regs(wdr);
 

Index: src/sys/arch/mips/adm5120/dev/wdc_extio.c
diff -u src/sys/arch/mips/adm5120/dev/wdc_extio.c:1.9 src/sys/arch/mips/adm5120/dev/wdc_extio.c:1.10
--- src/sys/arch/mips/adm5120/dev/wdc_extio.c:1.9	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/mips/adm5120/dev/wdc_extio.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_extio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $ */
+/*	$NetBSD: wdc_extio.c,v 1.10 2017/10/20 07:06:07 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2007 David Young.  All rights reserved.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_extio.c,v 1.9 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_extio.c,v 1.10 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -307,9 +307,9 @@ wdc_extio_attach(device_t parent, device
 	sc->sc_wdcdev.sc_atac.atac_channels = sc->sc_chanlist;
 	sc->sc_wdcdev.sc_atac.atac_nchannels = 1;
 	sc->sc_wdcdev.wdc_maxdrives = 2;
+
 	chp->ch_channel = 0;
 	chp->ch_atac = &sc->sc_wdcdev.sc_atac;
-	chp->ch_queue = ata_queue_alloc(1);
 
 	aprint_normal("\n");
 

Index: src/sys/arch/mmeye/dev/wdc_mainbus.c
diff -u src/sys/arch/mmeye/dev/wdc_mainbus.c:1.5 src/sys/arch/mmeye/dev/wdc_mainbus.c:1.6
--- src/sys/arch/mmeye/dev/wdc_mainbus.c:1.5	Sat Oct  7 19:58:54 2017
+++ src/sys/arch/mmeye/dev/wdc_mainbus.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_mainbus.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $	*/
+/*	$NetBSD: wdc_mainbus.c,v 1.6 2017/10/20 07:06:07 jdolecek Exp $	*/
 /*
  * Copyright (c) 2010 KIYOHARA Takashi
  * All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_mainbus.c,v 1.5 2017/10/07 19:58:54 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_mainbus.c,v 1.6 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -172,7 +172,7 @@ wdc_mainbus_attach(device_t parent, devi
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/arch/playstation2/dev/wdc_spd.c
diff -u src/sys/arch/playstation2/dev/wdc_spd.c:1.28 src/sys/arch/playstation2/dev/wdc_spd.c:1.29
--- src/sys/arch/playstation2/dev/wdc_spd.c:1.28	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/playstation2/dev/wdc_spd.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_spd.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: wdc_spd.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_spd.c,v 1.28 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_spd.c,v 1.29 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -203,7 +203,6 @@ wdc_spd_attach(device_t parent, device_t
 	wdc->sc_atac.atac_nchannels = 1;
 	ch->ch_channel = 0;
 	ch->ch_atac = &sc->sc_wdcdev.sc_atac;
-	ch->ch_queue = ata_queue_alloc(1);
 	ch->ch_ndrives = 2;
 
 	__wdc_spd_bus_space(CHAN_TO_WDC_REGS(ch));

Index: src/sys/arch/prep/pnpbus/wdc_pnpbus.c
diff -u src/sys/arch/prep/pnpbus/wdc_pnpbus.c:1.14 src/sys/arch/prep/pnpbus/wdc_pnpbus.c:1.15
--- src/sys/arch/prep/pnpbus/wdc_pnpbus.c:1.14	Sat Oct  7 16:05:32 2017
+++ src/sys/arch/prep/pnpbus/wdc_pnpbus.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_pnpbus.c,v 1.14 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: wdc_pnpbus.c,v 1.15 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_pnpbus.c,v 1.14 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pnpbus.c,v 1.15 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -140,7 +140,7 @@ wdc_pnpbus_attach(device_t parent, devic
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	sc->sc_ih = pnpbus_intr_establish(0, IPL_BIO, IST_PNP,

Index: src/sys/dev/ata/ata.c
diff -u src/sys/dev/ata/ata.c:1.139 src/sys/dev/ata/ata.c:1.140
--- src/sys/dev/ata/ata.c:1.139	Thu Oct 19 20:45:07 2017
+++ src/sys/dev/ata/ata.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ata.c,v 1.139 2017/10/19 20:45:07 jdolecek Exp $	*/
+/*	$NetBSD: ata.c,v 1.140 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.139 2017/10/19 20:45:07 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.140 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include "opt_ata.h"
 
@@ -196,10 +196,10 @@ ata_channel_attach(struct ata_channel *c
 	if (chp->ch_flags & ATACH_DISABLED)
 		return;
 
-	KASSERT(chp->ch_queue != NULL);
-
 	ata_channel_init(chp);
 
+	KASSERT(chp->ch_queue != NULL);
+
 	chp->atabus = config_found_ia(chp->ch_atac->atac_dev, "ata", chp,
 		atabusprint);
 }

Index: src/sys/dev/ata/ata_subr.c
diff -u src/sys/dev/ata/ata_subr.c:1.3 src/sys/dev/ata/ata_subr.c:1.4
--- src/sys/dev/ata/ata_subr.c:1.3	Thu Oct 19 20:45:07 2017
+++ src/sys/dev/ata/ata_subr.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ata_subr.c,v 1.3 2017/10/19 20:45:07 jdolecek Exp $	*/
+/*	$NetBSD: ata_subr.c,v 1.4 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ata_subr.c,v 1.3 2017/10/19 20:45:07 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ata_subr.c,v 1.4 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include "opt_ata.h"
 
@@ -225,11 +225,21 @@ ata_channel_init(struct ata_channel *chp
 {
 	mutex_init(&chp->ch_lock, MUTEX_DEFAULT, IPL_BIO);
 	cv_init(&chp->ch_thr_idle, "atath");
+
+	/* Optionally setup the queue, too */
+	if (chp->ch_queue == NULL) {
+		chp->ch_queue = ata_queue_alloc(1);
+	}
 }
 
 void
 ata_channel_destroy(struct ata_channel *chp)
 {
+	if (chp->ch_queue != NULL) {
+		ata_queue_free(chp->ch_queue);
+		chp->ch_queue = NULL;
+	}
+
 	mutex_destroy(&chp->ch_lock);
 	cv_destroy(&chp->ch_thr_idle);
 }

Index: src/sys/dev/ic/ahcisata_core.c
diff -u src/sys/dev/ic/ahcisata_core.c:1.58 src/sys/dev/ic/ahcisata_core.c:1.59
--- src/sys/dev/ic/ahcisata_core.c:1.58	Sat Oct  7 16:05:32 2017
+++ src/sys/dev/ic/ahcisata_core.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ahcisata_core.c,v 1.58 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: ahcisata_core.c,v 1.59 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.58 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.59 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/malloc.h>
@@ -516,8 +516,6 @@ ahci_detach(struct ahci_softc *sc, int f
 		bus_dmamem_free(sc->sc_dmat, &achp->ahcic_cmd_tbl_seg,
 		    achp->ahcic_cmd_tbl_nseg);
 
-		ata_queue_free(chp->ch_queue);
-		chp->ch_queue = NULL;
 		chp->atabus = NULL;
 
 		ata_channel_detach(chp);

Index: src/sys/dev/ic/ninjaata32.c
diff -u src/sys/dev/ic/ninjaata32.c:1.19 src/sys/dev/ic/ninjaata32.c:1.20
--- src/sys/dev/ic/ninjaata32.c:1.19	Sat Oct  7 16:05:32 2017
+++ src/sys/dev/ic/ninjaata32.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ninjaata32.c,v 1.19 2017/10/07 16:05:32 jdolecek Exp $	*/
+/*	$NetBSD: ninjaata32.c,v 1.20 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 2006 ITOH Yasufumi.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ninjaata32.c,v 1.19 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ninjaata32.c,v 1.20 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -191,7 +191,6 @@ njata32_attach(struct njata32_softc *sc)
 	sc->sc_wdc_chanarray[0] = &sc->sc_ch[0].ch_ata_channel;
 	sc->sc_ch[0].ch_ata_channel.ch_channel = 0;
 	sc->sc_ch[0].ch_ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_ch[0].ch_ata_channel.ch_queue = ata_queue_alloc(1);
 	sc->sc_wdcdev.wdc_maxdrives = 2; /* max number of drives per channel */
 
 	/* map ATA registers */
@@ -264,8 +263,6 @@ njata32_detach(struct njata32_softc *sc,
 		bus_dmamem_unmap(sc->sc_dmat, (void *)sc->sc_sgtpg,
 		    sizeof(struct njata32_dma_page));
 		bus_dmamem_free(sc->sc_dmat, &sc->sc_sgt_seg, sc->sc_sgt_nsegs);
-
-		ata_queue_free(sc->sc_ch[0].ch_ata_channel.ch_queue);
 	}
 
 	return 0;

Index: src/sys/dev/ic/siisata.c
diff -u src/sys/dev/ic/siisata.c:1.34 src/sys/dev/ic/siisata.c:1.35
--- src/sys/dev/ic/siisata.c:1.34	Sat Oct  7 16:05:32 2017
+++ src/sys/dev/ic/siisata.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: siisata.c,v 1.34 2017/10/07 16:05:32 jdolecek Exp $ */
+/* $NetBSD: siisata.c,v 1.35 2017/10/20 07:06:07 jdolecek Exp $ */
 
 /* from ahcisata_core.c */
 
@@ -79,7 +79,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.34 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: siisata.c,v 1.35 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -432,8 +432,6 @@ siisata_detach(struct siisata_softc *sc,
 		bus_dmamem_free(sc->sc_dmat,
 		    &schp->sch_prb_seg, schp->sch_prb_nseg);
 
-		ata_queue_free(chp->ch_queue);
-		chp->ch_queue = NULL;
 		chp->atabus = NULL;
 
 		ata_channel_detach(chp);

Index: src/sys/dev/ic/wdc.c
diff -u src/sys/dev/ic/wdc.c:1.287 src/sys/dev/ic/wdc.c:1.288
--- src/sys/dev/ic/wdc.c:1.287	Tue Oct 17 18:52:50 2017
+++ src/sys/dev/ic/wdc.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc.c,v 1.287 2017/10/17 18:52:50 jdolecek Exp $ */
+/*	$NetBSD: wdc.c,v 1.288 2017/10/20 07:06:07 jdolecek Exp $ */
 
 /*
  * Copyright (c) 1998, 2001, 2003 Manuel Bouyer.  All rights reserved.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.287 2017/10/17 18:52:50 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.288 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include "opt_ata.h"
 #include "opt_wdc.h"
@@ -484,7 +484,6 @@ wdcprobe(struct wdc_regs *wdr)
 	memset(&ch, 0, sizeof(ch));
 	ata_channel_init(&ch);
 	ch.ch_atac = &wdc.sc_atac;
-	ch.ch_queue = ata_queue_alloc(1);
 	wdc.regs = wdr;
 
 	/* default reset method */
@@ -493,7 +492,6 @@ wdcprobe(struct wdc_regs *wdr)
 
 	rv = wdcprobe1(&ch, 1);
 
-	ata_queue_free(ch.ch_queue);
 	ata_channel_destroy(&ch);
 
 	return rv;

Index: src/sys/dev/ic/wdc_upc.c
diff -u src/sys/dev/ic/wdc_upc.c:1.30 src/sys/dev/ic/wdc_upc.c:1.31
--- src/sys/dev/ic/wdc_upc.c:1.30	Sat Oct  7 19:52:11 2017
+++ src/sys/dev/ic/wdc_upc.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: wdc_upc.c,v 1.30 2017/10/07 19:52:11 jdolecek Exp $ */
+/* $NetBSD: wdc_upc.c,v 1.31 2017/10/20 07:06:07 jdolecek Exp $ */
 /*-
  * Copyright (c) 2000 Ben Harris
  * All rights reserved.
@@ -28,7 +28,7 @@
 /* This file is part of NetBSD/arm26 -- a port of NetBSD to ARM2/3 machines. */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_upc.c,v 1.30 2017/10/07 19:52:11 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_upc.c,v 1.31 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -87,7 +87,6 @@ wdc_upc_attach(device_t parent, device_t
 	wdr->ctl_ioh = ua->ua_ioh2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdc.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
 	sc->sc_wdc.wdc_maxdrives = 2;
 	for (i = 0; i < WDC_NREG; i++) {
 		if (bus_space_subregion(ua->ua_iot, ua->ua_ioh, i,

Index: src/sys/dev/isa/wdc_isa.c
diff -u src/sys/dev/isa/wdc_isa.c:1.60 src/sys/dev/isa/wdc_isa.c:1.61
--- src/sys/dev/isa/wdc_isa.c:1.60	Sat Oct  7 16:05:32 2017
+++ src/sys/dev/isa/wdc_isa.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_isa.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $ */
+/*	$NetBSD: wdc_isa.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_isa.c,v 1.60 2017/10/07 16:05:32 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_isa.c,v 1.61 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -219,7 +219,7 @@ wdc_isa_attach(device_t parent, device_t
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	aprint_normal("\n");

Index: src/sys/dev/isapnp/wdc_isapnp.c
diff -u src/sys/dev/isapnp/wdc_isapnp.c:1.43 src/sys/dev/isapnp/wdc_isapnp.c:1.44
--- src/sys/dev/isapnp/wdc_isapnp.c:1.43	Sat Oct  7 20:02:07 2017
+++ src/sys/dev/isapnp/wdc_isapnp.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_isapnp.c,v 1.43 2017/10/07 20:02:07 jdolecek Exp $	*/
+/*	$NetBSD: wdc_isapnp.c,v 1.44 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_isapnp.c,v 1.43 2017/10/07 20:02:07 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_isapnp.c,v 1.44 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -158,7 +158,7 @@ wdc_isapnp_attach(device_t parent, devic
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	wdcattach(&sc->ata_channel);

Index: src/sys/dev/ofisa/wdc_ofisa.c
diff -u src/sys/dev/ofisa/wdc_ofisa.c:1.35 src/sys/dev/ofisa/wdc_ofisa.c:1.36
--- src/sys/dev/ofisa/wdc_ofisa.c:1.35	Tue Oct 10 05:35:15 2017
+++ src/sys/dev/ofisa/wdc_ofisa.c	Fri Oct 20 07:06:07 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_ofisa.c,v 1.35 2017/10/10 05:35:15 jdolecek Exp $	*/
+/*	$NetBSD: wdc_ofisa.c,v 1.36 2017/10/20 07:06:07 jdolecek Exp $	*/
 
 /*
  * Copyright 1997, 1998
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_ofisa.c,v 1.35 2017/10/10 05:35:15 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_ofisa.c,v 1.36 2017/10/20 07:06:07 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -160,7 +160,7 @@ wdc_ofisa_attach(device_t parent, device
 	sc->sc_wdcdev.wdc_maxdrives = 2;
 	sc->sc_channel.ch_channel = 0;
 	sc->sc_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->sc_channel.ch_queue = ata_queue_alloc(1);
+
 	wdc_init_shadow_regs(wdr);
 
 	wdcattach(&sc->sc_channel);

Index: src/sys/dev/pci/artsata.c
diff -u src/sys/dev/pci/artsata.c:1.27 src/sys/dev/pci/artsata.c:1.28
--- src/sys/dev/pci/artsata.c:1.27	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pci/artsata.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: artsata.c,v 1.27 2017/10/07 16:05:33 jdolecek Exp $	*/
+/*	$NetBSD: artsata.c,v 1.28 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.27 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: artsata.c,v 1.28 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include "opt_pciide.h"
 
@@ -231,13 +231,7 @@ artisea_chansetup(struct pciide_softc *s
 	cp->name = PCIIDE_CHANNEL_NAME(channel);
 	cp->ata_channel.ch_channel = channel;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s %s channel: "
-		    "can't allocate memory for command queue",
-		device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name);
-		return 0;
-	}
+
 	return 1;
 }
 

Index: src/sys/dev/pci/cmdide.c
diff -u src/sys/dev/pci/cmdide.c:1.40 src/sys/dev/pci/cmdide.c:1.41
--- src/sys/dev/pci/cmdide.c:1.40	Thu Oct 19 20:11:38 2017
+++ src/sys/dev/pci/cmdide.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: cmdide.c,v 1.40 2017/10/19 20:11:38 jdolecek Exp $	*/
+/*	$NetBSD: cmdide.c,v 1.41 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.40 2017/10/19 20:11:38 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cmdide.c,v 1.41 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -154,14 +154,9 @@ cmd_channel_map(const struct pci_attach_
 		cp->ata_channel.ch_queue =
 		    sc->pciide_channels[0].ata_channel.ch_queue;
 	} else {
+		/* XXX */
 		cp->ata_channel.ch_queue = ata_queue_alloc(1);
 	}
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s %s channel: "
-		    "can't allocate memory for command queue",
-		    device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name);
-		    return;
-	}
 
 	aprint_normal_dev(sc->sc_wdcdev.sc_atac.atac_dev,
 	    "%s channel %s to %s mode%s\n", cp->name,
@@ -510,14 +505,6 @@ cmd680_channel_map(const struct pci_atta
 	cp->ata_channel.ch_channel = channel;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
 
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s %s channel: "
-		    "can't allocate memory for command queue",
-		    device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name);
-		    return;
-	}
-
 	/* XXX */
 	reg = 0xa2 + channel * 16;
 	for (i = 0; i < sizeof(init_val); i++)

Index: src/sys/dev/pci/cypide.c
diff -u src/sys/dev/pci/cypide.c:1.31 src/sys/dev/pci/cypide.c:1.32
--- src/sys/dev/pci/cypide.c:1.31	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pci/cypide.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: cypide.c,v 1.31 2017/10/07 16:05:33 jdolecek Exp $	*/
+/*	$NetBSD: cypide.c,v 1.32 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.31 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cypide.c,v 1.32 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -148,13 +148,7 @@ cy693_chip_map(struct pciide_softc *sc, 
 	cp->name = PCIIDE_CHANNEL_NAME(0);
 	cp->ata_channel.ch_channel = 0;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s primary channel: "
-		    "can't allocate memory for command queue",
-		    device_xname(sc->sc_wdcdev.sc_atac.atac_dev));
-		return;
-	}
+
 	aprint_normal_dev(sc->sc_wdcdev.sc_atac.atac_dev,
 	    "primary channel %s to ",
 	    (interface & PCIIDE_INTERFACE_SETTABLE(0)) ?

Index: src/sys/dev/pci/pciide_common.c
diff -u src/sys/dev/pci/pciide_common.c:1.64 src/sys/dev/pci/pciide_common.c:1.65
--- src/sys/dev/pci/pciide_common.c:1.64	Tue Oct 17 18:52:50 2017
+++ src/sys/dev/pci/pciide_common.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pciide_common.c,v 1.64 2017/10/17 18:52:50 jdolecek Exp $	*/
+/*	$NetBSD: pciide_common.c,v 1.65 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 
 /*
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.64 2017/10/17 18:52:50 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pciide_common.c,v 1.65 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 
@@ -208,9 +208,6 @@ pciide_common_detach(struct pciide_softc
 			pciide_dma_table_teardown(sc, channel, drive);
 #endif
 		}
-
-		ata_queue_free(cp->ata_channel.ch_queue);
-		cp->ata_channel.atabus = NULL;
 	}
 
 #if NATA_DMA
@@ -877,13 +874,7 @@ pciide_chansetup(struct pciide_softc *sc
 	cp->name = PCIIDE_CHANNEL_NAME(channel);
 	cp->ata_channel.ch_channel = channel;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s %s channel: "
-		    "can't allocate memory for command queue",
-		device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name);
-		return 0;
-	}
+
 	aprint_verbose_dev(sc->sc_wdcdev.sc_atac.atac_dev,
 	    "%s channel %s to %s mode\n", cp->name,
 	    (interface & PCIIDE_INTERFACE_SETTABLE(channel)) ?

Index: src/sys/dev/pci/pdcsata.c
diff -u src/sys/dev/pci/pdcsata.c:1.28 src/sys/dev/pci/pdcsata.c:1.29
--- src/sys/dev/pci/pdcsata.c:1.28	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pci/pdcsata.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: pdcsata.c,v 1.28 2017/10/07 16:05:33 jdolecek Exp $	*/
+/*	$NetBSD: pdcsata.c,v 1.29 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 2004, Manuel Bouyer.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.28 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pdcsata.c,v 1.29 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -374,14 +374,7 @@ pdcsata_chip_map(struct pciide_softc *sc
 		cp->name = NULL;
 		cp->ata_channel.ch_channel = channel;
 		cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-		cp->ata_channel.ch_queue = ata_queue_alloc(1);
-		if (cp->ata_channel.ch_queue == NULL) {
-			aprint_error("%s channel %d: "
-			    "can't allocate memory for command queue\n",
-			    device_xname(sc->sc_wdcdev.sc_atac.atac_dev),
-			    channel);
-			goto next_channel;
-		}
+
 		wdc_cp = &cp->ata_channel;
 		wdr = CHAN_TO_WDC_REGS(wdc_cp);
 

Index: src/sys/dev/pci/satalink.c
diff -u src/sys/dev/pci/satalink.c:1.54 src/sys/dev/pci/satalink.c:1.55
--- src/sys/dev/pci/satalink.c:1.54	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pci/satalink.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: satalink.c,v 1.54 2017/10/07 16:05:33 jdolecek Exp $	*/
+/*	$NetBSD: satalink.c,v 1.55 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: satalink.c,v 1.54 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: satalink.c,v 1.55 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -600,13 +600,7 @@ sii3114_chansetup(struct pciide_softc *s
 	cp->name = channel_names[channel];
 	cp->ata_channel.ch_channel = channel;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s %s channel: "
-		    "can't allocate memory for command queue",
-		    device_xname(sc->sc_wdcdev.sc_atac.atac_dev), cp->name);
-		return (0);
-	}
+
 	return (1);
 }
 

Index: src/sys/dev/pci/viaide.c
diff -u src/sys/dev/pci/viaide.c:1.85 src/sys/dev/pci/viaide.c:1.86
--- src/sys/dev/pci/viaide.c:1.85	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pci/viaide.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: viaide.c,v 1.85 2017/10/07 16:05:33 jdolecek Exp $	*/
+/*	$NetBSD: viaide.c,v 1.86 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.85 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.86 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1070,13 +1070,7 @@ via_vt6421_chansetup(struct pciide_softc
 
 	cp->ata_channel.ch_channel = channel;
 	cp->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	cp->ata_channel.ch_queue = ata_queue_alloc(1);
-	if (cp->ata_channel.ch_queue == NULL) {
-		aprint_error("%s channel %d: "
-		    "can't allocate memory for command queue",
-		    device_xname(sc->sc_wdcdev.sc_atac.atac_dev), channel);
-		return 0;
-	}
+
 	return 1;
 }
 

Index: src/sys/dev/pcmcia/wdc_pcmcia.c
diff -u src/sys/dev/pcmcia/wdc_pcmcia.c:1.125 src/sys/dev/pcmcia/wdc_pcmcia.c:1.126
--- src/sys/dev/pcmcia/wdc_pcmcia.c:1.125	Sat Oct  7 16:05:33 2017
+++ src/sys/dev/pcmcia/wdc_pcmcia.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_pcmcia.c,v 1.125 2017/10/07 16:05:33 jdolecek Exp $ */
+/*	$NetBSD: wdc_pcmcia.c,v 1.126 2017/10/20 07:06:08 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.125 2017/10/07 16:05:33 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.126 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -295,7 +295,7 @@ wdc_pcmcia_attach(device_t parent, devic
 	sc->sc_wdcdev.sc_atac.atac_nchannels = 1;
 	sc->ata_channel.ch_channel = 0;
 	sc->ata_channel.ch_atac = &sc->sc_wdcdev.sc_atac;
-	sc->ata_channel.ch_queue = ata_queue_alloc(1);
+
 	wdcp = pcmcia_product_lookup(pa, wdc_pcmcia_products,
 	    wdc_pcmcia_nproducts, sizeof(wdc_pcmcia_products[0]), NULL);
 	sc->sc_wdcdev.wdc_maxdrives = wdcp ? wdcp->wdc_ndrive : 2;

Index: src/sys/dev/podulebus/dtide.c
diff -u src/sys/dev/podulebus/dtide.c:1.29 src/sys/dev/podulebus/dtide.c:1.30
--- src/sys/dev/podulebus/dtide.c:1.29	Sat Oct  7 19:52:11 2017
+++ src/sys/dev/podulebus/dtide.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: dtide.c,v 1.29 2017/10/07 19:52:11 jdolecek Exp $ */
+/* $NetBSD: dtide.c,v 1.30 2017/10/20 07:06:08 jdolecek Exp $ */
 
 /*-
  * Copyright (c) 2000, 2001 Ben Harris
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dtide.c,v 1.29 2017/10/07 19:52:11 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dtide.c,v 1.30 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 
@@ -105,7 +105,6 @@ dtide_attach(device_t parent, device_t s
 		ch->ch_atac = &sc->sc_wdc.sc_atac;
 		wdr->cmd_iot = bst;
 		wdr->ctl_iot = bst;
-		ch->ch_queue = ata_queue_alloc(1);
 		bus_space_map(pa->pa_fast_t,
 		    pa->pa_fast_base + dtide_cmdoffsets[i], 0, 8,
 		    &wdr->cmd_baseioh);

Index: src/sys/dev/podulebus/hcide.c
diff -u src/sys/dev/podulebus/hcide.c:1.26 src/sys/dev/podulebus/hcide.c:1.27
--- src/sys/dev/podulebus/hcide.c:1.26	Sat Oct  7 19:52:11 2017
+++ src/sys/dev/podulebus/hcide.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: hcide.c,v 1.26 2017/10/07 19:52:11 jdolecek Exp $	*/
+/*	$NetBSD: hcide.c,v 1.27 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2001 Ben Harris
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hcide.c,v 1.26 2017/10/07 19:52:11 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hcide.c,v 1.27 2017/10/20 07:06:08 jdolecek Exp $");
 
 #include <sys/param.h>
 
@@ -100,7 +100,6 @@ hcide_attach(device_t parent, device_t s
 		ch->ch_atac = &sc->sc_wdc.sc_atac;
 		wdr->cmd_iot = pa->pa_mod_t;
 		wdr->ctl_iot = pa->pa_mod_t;
-		ch->ch_queue = ata_queue_alloc(1);
 		bus_space_map(pa->pa_fast_t,
 		    pa->pa_fast_base + hcide_cmdoffsets[i], 0, 8,
 		    &wdr->cmd_baseioh);

Index: src/sys/dev/usb/umass_isdata.c
diff -u src/sys/dev/usb/umass_isdata.c:1.35 src/sys/dev/usb/umass_isdata.c:1.36
--- src/sys/dev/usb/umass_isdata.c:1.35	Tue Oct 10 16:44:24 2017
+++ src/sys/dev/usb/umass_isdata.c	Fri Oct 20 07:06:08 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: umass_isdata.c,v 1.35 2017/10/10 16:44:24 jdolecek Exp $	*/
+/*	$NetBSD: umass_isdata.c,v 1.36 2017/10/20 07:06:08 jdolecek Exp $	*/
 
 /*
  * TODO:
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.35 2017/10/10 16:44:24 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.36 2017/10/20 07:06:08 jdolecek Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -223,7 +223,6 @@ umass_isdata_attach(struct umass_softc *
 	/* Fake ATA channel so wd(4) ata_{get,free}_xfer() work */
 	ata_channel_init(&scbus->sc_channel);
 	scbus->sc_channel.atabus = (device_t)scbus;
-	scbus->sc_channel.ch_queue = ata_queue_alloc(1);
 
 	scbus->sc_drv_data.drive_type = ATA_DRIVET_ATA;
 	scbus->sc_drv_data.chnl_softc = &scbus->sc_channel;
@@ -238,9 +237,6 @@ umass_isdata_detach(struct umass_softc *
 {
 	struct uisdata_softc *scbus = (struct uisdata_softc *)sc->bus;
 
-	ata_queue_free(scbus->sc_channel.ch_queue);
-	scbus->sc_channel.ch_queue = NULL;
-
 	ata_channel_destroy(&scbus->sc_channel);
 }
 

Reply via email to