LSI 1030 mpt doesn't work if I build a new kernel

Matthew Jacob lydianconcepts at gmail.com
Tue Sep 5 17:03:29 PDT 2006


The attached patch was integrated into -current- this should fix this
issues for U320 chipsets. Let me know if it doesn't.
-------------- next part --------------
? 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 {


More information about the freebsd-current mailing list