<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/usb/host/whci, branch v3.2.68</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>usb: fix number of mapped SG DMA entries</title>
<updated>2012-01-12T19:29:43+00:00</updated>
<author>
<name>Clemens Ladisch</name>
<email>clemens@ladisch.de</email>
</author>
<published>2011-12-03T22:41:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4781ace0ddff8057f2c1bf1811ae4886f8b88876'/>
<id>4781ace0ddff8057f2c1bf1811ae4886f8b88876</id>
<content type='text'>
commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.

Add a new field num_mapped_sgs to struct urb so that we have a place to
store the number of mapped entries and can also retain the original
value of entries in num_sgs.  Previously, usb_hcd_map_urb_for_dma()
would overwrite this with the number of mapped entries, which would
break dma_unmap_sg() because it requires the original number of entries.

This fixes warnings like the following when using USB storage devices:
 ------------[ cut here ]------------
 WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
 ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
 Modules linked in: ohci_hcd ehci_hcd
 Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff81036d3b&gt;] warn_slowpath_common+0x80/0x98
  [&lt;ffffffff81036de7&gt;] warn_slowpath_fmt+0x41/0x43
  [&lt;ffffffff811fa5ae&gt;] check_unmap+0x4e4/0x695
  [&lt;ffffffff8105e92c&gt;] ? trace_hardirqs_off+0xd/0xf
  [&lt;ffffffff8147208b&gt;] ? _raw_spin_unlock_irqrestore+0x33/0x50
  [&lt;ffffffff811fa84a&gt;] debug_dma_unmap_sg+0xeb/0x117
  [&lt;ffffffff8137b02f&gt;] usb_hcd_unmap_urb_for_dma+0x71/0x188
  [&lt;ffffffff8137b166&gt;] unmap_urb_for_dma+0x20/0x22
  [&lt;ffffffff8137b1c5&gt;] usb_hcd_giveback_urb+0x5d/0xc0
  [&lt;ffffffffa0000d02&gt;] ehci_urb_done+0xf7/0x10c [ehci_hcd]
  [&lt;ffffffffa0001140&gt;] qh_completions+0x429/0x4bd [ehci_hcd]
  [&lt;ffffffffa000340a&gt;] ehci_work+0x95/0x9c0 [ehci_hcd]
  ...
 ---[ end trace f29ac88a5a48c580 ]---
 Mapped at:
  [&lt;ffffffff811faac4&gt;] debug_dma_map_sg+0x45/0x139
  [&lt;ffffffff8137bc0b&gt;] usb_hcd_map_urb_for_dma+0x22e/0x478
  [&lt;ffffffff8137c494&gt;] usb_hcd_submit_urb+0x63f/0x6fa
  [&lt;ffffffff8137d01c&gt;] usb_submit_urb+0x2c7/0x2de
  [&lt;ffffffff8137dcd4&gt;] usb_sg_wait+0x55/0x161

Signed-off-by: Clemens Ladisch &lt;clemens@ladisch.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.

Add a new field num_mapped_sgs to struct urb so that we have a place to
store the number of mapped entries and can also retain the original
value of entries in num_sgs.  Previously, usb_hcd_map_urb_for_dma()
would overwrite this with the number of mapped entries, which would
break dma_unmap_sg() because it requires the original number of entries.

