<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net, branch v3.2.61</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>net/mlx4_core: Preserve pci_dev_data after __mlx4_remove_one()</title>
<updated>2014-07-11T12:33:58+00:00</updated>
<author>
<name>Wei Yang</name>
<email>weiyang@linux.vnet.ibm.com</email>
</author>
<published>2014-06-01T07:25:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=63eed2fa66568ef3c85530d0c1d14812907aa7fe'/>
<id>63eed2fa66568ef3c85530d0c1d14812907aa7fe</id>
<content type='text'>
[ Upstream commit befdf8978accecac2e0739e6b5075afc62db37fe ]

This patch wrap up a helper function __mlx4_remove_one() which does the tear
down function but preserve the drv_data. Functions like
mlx4_pci_err_detected() and mlx4_restart_one() will call this one with out
releasing drvdata.

Signed-off-by: Wei Yang &lt;weiyang@linux.vnet.ibm.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit befdf8978accecac2e0739e6b5075afc62db37fe ]

This patch wrap up a helper function __mlx4_remove_one() which does the tear
down function but preserve the drv_data. Functions like
mlx4_pci_err_detected() and mlx4_restart_one() will call this one with out
releasing drvdata.

Signed-off-by: Wei Yang &lt;weiyang@linux.vnet.ibm.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mlx4_core: Stash PCI ID driver_data in mlx4_priv structure</title>
<updated>2014-07-11T12:33:58+00:00</updated>
<author>
<name>Wei Yang</name>
<email>weiyang@linux.vnet.ibm.com</email>
</author>
<published>2014-06-01T07:25:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cce11ac1f254935cb9e3914ac36ad0e3fe4c0767'/>
<id>cce11ac1f254935cb9e3914ac36ad0e3fe4c0767</id>
<content type='text'>
[ No upstream commit, this is a cherry picked backport enabler. ]

That way we can check flags later on, when we've finished with the
pci_device_id structure.

This is a backport.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ No upstream commit, this is a cherry picked backport enabler. ]

That way we can check flags later on, when we've finished with the
pci_device_id structure.

This is a backport.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>b43: fix frequency reported on G-PHY with /new/ firmware</title>
<updated>2014-07-11T12:33:53+00:00</updated>
<author>
<name>Rafał Miłecki</name>
<email>zajec5@gmail.com</email>
</author>
<published>2014-06-12T20:28:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e4d4e84fcb628436e36bedb5f75a852e13a5df75'/>
<id>e4d4e84fcb628436e36bedb5f75a852e13a5df75</id>
<content type='text'>
commit 2fc68eb122c7ea6cd5be1fe7d6650c0beb2f4f40 upstream.

Support for firmware rev 508+ was added years ago, but we never noticed
it reports channel in a different way for G-PHY devices. Instead of
offset from 2400 MHz it simply passes channel id (AKA hw_value).

So far it was (most probably) affecting monitor mode users only, but
the following recent commit made it noticeable for quite everybody:

commit 3afc2167f60a327a2c1e1e2600ef209a3c2b75b7
Author: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Date:   Tue Mar 4 16:50:13 2014 +0200

    cfg80211/mac80211: ignore signal if the frame was heard on wrong channel

Reported-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Signed-off-by: Rafał Miłecki &lt;zajec5@gmail.com&gt;
Tested-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2fc68eb122c7ea6cd5be1fe7d6650c0beb2f4f40 upstream.

Support for firmware rev 508+ was added years ago, but we never noticed
it reports channel in a different way for G-PHY devices. Instead of
offset from 2400 MHz it simply passes channel id (AKA hw_value).

So far it was (most probably) affecting monitor mode users only, but
the following recent commit made it noticeable for quite everybody:

commit 3afc2167f60a327a2c1e1e2600ef209a3c2b75b7
Author: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Date:   Tue Mar 4 16:50:13 2014 +0200

    cfg80211/mac80211: ignore signal if the frame was heard on wrong channel

