From owner-freebsd-current@freebsd.org Tue Nov 8 15:19:50 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B01DCC35CFF; Tue, 8 Nov 2016 15:19:50 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 7ECC5AAE; Tue, 8 Nov 2016 15:19:50 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (ppp121-45-234-219.lns20.per1.internode.on.net [121.45.234.219]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id uA8FJdvi046322 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 8 Nov 2016 07:19:42 -0800 (PST) (envelope-from julian@freebsd.org) To: freebsd-current , FreeBSD Stable From: Julian Elischer Subject: problem with mpt driver. anyone seen this or similar? (10.3) Message-ID: Date: Tue, 8 Nov 2016 23:19:33 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Nov 2016 15:19:50 -0000 Does this ring any bells? even a theory would be a big improvement. memcpy+0xc mpt_read_cfg_page+0xcc mpt_cation+0x148e xpt_action_default+0x7e cam_periph_runccb+0x7c passdoioctl+0x719 passioctl+0x30 devfs_ioctl_f+0x7c kern_ioctl+0x1a8 sys_ioctl+0x11f amd64_syscall+0x3f9 xfast_syscall+0xf7 we see a memory access fault at line 1821.. 1786 int 1787 mpt_read_cfg_page(struct mpt_softc *mpt, int Action, uint32_t PageAddress, 1788 CONFIG_PAGE_HEADER *hdr, size_t len, int sleep_ok, 1789 int timeout_ms) 1790 { 1791 request_t *req; 1792 cfgparms_t params; 1793 int error; 1794 1795 req = mpt_get_request(mpt, sleep_ok); 1796 if (req == NULL) { 1797 mpt_prt(mpt, "mpt_read_cfg_page: Get request failed!\n"); 1798 return (-1); 1799 } 1800 1801 params.Action = Action; 1802 params.PageVersion = hdr->PageVersion; 1803 params.PageLength = hdr->PageLength; 1804 params.PageNumber = hdr->PageNumber; 1805 params.PageType = hdr->PageType & MPI_CONFIG_PAGETYPE_MASK; 1806 params.PageAddress = PageAddress; 1807 error = mpt_issue_cfg_req(mpt, req, ¶ms, 1808 req->req_pbuf + MPT_RQSL(mpt), 1809 len, sleep_ok, timeout_ms); 1810 if (error != 0) { 1811 mpt_prt(mpt, "read_cfg_page(%d) timed out\n", Action); 1812 return (-1); 1813 } 1814 1815 if ((req->IOCStatus & MPI_IOCSTATUS_MASK) != MPI_IOCSTATUS_SUCCESS) { 1816 mpt_prt(mpt, "mpt_read_cfg_page: Config Info Status %x\n", 1817 req->IOCStatus); 1818 mpt_free_request(mpt, req); 1819 return (-1); 1820 } 1821 memcpy(hdr, ((uint8_t *)req->req_vbuf)+MPT_RQSL(mpt), len); <------ 1822 mpt_free_request(mpt, req); 1823 return (0); 1824 } 1825 1826 int 1827 mpt_write_cfg_page(struct mpt_softc *mpt, int Action, uint32_t PageAddress, "mpt/mpt.c" [readonly] 3146 lines --58%--