Deleted Added
full compact
45c45
< __FBSDID("$FreeBSD: head/sys/dev/isp/isp.c 163899 2006-11-02 03:21:32Z mjacob $");
---
> __FBSDID("$FreeBSD: head/sys/dev/isp/isp.c 164272 2006-11-14 08:45:48Z mjacob $");
62a63,65
> #define ISP_MARK_PORTDB(a, b) \
> isp_prt(isp, ISP_LOGSANCFG, "line %d: markportdb", __LINE__); \
> isp_mark_portdb(a, b)
112d114
< static void isp_dump_portdb(ispsoftc_t *);
120c122
< static const char *isp2100_fw_statename(int);
---
> static const char *ispfc_fw_statename(int);
1176c1178
< isp_mark_portdb(isp, 0);
---
> ISP_MARK_PORTDB(isp, 0);
2050,2052d2051
< /*
< * Fibre Channel Support- get the port database for the id.
< */
2054,2097d2052
< isp_dump_portdb(ispsoftc_t *isp)
< {
< fcparam *fcp = (fcparam *) isp->isp_param;
< int i;
<
< for (i = 0; i < MAX_FC_TARG; i++) {
< char mb[4];
< const char *dbs[8] = {
< "NIL ",
< "PROB",
< "DEAD",
< "CHGD",
< "NEW ",
< "PVLD",
< "????",
< "VLD "
< };
< const char *roles[4] = {
< " UNK", " TGT", " INI", "TINI"
< };
< fcportdb_t *lp = &fcp->portdb[i];
<
< if (lp->state == FC_PORTDB_STATE_NIL) {
< continue;
< }
< if (lp->ini_map_idx) {
< SNPRINTF(mb, sizeof (mb), "%3d",
< ((int) lp->ini_map_idx) - 1);
< } else {
< SNPRINTF(mb, sizeof (mb), "---");
< }
< isp_prt(isp, ISP_LOGALL, "%d: %s al%d tgt %s %s 0x%06x =>%s"
< " 0x%06x; WWNN 0x%08x%08x WWPN 0x%08x%08x", i,
< dbs[lp->state], lp->autologin, mb,
< roles[lp->roles], lp->portid,
< roles[lp->new_roles], lp->new_portid,
< (uint32_t) (lp->node_wwn >> 32),
< (uint32_t) (lp->node_wwn),
< (uint32_t) (lp->port_wwn >> 32),
< (uint32_t) (lp->port_wwn));
< }
< }
<
< static void
2104d2058
< fcp->isp_ini_map[i] = 0;
2115a2070,2071
> case FC_PORTDB_STATE_ZOMBIE:
> break;
2169a2126
> mbs.timeout = 250000;
2278a2236
> mbs.timeout = 250000;
2466,2467c2424,2425
< isp_prt(isp, ISP_LOGDEBUG0, "FC Link Test Entry");
< isp_mark_portdb(isp, 1);
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "FC Link Test Entry");
> ISP_MARK_PORTDB(isp, 1);
2482,2484c2440,2443
< isp_prt(isp, ISP_LOGINFO, "Firmware State <%s->%s>",
< isp2100_fw_statename((int)lwfs),
< isp2100_fw_statename((int)fcp->isp_fwstate));
---
> isp_prt(isp, ISP_LOGCONFIG|ISP_LOGSANCFG,
> "Firmware State <%s->%s>",
> ispfc_fw_statename((int)lwfs),
> ispfc_fw_statename((int)fcp->isp_fwstate));
2536c2495
< isp_prt(isp, ISP_LOGDEBUG0,
---
> isp_prt(isp, ISP_LOGSANCFG,
2648c2607
< isp_prt(isp, ISP_LOGCONFIG, topology, fcp->isp_portid,
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGCONFIG, topology, fcp->isp_portid,
2650c2609
< isp_prt(isp, ISP_LOGCONFIG, ourwwn,
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGCONFIG, ourwwn,
2655c2614
< isp_prt(isp, ISP_LOGDEBUG0, "FC Link Test Complete");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "FC Link Test Complete");
2660c2619
< isp2100_fw_statename(int state)
---
> ispfc_fw_statename(int state)
2738a2698,2699
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Synchronizing PDBs");
>
2760,2764c2721,2723
< isp_async(isp, ISPASYNC_DEV_GONE, lp);
< if (lp->ini_map_idx) {
< fcp->isp_ini_map[lp->ini_map_idx-1] = 0;
< lp->ini_map_idx = 0;
< }
---
> /*
> * It's up to the outer layers to clear isp_ini_map.
> */
2765a2725
> isp_async(isp, ISPASYNC_DEV_GONE, lp);
2784a2745,2748
> /*
> * Note that we might come out of this with our state
> * set to FC_PORTDB_STATE_ZOMBIE.
> */
2788,2789c2752,2753
< * If *we* have a new target dole and *it* has a target
< * role, assign a new target id to it.
---
> * It's up to the outer layers to assign a virtual
> * target id in isp_ini_map (if any).
2794,2814d2757
< if ((isp->isp_role & ISP_ROLE_INITIATOR) &&
< (lp->roles & (SVC3_TGT_ROLE >> SVC3_ROLE_SHIFT))) {
< int i, t = dbidx;
< for (i = 0; i < MAX_FC_TARG; i++) {
< if (i < FL_ID || i > SNS_ID) {
< if (fcp->isp_ini_map[t] == 0) {
< break;
< }
< }
< if (++t == MAX_FC_TARG) {
< t = 0;
< }
< }
< if (i < MAX_FC_TARG) {
< fcp->isp_ini_map[t] = dbidx + 1;
< lp->ini_map_idx = t + 1;
< } else {
< isp_prt(isp, ISP_LOGWARN,
< "out of target ids");
< }
< }
2817a2761,2762
> lp->reserved = 0;
> lp->new_reserved = 0;
2820,2821c2765,2767
< lp->portid = lp->new_portid;
< lp->roles = lp->new_roles;
---
> /*
> * XXXX FIX THIS
> */
2823,2826d2768
< if (lp->ini_map_idx) {
< int t = lp->ini_map_idx - 1;
< fcp->isp_ini_map[t] = dbidx + 1;
< }
2829a2772,2773
> lp->reserved = 0;
> lp->new_reserved = 0;
2834d2777
< lp->state = FC_PORTDB_STATE_VALID;
2838a2782
> lp->state = FC_PORTDB_STATE_VALID;
2843a2788,2789
> lp->reserved = 0;
> lp->new_reserved = 0;
2844a2791,2792
> case FC_PORTDB_STATE_ZOMBIE:
> break;
2846c2794,2795
< isp_prt(isp, ISP_LOGERR, "eh? state %d for idx %d",
---
> isp_prt(isp, ISP_LOGWARN,
> "isp_scan_loop: state %d for idx %d",
2872c2821
< uint16_t dbidx, lim = 0;
---
> uint16_t handle, lim = 0;
2909d2857
< isp_prt(isp, ISP_LOGDEBUG0, "scanning loop 0..%d", lim-1);
2910a2859
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "FC scan loop 0..%d", lim-1);
2911a2861
>
2915c2865
< for (dbidx = 0; dbidx < lim; dbidx++) {
---
> for (handle = 0; handle < lim; handle++) {
2919c2869
< if (dbidx == fcp->isp_loopid) {
---
> if (handle == fcp->isp_loopid) {
2928c2878
< uint64_t node_wwn = isp_get_portname(isp, dbidx, 1);
---
> uint64_t node_wwn = isp_get_portname(isp, handle, 1);
2940c2890
< if (isp_getpdb(isp, dbidx, &pdb, 1) != 0) {
---
> if (isp_getpdb(isp, handle, &pdb, 1) != 0) {
2942c2892
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
2949c2899
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
2956,2957c2906,2907
< * for something else. We used to restart locally, but
< * now we punt.
---
> * for something else. We used to restart this, but
> * now we just punt.
2959c2909
< if (IS_2100(isp) && pdb.handle != dbidx) {
---
> if (IS_2100(isp) && pdb.handle != handle) {
2962c2912
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
2981,2982c2931
< isp_prt(isp, ISP_LOGWARN,
< "bad pdb entry at loop %d", dbidx);
---
> isp_prt(isp, ISP_LOGWARN, "bad pdb @ loop %d", handle);
3005c2954
< * Check to make sure it's probational.
---
> * Check to make sure it's probational or a zombie.
3007c2956,2957
< if (lp->state != FC_PORTDB_STATE_PROBATIONAL) {
---
> if (lp->state != FC_PORTDB_STATE_PROBATIONAL &&
> lp->state != FC_PORTDB_STATE_ZOMBIE) {
3009c2959
< "portdb entry %d not probational (0x%x)",
---
> "[%d] not probational/zombie (0x%x)",
3012c2962
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
3015a2966,2969
> /*
> * Mark the device as something the f/w logs into
> * automatically.
> */
3016a2971
>
3018,3020c2973,2974
< * Check to make sure it's really the same
< * device and update the initiator map before
< * we mark it as pending valid.
---
> * Check to make see if really still the same
> * device. If it is, we mark it pending valid.
3027a2982,2984
> isp_prt(isp, ISP_LOGSANCFG,
> "Loop Port 0x%06x@0x%x Pending Valid",
> tmp.portid, tmp.handle);
3032,3033c2989,2990
< * We can wipe out the old handle value here because
< * it's no longer valid.
---
> * We can wipe out the old handle value
> * here because it's no longer valid.
3040a2998,3000
> isp_prt(isp, ISP_LOGSANCFG,
> "Loop Port 0x%06x@0x%x changed",
> tmp.portid, tmp.handle);
3064,3065c3024
< isp_prt(isp, ISP_LOGERR,
< "could not find slot for new entry");
---
> isp_prt(isp, ISP_LOGERR, "out of portdb entries");
3069a3029
> MEMZERO(lp, sizeof (fcportdb_t));
3072,3073d3031
< lp->portid = 0;
< lp->roles = 0;
3078a3037,3039
> isp_prt(isp, ISP_LOGSANCFG,
> "Loop Port 0x%06x@0x%x is New Entry",
> tmp.portid, tmp.handle);
3080d3040
<
3261c3221
< isp_prt(isp, ISP_LOGDEBUG0, "FC Scan Fabric");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "FC Scan Fabric");
3271c3231,3232
< isp_prt(isp, ISP_LOGDEBUG0, "FC Scan Fabric Done (no fabric)");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "FC Scan Fabric Done (no fabric)");
3306c3267
< level = ISP_LOGDEBUG0;
---
> level = ISP_LOGSANCFG|ISP_LOGDEBUG0;
3351,3352c3312,3313
< isp_prt(isp, ISP_LOGDEBUG0, "got %d ports back from name server",
< portlim);
---
> isp_prt(isp, ISP_LOGSANCFG,
> "got %d ports back from name server", portlim);
3376c3337
< isp_prt(isp, ISP_LOGDEBUG0,
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
3409c3370
< isp_prt(isp, ISP_LOGDEBUG0,
---
> isp_prt(isp, ISP_LOGSANCFG,
3418c3379
< isp_prt(isp, ISP_LOGDEBUG0,
---
> isp_prt(isp, ISP_LOGSANCFG,
3422c3383,3384
< isp_prt(isp, ISP_LOGDEBUG0, "Fabric Port 0x%06x", portid);
---
> isp_prt(isp, ISP_LOGSANCFG,
> "Checking Fabric Port 0x%06x", portid);
3426c3388,3390
< * probational entries with this PortID.
---
> * probational entries with this PortID. We don't
> * look for zombies here- only probational
> * entries (we've already logged out of zombies).
3467c3431
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
3472a3437,3439
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "Fabric Port 0x%06x considered dead",
> portid);
3489,3490c3456,3457
< isp_prt(isp, ISP_LOGDEBUG0, fconf, dbidx,
< pdb.handle, pdb.portid,
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> fconf, dbidx, pdb.handle, pdb.portid,
3513c3480
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
3550a3518,3519
> isp_prt(isp, ISP_LOGSANCFG,
> "Fabric Port 0x%06x changed", portid);
3552a3522,3524
> isp_prt(isp, ISP_LOGSANCFG,
> "Fabric Port 0x%06x Now Pending Valid",
> portid);
3560,3561c3532,3534
< * entries to make sure we never ever make a database entry
< * with the same port id.
---
> * entries to make sure we never ever make a new database entry
> * with the same port id. While we're at it, mark where the
> * last free entry was.
3563,3564c3536,3540
< for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) {
< if (dbidx >= FL_ID && dbidx <= SNS_ID) {
---
>
> dbidx = MAX_FC_TARG;
> for (lp = fcp->portdb; lp < &fcp->portdb[MAX_FC_TARG]; lp++) {
> if (lp >= &fcp->portdb[FL_ID] &&
> lp <= &fcp->portdb[SNS_ID]) {
3567c3543,3546
< if (fcp->portdb[dbidx].state == FC_PORTDB_STATE_NIL) {
---
> if (lp->state == FC_PORTDB_STATE_NIL) {
> if (dbidx == MAX_FC_TARG) {
> dbidx = lp - fcp->portdb;
> }
3570c3549,3552
< if (fcp->portdb[dbidx].portid == portid) {
---
> if (lp->state == FC_PORTDB_STATE_ZOMBIE) {
> continue;
> }
> if (lp->portid == portid) {
3575c3557
< if (dbidx != MAX_FC_TARG) {
---
> if (lp < &fcp->portdb[MAX_FC_TARG]) {
3578,3579c3560
< portid, dbidx, fcp->portdb[dbidx].handle,
< fcp->portdb[dbidx].state);
---
> portid, dbidx, lp->handle, lp->state);
3584c3565
< * Find an empty database entry for it.
---
> * We should have the index of the first free entry seen.
3586,3594d3566
< for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) {
< if (dbidx >= FL_ID && dbidx <= SNS_ID) {
< continue;
< }
< if (fcp->portdb[dbidx].state == FC_PORTDB_STATE_NIL) {
< break;
< }
< }
<
3597,3598c3569,3570
< "port database too small to login fabric device"
< "- increase MAX_FC_TARG");
---
> "port database too small to login PortID 0x%06x"
> "- increase MAX_FC_TARG", portid);
3602a3575,3579
> * Otherwise, point to our new home.
> */
> lp = &fcp->portdb[dbidx];
>
> /*
3612c3589
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
3628,3629d3604
< lp = &fcp->portdb[dbidx];
<
3631c3606
< if (fcp->portdb[dbidx].state == FC_PORTDB_STATE_NIL) {
---
> if (dbidx >= FL_ID && dbidx <= SNS_ID) {
3634c3609
< if (dbidx >= FL_ID && dbidx <= SNS_ID) {
---
> if (fcp->portdb[dbidx].state == FC_PORTDB_STATE_NIL) {
3643c3618,3631
< if (dbidx != MAX_FC_TARG) {
---
> if (dbidx == MAX_FC_TARG) {
> MEMZERO(lp, sizeof (fcportdb_t));
> lp->handle = handle;
> lp->node_wwn = wwnn;
> lp->port_wwn = wwpn;
> lp->new_portid = portid;
> lp->new_roles = nr;
> lp->state = FC_PORTDB_STATE_NEW;
> isp_prt(isp, ISP_LOGSANCFG,
> "Fabric Port 0x%06x is New Entry", portid);
> continue;
> }
>
> if (fcp->portdb[dbidx].state != FC_PORTDB_STATE_ZOMBIE) {
3646c3634
< "idx %d", portid,
---
> "idx %d, state 0x%x", portid,
3649c3637,3638
< (long) (lp - fcp->portdb), dbidx);
---
> (long) (lp - fcp->portdb), dbidx,
> fcp->portdb[dbidx].state);
3652a3642,3650
> /*
> * We found a zombie entry that matches us.
> * Revive it. We know that WWN and WWPN
> * are the same. For fabric devices, we
> * don't care that handle is different
> * as we assign that. If role or portid
> * are different, it maybe a changed device.
> */
> lp = &fcp->portdb[dbidx];
3654,3656d3651
< lp->ini_map_idx = 0;
< lp->node_wwn = wwnn;
< lp->port_wwn = wwpn;
3659c3654,3663
< lp->state = FC_PORTDB_STATE_NEW;
---
> if (lp->portid != portid || lp->roles != nr) {
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "Zombie Fabric Port 0x%06x Now Changed", portid);
> lp->state = FC_PORTDB_STATE_CHANGED;
> } else {
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "Zombie Fabric Port 0x%06x Now Pending Valid",
> portid);
> lp->state = FC_PORTDB_STATE_PENDING_VALID;
> }
3662d3665
<
3665c3668
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
3669c3672
< isp_prt(isp, ISP_LOGDEBUG0, "FC Scan Fabric Done");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "FC Scan Fabric Done");
3739c3742
< isp_prt(isp, ISP_LOGINFO, "PLOGI 0x%06x failed", portid);
---
> isp_prt(isp, ISP_LOGWARN, "PLOGI 0x%06x failed", portid);
3897c3900,3901
< isp_prt(isp, ISP_LOGWARN, "Register FC4 Type rejected");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "Register FC4 Type rejected");
3900c3904,3905
< isp_prt(isp, ISP_LOGDEBUG0, "Register FC4 Type accepted");
---
> isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0,
> "Register FC4 Type accepted");
3904c3909
< "Register FC4 Type: %x", ct->ct_cmd_resp);
---
> "Register FC4 Type: 0x%x", ct->ct_cmd_resp);
3953c3958
< int target, i;
---
> int target, i, hdlidx = 0;
3998a4004,4006
> /*
> * Try again later.
> */
4009c4017
< i = fcp->isp_ini_map[XS_TGT(xs)];
---
> hdlidx = fcp->isp_ini_map[XS_TGT(xs)] - 1;
4011,4012c4019,4020
< XS_TGT(xs), i);
< if (i < 1 || i >= MAX_FC_TARG) {
---
> XS_TGT(xs), hdlidx);
> if (hdlidx < 0 || hdlidx >= MAX_FC_TARG) {
4016c4024,4031
< target = fcp->portdb[i - 1].handle;
---
> if (fcp->portdb[hdlidx].state == FC_PORTDB_STATE_ZOMBIE) {
> return (CMD_RQLATER);
> }
> if (fcp->portdb[hdlidx].state != FC_PORTDB_STATE_VALID) {
> XS_SETERR(xs, HBA_SELTIMEOUT);
> return (CMD_COMPLETE);
> }
> target = fcp->portdb[hdlidx].handle;
4144,4146c4159
< i = FCPARAM(isp)->isp_ini_map[XS_TGT(xs)] - 1;
< lp = &FCPARAM(isp)->portdb[i];
<
---
> lp = &FCPARAM(isp)->portdb[hdlidx];
4639a4653,4654
> uint8_t *snsp, *resp;
> uint32_t rlen, slen;
4803a4819,4829
> resp = NULL;
> rlen = 0;
> snsp = NULL;
> slen = 0;
> if (IS_24XX(isp) && (scsi_status & RQCS_RV) != 0) {
> resp = ((isp24xx_statusreq_t *)sp)->req_rsp_sense;
> rlen = ((isp24xx_statusreq_t *)sp)->req_response_len;
> } else if (IS_FC(isp) && (scsi_status & RQCS_RV) != 0) {
> resp = sp->req_response;
> rlen = sp->req_response_len;
> }
4810c4836,4849
< req_state_flags |= RQSF_GOT_STATUS;
---
> req_state_flags |= RQSF_GOT_STATUS|RQSF_GOT_SENSE;
> if (IS_24XX(isp)) {
> snsp =
> ((isp24xx_statusreq_t *)sp)->req_rsp_sense;
> snsp += rlen;
> slen =
> ((isp24xx_statusreq_t *)sp)->req_sense_len;
> } else {
> snsp = sp->req_sense_data;
> slen = sp->req_sense_len;
> }
> } else if (IS_SCSI(isp) && (req_state_flags & RQSF_GOT_SENSE)) {
> snsp = sp->req_sense_data;
> slen = sp->req_sense_len;
4818d4856
< /* XXX won't work for 24xx */
4819a4858,4864
> if (resp) {
> isp_prt(isp, ISP_LOGWARN,
> "%d.%d FCP RESPONSE: 0x%x",
> XS_TGT(xs), XS_LUN(xs),
> resp[FCP_RSPNS_CODE_OFFSET]);
> XS_SETERR(xs, HBA_BOTCH);
> }
4832,4836d4876
< if ((req_state_flags & RQSF_GOT_STATUS) &&
< (*XS_STSP(xs) == SCSI_CHECK) &&
< (req_state_flags & RQSF_GOT_SENSE)) {
< XS_SAVE_SENSE(xs, sp);
< }
4858,4864d4897
< if ((req_state_flags & RQSF_GOT_STATUS) &&
< (*XS_STSP(xs) == SCSI_CHECK) &&
< (scsi_status & RQCS_SV)) {
< XS_SAVE_SENSE(xs, sp);
< /* solely for the benefit of debug */
< req_state_flags |= RQSF_GOT_SENSE;
< }
4865a4899,4901
> if (snsp && slen) {
> XS_SAVE_SENSE(xs, snsp, slen);
> }
5178c5214
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5214c5250
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5227c5263
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5240c5276
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5252c5288
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5262c5298
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5267c5303
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5282c5318
< isp_mark_portdb(isp, 1);
---
> ISP_MARK_PORTDB(isp, 1);
5774,5781d5809
<
< /*
< * Probably overkill.
< */
< isp->isp_sendmarker = 1;
< FCPARAM(isp)->isp_loopstate = LOOP_PDB_RCVD;
< isp_mark_portdb(isp, 1);
< isp_async(isp, ISPASYNC_CHANGE_NOTIFY, ISPASYNC_CHANGE_OTHER);
5932,5939d5959
<
< /*
< * Probably overkill.
< */
< isp->isp_sendmarker = 1;
< FCPARAM(isp)->isp_loopstate = LOOP_PDB_RCVD;
< isp_mark_portdb(isp, 1);
< isp_async(isp, ISPASYNC_CHANGE_NOTIFY, ISPASYNC_CHANGE_OTHER);
7171c7191
< isp_mark_portdb(isp, 0);
---
> ISP_MARK_PORTDB(isp, 0);