Reported-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Signed-off-by: Rafał Miłecki &lt;zajec5@gmail.com&gt;
Tested-by: Aaro Koskinen &lt;aaro.koskinen@iki.fi&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: disable TKIP on USB</title>
<updated>2014-07-11T12:33:52+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-06-10T10:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=46b9b0e6598839525343d98aae525bcbf294e7bd'/>
<id>46b9b0e6598839525343d98aae525bcbf294e7bd</id>
<content type='text'>
commit 8edcb0ba0d56f5914eef11eda6db8bfe74eb9ca8 upstream.

On USB we can not get atomically TKIP key. We have to disable support
for TKIP acceleration on USB hardware to avoid bug as showed bellow.

[  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
&lt;snip&gt;
[  860.827280] Call Trace:
[  860.827282]  [&lt;ffffffff81682ea6&gt;] dump_stack+0x4d/0x66
[  860.827284]  [&lt;ffffffff8167eb9b&gt;] __schedule_bug+0x47/0x55
[  860.827285]  [&lt;ffffffff81685bb3&gt;] __schedule+0x733/0x7b0
[  860.827287]  [&lt;ffffffff81685c59&gt;] schedule+0x29/0x70
[  860.827289]  [&lt;ffffffff81684f8a&gt;] schedule_timeout+0x15a/0x2b0
[  860.827291]  [&lt;ffffffff8105ac50&gt;] ? ftrace_raw_event_tick_stop+0xc0/0xc0
[  860.827294]  [&lt;ffffffff810c13c2&gt;] ? __module_text_address+0x12/0x70
[  860.827296]  [&lt;ffffffff81686823&gt;] wait_for_completion_timeout+0xb3/0x140
[  860.827298]  [&lt;ffffffff81080fc0&gt;] ? wake_up_state+0x20/0x20
[  860.827301]  [&lt;ffffffff814d5b3d&gt;] usb_start_wait_urb+0x7d/0x150
[  860.827303]  [&lt;ffffffff814d5cd5&gt;] usb_control_msg+0xc5/0x110
[  860.827305]  [&lt;ffffffffa02fb0c6&gt;] rt2x00usb_vendor_request+0xc6/0x160  [rt2x00usb]
[  860.827307]  [&lt;ffffffffa02fb215&gt;] rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
[  860.827309]  [&lt;ffffffffa02fb393&gt;] rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
[  860.827311]  [&lt;ffffffffa023d1a3&gt;] rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
[  860.827314]  [&lt;ffffffffa05805f9&gt;] rt2800_get_tkip_seq+0x39/0x50  [rt2800lib]
[  860.827321]  [&lt;ffffffffa0480f88&gt;] ieee80211_get_key+0x218/0x2a0  [mac80211]
[  860.827322]  [&lt;ffffffff815cc68c&gt;] ? __nlmsg_put+0x6c/0x80
[  860.827329]  [&lt;ffffffffa051b02e&gt;] nl80211_get_key+0x22e/0x360 [cfg80211]

Reported-and-tested-by: Peter Wu &lt;lekensteyn@gmail.com&gt;
Reported-and-tested-by: Pontus Fuchs &lt;pontus.fuchs@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8edcb0ba0d56f5914eef11eda6db8bfe74eb9ca8 upstream.

On USB we can not get atomically TKIP key. We have to disable support
for TKIP acceleration on USB hardware to avoid bug as showed bellow.

[  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
&lt;snip&gt;
[  860.827280] Call Trace:
[  860.827282]  [&lt;ffffffff81682ea6&gt;] dump_stack+0x4d/0x66
[  860.827284]  [&lt;ffffffff8167eb9b&gt;] __schedule_bug+0x47/0x55
[  860.827285]  [&lt;ffffffff81685bb3&gt;] __schedule+0x733/0x7b0
[  860.827287]  [&lt;ffffffff81685c59&gt;] schedule+0x29/0x70
[  860.827289]  [&lt;ffffffff81684f8a&gt;] schedule_timeout+0x15a/0x2b0
[  860.827291]  [&lt;ffffffff8105ac50&gt;] ? ftrace_raw_event_tick_stop+0xc0/0xc0
[  860.827294]  [&lt;ffffffff810c13c2&gt;] ? __module_text_address+0x12/0x70
[  860.827296]  [&lt;ffffffff81686823&gt;] wait_for_completion_timeout+0xb3/0x140
[  860.827298]  [&lt;ffffffff81080fc0&gt;] ? wake_up_state+0x20/0x20
[  860.827301]  [&lt;ffffffff814d5b3d&gt;] usb_start_wait_urb+0x7d/0x150
[  860.827303]  [&lt;ffffffff814d5cd5&gt;] usb_control_msg+0xc5/0x110
[  860.827305]  [&lt;ffffffffa02fb0c6&gt;] rt2x00usb_vendor_request+0xc6/0x160  [rt2x00usb]
[  860.827307]  [&lt;ffffffffa02fb215&gt;] rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
[  860.827309]  [&lt;ffffffffa02fb393&gt;] rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
[  860.827311]  [&lt;ffffffffa023d1a3&gt;] rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
[  860.827314]  [&lt;ffffffffa05805f9&gt;] rt2800_get_tkip_seq+0x39/0x50  [rt2800lib]
[  860.827321]  [&lt;ffffffffa0480f88&gt;] ieee80211_get_key+0x218/0x2a0  [mac80211]
[  860.827322]  [&lt;ffffffff815cc68c&gt;] ? __nlmsg_put+0x6c/0x80
[  860.827329]  [&lt;ffffffffa051b02e&gt;] nl80211_get_key+0x22e/0x360 [cfg80211]

Reported-and-tested-by: Peter Wu &lt;lekensteyn@gmail.com&gt;
Reported-and-tested-by: Pontus Fuchs &lt;pontus.fuchs@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>can: peak_pci: prevent use after free at netdev removal</title>
<updated>2014-06-09T12:29:14+00:00</updated>
<author>
<name>Stephane Grosjean</name>
<email>s.grosjean@peak-system.com</email>
</author>
<published>2014-05-20T09:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f15c1e78cd172ba3a1e5049efcc8fbcb54198234'/>
<id>f15c1e78cd172ba3a1e5049efcc8fbcb54198234</id>
<content type='text'>
commit 0b5a958cf4df3a5cd578b861471e62138f55c85e upstream.

As remarked by Christopher R. Baker in his post at

http://marc.info/?l=linux-can&amp;m=139707295706465&amp;w=2

there's a possibility for an use after free condition at device removal.

This simplified patch introduces an additional variable to prevent the issue.
Thanks for catching this.

Reported-by: Christopher R. Baker &lt;cbaker@rec.ri.cmu.edu&gt;
Signed-off-by: Stephane Grosjean &lt;s.grosjean@peak-system.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 0b5a958cf4df3a5cd578b861471e62138f55c85e upstream.

As remarked by Christopher R. Baker in his post at

http://marc.info/?l=linux-can&amp;m=139707295706465&amp;w=2

there's a possibility for an use after free condition at device removal.

This simplified patch introduces an additional variable to prevent the issue.
Thanks for catching this.

Reported-by: Christopher R. Baker &lt;cbaker@rec.ri.cmu.edu&gt;
Signed-off-by: Stephane Grosjean &lt;s.grosjean@peak-system.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>can: peak_pci: Fix the way channels are linked together</title>
<updated>2014-06-09T12:29:14+00:00</updated>
<author>
<name>Stephane Grosjean</name>
<email>s.grosjean@peak-system.com</email>
</author>
<published>2012-02-01T10:05:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b0bcd33beba3ebaceda3524e9872f106fde868de'/>
<id>b0bcd33beba3ebaceda3524e9872f106fde868de</id>
<content type='text'>
commit 29830406415c227a54af429d7b300aabd4754237 upstream.

Change the way channels objects are linked together by peak_pci_probe()
avoiding any kernel oops when driver is removed. Side effect is that
the list is now browsed from last to first channel.

Signed-off-by: Stephane Grosjean &lt;s.grosjean@peak-system.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 29830406415c227a54af429d7b300aabd4754237 upstream.

Change the way channels objects are linked together by peak_pci_probe()
avoiding any kernel oops when driver is removed. Side effect is that
the list is now browsed from last to first channel.

Signed-off-by: Stephane Grosjean &lt;s.grosjean@peak-system.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init()</title>
<updated>2014-06-09T12:29:05+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2014-04-26T20:59:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=21d2e13e30c300e1a9eca42723454d67901bf58f'/>
<id>21d2e13e30c300e1a9eca42723454d67901bf58f</id>
<content type='text'>
commit 3234f5b06fc3094176a86772cc64baf3decc98fc upstream.

Fixes: a53268be0cb9 ('rtlwifi: rtl8192cu: Fix too long disable of IRQs')
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3234f5b06fc3094176a86772cc64baf3decc98fc upstream.

Fixes: a53268be0cb9 ('rtlwifi: rtl8192cu: Fix too long disable of IRQs')
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
</pre>
</div>
</content>
</entry>
<entry>
<title>rtlwifi: rtl8192cu: Fix too long disable of IRQs</title>
<updated>2014-06-09T12:29:05+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2014-03-04T22:53:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b65a5347670630ec3230d6f90d28d136c7afc797'/>
<id>b65a5347670630ec3230d6f90d28d136c7afc797</id>
<content type='text'>
commit a53268be0cb9763f11da4f6fe3fb924cbe3a7d4a upstream.

In commit f78bccd79ba3cd9d9664981b501d57bdb81ab8a4 entitled "rtlwifi:
rtl8192ce: Fix too long disable of IRQs", Olivier Langlois
&lt;olivier@trillion01.com&gt; fixed a problem caused by an extra long disabling
of interrupts. This patch makes the same fix for rtl8192cu.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a53268be0cb9763f11da4f6fe3fb924cbe3a7d4a upstream.

In commit f78bccd79ba3cd9d9664981b501d57bdb81ab8a4 entitled "rtlwifi:
rtl8192ce: Fix too long disable of IRQs", Olivier Langlois
&lt;olivier@trillion01.com&gt; fixed a problem caused by an extra long disabling
of interrupts. This patch makes the same fix for rtl8192cu.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: fix beaconing on USB</title>
<updated>2014-06-09T12:29:01+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-04-17T09:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=908db6fb4818e6fb8ceff9c6e36d1a41f318512f'/>
<id>908db6fb4818e6fb8ceff9c6e36d1a41f318512f</id>
<content type='text'>
commit 8834d3608cc516f13e2e510f4057c263f3d2ce42 upstream.

When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8834d3608cc516f13e2e510f4057c263f3d2ce42 upstream.

When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>skb: Add inline helper for getting the skb end offset from head</title>
<updated>2014-06-09T12:29:00+00:00</updated>
<author>
<name>Alexander Duyck</name>
<email>alexander.h.duyck@intel.com</email>
</author>
<published>2012-05-04T14:26:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=93a1554e0ca3cbabfb90d8d6edeb1680597283a3'/>
<id>93a1554e0ca3cbabfb90d8d6edeb1680597283a3</id>
<content type='text'>
[ Upstream commit ec47ea82477404631d49b8e568c71826c9b663ac ]

With the recent changes for how we compute the skb truesize it occurs to me
we are probably going to have a lot of calls to skb_end_pointer -
skb-&gt;head.  Instead of running all over the place doing that it would make
more sense to just make it a separate inline skb_end_offset(skb) that way
we can return the correct value without having gcc having to do all the
optimization to cancel out skb-&gt;head - skb-&gt;head.

Signed-off-by: Alexander Duyck &lt;alexander.h.duyck@intel.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit ec47ea82477404631d49b8e568c71826c9b663ac ]

With the recent changes for how we compute the skb truesize it occurs to me
we are probably going to have a lot of calls to skb_end_pointer -
skb-&gt;head.  Instead of running all over the place doing that it would make
more sense to just make it a separate inline skb_end_offset(skb) that way
we can return the correct value without having gcc having to do all the
optimization to cancel out skb-&gt;head - skb-&gt;head.

Signed-off-by: Alexander Duyck &lt;alexander.h.duyck@intel.com&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
