From 67c3123be70092a949e63d21225c955364fdbe1d Mon Sep 17 00:00:00 2001 From: krw Date: Thu, 16 Jul 2020 14:44:55 +0000 Subject: Access scsibus_softc info (luns, adapter, adapter_target, adapter_softc, adapter_buswidth) via link->bus rather than using copies currently residing in the link. --- sys/scsi/cd.c | 6 +++--- sys/scsi/mpath.c | 17 +++++++++-------- sys/scsi/scsi_base.c | 4 ++-- sys/scsi/scsi_ioctl.c | 6 +++--- sys/scsi/scsiconf.c | 10 +++++----- sys/scsi/sd.c | 6 +++--- sys/scsi/st.c | 6 +++--- 7 files changed, 28 insertions(+), 27 deletions(-) (limited to 'sys/scsi') diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c index d3b5b33775e..9e67e15c8e2 100644 --- a/sys/scsi/cd.c +++ b/sys/scsi/cd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cd.c,v 1.246 2020/06/30 18:43:36 krw Exp $ */ +/* $OpenBSD: cd.c,v 1.247 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: cd.c,v 1.100 1997/04/02 02:29:30 mycroft Exp $ */ /* @@ -696,8 +696,8 @@ cdminphys(struct buf *bp) bp->b_bcount = max; } - if (link->adapter->dev_minphys != NULL) - (*link->adapter->dev_minphys)(bp, link); + if (link->bus->sb_adapter->dev_minphys != NULL) + (*link->bus->sb_adapter->dev_minphys)(bp, link); else minphys(bp); diff --git a/sys/scsi/mpath.c b/sys/scsi/mpath.c index 8563f06d65d..da37d4688a1 100644 --- a/sys/scsi/mpath.c +++ b/sys/scsi/mpath.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mpath.c,v 1.49 2020/06/27 14:29:45 krw Exp $ */ +/* $OpenBSD: mpath.c,v 1.50 2020/07/16 14:44:55 krw Exp $ */ /* * Copyright (c) 2009 David Gwynne @@ -142,7 +142,7 @@ mpath_xs_stuffup(struct scsi_xfer *xs) int mpath_probe(struct scsi_link *link) { - struct mpath_softc *sc = link->adapter_softc; + struct mpath_softc *sc = link->bus->sb_adapter_softc; struct mpath_dev *d = sc->sc_devs[link->target]; if (link->lun != 0 || d == NULL) @@ -179,7 +179,7 @@ void mpath_cmd(struct scsi_xfer *xs) { struct scsi_link *link = xs->sc_link; - struct mpath_softc *sc = link->adapter_softc; + struct mpath_softc *sc = link->bus->sb_adapter_softc; struct mpath_dev *d = sc->sc_devs[link->target]; struct mpath_path *p; struct scsi_xfer *mxs; @@ -283,7 +283,7 @@ mpath_done(struct scsi_xfer *mxs) { struct scsi_xfer *xs = mxs->cookie; struct scsi_link *link = xs->sc_link; - struct mpath_softc *sc = link->adapter_softc; + struct mpath_softc *sc = link->bus->sb_adapter_softc; struct mpath_dev *d = sc->sc_devs[link->target]; struct mpath_path *p; @@ -394,7 +394,7 @@ mpath_path_status(struct mpath_path *p, int status) void mpath_minphys(struct buf *bp, struct scsi_link *link) { - struct mpath_softc *sc = link->adapter_softc; + struct mpath_softc *sc = link->bus->sb_adapter_softc; struct mpath_dev *d = sc->sc_devs[link->target]; struct mpath_group *g; struct mpath_path *p; @@ -408,8 +408,9 @@ mpath_minphys(struct buf *bp, struct scsi_link *link) TAILQ_FOREACH(g, &d->d_groups, g_entry) { TAILQ_FOREACH(p, &g->g_paths, p_entry) { /* XXX crossing layers with mutex held */ - if (p->p_link->adapter->dev_minphys != NULL) - p->p_link->adapter->dev_minphys(bp, p->p_link); + if (p->p_link->bus->sb_adapter->dev_minphys != NULL) + p->p_link->bus->sb_adapter->dev_minphys(bp, + p->p_link); } } mtx_leave(&d->d_mtx); @@ -427,7 +428,7 @@ mpath_path_probe(struct scsi_link *link) if (ISSET(link->flags, SDEV_UMASS)) return (EINVAL); - if (mpath == link->adapter_softc) + if (mpath == link->bus->sb_adapter_softc) return (ENXIO); return (0); diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c index 07be9de8a29..bca409292ef 100644 --- a/sys/scsi/scsi_base.c +++ b/sys/scsi/scsi_base.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsi_base.c,v 1.265 2020/03/12 19:21:01 krw Exp $ */ +/* $OpenBSD: scsi_base.c,v 1.266 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */ /* @@ -1436,7 +1436,7 @@ scsi_xs_exec(struct scsi_xfer *xs) /* The adapter's scsi_cmd() is responsible for calling scsi_done(). */ KERNEL_LOCK(); - xs->sc_link->adapter->scsi_cmd(xs); + xs->sc_link->bus->sb_adapter->scsi_cmd(xs); KERNEL_UNLOCK(); } diff --git a/sys/scsi/scsi_ioctl.c b/sys/scsi/scsi_ioctl.c index b3f9ac846a5..ef5ac0c5d01 100644 --- a/sys/scsi/scsi_ioctl.c +++ b/sys/scsi/scsi_ioctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsi_ioctl.c,v 1.63 2019/12/07 15:16:24 krw Exp $ */ +/* $OpenBSD: scsi_ioctl.c,v 1.64 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: scsi_ioctl.c,v 1.23 1996/10/12 23:23:17 christos Exp $ */ /* @@ -320,8 +320,8 @@ scsi_do_ioctl(struct scsi_link *link, u_long cmd, caddr_t addr, int flag) return EPERM; break; default: - if (link->adapter->ioctl) - return (link->adapter->ioctl)(link, cmd, addr, flag); + if (link->bus->sb_adapter->ioctl) + return (link->bus->sb_adapter->ioctl)(link, cmd, addr, flag); else return ENOTTY; } diff --git a/sys/scsi/scsiconf.c b/sys/scsi/scsiconf.c index 61979548720..05f3e7f77fc 100644 --- a/sys/scsi/scsiconf.c +++ b/sys/scsi/scsiconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scsiconf.c,v 1.226 2020/07/16 12:38:43 krw Exp $ */ +/* $OpenBSD: scsiconf.c,v 1.227 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: scsiconf.c,v 1.57 1996/05/02 01:09:01 neil Exp $ */ /* @@ -333,9 +333,9 @@ scsi_get_target_luns(struct scsi_link *link0, struct scsi_lun_array *lunarray) /* Initialize dumbscan result. Just in case. */ report = NULL; - for (i = 0; i < link0->luns; i++) + for (i = 0; i < link0->bus->sb_luns; i++) lunarray->luns[i] = i; - lunarray->count = link0->luns; + lunarray->count = link0->bus->sb_luns; lunarray->dumbscan = 1; /* @@ -774,7 +774,7 @@ scsibus_printlink(struct scsi_link *link) printf("\n"); sc_print_addr(link); printf("state %u, luns %u, openings %u\n", - link->state, link->luns, link->openings); + link->state, link->bus->sb_luns, link->openings); sc_print_addr(link); printf("flags (0x%04x) ", link->flags); @@ -1046,7 +1046,7 @@ scsi_probedev(struct scsibus_softc *sb, int target, int lun, int dumbscan) * point to prevent such helpfulness before it causes confusion. */ if (lun == 0 && ISSET(link->flags, SDEV_UMASS) && - scsi_get_link(sb, target, 1) == NULL && link->luns > 1 && + scsi_get_link(sb, target, 1) == NULL && sb->sb_luns > 1 && (usbinqbuf = dma_alloc(sizeof(*usbinqbuf), M_NOWAIT)) != NULL) { link->lun = 1; diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index 19acb5e05d7..da3e0ddf2da 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sd.c,v 1.312 2020/06/30 18:43:37 krw Exp $ */ +/* $OpenBSD: sd.c,v 1.313 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */ /*- @@ -832,8 +832,8 @@ sdminphys(struct buf *bp) bp->b_bcount = max; } - if (link->adapter->dev_minphys != NULL) - (*link->adapter->dev_minphys)(bp, link); + if (link->bus->sb_adapter->dev_minphys != NULL) + (*link->bus->sb_adapter->dev_minphys)(bp, link); else minphys(bp); diff --git a/sys/scsi/st.c b/sys/scsi/st.c index b7b87273a1f..85006b04a4a 100644 --- a/sys/scsi/st.c +++ b/sys/scsi/st.c @@ -1,4 +1,4 @@ -/* $OpenBSD: st.c,v 1.178 2020/06/30 18:43:37 krw Exp $ */ +/* $OpenBSD: st.c,v 1.179 2020/07/16 14:44:55 krw Exp $ */ /* $NetBSD: st.c,v 1.71 1997/02/21 23:03:49 thorpej Exp $ */ /* @@ -1008,8 +1008,8 @@ stminphys(struct buf *bp) return; link = sc->sc_link; - if (link->adapter->dev_minphys != NULL) - (*link->adapter->dev_minphys)(bp, link); + if (link->bus->sb_adapter->dev_minphys != NULL) + (*link->bus->sb_adapter->dev_minphys)(bp, link); else minphys(bp); -- cgit v1.2.3-59-g8ed1b