From owner-cvs-all@FreeBSD.ORG Sat Apr 1 07:12:20 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 39E7D16A432; Sat, 1 Apr 2006 07:12:20 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 98D8943D5A; Sat, 1 Apr 2006 07:12:19 +0000 (GMT) (envelope-from mjacob@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k317CJ8H073016; Sat, 1 Apr 2006 07:12:19 GMT (envelope-from mjacob@repoman.freebsd.org) Received: (from mjacob@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k317CJdc073015; Sat, 1 Apr 2006 07:12:19 GMT (envelope-from mjacob) Message-Id: <200604010712.k317CJdc073015@repoman.freebsd.org> From: Matt Jacob Date: Sat, 1 Apr 2006 07:12:18 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/mpt mpt.c mpt.h mpt_cam.c mpt_debug.c mpt_pci.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Apr 2006 07:12:20 -0000 mjacob 2006-04-01 07:12:18 UTC FreeBSD src repository Modified files: sys/dev/mpt mpt.c mpt.h mpt_cam.c mpt_debug.c mpt_pci.c Log: Fix some of the previus changes 'better'. There's something strange going on with async events. They seem to be be treated differently for different Fusion implementations. Some will really tell you when it's okay to free the request that started them. Some won't. Very disconcerting. This is particularily bad when the chip (FC in this case) tells you in the reply that it's not a continuation reply, which means you can free the request that its associated with. However, if you do that, I've found that additional async event replies come back for that message context after you freed it. Very Bad Things Happen. Put in a reply register debounce. Warn about out of range context indices. Use more MPILIB defines where possible. Replace bzero with memset. Add tons more KASSERTS. Do a *lot* more request free list auditting and serial number usages. Get rid of the warning about the short IOC Facts Reply. Go back to 16 bits of context index. Do a lot more target state auditting as well. Make a tag out of not only the ioindex but the request index as well and worry less about keeping a full serial number. Revision Changes Path 1.24 +125 -52 src/sys/dev/mpt/mpt.c 1.14 +26 -31 src/sys/dev/mpt/mpt.h 1.13 +1959 -1901 src/sys/dev/mpt/mpt_cam.c 1.14 +2 -0 src/sys/dev/mpt/mpt_debug.c 1.26 +2 -2 src/sys/dev/mpt/mpt_pci.c