Remove support for FreeBSD 4-7 from the iscsi initiator.

Also, inline/remove now empty or trivial macros. CAM has evolved enough this
code couldn't work there anyway, and the API sweeep commits made since then were
made unconditional.
This commit is contained in:
Warner Losh 2020-03-01 18:18:01 +00:00
parent 1a1b54589b
commit 6773051162
6 changed files with 6 additions and 210 deletions

View File

@ -37,10 +37,8 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/callout.h>
#if __FreeBSD_version >= 700000
#include <sys/lock.h>
#include <sys/mutex.h>
#endif
#include <sys/conf.h>
#include <sys/systm.h>
#include <sys/malloc.h>
@ -93,16 +91,12 @@ static __inline int
_scsi_encap(struct cam_sim *sim, union ccb *ccb)
{
int ret;
#if __FreeBSD_version < 700000
ret = scsi_encap(sim, ccb);
#else
isc_session_t *sp = cam_sim_softc(sim);
mtx_unlock(&sp->cam_mtx);
ret = scsi_encap(sim, ccb);
mtx_lock(&sp->cam_mtx);
#endif
return ret;
}
@ -260,11 +254,7 @@ ic_action(struct cam_sim *sim, union ccb *ccb)
ccb_h->status = CAM_REQ_INVALID;
break;
}
#if __FreeBSD_version < 700000
XPT_DONE(sp, ccb);
#else
xpt_done(ccb);
#endif
return;
}
@ -297,7 +287,6 @@ ic_destroy(isc_session_t *sp )
if(sp->cam_path != NULL) {
sdebug(2, "name=%s unit=%d",
cam_sim_name(sp->cam_sim), cam_sim_unit(sp->cam_sim));
CAM_LOCK(sp);
#if 0
xpt_async(AC_LOST_DEVICE, sp->cam_path, NULL);
#else
@ -307,7 +296,6 @@ ic_destroy(isc_session_t *sp )
xpt_bus_deregister(cam_sim_path(sp->cam_sim));
cam_sim_free(sp->cam_sim, TRUE /*free_devq*/);
CAM_UNLOCK(sp);
sdebug(2, "done");
}
}
@ -323,42 +311,28 @@ ic_init(isc_session_t *sp)
if((devq = cam_simq_alloc(256)) == NULL)
return ENOMEM;
#if __FreeBSD_version >= 700000
mtx_init(&sp->cam_mtx, "isc-cam", NULL, MTX_DEF);
#else
isp->cam_mtx = Giant;
#endif
sim = cam_sim_alloc(ic_action,
ic_poll,
"iscsi",
sp,
sp->sid, // unit
#if __FreeBSD_version >= 700000
&sp->cam_mtx,
#endif
1, // max_dev_transactions
0, // max_tagged_dev_transactions
devq);
if(sim == NULL) {
cam_simq_free(devq);
#if __FreeBSD_version >= 700000
mtx_destroy(&sp->cam_mtx);
#endif
return ENXIO;
}
CAM_LOCK(sp);
if(xpt_bus_register(sim,
#if __FreeBSD_version >= 700000
NULL,
#endif
0/*bus_number*/) != CAM_SUCCESS) {
cam_sim_free(sim, /*free_devq*/TRUE);
CAM_UNLOCK(sp);
#if __FreeBSD_version >= 700000
mtx_destroy(&sp->cam_mtx);
#endif
return ENXIO;
}
sp->cam_sim = sim;
@ -366,13 +340,9 @@ ic_init(isc_session_t *sp)
CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
xpt_bus_deregister(cam_sim_path(sp->cam_sim));
cam_sim_free(sim, /*free_devq*/TRUE);
CAM_UNLOCK(sp);
#if __FreeBSD_version >= 700000
mtx_destroy(&sp->cam_mtx);
#endif
return ENXIO;
}
CAM_UNLOCK(sp);
sdebug(1, "cam subsystem initialized");

View File

