<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net, branch v2.6.34.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/net?h=v2.6.34.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/net?h=v2.6.34.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-08-02T17:30:23Z</updated>
<entry>
<title>ath5k: initialize ah-&gt;ah_current_channel</title>
<updated>2010-08-02T17:30:23Z</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2010-06-18T17:15:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3bc3620722100d2c49a64fca8d33dc0615caf499'/>
<id>urn:sha1:3bc3620722100d2c49a64fca8d33dc0615caf499</id>
<content type='text'>
commit b6855772f4a22c4fbdd4fcaceff5c8a527035123 upstream.

ath5k assumes ah_current_channel is always a valid pointer in
several places, but a newly created interface may not have a
channel.  To avoid null pointer dereferences, set it up to point
to the first available channel until later reconfigured.

This fixes the following oops:
$ rmmod ath5k
$ insmod ath5k
$ iw phy0 set distance 11000

BUG: unable to handle kernel NULL pointer dereference at 00000006
IP: [&lt;d0a1ff24&gt;] ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k]
*pde = 00000000
Oops: 0000 [#1]
last sysfs file: /sys/devices/pci0000:00/0000:00:0e.0/ieee80211/phy0/index
Modules linked in: usbhid option usb_storage usbserial usblp evdev lm90
scx200_acb i2c_algo_bit i2c_dev i2c_core via_rhine ohci_hcd ne2k_pci
8390 leds_alix2 xt_IMQ imq nf_nat_tftp nf_conntrack_tftp nf_nat_irc nf_cc

Pid: 1597, comm: iw Not tainted (2.6.32.14 #8)
EIP: 0060:[&lt;d0a1ff24&gt;] EFLAGS: 00010296 CPU: 0
EIP is at ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k]
EAX: 000000c2 EBX: 00000000 ECX: ffffffff EDX: c12d2080
ESI: 00000019 EDI: cf8c0000 EBP: d0a30edc ESP: cfa09bf4
  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
Process iw (pid: 1597, ti=cfa09000 task=cf88a000 task.ti=cfa09000)
Stack:
  d0a34f35 d0a353f8 d0a30edc 000000fe cf8c0000 00000000 1900063d cfa8c9e0
&lt;0&gt; cfa8c9e8 cfa8c0c0 cfa8c000 d0a27f0c 199d84b4 cfa8c200 00000010 d09bfdc7
&lt;0&gt; 00000000 00000000 ffffffff d08e0d28 cf9263c0 00000001 cfa09cc4 00000000
Call Trace:
  [&lt;d0a27f0c&gt;] ? ath5k_hw_attach+0xc8c/0x3c10 [ath5k]
  [&lt;d09bfdc7&gt;] ? __ieee80211_request_smps+0x1347/0x1580 [mac80211]
  [&lt;d08e0d28&gt;] ? nl80211_send_scan_start+0x7b8/0x4520 [cfg80211]
  [&lt;c10f5db9&gt;] ? nla_parse+0x59/0xc0
  [&lt;c11ca8d9&gt;] ? genl_rcv_msg+0x169/0x1a0
  [&lt;c11ca770&gt;] ? genl_rcv_msg+0x0/0x1a0
  [&lt;c11c7e68&gt;] ? netlink_rcv_skb+0x38/0x90
  [&lt;c11c9649&gt;] ? genl_rcv+0x19/0x30
  [&lt;c11c7c03&gt;] ? netlink_unicast+0x1b3/0x220
  [&lt;c11c893e&gt;] ? netlink_sendmsg+0x26e/0x290
  [&lt;c11a409e&gt;] ? sock_sendmsg+0xbe/0xf0
  [&lt;c1032780&gt;] ? autoremove_wake_function+0x0/0x50
  [&lt;c104d846&gt;] ? __alloc_pages_nodemask+0x106/0x530
  [&lt;c1074933&gt;] ? do_lookup+0x53/0x1b0
  [&lt;c10766f9&gt;] ? __link_path_walk+0x9b9/0x9e0
  [&lt;c11acab0&gt;] ? verify_iovec+0x50/0x90
  [&lt;c11a42b1&gt;] ? sys_sendmsg+0x1e1/0x270
  [&lt;c1048e50&gt;] ? find_get_page+0x10/0x50
  [&lt;c104a96f&gt;] ? filemap_fault+0x5f/0x370
  [&lt;c1059159&gt;] ? __do_fault+0x319/0x370
  [&lt;c11a55b4&gt;] ? sys_socketcall+0x244/0x290
  [&lt;c101962c&gt;] ? do_page_fault+0x1ec/0x270
  [&lt;c1019440&gt;] ? do_page_fault+0x0/0x270
  [&lt;c1002ae5&gt;] ? syscall_call+0x7/0xb
Code: 00 b8 fe 00 00 00 b9 f8 53 a3 d0 89 5c 24 14 89 7c 24 10 89 44 24
0c 89 6c 24 08 89 4c 24 04 c7 04 24 35 4f a3 d0 e8 7c 30 60 f0 &lt;0f&gt; b7
43 06 ba 06 00 00 00 a8 10 75 0e 83 e0 20 83 f8 01 19 d2
EIP: [&lt;d0a1ff24&gt;] ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k] SS:ESP
0068:cfa09bf4
CR2: 0000000000000006
---[ end trace 54f73d6b10ceb87b ]---