This fixes warnings like the following when using USB storage devices:
 ------------[ cut here ]------------
 WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
 ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
 Modules linked in: ohci_hcd ehci_hcd
 Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff81036d3b&gt;] warn_slowpath_common+0x80/0x98
  [&lt;ffffffff81036de7&gt;] warn_slowpath_fmt+0x41/0x43
  [&lt;ffffffff811fa5ae&gt;] check_unmap+0x4e4/0x695
  [&lt;ffffffff8105e92c&gt;] ? trace_hardirqs_off+0xd/0xf
  [&lt;ffffffff8147208b&gt;] ? _raw_spin_unlock_irqrestore+0x33/0x50
  [&lt;ffffffff811fa84a&gt;] debug_dma_unmap_sg+0xeb/0x117
  [&lt;ffffffff8137b02f&gt;] usb_hcd_unmap_urb_for_dma+0x71/0x188
  [&lt;ffffffff8137b166&gt;] unmap_urb_for_dma+0x20/0x22
  [&lt;ffffffff8137b1c5&gt;] usb_hcd_giveback_urb+0x5d/0xc0
  [&lt;ffffffffa0000d02&gt;] ehci_urb_done+0xf7/0x10c [ehci_hcd]
  [&lt;ffffffffa0001140&gt;] qh_completions+0x429/0x4bd [ehci_hcd]
  [&lt;ffffffffa000340a&gt;] ehci_work+0x95/0x9c0 [ehci_hcd]
  ...
 ---[ end trace f29ac88a5a48c580 ]---
 Mapped at:
  [&lt;ffffffff811faac4&gt;] debug_dma_map_sg+0x45/0x139
  [&lt;ffffffff8137bc0b&gt;] usb_hcd_map_urb_for_dma+0x22e/0x478
  [&lt;ffffffff8137c494&gt;] usb_hcd_submit_urb+0x63f/0x6fa
  [&lt;ffffffff8137d01c&gt;] usb_submit_urb+0x2c7/0x2de
  [&lt;ffffffff8137dcd4&gt;] usb_sg_wait+0x55/0x161

Signed-off-by: Clemens Ladisch &lt;clemens@ladisch.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: whci-hcd: fix endian conversion in qset_clear()</title>
<updated>2011-11-27T03:56:48+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2011-11-22T07:28:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8746c83d538cab273d335acb2be226d096f4a5af'/>
<id>8746c83d538cab273d335acb2be226d096f4a5af</id>
<content type='text'>
qset-&gt;qh.link is an __le64 field and we should be using cpu_to_le64()
to fill it.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
qset-&gt;qh.link is an __le64 field and we should be using cpu_to_le64()
to fill it.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed</title>
<updated>2011-10-31T23:31:25+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-05-27T13:56:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f940fcd8eadfe5b909a1474b57de7755edeee62b'/>
<id>f940fcd8eadfe5b909a1474b57de7755edeee62b</id>
<content type='text'>
With module.h being implicitly everywhere via device.h, the absence
of explicitly including something for EXPORT_SYMBOL went unnoticed.
Since we are heading to fix things up and clean module.h from the
device.h file, we need to explicitly include these files now.

Use the lightweight version of the header that has just THIS_MODULE
and EXPORT_SYMBOL variants.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With module.h being implicitly everywhere via device.h, the absence
of explicitly including something for EXPORT_SYMBOL went unnoticed.
Since we are heading to fix things up and clean module.h from the
device.h file, we need to explicitly include these files now.

Use the lightweight version of the header that has just THIS_MODULE
and EXPORT_SYMBOL variants.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: Add module.h to drivers/usb consumers who really use it.</title>
<updated>2011-10-31T23:31:25+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-07-03T20:09:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6eb0de827084060e6607c8f8542d9e9566214538'/>
<id>6eb0de827084060e6607c8f8542d9e9566214538</id>
<content type='text'>
The situation up to this point meant that module.h was pretty
much everywhere, regardless of whether you asked for it or not.
We are fixing that, so give the USB folks who want it an actual
include of it.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The situation up to this point meant that module.h was pretty
much everywhere, regardless of whether you asked for it or not.
We are fixing that, so give the USB folks who want it an actual
include of it.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>treewide: Convert uses of struct resource to resource_size(ptr)</title>
<updated>2011-06-10T12:55:36+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2011-06-09T16:13:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=28f65c11f2ffb3957259dece647a24f8ad2e241b'/>
<id>28f65c11f2ffb3957259dece647a24f8ad2e241b</id>
<content type='text'>
Several fixes as well where the +1 was missing.

Done via coccinelle scripts like:

@@
struct resource *ptr;
@@

- ptr-&gt;end - ptr-&gt;start + 1
+ resource_size(ptr)

and some grep and typing.

Mostly uncompiled, no cross-compilers.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several fixes as well where the +1 was missing.

Done via coccinelle scripts like:

@@
struct resource *ptr;
@@

- ptr-&gt;end - ptr-&gt;start + 1
+ resource_size(ptr)

and some grep and typing.