@ -514,7 +514,7 @@ proc_out(isc_session_t *sp)
if(pq->ccb) {
xdebug("back to cam");
pq->ccb->ccb_h.status |= CAM_REQUEUE_REQ; // some better error?
XPT_DONE(sp, pq->ccb);
xpt_done(sp, pq->ccb);
pdu_free(sp->isc, pq);
}
else
@ -571,17 +571,11 @@ ism_out(void *vp)
wakeup(&sp->soc);
wakeup(sp); // XXX: do we need this one?
#if __FreeBSD_version >= 700000
destroy_dev(sp->dev);
#endif
debug(3, "terminated sp=%p sp->sid=%d", sp, sp->sid);
#if __FreeBSD_version >= 800000
kproc_exit(0);
#else
kthread_exit(0);
#endif
}
#if 0
@ -712,10 +706,6 @@ ism_stop(isc_session_t *sp)
sc->nsess--;
mtx_unlock(&sc->isc_mtx);
#if __FreeBSD_version < 700000
destroy_dev(sp->dev);
#endif
mtx_destroy(&sp->rsp_mtx);
mtx_destroy(&sp->rsv_mtx);
mtx_destroy(&sp->hld_mtx);
@ -756,9 +746,5 @@ ism_start(isc_session_t *sp)
debug(4, "starting ism_proc: sp->sid=%d", sp->sid);
#if __FreeBSD_version >= 800000
return kproc_create(ism_out, sp, &sp->stp, 0, 0, "isc_out %d", sp->sid);
#else
return kthread_create(ism_out, sp, &sp->stp, 0, 0, "isc_out %d", sp->sid);
#endif
}
a}

View File

@ -338,21 +338,13 @@ so_getbhs(isc_session_t *sp)
if(error)
debug(2,
#if __FreeBSD_version > 800000
"error=%d so_error=%d uio->uio_resid=%zd iov.iov_len=%zd",
#else
"error=%d so_error=%d uio->uio_resid=%d iov.iov_len=%zd",
#endif
error,
sp->soc->so_error, uio->uio_resid, iov->iov_len);
if(!error && (uio->uio_resid > 0)) {
error = EPIPE; // was EAGAIN
debug(2,
#if __FreeBSD_version > 800000
"error=%d so_error=%d uio->uio_resid=%zd iov.iov_len=%zd so_state=%x",
#else
"error=%d so_error=%d uio->uio_resid=%d iov.iov_len=%zd so_state=%x",
#endif
error,
sp->soc->so_error, uio->uio_resid, iov->iov_len, sp->soc->so_state);
}
@ -411,11 +403,7 @@ so_recv(isc_session_t *sp, pduq_t *pq)
// XXX: this needs work! it hangs iscontrol
if(error || uio->uio_resid) {
debug(2,
#if __FreeBSD_version > 800000
"len=%d error=%d uio->uio_resid=%zd",
#else
"len=%d error=%d uio->uio_resid=%d",
#endif
len, error, uio->uio_resid);
goto out;
}
@ -648,11 +636,7 @@ isc_in(void *vp)
mtx_unlock(&sp->io_mtx);
sdebug(2, "dropped ISC_CON_RUNNING");
#if __FreeBSD_version >= 800000
kproc_exit(0);
#else
kthread_exit(0);
#endif
}
void
@ -692,10 +676,5 @@ isc_start_receiver(isc_session_t *sp)
debug_called(8);
sp->flags |= ISC_CON_RUN | ISC_LINK_UP;
#if __FreeBSD_version >= 800000
kproc_create
#else
kthread_create
#endif
(isc_in, sp, &sp->soc_proc, 0, 0, "isc_in %d", sp->sid);
kproc_create(isc_in, sp, &sp->soc_proc, 0, 0, "isc_in %d", sp->sid);
}

View File

