Difference between revisions of "DMA Mapping Error Analysis October 2013"

From Linux Driver Project
Jump to: navigation, search
(Created page with "<!DOCTYPE html> <html lang="en" dir="ltr" class="client-nojs"> <head> <script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()...")
 
(Blanked the page)
Line 1: Line 1:
<!DOCTYPE html>
 
<html lang="en" dir="ltr" class="client-nojs">
 
<head>
 
<script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
 
<title>DMA Mapping Error Analysis - Linux Driver Project</title>
 
<meta charset="UTF-8" />
 
<meta name="generator" content="MediaWiki 1.20.5" />
 
<link rel="alternate" type="application/x-wiki" title="Edit" href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit" />
 
<link rel="edit" title="Edit" href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit" />
 
<link rel="shortcut icon" href="/mediawiki/images/favicon.ico" />
 
<link rel="search" type="application/opensearchdescription+xml" href="/mediawiki/opensearch_desc.php" title="Linux Driver Project (en)" />
 
<link rel="EditURI" type="application/rsd+xml" href="http://linuxdriverproject.org/mediawiki/api.php?action=rsd" />
 
<link rel="alternate" type="application/atom+xml" title="Linux Driver Project Atom feed" href="/mediawiki/index.php?title=Special:RecentChanges&amp;feed=atom" />
 
<link rel="stylesheet" href="http://linuxdriverproject.org/mediawiki/load.php?debug=false&amp;lang=en&amp;modules=mediawiki.legacy.commonPrint%2Cshared%7Cskins.vector&amp;only=styles&amp;skin=vector&amp;*" />
 
<meta name="ResourceLoaderDynamicStyles" content="" />
 
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
 
/* cache key: driverdev_mediawiki:resourceloader:filter:minify-css:7:594c7303bcdc099a6dc2a7b80f08ce54 */</style>
 
  
<script src="http://linuxdriverproject.org/mediawiki/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=vector&amp;*"></script>
 
<script>if(window.mw){
 
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"DMA_Mapping_Error_Analysis","wgTitle":"DMA Mapping Error Analysis","wgCurRevisionId":97,"wgArticleId":36,"wgIsArticle":true,"wgAction":"view","wgUserName":"Shuahkhan","wgUserGroups":["*","user","autoconfirmed"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"DMA_Mapping_Error_Analysis","wgRestrictionEdit":[],"wgRestrictionMove":[]});
 
}</script><script>if(window.mw){
 
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":1,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"female","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":1,"showtoolbar":1,"skin":"vector","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,"watchlistdays":3,
 
"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"nickname":"","timecorrection":"Offset|0","watchlisttoken":""});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"938c0ac7b662f6f0bba5a0919395fc4d+\\","watchToken":"b36524b26c05af129b4f7db0801fe36c+\\"});;},{},{});
 
/* cache key: driverdev_mediawiki:resourceloader:filter:minify-js:7:6b3209db419e408a14861789f4655450 */
 
}</script>
 
<script>if(window.mw){
 
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
 
}</script>
 
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mediawiki/skins/vector/csshover.min.htc")}</style><![endif]--></head>
 
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-DMA_Mapping_Error_Analysis skin-vector action-view vector-animateLayout">
 
<div id="mw-page-base" class="noprint"></div>
 
<div id="mw-head-base" class="noprint"></div>
 
<!-- content -->
 
<div id="content" class="mw-body">
 
<a id="top"></a>
 
<div id="mw-js-message" style="display:none;"></div>
 
<!-- firstHeading -->
 
<h1 id="firstHeading" class="firstHeading"><span dir="auto">DMA Mapping Error Analysis</span></h1>
 
<!-- /firstHeading -->
 
<!-- bodyContent -->
 
<div id="bodyContent">
 
<!-- tagline -->
 
<div id="siteSub">From Linux Driver Project</div>
 
<!-- /tagline -->
 
<!-- subtitle -->
 
<div id="contentSub"></div>
 
<!-- /subtitle -->
 
<!-- jumpto -->
 
<div id="jump-to-nav" class="mw-jump">
 
Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a>
 
</div>
 
<!-- /jumpto -->
 
<!-- bodycontent -->
 
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><!-- begin links mediawiki --><a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989" style="display: none;">mediawiki</a><a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989"></a><a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989"></a><!-- end links mediawiki --><table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
 
<ul>
 
<li class="toclevel-1 tocsection-1"><a href="#DMA_Mapping_Error_Check_Analysis"><span class="tocnumber">1</span> <span class="toctext">DMA Mapping Error Check Analysis</span></a>
 
