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); }