Mostly uncompiled, no cross-compilers.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix common misspellings</title>
<updated>2011-03-31T14:26:23+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: whci-hcd: fix compiler warning</title>
<updated>2010-12-10T22:18:35+00:00</updated>
<author>
<name>Namhyung Kim</name>
<email>namhyung@gmail.com</email>
</author>
<published>2010-12-06T16:03:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8170344cb8aaa726bf1afae83288946b7cfcb556'/>
<id>8170344cb8aaa726bf1afae83288946b7cfcb556</id>
<content type='text'>
Annotate whci_hcd_id_table as '__used' to fix following warning:

  CC      drivers/usb/host/whci/hcd.o
drivers/usb/host/whci/hcd.c:359: warning: ‘whci_hcd_id_table’ defined but not used

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Annotate whci_hcd_id_table as '__used' to fix following warning:

  CC      drivers/usb/host/whci/hcd.o
drivers/usb/host/whci/hcd.c:359: warning: ‘whci_hcd_id_table’ defined but not used

Signed-off-by: Namhyung Kim &lt;namhyung@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: makefile cleanup</title>
<updated>2010-10-22T17:22:07+00:00</updated>
<author>
<name>matt mooney</name>
<email>mfm@muteddisk.com</email>
</author>
<published>2010-10-07T02:03:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0a2b8a0d1101179fdebc974a7c72b514aede9d9d'/>
<id>0a2b8a0d1101179fdebc974a7c72b514aede9d9d</id>
<content type='text'>
For all modules, change &lt;module&gt;-objs to &lt;module&gt;-y; remove
if-statements and replace with lists using the kbuild idiom; move
flags to the top of the file; and fix alignment while trying to
maintain the original scheme in each file.

None of the dependencies are modified.

Signed-off-by: matt mooney &lt;mfm@muteddisk.com&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For all modules, change &lt;module&gt;-objs to &lt;module&gt;-y; remove
if-statements and replace with lists using the kbuild idiom; move
flags to the top of the file; and fix alignment while trying to
maintain the original scheme in each file.

None of the dependencies are modified.

Signed-off-by: matt mooney &lt;mfm@muteddisk.com&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: convert usb_hcd bitfields into atomic flags</title>
<updated>2010-08-10T21:35:37+00:00</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2010-06-22T20:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=541c7d432f76771079e7c295d596ea47cc6a3030'/>
<id>541c7d432f76771079e7c295d596ea47cc6a3030</id>
<content type='text'>
This patch (as1393) converts several of the single-bit fields in
struct usb_hcd to atomic flags.  This is for safety's sake; not all
CPUs can update bitfield values atomically, and these flags are used
in multiple contexts.

The flag fields that are set only during registration or removal can
remain as they are, since non-atomic accesses at those times will not
cause any problems.

(Strictly speaking, the authorized_default flag should become atomic
as well.  I didn't bother with it because it gets changed only via
sysfs.  It can be done later, if anyone wants.)

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch (as1393) converts several of the single-bit fields in
struct usb_hcd to atomic flags.  This is for safety's sake; not all
CPUs can update bitfield values atomically, and these flags are used
in multiple contexts.

The flag fields that are set only during registration or removal can
remain as they are, since non-atomic accesses at those times will not
cause any problems.

(Strictly speaking, the authorized_default flag should become atomic
as well.  I didn't bother with it because it gets changed only via
sysfs.  It can be done later, if anyone wants.)

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: host: Eliminate NULL dereference</title>
<updated>2010-08-10T21:35:34+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2010-05-27T16:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dc6eb27bdd3d214568f7d77a317c202c10222511'/>
<id>dc6eb27bdd3d214568f7d77a317c202c10222511</id>
<content type='text'>
The test above allows std to be NULL, so check that std is not NULL before
doing the dereference.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@r exists@
expression E,E1;
identifier f;
statement S1,S2,S3;
@@

if ((E == NULL &amp;&amp; ...) || ...)
{
  ... when != if (...) S1 else S2
      when != E = E1
* E-&gt;f
  ... when any
}
else S3
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test above allows std to be NULL, so check that std is not NULL before
doing the dereference.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@r exists@
expression E,E1;
identifier f;
statement S1,S2,S3;
@@

if ((E == NULL &amp;&amp; ...) || ...)
{
  ... when != if (...) S1 else S2
      when != E = E1
* E-&gt;f
  ... when any
}
else S3
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
</feed>
