<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net, branch v3.12.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/net?h=v3.12.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/net?h=v3.12.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-11-29T19:28:11Z</updated>
<entry>
<title>rt2800usb: slow down TX status polling</title>
<updated>2013-11-29T19:28:11Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2013-10-18T09:36:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3cc3e73bfa6c0ed687ec72bb2fde011806fbc1c1'/>
<id>urn:sha1:3cc3e73bfa6c0ed687ec72bb2fde011806fbc1c1</id>
<content type='text'>
commit 36165fd5b00bf8163f89c21bb16a3e9834555b10 upstream.

Polling TX statuses too frequently has two negative effects. First is
randomly peek CPU usage, causing overall system functioning delays.
Second bad effect is that device is not able to fill TX statuses in
H/W register on some workloads and we get lot of timeouts like below:

ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2
ieee80211 phy4: rt2800usb_entry_txstatus_timeout: Warning - TX status timeout for entry 7 in queue 2
ieee80211 phy4: rt2800usb_txdone: Warning - Got TX status for an empty queue 2, dropping

This not only cause flood of messages in dmesg, but also bad throughput,
since rate scaling algorithm can not work optimally.

In the future, we should probably make polling interval be adjusted
automatically, but for now just increase values, this make mentioned
problems gone.

Resolve:
https://bugzilla.kernel.org/show_bug.cgi?id=62781

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rt2x00: fix HT TX descriptor settings regression</title>
<updated>2013-11-29T19:27:57Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2013-10-31T10:23:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6d14a2d03eb0be6b9a5e0cbb380b1960caddc315'/>
<id>urn:sha1:6d14a2d03eb0be6b9a5e0cbb380b1960caddc315</id>
<content type='text'>
commit 3d8bfe141be8e5c21261fc63da8e7964d44f2645 upstream.

Since:

commit 36323f817af0376c78612cfdab714b0feb05fea5
Author: Thomas Huehn &lt;thomas@net.t-labs.tu-berlin.de&gt;
Date:   Mon Jul 23 21:33:42 2012 +0200

    mac80211: move TX station pointer and restructure TX

we do not pass sta pointer to rt2x00queue_create_tx_descriptor_ht(),
hence we do not correctly set station WCID and AMPDU density parameters.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rt2x00: rt2800lib: fix VGC adjustment for RT5592</title>
<updated>2013-11-29T19:27:57Z</updated>
<author>
<name>Gabor Juhos</name>
<email>juhosg@openwrt.org</email>
</author>
<published>2013-10-03T18:00:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0a5ca4781d76e01b026749f9d2478eebc75db687'/>
<id>urn:sha1:0a5ca4781d76e01b026749f9d2478eebc75db687</id>
<content type='text'>
commit 0beb1bbf19c72f17809e42b8f33522a55c2cc18c upstream.

In commit 3d81535ea5940446510a8a5cee1c6ad23c90c753
(rt2800: 5592: add chip specific vgc calculations)
the rt2800_link_tuner function has been modified to
adjust VGC level for the RT5592 chipset.

On the RT5592 chipset, the VGC level must be adjusted
only if rssi is greater than -65. However the current
code adjusts the VGC value by 0x10 regardless of the
actual chipset if the rssi value is between -80 and
-65.

Fix the broken behaviour by reordering the if-else
statements.

Signed-off-by: Gabor Juhos &lt;juhosg@openwrt.org&gt;
Acked-by: Stanislaw Gruszka &lt;stf_xl@wp.pl&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rt2x00: check if device is still available on rt2x00mac_flush()</title>
<updated>2013-11-29T19:27:57Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>stf_xl@wp.pl</email>
</author>
<published>2013-10-15T12:31:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6394ca8c095a308a2cc76c4e9536b1b9663ddb9f'/>
<id>urn:sha1:6394ca8c095a308a2cc76c4e9536b1b9663ddb9f</id>
<content type='text'>
commit 5671ab05cf2a579218985ef56595387932d78ee4 upstream.