<ul>
 
<li class="toclevel-2 tocsection-2"><a href="#Broken"><span class="tocnumber">1.1</span> <span class="toctext">Broken</span></a></li>
 
<li class="toclevel-2 tocsection-3"><a href="#Good"><span class="tocnumber">1.2</span> <span class="toctext">Good</span></a></li>
 
</ul>
 
</li>
 
<li class="toclevel-1 tocsection-4"><a href="#dmap_map_single.28.29_-_results"><span class="tocnumber">2</span> <span class="toctext">dmap_map_single() - results</span></a></li>
 
<li class="toclevel-1 tocsection-5"><a href="#dma_map_page.28.29_-_results"><span class="tocnumber">3</span> <span class="toctext">dma_map_page() - results</span></a></li>
 
<li class="toclevel-1 tocsection-6"><a href="#Next_Steps"><span class="tocnumber">4</span> <span class="toctext">Next Steps</span></a></li>
 
<li class="toclevel-1 tocsection-7"><a href="#Detailed_Analysis"><span class="tocnumber">5</span> <span class="toctext">Detailed Analysis</span></a>
 
<ul>
 
<li class="toclevel-2 tocsection-8"><a href="#dma_map_single.28.29_usages_and_error_checking_status"><span class="tocnumber">5.1</span> <span class="toctext">dma_map_single() usages and error checking status</span></a></li>
 
<li class="toclevel-2 tocsection-9"><a href="#dma_map_page.28.29_usages_and_error_checking_status"><span class="tocnumber">5.2</span> <span class="toctext">dma_map_page() usages and error checking status</span></a></li>
 
</ul>
 
</li>
 
</ul>
 
</td></tr></table>
 
<h4><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=1" title="Edit section: DMA Mapping Error Check Analysis">edit</a>]</span> <span class="mw-headline" id="DMA_Mapping_Error_Check_Analysis"> DMA Mapping Error Check Analysis </span></h4>
 
<p>I re-analyzed the dma mapping error check status for the drivers that were identified in my first analysis.
 
</p><p><b>Linux 3.12-rc5 October 2013</b> is used as the base for this analysis.
 
</p><p>There are no significant changes in the percentages. Awesome progress made fixing Intel drivers by the Intel driver developres since the last analysis. This is a result of debug_dma_mapping_error() interface generating warnings on drivers that aren't checking mapping errors. I am pleased with the results so far, but more needs to be done. I simply updated the tables with the latest status.</p>
 
<p>I classified the results into three categories, Broken, Partially Broken, Unmap Broken, and Good. Details below:
 
</p>
 
<h5><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=2" title="Edit section: Broken">edit</a>]</span> <span class="mw-headline" id="Broken"> Broken </span></h5>
 
<ol><li> Broken - No dma mapping error checks done on the returned address.
 
</li><li> Partially Broken - In that source file, not all calls are followed by mapping error checks.
 
</li><li> Unmap broken - Checks dma mapping errors, however doesn't unmap already mapped pages when mapping error occurs in the middle of a multiple page mapping attempt.
 
</li></ol>
 
<p><br />
 
The first two categories Broken, and Partially Broken are classified as severe and need fixing. The third one needs fixing, since it leaves dangling mapped pages, and holds on to them which is equivalent to a memory leak condition. Some drivers release all mapped pages when the device closes, but others don't. Not doing unmap might be harmless on some architectures going by the comments I found in some source files.
 
</p>
 
<h5><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=3" title="Edit section: Good">edit</a>]</span> <span class="mw-headline" id="Good"> Good </span></h5>
 
<ol><li> Checks dma mapping errors and unmaps already mapped pages when mapping error occurs in the middle of a multiple page mapping attempt.
 
</li><li> Checks dma mapping errors without unlikely()
 
</li><li> Checks dma mapping errors with unlikely()
 
</li></ol>
 
<p><br />
 
I grouped the above three cases as good cases. Using unlikely() is icing on the cake, and something we don't need to be concerned about considering the other more serious problems in this area.
 
</p>
 
<h4><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=4" title="Edit section: dmap map single() - results">edit</a>]</span> <span class="mw-headline" id="dmap_map_single.28.29_-_results"> dmap_map_single() - results </span></h4>
 
<ul><li> Broken - 195 (46%)
 
</li><li> Partially broken - 46 (11%)
 
