From owner-p4-projects@FreeBSD.ORG Sun Nov 28 21:59:09 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 848331065679; Sun, 28 Nov 2010 21:59:09 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45CD3106566B for ; Sun, 28 Nov 2010 21:59:09 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 31DFC8FC08 for ; Sun, 28 Nov 2010 21:59:09 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oASLx9qI015187 for ; Sun, 28 Nov 2010 21:59:09 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oASLx886015184 for perforce@freebsd.org; Sun, 28 Nov 2010 21:59:08 GMT (envelope-from mjacob@freebsd.org) Date: Sun, 28 Nov 2010 21:59:08 GMT Message-Id: <201011282159.oASLx886015184@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 186385 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Nov 2010 21:59:09 -0000 http://p4web.freebsd.org/@@186385?ac=10 Change 186385 by mjacob@mjacob-sandbox on 2010/11/28 21:58:39 Do not dereference out of bounds data- the total config data is a page, each chunk is 512 bytes. Let's keep that straight. Clean up some of the printf stuff so we only print what we are supposed to print, not print trainling pieces where the front part was suppressed. Affected files ... .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#2 edit .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#2 edit .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.h#2 edit Differences ... ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#2 (text+ko) ==== @@ -730,7 +730,7 @@ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filtfunc, filtfuncarg */ - MPT2_CONFIG_DATA_SIZE(mpt), /* maxsize */ + MPT2_CONFIG_DATA_MAX(mpt), /* maxsize */ 1, /* nsegments */ BUS_SPACE_MAXSIZE, /* maxsegsz */ BUS_DMA_ALLOCNOW, /* flags */ @@ -751,7 +751,7 @@ mi.mpt = mpt; mi.error = 0; - bus_dmamap_load(mpt->config.dmat, mpt->config.dmap, mpt->config.vaddr, MPT2_CONFIG_DATA_SIZE(mpt), mpt2sas_map_rquest, &mi, 0); + bus_dmamap_load(mpt->config.dmat, mpt->config.dmap, mpt->config.vaddr, MPT2_CONFIG_DATA_MAX(mpt), mpt2sas_map_rquest, &mi, 0); if (mi.error) { mpt2sas_prt(mpt, MP2PRT_ERR, "error %d loading dma map for config\n", mi.error); goto failure; ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#2 (text+ko) ==== @@ -282,6 +282,7 @@ status = tpl->PHY[i].PhyStatus & MPI2_EVENT_SAS_TOPO_RC_MASK; switch(status) { case MPI2_EVENT_SAS_TOPO_RC_PHY_CHANGED: + mpt2sas_prt(mpt, MP2PRT_CONFIG, "%s: PHY chanded at entry %d\n", __func__, i); break; case MPI2_EVENT_SAS_TOPO_RC_TARG_ADDED: if (le16toh(tpl->PHY[i].AttachedDevHandle)) { @@ -300,11 +301,10 @@ case MPI2_EVENT_SAS_TOPO_RC_TARG_NOT_RESPONDING: if (le16toh(tpl->PHY[i].AttachedDevHandle)) { struct topochg *tp = TAILQ_FIRST(&mpt->topo_free_list); - mpt2sas_prt(mpt, MP2PRT_CONFIG, "DevHandle 0x%x Departed", le16toh(tpl->PHY[i].AttachedDevHandle)); if (tp == NULL) { - printf("- event lost\n"); + mpt2sas_prt(mpt, MP2PRT_CONFIG, "DevHandle 0x%x Departed- event lost\n", le16toh(tpl->PHY[i].AttachedDevHandle)); } else { - printf("- scheduling for detach\n"); + mpt2sas_prt(mpt, MP2PRT_CONFIG, "DevHandle 0x%x Departed- scheduling for detach\n", le16toh(tpl->PHY[i].AttachedDevHandle)); TAILQ_REMOVE(&mpt->topo_free_list, tp, links); tp->hdl = le16toh(tpl->PHY[i].AttachedDevHandle); tp->create = 0; @@ -316,6 +316,7 @@ mpt2sas_prt(mpt, MP2PRT_CONFIG, "%s: DevHandle 0x%x delayed not responding\n", __func__, le16toh(tpl->PHY[i].AttachedDevHandle)); break; default: + mpt2sas_prt(mpt, MP2PRT_WARN, "%s: unknown status %x at entry %d\n", __func__, status, i); break; } } ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.h#2 (text+ko) ==== @@ -596,7 +596,8 @@ #define MPT2_RPF_QDEPTH(mpt) mpt->reply_free_queue_depth #define MPT2_RPQ_QDEPTH(mpt) mpt->reply_post_queue_depth -#define MPT2_CONFIG_DATA_SIZE(mpt) PAGE_SIZE +#define MPT2_CONFIG_DATA_MAX(mpt) PAGE_SIZE /* sum of all config data chunks */ +#define MPT2_CONFIG_DATA_SIZE(mpt) (PAGE_SIZE >> 9) #define MPT2_SENSE_DATA_SIZE(mpt) (MPT2_MAX_REQUESTS(mpt) * MPT2_SENSE_SIZE) /* * Convert a host request structure pointer into a SMID and vice versa