Fix random kernel panic with below messages when remove dongle.

[ 2212.355447] BUG: unable to handle kernel NULL pointer dereference at 0000000000000250
[ 2212.355527] IP: [&lt;ffffffffa02667f2&gt;] rt2x00usb_kick_tx_entry+0x12/0x160 [rt2x00usb]
[ 2212.355599] PGD 0
[ 2212.355626] Oops: 0000 [#1] SMP
[ 2212.355664] Modules linked in: rt2800usb rt2x00usb rt2800lib crc_ccitt rt2x00lib mac80211 cfg80211 tun arc4 fuse rfcomm bnep snd_hda_codec_realtek snd_hda_intel snd_hda_codec btusb uvcvideo bluetooth snd_hwdep x86_pkg_temp_thermal snd_seq coretemp aesni_intel aes_x86_64 snd_seq_device glue_helper snd_pcm ablk_helper videobuf2_vmalloc sdhci_pci videobuf2_memops videobuf2_core sdhci videodev mmc_core serio_raw snd_page_alloc microcode i2c_i801 snd_timer hid_multitouch thinkpad_acpi lpc_ich mfd_core snd tpm_tis wmi tpm tpm_bios soundcore acpi_cpufreq i915 i2c_algo_bit drm_kms_helper drm i2c_core video [last unloaded: cfg80211]
[ 2212.356224] CPU: 0 PID: 34 Comm: khubd Not tainted 3.12.0-rc3-wl+ #3
[ 2212.356268] Hardware name: LENOVO 3444CUU/3444CUU, BIOS G6ET93WW (2.53 ) 02/04/2013
[ 2212.356319] task: ffff880212f687c0 ti: ffff880212f66000 task.ti: ffff880212f66000
[ 2212.356392] RIP: 0010:[&lt;ffffffffa02667f2&gt;]  [&lt;ffffffffa02667f2&gt;] rt2x00usb_kick_tx_entry+0x12/0x160 [rt2x00usb]
[ 2212.356481] RSP: 0018:ffff880212f67750  EFLAGS: 00010202
[ 2212.356519] RAX: 000000000000000c RBX: 000000000000000c RCX: 0000000000000293
[ 2212.356568] RDX: ffff8801f4dc219a RSI: 0000000000000000 RDI: 0000000000000240
[ 2212.356617] RBP: ffff880212f67778 R08: ffffffffa02667e0 R09: 0000000000000002
[ 2212.356665] R10: 0001f95254ab4b40 R11: ffff880212f675be R12: ffff8801f4dc2150
[ 2212.356712] R13: 0000000000000000 R14: ffffffffa02667e0 R15: 000000000000000d
[ 2212.356761] FS:  0000000000000000(0000) GS:ffff88021e200000(0000) knlGS:0000000000000000
[ 2212.356813] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2212.356852] CR2: 0000000000000250 CR3: 0000000001a0c000 CR4: 00000000001407f0
[ 2212.356899] Stack:
[ 2212.356917]  000000000000000c ffff8801f4dc2150 0000000000000000 ffffffffa02667e0
[ 2212.356980]  000000000000000d ffff880212f677b8 ffffffffa03a31ad ffff8801f4dc219a
[ 2212.357038]  ffff8801f4dc2150 0000000000000000 ffff8800b93217a0 ffff8801f49bc800
[ 2212.357099] Call Trace:
[ 2212.357122]  [&lt;ffffffffa02667e0&gt;] ? rt2x00usb_interrupt_txdone+0x90/0x90 [rt2x00usb]
[ 2212.357174]  [&lt;ffffffffa03a31ad&gt;] rt2x00queue_for_each_entry+0xed/0x170 [rt2x00lib]
[ 2212.357244]  [&lt;ffffffffa026701c&gt;] rt2x00usb_kick_queue+0x5c/0x60 [rt2x00usb]
[ 2212.357314]  [&lt;ffffffffa03a3682&gt;] rt2x00queue_flush_queue+0x62/0xa0 [rt2x00lib]
[ 2212.357386]  [&lt;ffffffffa03a2930&gt;] rt2x00mac_flush+0x30/0x70 [rt2x00lib]
[ 2212.357470]  [&lt;ffffffffa04edded&gt;] ieee80211_flush_queues+0xbd/0x140 [mac80211]
[ 2212.357555]  [&lt;ffffffffa0502e52&gt;] ieee80211_set_disassoc+0x2d2/0x3d0 [mac80211]
[ 2212.357645]  [&lt;ffffffffa0506da3&gt;] ieee80211_mgd_deauth+0x1d3/0x240 [mac80211]
[ 2212.357718]  [&lt;ffffffff8108b17c&gt;] ? try_to_wake_up+0xec/0x290
[ 2212.357788]  [&lt;ffffffffa04dbd18&gt;] ieee80211_deauth+0x18/0x20 [mac80211]
[ 2212.357872]  [&lt;ffffffffa0418ddc&gt;] cfg80211_mlme_deauth+0x9c/0x140 [cfg80211]
[ 2212.357913]  [&lt;ffffffffa041907c&gt;] cfg80211_mlme_down+0x5c/0x60 [cfg80211]
[ 2212.357962]  [&lt;ffffffffa041cd18&gt;] cfg80211_disconnect+0x188/0x1a0 [cfg80211]
[ 2212.358014]  [&lt;ffffffffa04013bc&gt;] ? __cfg80211_stop_sched_scan+0x1c/0x130 [cfg80211]
[ 2212.358067]  [&lt;ffffffffa03f8954&gt;] cfg80211_leave+0xc4/0xe0 [cfg80211]
[ 2212.358124]  [&lt;ffffffffa03f8d1b&gt;] cfg80211_netdev_notifier_call+0x3ab/0x5e0 [cfg80211]
[ 2212.358177]  [&lt;ffffffff815140f8&gt;] ? inetdev_event+0x38/0x510
[ 2212.358217]  [&lt;ffffffff81085a94&gt;] ? __wake_up+0x44/0x50
[ 2212.358254]  [&lt;ffffffff8155995c&gt;] notifier_call_chain+0x4c/0x70
[ 2212.358293]  [&lt;ffffffff81081156&gt;] raw_notifier_call_chain+0x16/0x20
[ 2212.358361]  [&lt;ffffffff814b6dd5&gt;] call_netdevice_notifiers_info+0x35/0x60
[ 2212.358429]  [&lt;ffffffff814b6ec9&gt;] __dev_close_many+0x49/0xd0
[ 2212.358487]  [&lt;ffffffff814b7028&gt;] dev_close_many+0x88/0x100
[ 2212.358546]  [&lt;ffffffff814b8150&gt;] rollback_registered_many+0xb0/0x220
[ 2212.358612]  [&lt;ffffffff814b8319&gt;] unregister_netdevice_many+0x19/0x60
[ 2212.358694]  [&lt;ffffffffa04d8eb2&gt;] ieee80211_remove_interfaces+0x112/0x190 [mac80211]
[ 2212.358791]  [&lt;ffffffffa04c585f&gt;] ieee80211_unregister_hw+0x4f/0x100 [mac80211]
[ 2212.361994]  [&lt;ffffffffa03a1221&gt;] rt2x00lib_remove_dev+0x161/0x1a0 [rt2x00lib]
[ 2212.365240]  [&lt;ffffffffa0266e2e&gt;] rt2x00usb_disconnect+0x2e/0x70 [rt2x00usb]
[ 2212.368470]  [&lt;ffffffff81419ce4&gt;] usb_unbind_interface+0x64/0x1c0
[ 2212.371734]  [&lt;ffffffff813b446f&gt;] __device_release_driver+0x7f/0xf0
[ 2212.374999]  [&lt;ffffffff813b4503&gt;] device_release_driver+0x23/0x30
[ 2212.378131]  [&lt;ffffffff813b3c98&gt;] bus_remove_device+0x108/0x180
[ 2212.381358]  [&lt;ffffffff813b0565&gt;] device_del+0x135/0x1d0
[ 2212.384454]  [&lt;ffffffff81417760&gt;] usb_disable_device+0xb0/0x270
[ 2212.387451]  [&lt;ffffffff8140d9cd&gt;] usb_disconnect+0xad/0x1d0
[ 2212.390294]  [&lt;ffffffff8140f6cd&gt;] hub_thread+0x63d/0x1660
[ 2212.393034]  [&lt;ffffffff8107c860&gt;] ? wake_up_atomic_t+0x30/0x30
[ 2212.395728]  [&lt;ffffffff8140f090&gt;] ? hub_port_debounce+0x130/0x130
[ 2212.398412]  [&lt;ffffffff8107baa0&gt;] kthread+0xc0/0xd0
[ 2212.401058]  [&lt;ffffffff8107b9e0&gt;] ? insert_kthread_work+0x40/0x40
[ 2212.403639]  [&lt;ffffffff8155de3c&gt;] ret_from_fork+0x7c/0xb0
[ 2212.406193]  [&lt;ffffffff8107b9e0&gt;] ? insert_kthread_work+0x40/0x40
[ 2212.408732] Code: 24 58 08 00 00 bf 80 00 00 00 e8 3a c3 e0 e0 5b 41 5c 5d c3 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41 55 41 54 53 &lt;48&gt; 8b 47 10 48 89 fb 4c 8b 6f 28 4c 8b 20 49 8b 04 24 4c 8b 30
[ 2212.414671] RIP  [&lt;ffffffffa02667f2&gt;] rt2x00usb_kick_tx_entry+0x12/0x160 [rt2x00usb]
[ 2212.417646]  RSP &lt;ffff880212f67750&gt;
[ 2212.420547] CR2: 0000000000000250
[ 2212.441024] ---[ end trace 5442918f33832bce ]---