</li><li> Unmap broken: 26 (6%)
 
</li><li> Good: 147 (35%)
 
</li></ul>
 
<h4><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=5" title="Edit section: dma map page() - results">edit</a>]</span> <span class="mw-headline" id="dma_map_page.28.29_-_results"> dma_map_page() - results </span></h4>
 
<ul><li> Broken: 61 (59%)
 
</li><li> Partially broken: 7 (.06%)
 
</li><li> Unmap broken: 15 (14.5%)
 
</li><li> Good: 20 (19%)
 
</li></ul>
 
<p>In summary, a large&#160;% of the cases (&gt; 50%) go unchecked. This raises the following questions:
 
</p>
 
<ul><li> When do mapping errors get detected?
 
</li><li> How often do these errors occur?
 
</li><li> Why don't we see failures related to missing dma mapping error checks?
 
</li><li> Are they silent failures?
 
</li></ul>
 
<p><br />
 
I propose the following next steps to gather more information and understand the severity of the problem.
 
</p>
 
<h4><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=6" title="Edit section: Next Steps">edit</a>]</span> <span class="mw-headline" id="Next_Steps"> Next Steps </span></h4>
 
<ul><li> Continue to assess severity and fix drivers and modules as needed.
 
</li></ul>
 
<p>In addition to the above, I am sharing the information with the community at large, so individual driver and module owners can take a look at this analysis and assess the severity of the reported problems. I propose that, we use this page to record comments and track progress made on fixing the problem drivers and modules. If you have comments, questions etc. please contact [<a rel="nofollow" class="external text" href="mailto:shuahkhan@gmail.com,shuah.khan@hp.com?cc=linux-kernel@vger.kernel.org">Shuah Khan</a>]
 
</p>
 
<h4><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=7" title="Edit section: Detailed Analysis">edit</a>]</span> <span class="mw-headline" id="Detailed_Analysis"> Detailed Analysis </span></h4>
 
<p>The following is the detailed information on the nature of problems with dma mapping error checking, ranging from not checking mapping errors, doing partial checks, not unmapping, and checking and unmapping correctly.
 
</p>
 
<h5><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=8" title="Edit section: dma map single() usages and error checking status">edit</a>]</span> <span class="mw-headline" id="dma_map_single.28.29_usages_and_error_checking_status"> dma_map_single() usages and error checking status </span></h5>
 
<p>The following table lists the source files that call dma_map_single() and whether or not dma mapping errors are checked on the returned address. Also includes the status that indicates the cases that are broken and need fixing. Observations and open issues if any are captured in the Notes column. Individual driver and module owners can assess the severity of the broken cases.
 
</p><p><br />
 
</p>
 
<table border="1" cellpadding="2">
 
<tr>
 
<th width="300">File Name
 
</th>
 
<th width="25"># of calls
 
</th>
 
<th width="25">Status
 
</th>
 
<th width="225">Notes
 
</th></tr>
 
<tr>
 
<td>arch/arm/mach-rpc/dma.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>arch/arm/kernel/dma-isa.c</td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/parport/parport_pc.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/parport/parport_ip32.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/core/mad.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013  </td></tr>
 
<tr>
 
<td>drivers/atm/fore200e.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/tty/serial/msm_serial_hs.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/tty/serial/atmel_serial.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr> <td>drivers/tty/serial/mfd.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/spi/spi-stmp.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>File removed (not in 3.12-rc5) </td></tr>
 
<tr>
 
<td>drivers/dma/mv_xor.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/dmaengine.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/iop-adma.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/dw_dmac.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>File removed (not in 3.12-rc5) </td></tr>
 
<tr>
 
<td>drivers/dma/ioat/dma.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/dmatest.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/txx9dmac.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/mtd/nand/fsmc_nand.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/initio.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/isci/request.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/sgiwd93.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/sun_esp.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/jazz_esp.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/53c700.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/sun3x_esp.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/qla4xxx/ql4_os.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/host/whci/qset.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/musb/tusb6010_omap.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/musb/musb_gadget.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/core/usb.c </td>
 
<td> 1 </td>
 
<td> Cleanup </td>
 
<td> The code is #ifdef'ed out. It hasn't been used in many years; it should be removed. <a rel="nofollow" class="external free" href="https://lkml.org/lkml/2012/9/7/455">https://lkml.org/lkml/2012/9/7/455</a>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/gadget/mv_udc_core.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/gadget/mv_u3d_core.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/gadget/pch_udc.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/usb/gadget/fsl_qe_udc.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/video/grvga.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/staging/et131x/et131x.c </td>
 
