<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/usb, branch v3.3.1</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usbnet: don't clear urb-&gt;dev in tx_complete</title>
<updated>2012-04-02T17:32:08+00:00</updated>
<author>
<name>tom.leiming@gmail.com</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2012-03-22T03:22:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7554abe5f1333ed5a0ebe269f60a218456e2cc52'/>
<id>7554abe5f1333ed5a0ebe269f60a218456e2cc52</id>
<content type='text'>
commit 5d5440a835710d09f0ef18da5000541ec98b537a upstream.

URB unlinking is always racing with its completion and tx_complete
may be called before or during running usb_unlink_urb, so tx_complete
must not clear urb-&gt;dev since it will be used in unlink path,
otherwise invalid memory accesses or usb device leak may be caused
inside usb_unlink_urb.

Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

URB unlinking is always racing with its completion and tx_complete
may be called before or during running usb_unlink_urb, so tx_complete
must not clear urb-&gt;dev since it will be used in unlink path,
otherwise invalid memory accesses or usb device leak may be caused
inside usb_unlink_urb.

Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: increase URB reference count before usb_unlink_urb</title>
<updated>2012-04-02T17:32:08+00:00</updated>
<author>
<name>tom.leiming@gmail.com</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2012-03-22T03:22:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e46b91af06a359af8b3610a6da5c85fcaa4dc4be'/>
<id>e46b91af06a359af8b3610a6da5c85fcaa4dc4be</id>
<content type='text'>
commit 0956a8c20b23d429e79ff86d4325583fc06f9eb4 upstream.

Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock, but it makes usb_unlink_urb
racing with defer_bh, and the URB to being unlinked may be freed before
or during calling usb_unlink_urb, so use-after-free problem may be
triggerd inside usb_unlink_urb.

The patch fixes the use-after-free problem by increasing URB
reference count with skb queue lock held before calling
usb_unlink_urb, so the URB won't be freed until return from
usb_unlink_urb.

Cc: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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

Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock, but it makes usb_unlink_urb
racing with defer_bh, and the URB to being unlinked may be freed before
or during calling usb_unlink_urb, so use-after-free problem may be
triggerd inside usb_unlink_urb.

The patch fixes the use-after-free problem by increasing URB
reference count with skb queue lock held before calling
usb_unlink_urb, so the URB won't be freed until return from
usb_unlink_urb.

Cc: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net/usbnet: reserve headroom on rx skbs</title>
<updated>2012-03-16T09:01:05+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2012-03-14T06:56:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7bdd402706cf26bfef9050dfee3f229b7f33ee4f'/>
<id>7bdd402706cf26bfef9050dfee3f229b7f33ee4f</id>
<content type='text'>
network drivers should reserve some headroom on incoming skbs so that we
dont need expensive reallocations, eg forwarding packets in tunnels.

This NET_SKB_PAD padding is done in various helpers, like
__netdev_alloc_skb_ip_align() in this patch, combining NET_SKB_PAD and
NET_IP_ALIGN magic.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Oliver Neukum &lt;oneukum@suse.de&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
network drivers should reserve some headroom on incoming skbs so that we
dont need expensive reallocations, eg forwarding packets in tunnels.

This NET_SKB_PAD padding is done in various helpers, like
__netdev_alloc_skb_ip_align() in this patch, combining NET_SKB_PAD and
NET_IP_ALIGN magic.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Oliver Neukum &lt;oneukum@suse.de&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: asix: Patch for Sitecom LN-031</title>
<updated>2012-03-11T22:52:12+00:00</updated>
<author>
<name>Joerg Neikes</name>
<email>j.neikes@midlandgate.de</email>
</author>
<published>2012-03-08T22:44:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4e50391968849860dff1aacde358b4eb14aa5127'/>
<id>4e50391968849860dff1aacde358b4eb14aa5127</id>
<content type='text'>
This patch adds support for the Sitecom LN-031 USB adapter with a AX88178 chip.

Added USB id to find correct driver for AX88178 1000 Ethernet adapter.