Reported-by: Steve Brown &lt;sbrown@cortland.com&gt;
Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>iwl3945: enable stuck queue detection on 3945</title>
<updated>2010-08-02T17:30:19Z</updated>
<author>
<name>Reinette Chatre</name>
<email>reinette.chatre@intel.com</email>
</author>
<published>2010-05-20T17:54:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4c4504ea2dccb7901189f6a48c3d3c0ed20d3475'/>
<id>urn:sha1:4c4504ea2dccb7901189f6a48c3d3c0ed20d3475</id>
<content type='text'>
commit a6866ac93e6cb68091326e80b4fa4619a5957644 upstream.

We learn from
http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=1834 and
https://bugzilla.redhat.com/show_bug.cgi?id=589777
that 3945 can also suffer from a stuck command queue. Enable stuck queue
detection for iwl3945 to enable recovery in this case.

Signed-off-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>iwlwifi: Recover TX flow stall due to stuck queue</title>
<updated>2010-08-02T17:30:19Z</updated>
<author>
<name>Wey-Yi Guy</name>
<email>wey-yi.w.guy@intel.com</email>
</author>
<published>2010-03-02T01:23:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ac751d718ee83f055c9ef48413d11afdea6859a6'/>
<id>urn:sha1:ac751d718ee83f055c9ef48413d11afdea6859a6</id>
<content type='text'>
commit b74e31a9bc1013e69b85b139072485dc153453dd upstream.

Monitors the internal TX queues periodically.  When a queue is stuck
for some unknown conditions causing the throughput to drop and the
transfer is stop, the driver will force firmware reload and bring the
system back to normal operational state.

The iwlwifi devices behave differently in this regard so this feature is
made part of the ops infrastructure so we can have more control on how to
monitor and recover from tx queue stall case per device.

Signed-off-by: Trieu 'Andrew' Nguyen &lt;trieux.t.nguyen@intel.com&gt;
Signed-off-by: Wey-Yi Guy &lt;wey-yi.w.guy@intel.com&gt;
Signed-off-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>iwlagn: verify flow id in compressed BA packet</title>
<updated>2010-08-02T17:30:18Z</updated>
<author>
<name>Shanyu Zhao</name>
<email>shanyu.zhao@intel.com</email>
</author>
<published>2010-06-02T00:13:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8483d9b94a15bae1dd9bcd03ef84726ec6a03536'/>
<id>urn:sha1:8483d9b94a15bae1dd9bcd03ef84726ec6a03536</id>
<content type='text'>
commit b561e8274f75831ee87e4ea378cbb1f9f050a51a upstream.

The flow id (scd_flow) in a compressed BA packet should match the txq_id
of the queue from which the aggregated packets were sent. However, in
some hardware like the 1000 series, sometimes the flow id is 0 for the
txq_id (10 to 19). This can cause the annoying message:
[ 2213.306191] iwlagn 0000:01:00.0: Received BA when not expected
[ 2213.310178] iwlagn 0000:01:00.0: Read index for DMA queue txq id (0),
index 5, is out of range [0-256] 7 7.

And even worse, if agg-&gt;wait_for_ba is true when the bad BA is arriving,
this can cause system hang due to NULL pointer dereference because the
code is operating in a wrong tx queue!

Signed-off-by: Shanyu Zhao &lt;shanyu.zhao@intel.com&gt;
Signed-off-by: Pradeep Kulkarni &lt;pradeepx.kulkarni@intel.com&gt;
Signed-off-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>bnx2: Fix hang during rmmod bnx2.</title>
<updated>2010-08-02T17:30:17Z</updated>
<author>
<name>Michael Chan</name>
<email>mchan@broadcom.com</email>
</author>
<published>2010-06-01T15:05:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8bffdea32019685abb0ad2035ab5870eecb887d4'/>
<id>urn:sha1:8bffdea32019685abb0ad2035ab5870eecb887d4</id>
<content type='text'>
commit f048fa9c8686119c3858a463cab6121dced7c0bf upstream.

The regression is caused by:

commit 4327ba435a56ada13eedf3eb332e583c7a0586a9
    bnx2: Fix netpoll crash.

If -&gt;open() and -&gt;close() are called multiple times, the same napi structs
will be added to dev-&gt;napi_list multiple times, corrupting the dev-&gt;napi_list.
This causes free_netdev() to hang during rmmod.

We fix this by calling netif_napi_del() during -&gt;close().

