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:
parent
1a1b54589b
commit
6773051162
@ -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");
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user