Signed-off-by: Stanislaw Gruszka &lt;stf_xl@wp.pl&gt;
Acked-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rt2x00: fix a crash bug in the HT descriptor handling fix</title>
<updated>2013-11-29T19:27:57Z</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2013-11-14T20:33:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=de6b1b244f4fa801a1e16a5a7fab89fcc7668b69'/>
<id>urn:sha1:de6b1b244f4fa801a1e16a5a7fab89fcc7668b69</id>
<content type='text'>
commit b4089d6d8e71a7293e2192025dfa507a04f661c4 upstream.

Commit "rt2x00: fix HT TX descriptor settings regression"
assumes that the control parameter to rt2x00mac_tx is always non-NULL.
There is an internal call in rt2x00lib_bc_buffer_iter where NULL is
passed. Fix the resulting crash by adding an initialized dummy on-stack
ieee80211_tx_control struct.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Acked-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>alx: Reset phy speed after resume</title>
<updated>2013-11-29T19:27:53Z</updated>
<author>
<name>hahnjo</name>
<email>hahnjo@hahnjo.de</email>
</author>
<published>2013-11-12T17:19:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bc164db77f30782171c1ed9571cb22da459a316c'/>
<id>urn:sha1:bc164db77f30782171c1ed9571cb22da459a316c</id>
<content type='text'>
commit b54629e226d196e802abdd30c5e34f2a47cddcf2 upstream.

