Index: mscp/mscp_subr.c =================================================================== RCS file: /cvs/src/sys/arch/vax/mscp/mscp_subr.c,v retrieving revision 1.12 diff -u -p -r1.12 mscp_subr.c --- mscp/mscp_subr.c 5 Dec 2012 23:20:15 -0000 1.12 +++ mscp/mscp_subr.c 4 Jul 2015 07:49:57 -0000 @@ -159,7 +159,7 @@ mscp_attach(parent, self, aux) mi->mi_rsp.mri_size = NRSP; mi->mi_rsp.mri_desc = mi->mi_uda->mp_ca.ca_rspdsc; mi->mi_rsp.mri_ring = mi->mi_uda->mp_rsp; - SIMPLEQ_INIT(&mi->mi_resq); + bufq_init(&mi->mi_bufq, BUFQ_FIFO); if (mscp_init(mi)) { printf("%s: can't init, controller hung\n", @@ -448,7 +448,7 @@ mscp_intr(mi) /* * If there are any not-yet-handled request, try them now. */ - if (SIMPLEQ_FIRST(&mi->mi_resq)) + if (bufq_peek(&mi->mi_bufq)) mscp_kickaway(mi); } @@ -482,10 +482,7 @@ mscp_strategy(bp, usc) struct mscp_softc *mi = (void *)usc; int s = spl6(); -/* SIMPLEQ_INSERT_TAIL(&mi->mi_resq, bp, xxx) */ - bp->b_actf = NULL; - *mi->mi_resq.sqh_last = bp; - mi->mi_resq.sqh_last = &bp->b_actf; + bufq_queue(&mi->mi_bufq, bp); mscp_kickaway(mi); splx(s); } @@ -499,7 +496,7 @@ mscp_kickaway(mi) struct mscp *mp; int next; - while ((bp = SIMPLEQ_FIRST(&mi->mi_resq))) { + while ((bp = bufq_dequeue(&mi->mi_bufq))) { /* * Ok; we are ready to try to start a xfer. Get a MSCP packet * and try to start... @@ -512,6 +509,7 @@ mscp_kickaway(mi) * By some (strange) reason we didn't get a MSCP packet. * Just return and wait for free packets. */ + bufq_requeue(&mi->mi_bufq, bp); return; } @@ -532,8 +530,6 @@ mscp_kickaway(mi) bp->b_resid = next; (*mi->mi_me->me_fillin)(bp, mp); (*mi->mi_mc->mc_go)(mi->mi_dev.dv_parent, &mi->mi_xi[next]); - if ((mi->mi_resq.sqh_first = bp->b_actf) == NULL) - mi->mi_resq.sqh_last = &mi->mi_resq.sqh_first; #if 0 mi->mi_w = bp->b_actf; #endif Index: mscp/mscpvar.h =================================================================== RCS file: /cvs/src/sys/arch/vax/mscp/mscpvar.h,v retrieving revision 1.7 diff -u -p -r1.7 mscpvar.h --- mscp/mscpvar.h 1 Nov 2011 20:50:11 -0000 1.7 +++ mscp/mscpvar.h 4 Jul 2015 07:49:57 -0000 @@ -188,7 +188,7 @@ struct mscp_softc { bus_space_handle_t mi_iph; /* initialisation and polling */ bus_space_handle_t mi_sah; /* status & address (read part) */ bus_space_handle_t mi_swh; /* status & address (write part) */ - SIMPLEQ_HEAD(, buf) mi_resq; /* While waiting for packets */ + struct bufq mi_bufq; /* While waiting for packets */ }; /* mi_flags */