Module Name:    src
Committed By:   jdolecek
Date:           Wed Jun 21 19:21:25 UTC 2017

Modified Files:
        src/sys/dev/ata [jdolecek-ncq]: atavar.h
        src/sys/dev/ic [jdolecek-ncq]: wdc.c
        src/sys/dev/isa [jdolecek-ncq]: wdc_isa.c
        src/sys/dev/pcmcia [jdolecek-ncq]: wdc_pcmcia.c

Log Message:
actually remove the KASSERT() for queue_active in wdc.c as it's superfluous,
and make struct ata_queue completly opaque to attachment code; fix two other
places which were not converted to ata_queue_alloc() which were surfaced
by this change


To generate a diff of this commit:
cvs rdiff -u -r1.92.8.11 -r1.92.8.12 src/sys/dev/ata/atavar.h
cvs rdiff -u -r1.283.2.7 -r1.283.2.8 src/sys/dev/ic/wdc.c
cvs rdiff -u -r1.59 -r1.59.28.1 src/sys/dev/isa/wdc_isa.c
cvs rdiff -u -r1.124 -r1.124.18.1 src/sys/dev/pcmcia/wdc_pcmcia.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/dev/ata/atavar.h
diff -u src/sys/dev/ata/atavar.h:1.92.8.11 src/sys/dev/ata/atavar.h:1.92.8.12
--- src/sys/dev/ata/atavar.h:1.92.8.11	Tue Jun 20 20:58:22 2017
+++ src/sys/dev/ata/atavar.h	Wed Jun 21 19:21:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: atavar.h,v 1.92.8.11 2017/06/20 20:58:22 jdolecek Exp $	*/
+/*	$NetBSD: atavar.h,v 1.92.8.12 2017/06/21 19:21:25 jdolecek Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.
@@ -191,12 +191,14 @@ struct ata_xfer {
 #define ATA_MAX_OPENINGS	31
 
 /* Per-channel queue of ata_xfers */
+#ifndef ATABUS_PRIVATE
+struct ata_queue;
+#else
 struct ata_queue {
 	int8_t queue_flags;		/* flags for this queue */
 #define QF_IDLE_WAIT	0x01    	/* someone wants the controller idle */
 #define QF_NEED_XFER	0x02    	/* someone wants xfer */
 	int8_t queue_active; 		/* number of active transfers */
-#ifdef ATABUS_PRIVATE
 	int8_t queue_openings; 			/* max number of active xfers */
 	TAILQ_HEAD(, ata_xfer) queue_xfer; 	/* queue of pending commands */
 	int queue_freeze; 			/* freeze count for the queue */
@@ -205,8 +207,8 @@ struct ata_queue {
 	uint32_t active_xfers_used;		/* mask of active commands */
 	uint32_t queue_xfers_avail;		/* available xfers mask */
 	struct ata_xfer queue_xfers[0];		/* xfers */
-#endif
 };
+#endif
 
 /* ATA bus instance state information. */
 struct atabus_softc {

Index: src/sys/dev/ic/wdc.c
diff -u src/sys/dev/ic/wdc.c:1.283.2.7 src/sys/dev/ic/wdc.c:1.283.2.8
--- src/sys/dev/ic/wdc.c:1.283.2.7	Tue Jun 20 20:58:22 2017
+++ src/sys/dev/ic/wdc.c	Wed Jun 21 19:21:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc.c,v 1.283.2.7 2017/06/20 20:58:22 jdolecek Exp $ */
+/*	$NetBSD: wdc.c,v 1.283.2.8 2017/06/21 19:21:25 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.283.2.7 2017/06/20 20:58:22 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.283.2.8 2017/06/21 19:21:25 jdolecek Exp $");
 
 #include "opt_ata.h"
 #include "opt_wdc.h"
@@ -873,7 +873,6 @@ wdcintr(void *arg)
 	}
 
 	ATADEBUG_PRINT(("wdcintr\n"), DEBUG_INTR);
-	KASSERT(chp->ch_queue->queue_active == 1);
 	xfer = ata_queue_get_active_xfer(chp->ch_queue);
 	KASSERT(xfer != NULL);
 #ifdef DIAGNOSTIC

Index: src/sys/dev/isa/wdc_isa.c
diff -u src/sys/dev/isa/wdc_isa.c:1.59 src/sys/dev/isa/wdc_isa.c:1.59.28.1
--- src/sys/dev/isa/wdc_isa.c:1.59	Tue Jul 31 15:50:35 2012
+++ src/sys/dev/isa/wdc_isa.c	Wed Jun 21 19:21:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_isa.c,v 1.59 2012/07/31 15:50:35 bouyer Exp $ */
+/*	$NetBSD: wdc_isa.c,v 1.59.28.1 2017/06/21 19:21:25 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.59 2012/07/31 15:50:35 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_isa.c,v 1.59.28.1 2017/06/21 19:21:25 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -60,7 +60,6 @@ struct wdc_isa_softc {
 	struct	wdc_softc sc_wdcdev;
 	struct	ata_channel *wdc_chanlist[1];
 	struct	ata_channel ata_channel;
-	struct	ata_queue wdc_chqueue;
 	struct	wdc_regs wdc_regs;
 	isa_chipset_tag_t sc_ic;
 	void	*sc_ih;
@@ -227,7 +226,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 = &sc->wdc_chqueue;
+	sc->ata_channel.ch_queue = ata_queue_alloc(1);
 	wdc_init_shadow_regs(&sc->ata_channel);
 
 	aprint_normal("\n");

Index: src/sys/dev/pcmcia/wdc_pcmcia.c
diff -u src/sys/dev/pcmcia/wdc_pcmcia.c:1.124 src/sys/dev/pcmcia/wdc_pcmcia.c:1.124.18.1
--- src/sys/dev/pcmcia/wdc_pcmcia.c:1.124	Sat Oct 12 16:49:01 2013
+++ src/sys/dev/pcmcia/wdc_pcmcia.c	Wed Jun 21 19:21:25 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: wdc_pcmcia.c,v 1.124 2013/10/12 16:49:01 christos Exp $ */
+/*	$NetBSD: wdc_pcmcia.c,v 1.124.18.1 2017/06/21 19:21:25 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.124 2013/10/12 16:49:01 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc_pcmcia.c,v 1.124.18.1 2017/06/21 19:21:25 jdolecek Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -65,7 +65,6 @@ struct wdc_pcmcia_softc {
 	struct wdc_softc sc_wdcdev;
 	struct ata_channel *wdc_chanlist[1];
 	struct ata_channel ata_channel;
-	struct ata_queue wdc_chqueue;
 	struct wdc_regs wdc_regs;
 
 	struct pcmcia_function *sc_pf;
@@ -296,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 = &sc->wdc_chqueue;
+	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;

Reply via email to