Signed-off-by: Joerg Neikes &lt;j.neikes@midlandgate.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for the Sitecom LN-031 USB adapter with a AX88178 chip.

Added USB id to find correct driver for AX88178 1000 Ethernet adapter.

Signed-off-by: Joerg Neikes &lt;j.neikes@midlandgate.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/usbnet: avoid recursive locking in usbnet_stop()</title>
<updated>2012-03-08T08:49:29+00:00</updated>
<author>
<name>Sebastian Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2012-03-07T10:19:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4231d47e6fe69f061f96c98c30eaf9fb4c14b96d'/>
<id>4231d47e6fe69f061f96c98c30eaf9fb4c14b96d</id>
<content type='text'>
|kernel BUG at kernel/rtmutex.c:724!
|[&lt;c029599c&gt;] (rt_spin_lock_slowlock+0x108/0x2bc) from [&lt;c01c2330&gt;] (defer_bh+0x1c/0xb4)
|[&lt;c01c2330&gt;] (defer_bh+0x1c/0xb4) from [&lt;c01c3afc&gt;] (rx_complete+0x14c/0x194)
|[&lt;c01c3afc&gt;] (rx_complete+0x14c/0x194) from [&lt;c01cac88&gt;] (usb_hcd_giveback_urb+0xa0/0xf0)
|[&lt;c01cac88&gt;] (usb_hcd_giveback_urb+0xa0/0xf0) from [&lt;c01e1ff4&gt;] (musb_giveback+0x34/0x40)
|[&lt;c01e1ff4&gt;] (musb_giveback+0x34/0x40) from [&lt;c01e2b1c&gt;] (musb_advance_schedule+0xb4/0x1c0)
|[&lt;c01e2b1c&gt;] (musb_advance_schedule+0xb4/0x1c0) from [&lt;c01e2ca8&gt;] (musb_cleanup_urb.isra.9+0x80/0x8c)
|[&lt;c01e2ca8&gt;] (musb_cleanup_urb.isra.9+0x80/0x8c) from [&lt;c01e2ed0&gt;] (musb_urb_dequeue+0xec/0x108)
|[&lt;c01e2ed0&gt;] (musb_urb_dequeue+0xec/0x108) from [&lt;c01cbb90&gt;] (unlink1+0xbc/0xcc)
|[&lt;c01cbb90&gt;] (unlink1+0xbc/0xcc) from [&lt;c01cc2ec&gt;] (usb_hcd_unlink_urb+0x54/0xa8)
|[&lt;c01cc2ec&gt;] (usb_hcd_unlink_urb+0x54/0xa8) from [&lt;c01c2a84&gt;] (unlink_urbs.isra.17+0x2c/0x58)
|[&lt;c01c2a84&gt;] (unlink_urbs.isra.17+0x2c/0x58) from [&lt;c01c2b44&gt;] (usbnet_terminate_urbs+0x94/0x10c)
|[&lt;c01c2b44&gt;] (usbnet_terminate_urbs+0x94/0x10c) from [&lt;c01c2d68&gt;] (usbnet_stop+0x100/0x15c)
|[&lt;c01c2d68&gt;] (usbnet_stop+0x100/0x15c) from [&lt;c020f718&gt;] (__dev_close_many+0x94/0xc8)

defer_bh() takes the lock which is hold during unlink_urbs(). The safe
walk suggest that the skb will be removed from the list and this is done
by defer_bh() so it seems to be okay to drop the lock here.