@ -81,104 +81,6 @@ i_strdupin(char *s, size_t maxlen)
return q;
}
#if __FreeBSD_version < 800000
/*****************************************************************/
/* */
/* CRC LOOKUP TABLE */
/* ================ */
/* The following CRC lookup table was generated automagically */
/* by the Rocksoft^tm Model CRC Algorithm Table Generation */
/* Program V1.0 using the following model parameters: */
/* */
/* Width : 4 bytes. */
/* Poly : 0x1EDC6F41L */
/* Reverse : TRUE. */
/* */
/* For more information on the Rocksoft^tm Model CRC Algorithm, */
/* see the document titled "A Painless Guide to CRC Error */
/* Detection Algorithms" by Ross Williams */
/* (ross@guest.adelaide.edu.au.). This document is likely to be */
/* in the FTP archive "ftp.adelaide.edu.au/pub/rocksoft". */
/* */
/*****************************************************************/
static uint32_t crc32Table[256] = {
0x00000000L, 0xF26B8303L, 0xE13B70F7L, 0x1350F3F4L,
0xC79A971FL, 0x35F1141CL, 0x26A1E7E8L, 0xD4CA64EBL,
0x8AD958CFL, 0x78B2DBCCL, 0x6BE22838L, 0x9989AB3BL,
0x4D43CFD0L, 0xBF284CD3L, 0xAC78BF27L, 0x5E133C24L,
0x105EC76FL, 0xE235446CL, 0xF165B798L, 0x030E349BL,
0xD7C45070L, 0x25AFD373L, 0x36FF2087L, 0xC494A384L,
0x9A879FA0L, 0x68EC1CA3L, 0x7BBCEF57L, 0x89D76C54L,
0x5D1D08BFL, 0xAF768BBCL, 0xBC267848L, 0x4E4DFB4BL,
0x20BD8EDEL, 0xD2D60DDDL, 0xC186FE29L, 0x33ED7D2AL,
0xE72719C1L, 0x154C9AC2L, 0x061C6936L, 0xF477EA35L,
0xAA64D611L, 0x580F5512L, 0x4B5FA6E6L, 0xB93425E5L,
0x6DFE410EL, 0x9F95C20DL, 0x8CC531F9L, 0x7EAEB2FAL,
0x30E349B1L, 0xC288CAB2L, 0xD1D83946L, 0x23B3BA45L,
0xF779DEAEL, 0x05125DADL, 0x1642AE59L, 0xE4292D5AL,
0xBA3A117EL, 0x4851927DL, 0x5B016189L, 0xA96AE28AL,
0x7DA08661L, 0x8FCB0562L, 0x9C9BF696L, 0x6EF07595L,
0x417B1DBCL, 0xB3109EBFL, 0xA0406D4BL, 0x522BEE48L,
0x86E18AA3L, 0x748A09A0L, 0x67DAFA54L, 0x95B17957L,
0xCBA24573L, 0x39C9C670L, 0x2A993584L, 0xD8F2B687L,
0x0C38D26CL, 0xFE53516FL, 0xED03A29BL, 0x1F682198L,
0x5125DAD3L, 0xA34E59D0L, 0xB01EAA24L, 0x42752927L,
0x96BF4DCCL, 0x64D4CECFL, 0x77843D3BL, 0x85EFBE38L,
0xDBFC821CL, 0x2997011FL, 0x3AC7F2EBL, 0xC8AC71E8L,
0x1C661503L, 0xEE0D9600L, 0xFD5D65F4L, 0x0F36E6F7L,
0x61C69362L, 0x93AD1061L, 0x80FDE395L, 0x72966096L,
0xA65C047DL, 0x5437877EL, 0x4767748AL, 0xB50CF789L,
0xEB1FCBADL, 0x197448AEL, 0x0A24BB5AL, 0xF84F3859L,
0x2C855CB2L, 0xDEEEDFB1L, 0xCDBE2C45L, 0x3FD5AF46L,
0x7198540DL, 0x83F3D70EL, 0x90A324FAL, 0x62C8A7F9L,
0xB602C312L, 0x44694011L, 0x5739B3E5L, 0xA55230E6L,
0xFB410CC2L, 0x092A8FC1L, 0x1A7A7C35L, 0xE811FF36L,
0x3CDB9BDDL, 0xCEB018DEL, 0xDDE0EB2AL, 0x2F8B6829L,
0x82F63B78L, 0x709DB87BL, 0x63CD4B8FL, 0x91A6C88CL,
0x456CAC67L, 0xB7072F64L, 0xA457DC90L, 0x563C5F93L,
0x082F63B7L, 0xFA44E0B4L, 0xE9141340L, 0x1B7F9043L,
0xCFB5F4A8L, 0x3DDE77ABL, 0x2E8E845FL, 0xDCE5075CL,
0x92A8FC17L, 0x60C37F14L, 0x73938CE0L, 0x81F80FE3L,
0x55326B08L, 0xA759E80BL, 0xB4091BFFL, 0x466298FCL,
0x1871A4D8L, 0xEA1A27DBL, 0xF94AD42FL, 0x0B21572CL,
0xDFEB33C7L, 0x2D80B0C4L, 0x3ED04330L, 0xCCBBC033L,
0xA24BB5A6L, 0x502036A5L, 0x4370C551L, 0xB11B4652L,
0x65D122B9L, 0x97BAA1BAL, 0x84EA524EL, 0x7681D14DL,
0x2892ED69L, 0xDAF96E6AL, 0xC9A99D9EL, 0x3BC21E9DL,
0xEF087A76L, 0x1D63F975L, 0x0E330A81L, 0xFC588982L,
0xB21572C9L, 0x407EF1CAL, 0x532E023EL, 0xA145813DL,
0x758FE5D6L, 0x87E466D5L, 0x94B49521L, 0x66DF1622L,
0x38CC2A06L, 0xCAA7A905L, 0xD9F75AF1L, 0x2B9CD9F2L,
0xFF56BD19L, 0x0D3D3E1AL, 0x1E6DCDEEL, 0xEC064EEDL,
0xC38D26C4L, 0x31E6A5C7L, 0x22B65633L, 0xD0DDD530L,
0x0417B1DBL, 0xF67C32D8L, 0xE52CC12CL, 0x1747422FL,
0x49547E0BL, 0xBB3FFD08L, 0xA86F0EFCL, 0x5A048DFFL,
0x8ECEE914L, 0x7CA56A17L, 0x6FF599E3L, 0x9D9E1AE0L,
0xD3D3E1ABL, 0x21B862A8L, 0x32E8915CL, 0xC083125FL,
0x144976B4L, 0xE622F5B7L, 0xF5720643L, 0x07198540L,
0x590AB964L, 0xAB613A67L, 0xB831C993L, 0x4A5A4A90L,
0x9E902E7BL, 0x6CFBAD78L, 0x7FAB5E8CL, 0x8DC0DD8FL,
0xE330A81AL, 0x115B2B19L, 0x020BD8EDL, 0xF0605BEEL,
0x24AA3F05L, 0xD6C1BC06L, 0xC5914FF2L, 0x37FACCF1L,
0x69E9F0D5L, 0x9B8273D6L, 0x88D28022L, 0x7AB90321L,
0xAE7367CAL, 0x5C18E4C9L, 0x4F48173DL, 0xBD23943EL,
0xF36E6F75L, 0x0105EC76L, 0x12551F82L, 0xE03E9C81L,
0x34F4F86AL, 0xC69F7B69L, 0xD5CF889DL, 0x27A40B9EL,
0x79B737BAL, 0x8BDCB4B9L, 0x988C474DL, 0x6AE7C44EL,
0xBE2DA0A5L, 0x4C4623A6L, 0x5F16D052L, 0xAD7D5351L
};
static __inline int
calculate_crc32c(uint32_t crc, const void *buf, size_t size)
{
const uint8_t *p = buf;
while (size--)
crc = crc32Table[(crc ^ *p++) & 0xff] ^ (crc >> 8);
return crc;
}
#endif
static uint32_t
i_crc32c(const void *buf, size_t size, uint32_t crc)