<td> 9 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/mmc/host/mmc_spi.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/media/platform/vino.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 - file moved from media/video </td></tr>
 
<tr>
 
<td>drivers/gpu/drm/via/via_dmablit.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/vme/bridges/vme_tsi148.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/wireless/rt2x00/rt2x00queue.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/wireless/brcm80211/brcmsmac/dma.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/ibm/emac/core.c </td>
 
<td> 6 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sun/sunbmac.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sun/niu.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sun/sunhme.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sgi/meth.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/smsc/smc91x.h </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/smsc/smc911x.h </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/tundra/tsi108_eth.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/stmicro/stmmac/ring_mode.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/stmicro/stmmac/chain_mode.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/stmicro/stmmac/stmmac_main.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Partially fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/brocade/bna/bnad.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/ti/cpmac.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/ti/davinci_cpdma.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/mellanox/mlx4/en_tx.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/seeq/sgiseeq.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000/e1000_ethtool.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/fec_mpc52xx.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/fec.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>File removed (not in 3.12-rc5) </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/fec_main.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Might be old fec.c? </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/fec_mpc52xx.c.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>New since the last analysis </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c </td>
 
<td> 4 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/ucc_geth.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/freescale/gianfar.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/xilinx/ll_temac_main.c </td>
 
<td> 4 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/xilinx/xilinx_axienet_main.c </td>
 
<td> 4 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/lantiq_etop.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/renesas/sh_eth.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/realtek/8139cp.c </td>
 
<td> 5 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/marvell/mv643xx_eth.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/marvell/pxa168_eth.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/cadence/at91_ether.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/cadence/macb.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/dec/tulip/de4x5.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/i825xx/lib82596.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/octeon/octeon_mgmt.c </td>
 
<td> 4 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bcm63xx_enet.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/fddi/defxx.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/talitos.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/ixp4xx_crypto.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/picoxcell_crypto.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/bfin_crc.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/caam/ctrl.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/caam/caamrng.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>include/asm-generic/pci-dma-compat.h </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>do pci_map_single() callers check errors? Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>sound/soc/sh/fsi.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>sound/sparc/dbri.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/staging/et131x/et131x.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/scsi/advansys.c </td>
 
<td> 2 </td>
 
<td> Partially Broken </td>
 
<td> driver is still not properly converted to the DMA API - please read FIXME in this file for details on what is broken and what needs to be fixed.
 
</td></tr>
 
<tr>
 
<td>drivers/mmc/host/wbsd.c </td>
 
<td> 1 </td>
 
<td> Partially Broken </td>
 
<td> Checks returned address is aligned on 64k - however doesn't call dma_mapping_error() Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/ixgb/ixgb_main.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/igbvf/netdev.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/calxeda/xgmac.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/crypto/caam/caamhash.c </td>
 
<td> 20 </td>
 
<td> Partially Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/caam/caamalg.c </td>
 
<td> 13 </td>
 
<td> Partially Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>net/sunrpc/xprtrdma/verbs.c </td>
 
<td> 1 </td>
 
<td> Partially Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/mtd/onenand/omap2.c </td>
 
<td> 4 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/ibm/ibmveth.c </td>
 
<td> 6 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000e/netdev.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/dlink/sundance.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/xscale/ixp4xx_eth.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sfc/rx.c </td>
 
<td> 1 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c </td>
 
<td> 2 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/wan/ixp4xx_hss.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>arch/powerpc/platforms/cell/celleb_scc_pciex.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>arch/powerpc/platforms/cell/spider-pci.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>arch/c6x/include/asm/dma-mapping.h </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>arch/c6x/kernel/dma.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/hw/qib/qib_sdma.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/hw/qib/qib_verbs.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/hw/ipath/ipath_sdma.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/ipoib/ipoib_ib.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/ipoib/ipoib_cm.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/srpt/ib_srpt.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/iser/iser_initiator.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/iser/iscsi_iser.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/srp/ib_srp.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-au1550.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-atmel.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-omap2-mcspi.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-davinci.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-fsl-spi.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-pxa2xx.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/spi/spi-s3c64xx.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/dma/ste_dma40.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/dma/timb_dma.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/mtd/onenand/samsung.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/mtd/nand/gpmi-nand/gpmi-nand.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/mtd/nand/atmel_nand.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/mtd/nand/denali.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/scsi/ibmvscsi/ibmvstgt.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/scsi/ibmvscsi/ibmvfc.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/scsi/ibmvscsi/rpa_vscsi.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/scsi/ibmvscsi/ibmvscsi.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/scsi/aha1740.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/host/imx21-hcd.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/core/hcd.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/gadget/fusb300_udc.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/gadget/s3c-hsotg.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/gadget/udc-core.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/staging/rts_pstor/rtsx_transport.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/mmc/host/sdhci.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/media/video/videobuf-dma-contig.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/media/video/omap/omap_vout.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/firewire/ohci.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/firewire/sbp2.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/message/i2o/iop.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/ath/ath9k/xmit.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/ath/ath9k/beacon.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/ath/ath9k/recv.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/ath/ath5k/base.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/b43legacy/dma.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/b43/dma.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/iwlwifi/pcie/trans.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/wireless/iwlwifi/pcie/tx.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/aeroflex/greth.c </td>
 
