<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/bluetooth, branch v2.6.32.29</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/bluetooth?h=v2.6.32.29</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/bluetooth?h=v2.6.32.29'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-11-22T18:47:30Z</updated>
<entry>
<title>bluetooth: Fix missing NULL check</title>
<updated>2010-11-22T18:47:30Z</updated>
<author>
<name>Alan Cox</name>
<email>alan@linux.intel.com</email>
</author>
<published>2010-10-22T13:11:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3502405eb88b9086acd4fe1dc5113122a19a2bb8'/>
<id>urn:sha1:3502405eb88b9086acd4fe1dc5113122a19a2bb8</id>
<content type='text'>
commit c19483cc5e56ac5e22dd19cf25ba210ab1537773 upstream.

Fortunately this is only exploitable on very unusual hardware.

[Reported a while ago but nothing happened so just fixing it]

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Added support for controller shipped with iMac i5</title>
<updated>2010-08-13T20:19:47Z</updated>
<author>
<name>Cyril Lacoux</name>
<email>clacoux@ifeelgood.org</email>
</author>
<published>2010-07-14T06:29:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fb384e34f912f6da79f048ea474e8125c76e272c'/>
<id>urn:sha1:fb384e34f912f6da79f048ea474e8125c76e272c</id>
<content type='text'>
commit 0a79f67445de50ca0a8dc1d34f3cc406d89c28b2 upstream.

Device class is ff(vend.) instead of e0(wlcon).

Output from command `usb-devices`:
T:  Bus=01 Lev=03 Prnt=03 Port=00 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=05ac ProdID=8215 Rev=01.82
S:  Manufacturer=Apple Inc.
S:  Product=Bluetooth USB Host Controller
S:  SerialNumber=7C6D62936607
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)

Signed-off-by: Cyril Lacoux &lt;clacoux@ifeelgood.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Prevent ill-timed autosuspend in USB driver</title>
<updated>2010-01-06T23:03:43Z</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2009-12-16T18:23:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f661c3feba2d9455614d64ba0f73f182a1b39456'/>
<id>urn:sha1:f661c3feba2d9455614d64ba0f73f182a1b39456</id>
<content type='text'>
commit 652fd781a52ad6e24b908cd8b83d12699754f253 upstream.

The device must be marked busy as it receives data.

Signed-off-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Tested-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>fix memory leak in fixed btusb_close</title>
<updated>2009-11-14T20:57:08Z</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2009-11-13T13:26:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b8e2c1db0f358bc389dd1ee4633a92d80a5a6d0'/>
<id>urn:sha1:7b8e2c1db0f358bc389dd1ee4633a92d80a5a6d0</id>
<content type='text'>
If the waker is killed before it can replay outstanding URBs, these URBs
won't be freed or will be replayed at the next open.  This patch closes
the window by explicitely discarding outstanding URBs.

Signed-off-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>btusb bluetooth driver: wait for 'waker' work too before closing</title>
<updated>2009-11-11T21:32:29Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-11-11T21:32:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=404291ac9e72d118fcadeb939a69b2caa0a0e9ca'/>
<id>urn:sha1:404291ac9e72d118fcadeb939a69b2caa0a0e9ca</id>
<content type='text'>
Rafael debugged a resume-time hang (with oopses in workqueue handling)
on his laptop that was due to the 'waker' workqueue entry being
disconnected and then released without the workqueue entry having been
synchronized.

Several people were involved, with Oleg Nesterov doing a debugging patch
showing what workqueue entry was corrupt etc.

This was a regression introduced by commit 7bee549e19 ("Bluetooth: Add
USB autosuspend support to btusb driver") as Rafael points out (not
actually bisected, but it became clear once the bug was found).

Tested-and-reported-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pcmcia: dtl1_cs: fix pcmcia_loop_config logic</title>
<updated>2009-09-15T17:17:16Z</updated>
<author>
<name>Philipp Zabel</name>
<email>philipp.zabel@gmail.com</email>
</author>
<published>2009-02-27T16:54:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cb6dbd79628a53e66352387b53b426fa88640bfe'/>
<id>urn:sha1:cb6dbd79628a53e66352387b53b426fa88640bfe</id>
<content type='text'>
pcmcia_loop_config returns 0 on success.

[wsa: added '&lt; 0' for better readability]

Signed-off-by: Philipp Zabel &lt;philipp.zabel@gmail.com&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add USB autosuspend support to btusb driver</title>
<updated>2009-08-24T23:31:24Z</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2009-08-24T21:44:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7bee549e197c9c0e92b89857a409675c1d5e9dff'/>
<id>urn:sha1:7bee549e197c9c0e92b89857a409675c1d5e9dff</id>
<content type='text'>
This patch adds support of USB autosuspend to the btusb driver.

If the device doesn't support remote wakeup, simple support based on
up/down is provided. If the device supports remote wakeup, additional
support for autosuspend while the interface is up is provided. This is
done by queueing URBs in an anchor structure and waking the device up
from a work queue on sending. Reception triggers remote wakeup.

The last busy facility of the USB autosuspend code is used. To close
a race between autosuspend and transmission, a counter of ongoing
transmissions is maintained.

Add #ifdefs for CONFIG_PM as necessary.

Signed-off-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Tested-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Fix false errors from bcsp_pkt_cull function</title>
<updated>2009-08-24T20:32:32Z</updated>
<author>
<name>Wending Weng</name>
<email>wweng@rheinmetall.ca</email>
</author>
<published>2009-08-24T20:05:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d2e353f7c3c5fbb3add0341c10ae167ee745d23b'/>
<id>urn:sha1:d2e353f7c3c5fbb3add0341c10ae167ee745d23b</id>
<content type='text'>
The error message "Removed only %u out of %u pkts" is printed when multiple
to be acked packets are queued.

    if (i++ &gt;= pkts_to_be_removed)
            break;

This will break out of the loop and increase the counter i when
i==pkts_to_be_removed and the loop ends up with i=pkts_to_be_removed+1.

The following line

    if (i != pkts_to_be_removed) {
            BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed);
    }

will then display the false message.

The counter i must not increase on the same statement.

Signed-off-by: Wending Weng &lt;wweng@rheinmetall.ca&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add missing kmalloc NULL tests to Marvell driver</title>
<updated>2009-08-22T21:33:22Z</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-08-06T20:05:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5959809ded86e267c1a95fb44738a224c30d3434'/>
<id>urn:sha1:5959809ded86e267c1a95fb44738a224c30d3434</id>
<content type='text'>
Check that the result of kmalloc is not NULL before dereferencing it.
The patch also replaces kmalloc + memset by kzalloc.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@
expression *x;
identifier f;
constant char *C;
@@

x = \(kmalloc\|kcalloc\|kzalloc\)(...);
... when != x == NULL
    when != x != NULL
    when != (x || ...)
(
kfree(x)
|
f(...,C,...,x,...)
|
*f(...,x,...)
|
*x-&gt;f
)
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Fix incorrect alignment in Marvell BT-over-SDIO driver</title>
<updated>2009-08-22T21:25:34Z</updated>
<author>
<name>Bing Zhao</name>
<email>bzhao@marvell.com</email>
</author>
<published>2009-07-08T18:44:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3318b2362bf0528be77123c480249663557dfbfc'/>
<id>urn:sha1:3318b2362bf0528be77123c480249663557dfbfc</id>
<content type='text'>
The driver uses "u32" for alignment check and calculation which
works only on 32-bit system. It will crash the 64-bit system.
Replace "u32" with "unsigned long" to fix this issue.

Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
</feed>
