看板 DFBSD_submit 關於我們 聯絡資訊
--nextPart4786422.NUxcIxLZLS Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit All, Modify bus_dmamap_load_mbuf() to not map zero-length mbuf segments. This is an optimisation for some wireless drivers (wi) and is required by others (iwi firmware in particular). At the moment I'm working around it by adding an m_pullup() in iwi_tx_start, but this is not optimal. Instead, Matt suggested I go after the root cause. Cheers, Andrew. --nextPart4786422.NUxcIxLZLS Content-Type: text/x-diff; name="busdma_machdep.c.diff" Content-Transfer-Encoding: 8Bit Content-Disposition: attachment; filename="busdma_machdep.c.diff" *** busdma_machdep.c.old Tue Jan 18 03:25:16 2005 --- busdma_machdep.c Tue Jan 18 03:27:48 2005 *************** *** 635,645 **** struct mbuf *m; for (m = m0; m != NULL && error == 0; m = m->m_next) { ! error = _bus_dmamap_load_buffer(dmat, ! m->m_data, m->m_len, ! curthread, flags, &lastaddr, ! &nsegs, first); ! first = 0; } } else { error = EINVAL; --- 635,647 ---- struct mbuf *m; for (m = m0; m != NULL && error == 0; m = m->m_next) { ! if ( m->m_len > 0 ) { ! error = _bus_dmamap_load_buffer(dmat, ! m->m_data, m->m_len, ! curthread, flags, &lastaddr, ! &nsegs, first); ! first = 0; ! } } } else { error = EINVAL; --nextPart4786422.NUxcIxLZLS--