Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 1a595394b241504ff370a8d12ebfcea7 > files > 5157

kernel-doc-3.11.10-100.fc18.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>usb_poison_urb</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="The Linux-USB Host Side API" /><link rel="up" href="usbcore.html" title="Chapter&#160;5.&#160;USB Core APIs" /><link rel="prev" href="API-usb-kill-urb.html" title="usb_kill_urb" /><link rel="next" href="API-usb-block-urb.html" title="usb_block_urb" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">usb_poison_urb</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-usb-kill-urb.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;5.&#160;USB Core APIs</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-usb-block-urb.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="API-usb-poison-urb"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>usb_poison_urb &#8212; 
     reliably kill a transfer and prevent further use of an URB
 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">usb_poison_urb </strong>(</code></td><td>struct urb * <var class="pdparam">urb</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a id="idm140259812399680"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>urb</code></em></span></dt><dd><p>
     pointer to URB describing a previously submitted request,
     may be NULL
    </p></dd></dl></div></div><div class="refsect1"><a id="idm140259812396528"></a><h2>Description</h2><p>
   This routine cancels an in-progress request.  It is guaranteed that
   upon return all completion handlers will have finished and the URB
   will be totally idle and cannot be reused.  These features make
   this an ideal way to stop I/O in a <code class="function">disconnect</code> callback.
   If the request has not already finished or been unlinked
   the completion handler will see urb-&gt;status == -ENOENT.
   </p><p>

   After and while the routine runs, attempts to resubmit the URB will fail
   with error -EPERM.  Thus even if the URB's completion handler always
   tries to resubmit, it will not succeed and the URB will become idle.
   </p><p>

   The URB must not be deallocated while this routine is running.  In
   particular, when a driver calls this routine, it must insure that the
   completion handler cannot deallocate the URB.
   </p><p>

   This routine may not be used in an interrupt context (such as a bottom
   half or a completion handler), or when holding a spinlock, or in other
   situations where the caller can't <code class="function">schedule</code>.
   </p><p>

   This routine should not be called by a driver after its disconnect
   method has returned.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-usb-kill-urb.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="usbcore.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-usb-block-urb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">usb_kill_urb</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">usb_block_urb</span></td></tr></table></div></body></html>