Cc: stable@kernel.org
Reported-by: AnÃ­bal Almeida Pinto &lt;anibal.pinto@efacec.com&gt;
Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Acked-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
|kernel BUG at kernel/rtmutex.c:724!
|[&lt;c029599c&gt;] (rt_spin_lock_slowlock+0x108/0x2bc) from [&lt;c01c2330&gt;] (defer_bh+0x1c/0xb4)
|[&lt;c01c2330&gt;] (defer_bh+0x1c/0xb4) from [&lt;c01c3afc&gt;] (rx_complete+0x14c/0x194)
|[&lt;c01c3afc&gt;] (rx_complete+0x14c/0x194) from [&lt;c01cac88&gt;] (usb_hcd_giveback_urb+0xa0/0xf0)
|[&lt;c01cac88&gt;] (usb_hcd_giveback_urb+0xa0/0xf0) from [&lt;c01e1ff4&gt;] (musb_giveback+0x34/0x40)
|[&lt;c01e1ff4&gt;] (musb_giveback+0x34/0x40) from [&lt;c01e2b1c&gt;] (musb_advance_schedule+0xb4/0x1c0)
|[&lt;c01e2b1c&gt;] (musb_advance_schedule+0xb4/0x1c0) from [&lt;c01e2ca8&gt;] (musb_cleanup_urb.isra.9+0x80/0x8c)
|[&lt;c01e2ca8&gt;] (musb_cleanup_urb.isra.9+0x80/0x8c) from [&lt;c01e2ed0&gt;] (musb_urb_dequeue+0xec/0x108)
|[&lt;c01e2ed0&gt;] (musb_urb_dequeue+0xec/0x108) from [&lt;c01cbb90&gt;] (unlink1+0xbc/0xcc)
|[&lt;c01cbb90&gt;] (unlink1+0xbc/0xcc) from [&lt;c01cc2ec&gt;] (usb_hcd_unlink_urb+0x54/0xa8)
|[&lt;c01cc2ec&gt;] (usb_hcd_unlink_urb+0x54/0xa8) from [&lt;c01c2a84&gt;] (unlink_urbs.isra.17+0x2c/0x58)
|[&lt;c01c2a84&gt;] (unlink_urbs.isra.17+0x2c/0x58) from [&lt;c01c2b44&gt;] (usbnet_terminate_urbs+0x94/0x10c)
|[&lt;c01c2b44&gt;] (usbnet_terminate_urbs+0x94/0x10c) from [&lt;c01c2d68&gt;] (usbnet_stop+0x100/0x15c)
|[&lt;c01c2d68&gt;] (usbnet_stop+0x100/0x15c) from [&lt;c020f718&gt;] (__dev_close_many+0x94/0xc8)

defer_bh() takes the lock which is hold during unlink_urbs(). The safe
walk suggest that the skb will be removed from the list and this is done
by defer_bh() so it seems to be okay to drop the lock here.

Cc: stable@kernel.org
Reported-by: AnÃ­bal Almeida Pinto &lt;anibal.pinto@efacec.com&gt;
Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Acked-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Logitech Harmony 900 from cdc_ether to zaurus</title>
<updated>2012-02-22T20:50:23+00:00</updated>
<author>
<name>Scott Talbert</name>
<email>talbert@techie.net</email>
</author>
<published>2012-02-21T13:06:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ee932bf9acb2e2c6a309e808000f24856330e3f9'/>
<id>ee932bf9acb2e2c6a309e808000f24856330e3f9</id>
<content type='text'>
In the current kernel implementation, the Logitech Harmony 900 remote
control is matched to the cdc_ether driver through the generic
USB_CDC_SUBCLASS_MDLM entry.  However, this device appears to be of the
pseudo-MDLM (Belcarra) type, rather than the standard one.  This patch
blacklists the Harmony 900 from the cdc_ether driver and whitelists it for
the pseudo-MDLM driver in zaurus.

Signed-off-by: Scott Talbert &lt;talbert@techie.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the current kernel implementation, the Logitech Harmony 900 remote
control is matched to the cdc_ether driver through the generic
USB_CDC_SUBCLASS_MDLM entry.  However, this device appears to be of the
pseudo-MDLM (Belcarra) type, rather than the standard one.  This patch
blacklists the Harmony 900 from the cdc_ether driver and whitelists it for
the pseudo-MDLM driver in zaurus.