View File

@ -106,11 +106,7 @@ iscsi_r2t(isc_session_t *sp, pduq_t *opq, pduq_t *pq)
while((wpq = pdu_alloc(sp->isc, M_NOWAIT)) == NULL) {
sdebug(2, "waiting...");
#if __FreeBSD_version >= 700000
pause("isc_r2t", 5*hz);
#else
tsleep(sp->isc, 0, "isc_r2t", 5*hz);
#endif
}
}
cmd = &wpq->pdu.ipdu.data_out;
@ -252,7 +248,7 @@ _scsi_done(isc_session_t *sp, u_int response, u_int status, union ccb *ccb, pduq
}
sdebug(5, "ccb_h->status=%x", ccb_h->status);
XPT_DONE(sp, ccb);
xpt_done(sp, ccb);
}
/*
@ -412,7 +408,7 @@ iscsi_reject(isc_session_t *sp, pduq_t *opq, pduq_t *pq)
debug_called(8);
//XXX: check RFC 10.17.1 (page 176)
ccb->ccb_h.status = CAM_REQ_ABORTED;
XPT_DONE(sp, ccb);
xpt_done(sp, ccb);
pdu_free(sp->isc, opq);
}
@ -471,11 +467,7 @@ scsi_encap(struct cam_sim *sim, union ccb *ccb)
sp->isc->npdu_max, sp->isc->npdu_alloc);
while((pq = pdu_alloc(sp->isc, M_NOWAIT)) == NULL) {
sdebug(2, "waiting...");
#if __FreeBSD_version >= 700000
pause("isc_encap", 5*hz);
#else
tsleep(sp->isc, 0, "isc_encap", 5*hz);
#endif
}
}
cmd = &pq->pdu.ipdu.scsi_req;

View File

@ -268,39 +268,6 @@ int iscsi_requeue(isc_session_t *sp);
/*
| inlines
*/
#ifdef _CAM_CAM_XPT_SIM_H
#if __FreeBSD_version < 600000
#define CAM_LOCK(arg)
#define CAM_ULOCK(arg)
static __inline void
XPT_DONE(isc_session_t *sp, union ccb *ccb)
{
mtx_lock(&Giant);
xpt_done(ccb);
mtx_unlock(&Giant);
}
#elif __FreeBSD_version >= 700000
#define CAM_LOCK(arg) mtx_lock(&arg->cam_mtx)
#define CAM_UNLOCK(arg) mtx_unlock(&arg->cam_mtx)
static __inline void
XPT_DONE(isc_session_t *sp, union ccb *ccb)
{
CAM_LOCK(sp);
xpt_done(ccb);
CAM_UNLOCK(sp);
}
#else
//__FreeBSD_version >= 600000
#define CAM_LOCK(arg)
#define CAM_UNLOCK(arg)
#define XPT_DONE(ignore, arg) xpt_done(arg)
#endif
#endif /* _CAM_CAM_XPT_SIM_H */
static __inline pduq_t *
pdu_alloc(struct isc_softc *isc, int wait)
{