? diff_kernel Index: mpt_cam.c =================================================================== RCS file: /home/ncvs/src/sys/dev/mpt/mpt_cam.c,v retrieving revision 1.31 diff -u -r1.31 mpt_cam.c --- mpt_cam.c 25 Jul 2006 00:59:54 -0000 1.31 +++ mpt_cam.c 5 Sep 2006 23:51:22 -0000 @@ -248,7 +248,7 @@ * If we support target mode, we register a reply handler for it, * but don't add resources until we actually enable target mode. */ - if ((mpt->role & MPT_ROLE_TARGET) != 0) { + if (mpt->is_fc && (mpt->role & MPT_ROLE_TARGET) != 0) { handler.reply_handler = mpt_scsi_tgt_reply_handler; error = mpt_register_handler(mpt, MPT_HANDLER_REPLY, handler, &mpt->scsi_tgt_handler_id); @@ -816,7 +816,7 @@ * If we're in target mode, hang out resources now * so we don't cause the world to hang talking to us. */ - if (mpt->role & MPT_ROLE_TARGET) { + if (mpt->is_fc && (mpt->role & MPT_ROLE_TARGET)) { /* * Try to add some target command resources */ @@ -3166,7 +3166,7 @@ if ((mpt->role & MPT_ROLE_INITIATOR) == 0) { cpi->hba_misc |= PIM_NOINITIATOR; } - if ((mpt->role & MPT_ROLE_TARGET) != 0) { + if (mpt->is_fc && (mpt->role & MPT_ROLE_TARGET)) { cpi->target_sprt = PIT_PROCESSOR | PIT_DISCONNECT | PIT_TERM_IO; } else {