Also, bnx2_init_napi() must not be in the __devinit section since it is
called by -&gt;open().

Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Benjamin Li &lt;benli@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>3c503: Fix IRQ probing</title>
<updated>2010-08-02T17:30:15Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2010-04-08T03:55:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=79b54741620599a3abccaf26bb1ae1d50a0ef809'/>
<id>urn:sha1:79b54741620599a3abccaf26bb1ae1d50a0ef809</id>
<content type='text'>
commit b0cf4dfb7cd21556efd9a6a67edcba0840b4d98d upstream.

The driver attempts to select an IRQ for the NIC automatically by
testing which of the supported IRQs are available and then probing
each available IRQ with probe_irq_{on,off}().  There are obvious race
conditions here, besides which:
1. The test for availability is done by passing a NULL handler, which
   now always returns -EINVAL, thus the device cannot be opened:
   &lt;http://bugs.debian.org/566522&gt;
2. probe_irq_off() will report only the first ISA IRQ handled,
   potentially leading to a false negative.

There was another bug that meant it ignored all error codes from
request_irq() except -EBUSY, so it would 'succeed' despite this
(possibly causing conflicts with other ISA devices).  This was fixed
by ab08999d6029bb2c79c16be5405d63d2bedbdfea 'WARNING: some
request_irq() failures ignored in el2_open()', which exposed bug 1.

This patch:
1. Replaces the use of probe_irq_{on,off}() with a real interrupt handler
2. Adds a delay before checking the interrupt-seen flag
3. Disables interrupts on all failure paths
4. Distinguishes error codes from the second request_irq() call,
   consistently with the first

Compile-tested only.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>dm9000: fix "BUG: spinlock recursion"</title>
<updated>2010-08-02T17:30:12Z</updated>
<author>
<name>Baruch Siach</name>
<email>baruch@tkos.co.il</email>
</author>
<published>2010-05-18T00:45:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3589bef7c2755ab044274f7cdea656bba29a94ae'/>
<id>urn:sha1:3589bef7c2755ab044274f7cdea656bba29a94ae</id>
<content type='text'>
commit 380fefb2ddabd4cd5f14dbe090481f0544e65078 upstream.

dm9000_set_rx_csum and dm9000_hash_table are called from atomic context (in
dm9000_init_dm9000), and from non-atomic context (via ethtool_ops and
net_device_ops respectively). This causes a spinlock recursion BUG. Fix this by
renaming these functions to *_unlocked for the atomic context, and make the
original functions locking wrappers for use in the non-atomic context.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libertas/sdio: 8686: set ECSI bit for 1-bit transfers</title>
<updated>2010-08-02T17:30:12Z</updated>
<author>
<name>Daniel Mack</name>
<email>daniel@caiaq.de</email>
</author>
<published>2010-04-06T08:52:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3fe45b2885d414bcfc05d61d025b8cc1bcf790e3'/>
<id>urn:sha1:3fe45b2885d414bcfc05d61d025b8cc1bcf790e3</id>
<content type='text'>
commit 8a64c0f6b7ec7f758c4ef445e49f479e27fa2236 upstream.

When operating in 1-bit mode, SDAT1 is used as dedicated interrupt line.
However, the 8686 will only drive this line when the ECSI bit is set in
the CCCR_IF register.

Thanks to Alagu Sankar for pointing me in the right direction.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Alagu Sankar &lt;alagusankar@embwise.com&gt;
Cc: Volker Ernst &lt;volker.ernst@txtr.com&gt;
Cc: Dan Williams &lt;dcbw@redhat.com&gt;
Cc: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Holger Schurig &lt;hs4233@mail.mn-solutions.de&gt;
Cc: Bing Zhao &lt;bzhao@marvell.com&gt;
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Acked-by: Dan Williams &lt;dcbw@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>virtio_net: fix oom handling on tx</title>
<updated>2010-08-02T17:29:51Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2010-07-02T16:34:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0094153a72107b3097818f1221c1f49c2eb0db90'/>
<id>urn:sha1:0094153a72107b3097818f1221c1f49c2eb0db90</id>
<content type='text'>
commit 58eba97d0774c69b1cf3e5a8ac74419409d1abbf upstream.

virtio net will never try to overflow the TX ring, so the only reason
add_buf may fail is out of memory. Thus, we can not stop the
device until some request completes - there's no guarantee anything
at all is outstanding.

Make the error message clearer as well: error here does not
indicate queue full.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
<entry>
<title>p54pci: add Symbol AP-300 minipci adapters pciid</title>
<updated>2010-08-02T17:29:33Z</updated>
<author>
<name>Joerg Albert</name>
<email>jal2@gmx.de</email>
</author>
<published>2010-06-13T12:22:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2a2afe2056699fa842b74474c4e146f170d565df'/>
<id>urn:sha1:2a2afe2056699fa842b74474c4e146f170d565df</id>
<content type='text'>
commit 50900f1698f68127e54c67fdfe829e4a97b1be2b upstream.

Signed-off-by: Christian Lamparter &lt;chunkeey@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
</feed>