Signed-off-by: Scott Talbert &lt;talbert@techie.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>hso: memsetting wrong data in hso_get_count()</title>
<updated>2012-02-22T20:31:54+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2012-02-21T21:30:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=22ad7499bc9297e47c8779bf5523694f28338499'/>
<id>22ad7499bc9297e47c8779bf5523694f28338499</id>
<content type='text'>
The intent was to clear out the icount struct here, but we accidentally
clear stack memory instead.  It probably will lead to a NULL dereference
right away.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The intent was to clear out the icount struct here, but we accidentally
clear stack memory instead.  It probably will lead to a NULL dereference
right away.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>zaurus: Add ID for C-750/C-760/C-860/SL-C3000 PDA in MDLM mode</title>
<updated>2012-02-21T20:27:23+00:00</updated>
<author>
<name>Dave Jones</name>
<email>davej@redhat.com</email>
</author>
<published>2012-02-20T17:28:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=15103aa7a033d7d671c75cc3a71d772dbcbae61e'/>
<id>15103aa7a033d7d671c75cc3a71d772dbcbae61e</id>
<content type='text'>
In 16adf5d07987d93675945f3cecf0e33706566005 I removed an over-broad
alias that caused zaurus.ko to bind to unrelated devices.
I had a report that at least one valid case no longer auto-loads because of this.
This patch adds an ID for that case.

Reported-by: Raphael Wimmer &lt;raphael.wimmer@ur.de&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In 16adf5d07987d93675945f3cecf0e33706566005 I removed an over-broad
alias that caused zaurus.ko to bind to unrelated devices.
I had a report that at least one valid case no longer auto-loads because of this.
This patch adds an ID for that case.

Reported-by: Raphael Wimmer &lt;raphael.wimmer@ur.de&gt;
Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipheth: Add iPhone 4S</title>
<updated>2012-02-15T19:50:16+00:00</updated>
<author>
<name>Tim Gardner</name>
<email>tim.gardner@canonical.com</email>
</author>
<published>2012-02-15T07:50:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=72ba009b8a159e995e40d3b4e5d7d265acead983'/>
<id>72ba009b8a159e995e40d3b4e5d7d265acead983</id>
<content type='text'>
BugLink: http://bugs.launchpad.net/bugs/900802

Cc: stable@vger.kernel.org 3.2+
Signed-off-by: Till Kamppeter &lt;till.kamppeter@gmail.com&gt;
Signed-off-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BugLink: http://bugs.launchpad.net/bugs/900802

Cc: stable@vger.kernel.org 3.2+
Signed-off-by: Till Kamppeter &lt;till.kamppeter@gmail.com&gt;
Signed-off-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>asix: fix setting custom MAC address on Asix 88178 devices</title>
<updated>2012-01-10T22:59:48+00:00</updated>
<author>
<name>Jussi Kivilinna</name>
<email>jussi.kivilinna@mbnet.fi</email>
</author>
<published>2012-01-10T06:40:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=71bc5d94061516c4e70303570128797bcf768b10'/>
<id>71bc5d94061516c4e70303570128797bcf768b10</id>
<content type='text'>
In kernel v3.2 initialization sequence for Asix 88178 devices was changed so
that hardware is reseted on every time interface is brought up (ifconfig up),
instead just at USB probe time. This causes problem with setting custom MAC
address to device as ax88178_reset causes reload of MAC address from EEPROM.

This patch fixes the issue by rewriting MAC address at end of ax88178_reset.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Acked-by: Grant Grundler &lt;grundler@chromium.org&gt;
Cc: Allan Chou &lt;allan@asix.com.tw&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In kernel v3.2 initialization sequence for Asix 88178 devices was changed so
that hardware is reseted on every time interface is brought up (ifconfig up),
instead just at USB probe time. This causes problem with setting custom MAC
address to device as ax88178_reset causes reload of MAC address from EEPROM.

This patch fixes the issue by rewriting MAC address at end of ax88178_reset.

Signed-off-by: Jussi Kivilinna &lt;jussi.kivilinna@mbnet.fi&gt;
Acked-by: Grant Grundler &lt;grundler@chromium.org&gt;
Cc: Allan Chou &lt;allan@asix.com.tw&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