This fixes bug 62491 (https://bugzilla.kernel.org/show_bug.cgi?id=62491).
After resuming some users got the following error flooding the kernel log:
alx 0000:02:00.0: invalid PHY speed/duplex: 0xffff

Signed-off-by: Jonas Hahnfeld &lt;linux@hahnjo.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: hahnjo &lt;linux@hahnjo.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>can: c_can: Fix RX message handling, handle lost message before EOB</title>
<updated>2013-11-29T19:27:53Z</updated>
<author>
<name>Markus Pargmann</name>
<email>mpa@pengutronix.de</email>
</author>
<published>2013-10-28T08:54:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=621c5bc9a544edf847440736f75900ecc1021c9d'/>
<id>urn:sha1:621c5bc9a544edf847440736f75900ecc1021c9d</id>
<content type='text'>
commit 5d0f801a2ccec3b1fdabc3392c8d99ed0413d216 upstream.

If we handle end of block messages with higher priority than a lost message,
we can run into an endless interrupt loop.

This is reproducable with a am335x processor and "cansequence -r" at 1Mbit.
As soon as we loose a packet we can't escape from an interrupt loop.

This patch fixes the problem by handling lost packets before EOB packets.

Signed-off-by: Markus Pargmann &lt;mpa@pengutronix.de&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>can: kvaser_usb: fix usb endpoints detection</title>
<updated>2013-11-29T19:27:52Z</updated>
<author>
<name>Olivier Sobrie</name>
<email>olivier@sobrie.be</email>
</author>
<published>2013-10-27T21:07:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5a9007740a12827ead4b6131782d731986831a18'/>
<id>urn:sha1:5a9007740a12827ead4b6131782d731986831a18</id>
<content type='text'>
commit 896e23bd04ea50a146dffd342e2f96180f0812a5 upstream.

Some devices, like the Kvaser Memorator Professional, have several bulk in
endpoints. Only the first one found must be used by the driver. The same holds
for the bulk out endpoint. The official Kvaser driver (leaf) was used as
reference for this patch.

Signed-off-by: Olivier Sobrie &lt;olivier@sobrie.be&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>libertas: potential oops in debugfs</title>
<updated>2013-11-29T19:27:52Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2013-10-30T17:12:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0f6ff65ed8d3630118c3149a4fbc493dd3b8fdc4'/>
<id>urn:sha1:0f6ff65ed8d3630118c3149a4fbc493dd3b8fdc4</id>
<content type='text'>
commit a497e47d4aec37aaf8f13509f3ef3d1f6a717d88 upstream.

If we do a zero size allocation then it will oops.  Also we can't be
sure the user passes us a NUL terminated string so I've added a
terminator.

This code can only be triggered by root.

Reported-by: Nico Golde &lt;nico@ngolde.de&gt;
Reported-by: Fabian Yamaguchi &lt;fabs@goesec.de&gt;
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Dan Williams &lt;dcbw@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures</title>
<updated>2013-11-20T20:37:36Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2013-10-27T21:02:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=28803de32124109eba3b6f5c2fc4b58481082108'/>
<id>urn:sha1:28803de32124109eba3b6f5c2fc4b58481082108</id>
<content type='text'>
[ Upstream commit 262e827fe745642589450ae241b7afd3912c3f25 ]

The length calculation here is now invalid on 32-bit architectures,
since sk_buff::tail is a pointer and sk_buff::transport_header is
an integer offset:

drivers/net/ethernet/chelsio/cxgb3/sge.c: In function 'write_ofld_wr':
drivers/net/ethernet/chelsio/cxgb3/sge.c:1603:9: warning: passing argument 4 of 'make_sgl' makes integer from pointer without a cast [enabled by default]
         adap-&gt;pdev);
         ^
drivers/net/ethernet/chelsio/cxgb3/sge.c:964:28: note: expected 'unsigned int' but argument is of type 'sk_buff_data_t'
 static inline unsigned int make_sgl(const struct sk_buff *skb,
                            ^

Use the appropriate skb accessor functions.

Compile-tested only.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Fixes: 1a37e412a022 ('net: Use 16bits for *_headers fields of struct skbuff')
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