<td> 5 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/natsemi/sonic.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/cirrus/ep93xx_eth.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/faraday/ftmac100.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/micrel/ks8842.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/micrel/ks8695net.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000e/ethtool.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/igb/igb_main.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000/e1000_main.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/ixgbe/ixgbe_main.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/toshiba/ps3_gelic_net.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/realtek/r8169.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sfc/tx.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/emulex/benet/be_main.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/chelsio/cxgb4vf/sge.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bnx2.c </td>
 
<td> 3 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/b44.c </td>
 
<td> 6 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/ps3/ps3stor_lib.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/atmel-tdes.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/atmel-sha.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/omap-aes.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/omap-sham.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/caam/jr.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/crypto/caam/key_gen.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>net/9p/trans_rdma.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr></table>
 
<h5><span class="editsection">[<a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit&amp;section=9" title="Edit section: dma map page() usages and error checking status">edit</a>]</span> <span class="mw-headline" id="dma_map_page.28.29_usages_and_error_checking_status"> dma_map_page() usages and error checking status </span></h5>
 
<p>The following table lists the source files that call dma_map_page() and whether or not dma mapping errors are checked on the returned address. Also includes the status that indicates the cases that are broken and need fixing. Observations and open issues if any are captured in the Notes column. Individual driver and module owners can assess the severity of the broken cases.
 
</p><p><br />
 
</p>
 
<table border="1" cellpadding="2">
 
<tr>
 
<th width="300">File Name
 
</th>
 
<th width="25"># of calls
 
</th>
 
<th width="25">Status
 
</th>
 
<th width="225">Notes
 
</th></tr>
 
<tr>
 
<td>crypto/async_tx/async_pq.c </td>
 
<td> 7 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>crypto/async_tx/async_memcpy.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>crypto/async_tx/async_memset.c </td>
 
<td> 4 </td>
 
<td> File removed </td>
 
<td>File removed (not in 3.12-rc5)
 
</td></tr>
 
<tr>
 
<td>crypto/async_tx/async_raid6_recov.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/mv_xor.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/dmaengine.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/iop-adma.c </td>
 
<td> 10 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/ioat/dma_v3.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/dma/ppc4xx/adma.c </td>
 
<td> 3 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/mtd/onenand/samsung.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/gpu/drm/omapdrm/omap_gem.c </td>
 
<td> 2 </td>
 
<td> Broken </td>
 
<td>driver moved from staging, Not fixed in 3.12-rc5 as of Oct 2013
 
</td></tr>
 
<tr>
 
<td>drivers/staging/sep/sep_main.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/mmc/host/mmc_spi.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/gpu/drm/via/via_dmablit.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/wireless/iwlwifi/pcie/rx.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/igbvf/netdev.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/emulex/benet/be_main.c </td>
 
<td> 1 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/crypto/amcc/crypto4xx_core.c </td>
 
<td> 5 </td>
 
<td> Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>net/sunrpc/xprtrdma/verbs.c </td>
 
<td> 1 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000e/netdev.c </td>
 
<td> 2 </td>
 
<td> <strong>FIXED</strong> </td>
 
<td>Good in 3.12-rc5
 
</td></tr>
 
<tr>
 
<td>net/sunrpc/xprtrdma/svc_rdma_sendto.c </td>
 
<td> 5 </td>
 
<td> Partially Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/infiniband/hw/qib/qib_user_sdma.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/infiniband/hw/ipath/ipath_user_sdma.c </td>
 
<td> 3 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/firewire/core-iso.c </td>
 
<td> 1 </td>
 
<td> Unmap Broken </td>
 
<td> Not fixed in 3.12-rc5 as of Oct 2013 - On failure, the callers are responsible for cleanup by calling fw_iso_buffer_destroy() eventually. ioctl_create_iso_context() doesn't do this correctly if it's called multiple times. <a rel="nofollow" class="external free" href="https://lkml.org/lkml/2012/9/10/76">https://lkml.org/lkml/2012/9/10/76</a>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sfc/rx.c </td>
 
<td> 1 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/chelsio/cxgb4vf/sge.c </td>
 
<td> 2 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/net/ethernet/chelsio/cxgb4/sge.c </td>
 
<td> 2 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>net/sunrpc/xprtrdma/svc_rdma_recvfrom.c </td>
 
<td> 2 </td>
 
<td> Unmap Broken </td>
 
<td>Not fixed in 3.12-rc5 as of Oct 2013 </td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/ipoib/ipoib_ib.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/infiniband/ulp/ipoib/ipoib_cm.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/firewire/ohci.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td> ar_context_release() takes care of cleanup. <a rel="nofollow" class="external free" href="https://lkml.org/lkml/2012/9/10/76">https://lkml.org/lkml/2012/9/10/76</a>
 
</td></tr>
 
<tr>
 
<td>drivers/message/i2o/memory.c </td>
 
<td> 4 </td>
 
<td> Good </td>
 
<td> i2o_dma_map_single() checks mapping error, but returns bad address - callers are expected to call dma_mapping_error() </td></tr>
 
<tr>
 
<td>drivers/scsi/cxgbi/libcxgbi.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/usb/core/hcd.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/staging/media/go7007/saa7134-go7007.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/faraday/ftmac100.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/mellanox/mlx4/en_rx.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/igb/igb_main.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/e1000/e1000_main.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/intel/ixgbe/ixgbe_main.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/sfc/tx.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>drivers/net/ethernet/broadcom/bnx2.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>net/rds/iw_recv.c </td>
 
<td> 1 </td>
 
<td> Good </td>
 
<td>
 
</td></tr>
 
<tr>
 
<td>net/sunrpc/xprtrdma/svc_rdma_transport.c </td>
 
<td> 2 </td>
 
<td> Good </td>
 
<td>
 
</td></tr></table>
 
 
<!--
 
NewPP limit report
 
Preprocessor visited node count: 34/1000000
 
Preprocessor generated node count: 40/1000000
 
Post‐expand include size: 0/2097152 bytes
 
Template argument size: 0/2097152 bytes
 
Highest expansion depth: 2/40
 
Expensive parser function count: 0/100
 
-->
 
 
<!-- Saved in parser cache with key driverdev_mediawiki:pcache:idhash:36-0!*!*!!en!*!* and timestamp 20130705004316 -->
 
</div> <!-- /bodycontent -->
 
<!-- printfooter -->
 
<div class="printfooter">
 
Retrieved from "<a href="http://linuxdriverproject.org/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;oldid=97">http://linuxdriverproject.org/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;oldid=97</a>" </div>
 
<!-- /printfooter -->
 
<!-- catlinks -->
 
<div id='catlinks' class='catlinks catlinks-allhidden'></div> <!-- /catlinks -->
 
<div class="visualClear"></div>
 
<!-- debughtml -->
 
<!-- /debughtml -->
 
</div>
 
<!-- /bodyContent -->
 
</div>
 
<!-- /content -->
 
<!-- header -->
 
<div id="mw-head" class="noprint">
 
 
<!-- 0 -->
 
<div id="p-personal" class="">
 
<h5>Personal tools</h5>
 
<ul>
 
<li id="pt-userpage"><a href="/mediawiki/index.php/User:Shuahkhan" class="new" title="Your user page [.]" accesskey=".">Shuahkhan</a></li>
 
<li id="pt-mytalk"><a href="/mediawiki/index.php/User_talk:Shuahkhan" title="Your talk page [n]" accesskey="n">Talk</a></li>
 
<li id="pt-preferences"><a href="/mediawiki/index.php/Special:Preferences" title="Your preferences">Preferences</a></li>
 
<li id="pt-watchlist"><a href="/mediawiki/index.php/Special:Watchlist" title="A list of pages you are monitoring for changes [l]" accesskey="l">Watchlist</a></li>
 
<li id="pt-mycontris"><a href="/mediawiki/index.php/Special:Contributions/Shuahkhan" title="A list of your contributions [y]" accesskey="y">Contributions</a></li>
 
<li id="pt-logout"><a href="/mediawiki/index.php?title=Special:UserLogout&amp;returnto=DMA+Mapping+Error+Analysis" title="Log out">Log out</a></li>
 
</ul>
 
</div>
 
 
<!-- /0 -->
 
<div id="left-navigation">
 
 
<!-- 0 -->
 
<div id="p-namespaces" class="vectorTabs">
 
<h5>Namespaces</h5>
 
<ul>
 
<li  id="ca-nstab-main" class="selected"><span><a href="/mediawiki/index.php/DMA_Mapping_Error_Analysis"  title="View the content page [c]" accesskey="c">Page</a></span></li>
 
<li  id="ca-talk" class="new"><span><a href="/mediawiki/index.php?title=Talk:DMA_Mapping_Error_Analysis&amp;action=edit&amp;redlink=1"  title="Discussion about the content page [t]" accesskey="t">Discussion</a></span></li>
 
</ul>
 
</div>
 
 
<!-- /0 -->
 
 
<!-- 1 -->
 
<div id="p-variants" class="vectorMenu emptyPortlet">
 
<h4>
 
</h4>
 
<h5><span>Variants</span><a href="#"></a></h5>
 
<div class="menu">
 
<ul>
 
</ul>
 
</div>
 
</div>
 
 
<!-- /1 -->
 
</div>
 
<div id="right-navigation">
 
 
<!-- 0 -->
 
<div id="p-views" class="vectorTabs">
 
<h5>Views</h5>
 
<ul>
 
<li id="ca-view" class="selected"><span><a href="/mediawiki/index.php/DMA_Mapping_Error_Analysis" >Read</a></span></li>
 
<li id="ca-edit"><span><a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=edit"  title="You can edit this page. Please use the preview button before saving [e]" accesskey="e">Edit</a></span></li>
 
<li id="ca-history" class="collapsible"><span><a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=history"  title="Past revisions of this page [h]" accesskey="h">View history</a></span></li>
 
</ul>
 
</div>
 
 
<!-- /0 -->
 
 
<!-- 1 -->
 
<div id="p-cactions" class="vectorMenu">
 
<h5><span>Actions</span><a href="#"></a></h5>
 
<div class="menu">
 
<ul>
 
<li id="ca-move"><a href="/mediawiki/index.php/Special:MovePage/DMA_Mapping_Error_Analysis"  title="Move this page [m]" accesskey="m">Move</a></li>
 
<li id="ca-watch"><a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;action=watch&amp;token=ac037e5a9d3bb67560a30bfa5f879e59%2B%5C"  title="Add this page to your watchlist [w]" accesskey="w">Watch</a></li>
 
</ul>
 
</div>
 
</div>
 
 
<!-- /1 -->
 
 
<!-- 2 -->
 
<div id="p-search">
 
<h5><label for="searchInput">Search</label></h5>
 
<form action="/mediawiki/index.php" id="searchform">
 
<div>
 
<input type="search" name="search" title="Search Linux Driver Project [f]" accesskey="f" id="searchInput" /> <input type="submit" name="go" value="Go" title="Go to a page with this exact name if exists" id="searchGoButton" class="searchButton" /> <input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton" /> <input type='hidden' name="title" value="Special:Search"/>
 
</div>
 
</form>
 
</div>
 
 
<!-- /2 -->
 
</div>
 
</div>
 
<!-- /header -->
 
<!-- panel -->
 
<div id="mw-panel" class="noprint">
 
<!-- logo -->
 
<div id="p-logo"><a style="background-image: url(/mediawiki/skins/common/images/LDP-135x160.png);" href="/mediawiki/index.php/Main_Page"  title="Visit the main page"></a></div>
 
<!-- /logo -->
 
 
<!-- navigation -->
 
<div class="portal" id='p-navigation'>
 
<h5>Navigation</h5>
 
<div class="body">
 
<ul>
 
<li id="n-mainpage-description"><a href="/mediawiki/index.php/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li>
 
<li id="n-portal"><a href="/mediawiki/index.php/Linux_Driver_Project:Community_portal" title="About the project, what you can do, where to find things">Community portal</a></li>
 
<li id="n-currentevents"><a href="/mediawiki/index.php/Linux_Driver_Project:Current_events" title="Find background information on current events">Current events</a></li>
 
<li id="n-recentchanges"><a href="/mediawiki/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li>
 
<li id="n-randompage"><a href="/mediawiki/index.php/Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li>
 
<li id="n-help"><a href="/mediawiki/index.php/Help:Contents" title="The place to find out">Help</a></li>
 
</ul>
 
</div>
 
</div>
 
 
<!-- /navigation -->
 
 
<!-- SEARCH -->
 
 
<!-- /SEARCH -->
 
 
<!-- TOOLBOX -->
 
<div class="portal" id='p-tb'>
 
<h5>Toolbox</h5>
 
<div class="body">
 
<ul>
 
<li id="t-whatlinkshere"><a href="/mediawiki/index.php/Special:WhatLinksHere/DMA_Mapping_Error_Analysis" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li>
 
<li id="t-recentchangeslinked"><a href="/mediawiki/index.php/Special:RecentChangesLinked/DMA_Mapping_Error_Analysis" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
 
<li id="t-upload"><a href="/mediawiki/index.php/Special:Upload" title="Upload files [u]" accesskey="u">Upload file</a></li>
 
<li id="t-specialpages"><a href="/mediawiki/index.php/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li>
 
<li id="t-print"><a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li>
 
<li id="t-permalink"><a href="/mediawiki/index.php?title=DMA_Mapping_Error_Analysis&amp;oldid=97" title="Permanent link to this revision of the page">Permanent link</a></li>
 
</ul>
 
</div>
 
</div>
 
 
<!-- /TOOLBOX -->
 
 
<!-- LANGUAGES -->
 
 
<!-- /LANGUAGES -->
 
</div>
 
<!-- /panel -->
 
<!-- footer -->
 
<div id="footer">
 
<ul id="footer-info">
 
<li id="footer-info-lastmod"> This page was last modified on 13 September 2012, at 23:19.</li>
 
<li id="footer-info-viewcount"><!-- begin links mediawiki --><!-- <a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989">mediawiki</a> --><a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989" style="display: none;">mediawiki</a><!-- <a href="http://www.ggstpeters.org/cgi-bin/depressant.cgi?faqid=7989">mediawiki</a> --><!-- end links mediawiki --><p>This page has been accessed 13,376 times.
 
</p></li>
 
</ul>
 
<ul id="footer-places">
 
<li id="footer-places-privacy"><a href="/mediawiki/index.php/Linux_Driver_Project:Privacy_policy" title="Linux Driver Project:Privacy policy">Privacy policy</a></li>
 
<li id="footer-places-about"><a href="/mediawiki/index.php/Linux_Driver_Project:About" title="Linux Driver Project:About">About Linux Driver Project</a></li>
 
<li id="footer-places-disclaimer"><a href="/mediawiki/index.php/Linux_Driver_Project:General_disclaimer" title="Linux Driver Project:General disclaimer">Disclaimers</a></li>
 
</ul>
 
<ul id="footer-icons" class="noprint">
 
<li id="footer-poweredbyico">
 
<a href="//www.mediawiki.org/"><img src="/mediawiki/skins/common/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a>
 
</li>
 
</ul>
 
<div style="clear:both"></div>
 
</div>
 
<!-- /footer -->
 
<script>if(window.mw){
 
mw.loader.state({"site":"loading","user":"missing","user.groups":"loading"});
 
}</script>
 
<script src="http://linuxdriverproject.org/mediawiki/load.php?debug=false&amp;lang=en&amp;modules=skins.vector&amp;only=scripts&amp;skin=vector&amp;*"></script>
 
<script>if(window.mw){
 
mw.loader.load(["mediawiki.user","mediawiki.page.ready","mediawiki.page.watch.ajax","mediawiki.searchSuggest"], null, true);
 
}</script>
 
<script>if(window.mw){
 
mw.loader.state({"site":"ready"});
 
}</script>
 
<script>if(window.mw){
 
mw.loader.state({"user.groups":"ready"});
 
}</script>
 
<script type="text/javascript">
 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
 
</script>
 
<script type="text/javascript">
 
var pageTracker = _gat._getTracker("UA-1917077-1");
 
pageTracker._trackPageview();
 
</script><!-- Served in 0.169 secs. -->
 
<script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"rpm-images.newrelic.com/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","d0863ed20c","1648197","ZwQGZkEAWUBZU0ZQWV5OMUBaTlpWXFlTTl9bCEtbXQVSSxZAWkk=",0,205,new Date().getTime(),"","","","",""]);</script>
 
</body>
 
</html>
 

Revision as of 13:22, 17 October 2013

mediawiki
mediawiki
mediawiki
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox